Update the twilio-chatbot client to work with the updated server, which requires call_sid
This commit is contained in:
@@ -84,6 +84,7 @@ async def run_client(client_name: str, server_url: str, duration_secs: int):
|
|||||||
stream_url = get_stream_url_from_twiml(twiml)
|
stream_url = get_stream_url_from_twiml(twiml)
|
||||||
|
|
||||||
stream_sid = str(uuid4())
|
stream_sid = str(uuid4())
|
||||||
|
call_sid = str(uuid4())
|
||||||
|
|
||||||
transport = WebsocketClientTransport(
|
transport = WebsocketClientTransport(
|
||||||
uri=stream_url,
|
uri=stream_url,
|
||||||
@@ -91,18 +92,14 @@ async def run_client(client_name: str, server_url: str, duration_secs: int):
|
|||||||
audio_in_enabled=True,
|
audio_in_enabled=True,
|
||||||
audio_out_enabled=True,
|
audio_out_enabled=True,
|
||||||
add_wav_header=False,
|
add_wav_header=False,
|
||||||
serializer=TwilioFrameSerializer(stream_sid),
|
serializer=TwilioFrameSerializer(stream_sid=stream_sid, call_sid=call_sid),
|
||||||
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=1.5)),
|
vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=1.0)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
llm = OpenAILLMService(api_key=os.getenv("OPENAI_API_KEY"))
|
llm = OpenAILLMService(api_key=os.getenv("OPENAI_API_KEY"))
|
||||||
|
|
||||||
# We let the audio passthrough so we can record the conversation.
|
stt = DeepgramSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))
|
||||||
stt = DeepgramSTTService(
|
|
||||||
api_key=os.getenv("DEEPGRAM_API_KEY"),
|
|
||||||
audio_passthrough=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
tts = CartesiaTTSService(
|
tts = CartesiaTTSService(
|
||||||
api_key=os.getenv("CARTESIA_API_KEY"),
|
api_key=os.getenv("CARTESIA_API_KEY"),
|
||||||
@@ -157,7 +154,12 @@ async def run_client(client_name: str, server_url: str, duration_secs: int):
|
|||||||
await transport.output().send_message(message)
|
await transport.output().send_message(message)
|
||||||
|
|
||||||
message = TransportMessageUrgentFrame(
|
message = TransportMessageUrgentFrame(
|
||||||
message={"event": "start", "streamSid": stream_sid, "start": {"streamSid": stream_sid}}
|
message={
|
||||||
|
"event": "start",
|
||||||
|
"streamSid": stream_sid,
|
||||||
|
"callSid": call_sid,
|
||||||
|
"start": {"streamSid": stream_sid, "callSid": call_sid},
|
||||||
|
}
|
||||||
)
|
)
|
||||||
await transport.output().send_message(message)
|
await transport.output().send_message(message)
|
||||||
|
|
||||||
@@ -167,6 +169,7 @@ async def run_client(client_name: str, server_url: str, duration_secs: int):
|
|||||||
|
|
||||||
async def end_call():
|
async def end_call():
|
||||||
await asyncio.sleep(duration_secs)
|
await asyncio.sleep(duration_secs)
|
||||||
|
logger.info(f"Client {client_name} finished after {duration_secs} seconds.")
|
||||||
await task.queue_frame(EndFrame())
|
await task.queue_frame(EndFrame())
|
||||||
|
|
||||||
runner = PipelineRunner()
|
runner = PipelineRunner()
|
||||||
|
|||||||
Reference in New Issue
Block a user