Merge pull request #1002 from pipecat-ai/mb/add-on-error-callback
Register the on_error handler
This commit is contained in:
@@ -27,6 +27,7 @@ from pipecat.audio.vad.vad_analyzer import VADAnalyzer, VADParams
|
|||||||
from pipecat.frames.frames import (
|
from pipecat.frames.frames import (
|
||||||
CancelFrame,
|
CancelFrame,
|
||||||
EndFrame,
|
EndFrame,
|
||||||
|
ErrorFrame,
|
||||||
Frame,
|
Frame,
|
||||||
InputAudioRawFrame,
|
InputAudioRawFrame,
|
||||||
InterimTranscriptionFrame,
|
InterimTranscriptionFrame,
|
||||||
@@ -921,6 +922,7 @@ class DailyTransport(BaseTransport):
|
|||||||
# these handlers.
|
# these handlers.
|
||||||
self._register_event_handler("on_joined")
|
self._register_event_handler("on_joined")
|
||||||
self._register_event_handler("on_left")
|
self._register_event_handler("on_left")
|
||||||
|
self._register_event_handler("on_error")
|
||||||
self._register_event_handler("on_app_message")
|
self._register_event_handler("on_app_message")
|
||||||
self._register_event_handler("on_call_state_updated")
|
self._register_event_handler("on_call_state_updated")
|
||||||
self._register_event_handler("on_dialin_connected")
|
self._register_event_handler("on_dialin_connected")
|
||||||
@@ -1035,9 +1037,17 @@ class DailyTransport(BaseTransport):
|
|||||||
await self._call_event_handler("on_left")
|
await self._call_event_handler("on_left")
|
||||||
|
|
||||||
async def _on_error(self, error):
|
async def _on_error(self, error):
|
||||||
# TODO(aleix): Report error to input/output transports. The one managing
|
await self._call_event_handler("on_error", error)
|
||||||
# the client should report the error.
|
# Push error frame to notify the pipeline
|
||||||
pass
|
error_frame = ErrorFrame(error)
|
||||||
|
|
||||||
|
if self._input:
|
||||||
|
await self._input.push_error(error_frame)
|
||||||
|
elif self._output:
|
||||||
|
await self._output.push_error(error_frame)
|
||||||
|
else:
|
||||||
|
logger.error("Both input and output are None while trying to push error")
|
||||||
|
raise RuntimeError("No valid input or output channel to push error")
|
||||||
|
|
||||||
async def _on_app_message(self, message: Any, sender: str):
|
async def _on_app_message(self, message: Any, sender: str):
|
||||||
if self._input:
|
if self._input:
|
||||||
|
|||||||
Reference in New Issue
Block a user