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):