From 5abfb1530084cc4811e321320afa486fe8c6f99b Mon Sep 17 00:00:00 2001 From: Filipi Fuchter Date: Fri, 28 Mar 2025 17:30:06 -0300 Subject: [PATCH] Registering the event handlers and fixing the examples. --- .../p2p-webrtc/video-transform/server/server.py | 2 +- examples/p2p-webrtc/voice-agent/server.py | 2 +- src/pipecat/transports/network/webrtc_connection.py | 13 +++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/p2p-webrtc/video-transform/server/server.py b/examples/p2p-webrtc/video-transform/server/server.py index 59f182f62..79ee75ea3 100644 --- a/examples/p2p-webrtc/video-transform/server/server.py +++ b/examples/p2p-webrtc/video-transform/server/server.py @@ -38,7 +38,7 @@ async def offer(request: dict, background_tasks: BackgroundTasks): pipecat_connection = SmallWebRTCConnection(ice_servers) await pipecat_connection.initialize(sdp=request["sdp"], type=request["type"]) - @pipecat_connection.on("closed") + @pipecat_connection.event_handler("closed") async def handle_disconnected(webrtc_connection: SmallWebRTCConnection): logger.info(f"Discarding peer connection for pc_id: {webrtc_connection.pc_id}") pcs_map.pop(webrtc_connection.pc_id, None) diff --git a/examples/p2p-webrtc/voice-agent/server.py b/examples/p2p-webrtc/voice-agent/server.py index 3e5f8dcfb..e91340a32 100644 --- a/examples/p2p-webrtc/voice-agent/server.py +++ b/examples/p2p-webrtc/voice-agent/server.py @@ -35,7 +35,7 @@ async def offer(request: dict, background_tasks: BackgroundTasks): pipecat_connection = SmallWebRTCConnection() await pipecat_connection.initialize(sdp=request["sdp"], type=request["type"]) - @pipecat_connection.on("closed") + @pipecat_connection.event_handler("closed") async def handle_disconnected(webrtc_connection: SmallWebRTCConnection): logger.info(f"Discarding peer connection for pc_id: {webrtc_connection.pc_id}") pcs_map.pop(webrtc_connection.pc_id, None) diff --git a/src/pipecat/transports/network/webrtc_connection.py b/src/pipecat/transports/network/webrtc_connection.py index 16a462279..840126c23 100644 --- a/src/pipecat/transports/network/webrtc_connection.py +++ b/src/pipecat/transports/network/webrtc_connection.py @@ -38,6 +38,19 @@ class SmallWebRTCConnection(BaseObject): self._connect_invoked = False self._initialize() + # Register supported handlers. The user will only be able to register + # these handlers. + self._register_event_handler("appMessage") + self._register_event_handler("track-started") + self._register_event_handler("track-ended") + # connection states + self._register_event_handler("connecting") + self._register_event_handler("connected") + self._register_event_handler("disconnected") + self._register_event_handler("closed") + self._register_event_handler("failed") + self._register_event_handler("new") + @property def pc(self) -> RTCPeerConnection: return self._pc