Skip to content

Commit 7d5f390

Browse files
committed
Sync upstream
1 parent 3fd611e commit 7d5f390

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

LXST/Network.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ def _packet(self, data, packet, unpacked=None):
3939
if type(unpacked) == dict:
4040
if FIELD_SIGNALLING in unpacked:
4141
signalling = unpacked[FIELD_SIGNALLING]
42-
if type(signalling) == list:
43-
self.signalling_received(signalling, source)
44-
else:
45-
self.signalling_received([signalling], source)
42+
if type(signalling) == list: self.signalling_received(signalling, source)
43+
else: self.signalling_received([signalling], source)
4644

4745
except Exception as e:
4846
RNS.log(f"{self} could not process incoming packet: {e}", RNS.LOG_ERROR)

LXST/Primitives/Telephony.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ def __init__(self, identity, ring_time=RING_TIME, wait_time=WAIT_TIME, auto_answ
176176
self.transmit_mixer = None
177177
self.receive_pipeline = None
178178
self.transmit_pipeline = None
179+
self.__receive_muted = False
180+
self.__transmit_muted = False
179181
self.ringer_lock = threading.Lock()
180182
self.ringer_output = None
181183
self.ringer_pipeline = None
@@ -432,13 +434,15 @@ def hangup(self, reason=None):
432434

433435
if terminating_call.status == RNS.Link.ACTIVE: terminating_call.teardown()
434436
self.__stop_pipelines()
435-
self.receive_mixer = None
436-
self.transmit_mixer = None
437-
self.receive_pipeline = None
437+
self.receive_mixer = None
438+
self.transmit_mixer = None
439+
self.receive_pipeline = None
438440
self.transmit_pipeline = None
439-
self.audio_output = None
440-
self.dial_tone = None
441-
self.call_status = Signalling.STATUS_AVAILABLE
441+
self.audio_output = None
442+
self.dial_tone = None
443+
self.call_status = Signalling.STATUS_AVAILABLE
444+
self.__receive_muted = False
445+
self.__transmit_muted = False
442446
if remote_identity: RNS.log(f"Call with {RNS.prettyhexrep(remote_identity.hash)} terminated", RNS.LOG_DEBUG)
443447
else: RNS.log(f"Outgoing call could not be connected, link establishment failed", RNS.LOG_DEBUG)
444448

@@ -452,15 +456,19 @@ def hangup(self, reason=None):
452456
elif callable(self.__ended_callback): self.__ended_callback(remote_identity)
453457

454458
def mute_receive(self, mute=True):
459+
self.__receive_muted = mute
455460
if self.receive_mixer: self.receive_mixer.mute(mute)
456461

457462
def unmute_receive(self, unmute=True):
463+
self.__receive_muted = not unmute
458464
if self.receive_mixer: self.receive_mixer.unmute(unmute)
459465

460466
def mute_transmit(self, mute=True):
467+
self.__transmit_muted = mute
461468
if self.transmit_mixer: self.transmit_mixer.mute(mute)
462469

463470
def unmute_transmit(self, unmute=True):
471+
self.__transmit_muted = not unmute
464472
if self.transmit_mixer: self.transmit_mixer.unmute(unmute)
465473

466474
def set_receive_gain(self, gain=0.0):
@@ -510,16 +518,16 @@ def __reset_dialling_pipelines(self):
510518

511519
def __prepare_dialling_pipelines(self):
512520
self.__select_call_profile(self.active_call.profile)
513-
if self.audio_output == None: self.audio_output = LineSink(preferred_device=self.speaker_device)
514-
if self.receive_mixer == None: self.receive_mixer = Mixer(target_frame_ms=self.target_frame_time_ms, gain=self.receive_gain)
515-
if self.dial_tone == None: self.dial_tone = ToneSource(frequency=self.dial_tone_frequency, gain=0.0, ease_time_ms=self.dial_tone_ease_ms, target_frame_ms=self.target_frame_time_ms, codec=Null(), sink=self.receive_mixer)
521+
if self.audio_output == None: self.audio_output = LineSink(preferred_device=self.speaker_device)
522+
if self.receive_mixer == None: self.receive_mixer = Mixer(target_frame_ms=self.target_frame_time_ms, gain=self.receive_gain)
523+
if self.dial_tone == None: self.dial_tone = ToneSource(frequency=self.dial_tone_frequency, gain=0.0, ease_time_ms=self.dial_tone_ease_ms, target_frame_ms=self.target_frame_time_ms, codec=Null(), sink=self.receive_mixer)
516524
if self.receive_pipeline == None: self.receive_pipeline = Pipeline(source=self.receive_mixer, codec=Null(), sink=self.audio_output)
517525

518526
def __activate_ring_tone(self):
519527
if self.ringtone_path != None and os.path.isfile(self.ringtone_path):
520528
if not self.ringer_pipeline:
521529
if not self.ringer_output: self.ringer_output = LineSink(preferred_device=self.ringer_device)
522-
self.ringer_source = OpusFileSource(self.ringtone_path, loop=True, target_frame_ms=60)
530+
self.ringer_source = OpusFileSource(self.ringtone_path, loop=True, target_frame_ms=60)
523531
self.ringer_pipeline = Pipeline(source=self.ringer_source, codec=Null(), sink=self.ringer_output)
524532

525533
def job():
@@ -578,6 +586,8 @@ def __reconfigure_transmit_pipeline(self):
578586
self.transmit_pipeline = Pipeline(source=self.transmit_mixer,
579587
codec=self.transmit_codec,
580588
sink=self.active_call.packetizer)
589+
590+
self.transmit_mixer.mute(self.__transmit_muted)
581591
self.transmit_mixer.start()
582592
self.audio_input.start()
583593
self.transmit_pipeline.start()

0 commit comments

Comments
 (0)