# from fastapi import Request, Response # from twilio.twiml.voice_response import VoiceResponse, Connect # from app.session_manager import create_session # import os # from dotenv import load_dotenv # load_dotenv() # ws_url = os.getenv("WS_URL") # async def handle_incoming_call(request: Request): # form = await request.form() # call_sid = form.get('CallSid') # print(f"Incoming call SID: {call_sid}") # from_number = form.get('From') # # Create a new session for this call # session_id = create_session(call_sid, from_number) # # Construct the TwiML response # response = VoiceResponse() # connect = Connect() # connect.conversation_relay( # url=f"{ws_url}/{session_id}", # welcome_greeting="Hello! I am CentraLogic AI bot. How can I assist you today?", # language="en-US", # transcription_language="en-US", # tts_provider="ElevenLabs", # voice="XjLkpWUlnhS8i7gGz3lZ", # tts_language="en-US", # interruptible="false", # # transcription_provider="Deepgram", # ) # response.append(connect) # return Response(content=str(response), media_type="application/xml") # ######### Working code # from fastapi import Request, Response # from twilio.twiml.voice_response import VoiceResponse, Connect # from app.session_manager import create_session # import os # from dotenv import load_dotenv # load_dotenv() # ws_url = os.getenv("WS_URL") # async def handle_incoming_call(request: Request): # form = await request.form() # call_sid = form.get('CallSid') # print(f"Incoming call SID: {call_sid}") # from_number = form.get('From') # # Create a new session for this call # session_id = create_session(call_sid, from_number) # # Construct the TwiML response # response = VoiceResponse() # connect = Connect() # connect.conversation_relay( # url=f"{ws_url}/{session_id}", # welcome_greeting="Hello! I am CentraLogic AI bot. How can I assist you today?", # language="en-US", # transcription_language="en-US", # tts_language="en-US", # interruptible="false", # debug=True, # ) # response.append(connect) # return Response(content=str(response), media_type="application/xml") # ##### new code from fastapi import Request, Response from twilio.twiml.voice_response import VoiceResponse, Connect from app.session_manager import create_session import os from dotenv import load_dotenv # load_dotenv() # ws_url = os.getenv("WS_URL") ws_url = "wss://amitshri-twiliotest.hf.space/ws" async def handle_incoming_call(request: Request): form = await request.form() call_sid = form.get('CallSid') print(f"Incoming call SID: {call_sid}") from_number = form.get('From') dial = form.get('Dial') if dial: if dial: xml = f""" {dial} """ return Response(content=xml, media_type="text/xml") else: # Create a new session for this call session_id = create_session(call_sid, from_number) # Construct the TwiML response response = VoiceResponse() connect = Connect() connect.conversation_relay( url=f"{ws_url}/{session_id}", welcome_greeting="Hello! I am CentraLogic AI bot. How can I assist you today?", language="en-US", transcription_language="en-US", tts_language="en-US", interruptible="false", debug=True, ) response.append(connect) return Response(content=str(response), media_type="application/xml") ######### respone = VoiceResponse() ######### response.dial() # from app.session_manager import create_session # from fastapi import Request, Response # from twilio.twiml.voice_response import Connect, ConversationRelay, Language, VoiceResponse # from dotenv import load_dotenv # load_dotenv() # import os # ws_url = os.getenv("WS_URL") # async def handle_incoming_call(request: Request): # form = await request.form() # call_sid = form.get('CallSid') # print(f"Incoming call SID: {call_sid}") # from_number = form.get('From') # # Create a new session for this call # session_id = create_session(call_sid, from_number) # # Construct the TwiML response # response = VoiceResponse() # connect = Connect() # connect.conversation_relay( # url=f"{ws_url}/{session_id}", # welcome_greeting="Hello! I am CentraLogic AI bot.", # ) # response.append(connect) # return Response(content=str(response), media_type="application/xml") # transcriptionProvider, speechModel, transcriptionLanguage # Twilio uses a range of providers, including Google, Amazon, and Deepgram, for speech-to-text conversions