diff --git a/changelog/4176.fixed.md b/changelog/4176.fixed.md new file mode 100644 index 000000000..90e9b6b88 --- /dev/null +++ b/changelog/4176.fixed.md @@ -0,0 +1 @@ +- Fixed RTVI events not being delivered to clients when using WebSocket transports. `ProtobufFrameSerializer` now sets `ignore_rtvi_messages=False` by default. diff --git a/src/pipecat/serializers/protobuf.py b/src/pipecat/serializers/protobuf.py index fd21af2bf..66f4d0daa 100644 --- a/src/pipecat/serializers/protobuf.py +++ b/src/pipecat/serializers/protobuf.py @@ -68,6 +68,11 @@ class ProtobufFrameSerializer(FrameSerializer): params: Configuration parameters. """ super().__init__(params) + # The base serializer defaults to filtering out RTVI protocol messages + # to avoid sending them over telephony media streams. ProtobufFrameSerializer + # is used by WebSocket transports, which are the delivery channel for + # these messages, so we disable the filter. + self._params.ignore_rtvi_messages = False async def serialize(self, frame: Frame) -> str | bytes | None: """Serialize a frame to Protocol Buffer binary format.