diff --git a/src/pipecat/serializers/exotel.py b/src/pipecat/serializers/exotel.py index 81f0daf39..811146d60 100644 --- a/src/pipecat/serializers/exotel.py +++ b/src/pipecat/serializers/exotel.py @@ -144,6 +144,9 @@ class ExotelFrameSerializer(FrameSerializer): self._exotel_sample_rate, self._sample_rate, ) + if deserialized_data is None or len(deserialized_data) == 0: + # Ignoring in case we don't have audio + return None # Input: Exotel takes PCM data, so just resample to match sample_rate audio_frame = InputAudioRawFrame( diff --git a/src/pipecat/serializers/plivo.py b/src/pipecat/serializers/plivo.py index 1b2ebb57f..90b45bf3e 100644 --- a/src/pipecat/serializers/plivo.py +++ b/src/pipecat/serializers/plivo.py @@ -227,6 +227,10 @@ class PlivoFrameSerializer(FrameSerializer): deserialized_data = await ulaw_to_pcm( payload, self._plivo_sample_rate, self._sample_rate, self._input_resampler ) + if deserialized_data is None or len(deserialized_data) == 0: + # Ignoring in case we don't have audio + return None + audio_frame = InputAudioRawFrame( audio=deserialized_data, num_channels=1, sample_rate=self._sample_rate ) diff --git a/src/pipecat/serializers/telnyx.py b/src/pipecat/serializers/telnyx.py index 133c50dc9..435be5704 100644 --- a/src/pipecat/serializers/telnyx.py +++ b/src/pipecat/serializers/telnyx.py @@ -262,6 +262,10 @@ class TelnyxFrameSerializer(FrameSerializer): else: raise ValueError(f"Unsupported encoding: {self._params.outbound_encoding}") + if deserialized_data is None or len(deserialized_data) == 0: + # Ignoring in case we don't have audio + return None + audio_frame = InputAudioRawFrame( audio=deserialized_data, num_channels=1, sample_rate=self._sample_rate )