From 255666925b4ea87269ca7e9d2b999874b578baf1 Mon Sep 17 00:00:00 2001 From: Filipi Fuchter Date: Fri, 11 Apr 2025 15:35:50 -0300 Subject: [PATCH] Sending a new signalling message peerLeft. --- src/pipecat/transports/network/webrtc_connection.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pipecat/transports/network/webrtc_connection.py b/src/pipecat/transports/network/webrtc_connection.py index 83e32dd48..7e8dd8a0f 100644 --- a/src/pipecat/transports/network/webrtc_connection.py +++ b/src/pipecat/transports/network/webrtc_connection.py @@ -43,6 +43,8 @@ class TrackStatusMessage(BaseModel): class RenegotiateMessage(BaseModel): type: Literal["renegotiate"] = "renegotiate" +class PeerLeftMessage(BaseModel): + type: Literal["peerLeft"] = "peerLeft" class SignallingMessage: Inbound = Union[TrackStatusMessage] # in case we need to add new messages in the future @@ -272,9 +274,9 @@ class SmallWebRTCConnection(BaseObject): logger.warning("Video transceiver not found. Cannot replace video track.") async def disconnect(self): - # TODO: we should trigger something to know we are leaving - # so the client does not try to reconnect - # Like participant left + self.send_app_message( + {"type": SIGNALLING_TYPE, "message": PeerLeftMessage().model_dump()} + ) await self._close() async def _close(self):