I am trying to use Livekit with twilio using SIP T...
# ask-ai
l
I am trying to use Livekit with twilio using SIP Truck , I followed a youtube , But i am facing an error that twilio is unable to connect with the SIP URI , i am unable to decode the error , so please help . If needed i can provide the required information to solve it I have created the inbound truck , it is selected on my twilio number , my agent is not yet deployed, i am using livekit cloud , i will share the image of the error
t
Thanks for reaching out, Satyam. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
The 503 service error you're encountering typically indicates a problem with communication between Twilio and your SIP endpoint. Here are steps to troubleshoot and resolve the issue: 1. Verify Environment Variables: Ensure all required variables like
LIVEKIT_API_KEY
,
LIVEKIT_SIP_URI
, and Twilio credentials are correctly set. 2. Check SIP URI Format: Confirm the SIP URI is correctly formatted, including the
transport=tcp
parameter. 3. Validate Twilio SIP Trunk Configuration: Ensure the SIP trunk is properly created, the origination URL is set to your LiveKit SIP URI, and the phone number is associated with the trunk. 4. Authentication: Verify that the SIP trunk username and password match between Twilio and LiveKit. 5. Network Connectivity: Check firewall settings to allow SIP traffic and ensure there are no network issues. 6. Logs: Review Twilio and LiveKit logs for specific error messages to identify the root cause. If the issue persists, please share details about your SIP trunk configuration, environment variables, and any additional error logs for further assistance. Sources: Create and configure a Twilio SIP trunk | LiveKit Docs | pkg/sip/service_test.go | SIP Integration | livekit/livekit_composite | DeepWiki | protobufs/livekit_sip.proto | .env.example
l
Elastic trunck twillio Name Billtrax Origination Sip Uris sip:8zyv871ivm0.sip.livekit.cloud;transport=tcp livekit cloud LIVEKIT_URL=wss://v2v-77e3x0hu.livekit.cloud can you tell me firewall thing in details
t
Hey there! To get your firewall set up smoothly for Twilio SIP trunk and LiveKit integration, here are some key settings to keep in mind: 1. Allowed Domains and Ports: ◦ Make sure outbound traffic to
*.livekit.cloud
on port 443 is allowed for those secure WebSocket connections. ◦ Also, allow outbound traffic to
*.turn.livekit.cloud
on port 443 for TURN/TLS connections. ◦ Don’t forget outbound traffic to
*.host.livekit.cloud
on port 3478 for TURN/UDP servers. ◦ If you can, opening UDP ports 50000-60000 and TCP port 7881 for WebRTC connections is a nice bonus. 1. UDP Hole Punching: Try enabling UDP hole-punching or disabling symmetric NAT so LiveKit Cloud media servers can connect directly without a hitch. 2. NAT Traversal: If you’re behind a NAT, here’s what to configure: ◦ `use_external_ip`: This lets SIP signaling use your external IP. ◦ `nat_1_to_1_ip`: Set this up for a 1:1 NAT mapping. ◦
media_use_external_ip
and `media_nat_1_to_1_ip`: These help with media traffic routing. 1. Best Practices: ◦ Keep those UDP ports open for the best audio and video quality. ◦ Make sure WebSocket and WebRTC traffic over encrypted channels (TLS/DTLS) can get through. ◦ Double-check that LiveKit Cloud media servers can establish direct WebRTC connections smoothly. If you want, I’m here to help with any part of this setup or if you need more details tailored to your specific setup. Just let me know! Sources: Configuring firewalls | LiveKit Docs | Configuring firewalls | LiveKit Docs | SIP Integration | livekit/livekit_composite | DeepWiki | SIP inbound trunk | LiveKit Docs
l
ok
all my other configurations are ok ?
t
Thanks for sharing the details! It looks like your Twilio SIP trunk and LiveKit configurations are on the right track. Just to be sure, here are a few things you might want to double-check: 1. Twilio SIP Trunk: ◦ Make sure the SIP URI
sip:8zyv871ivm0.sip.livekit.cloud;transport=tcp
is set correctly in the origination settings. ◦ Check that the phone number is properly linked to the trunk. 1. LiveKit Configuration: ◦ Double-check that the
LIVEKIT_URL
is set to
<wss://v2v-77e3x0hu.livekit.cloud>
. ◦ Confirm all the necessary environment variables, like API keys and secrets, are correctly configured. 1. Firewall: ◦ Make sure the required ports and domains are allowed according to the firewall guidelines we talked about earlier. If everything looks good but you’re still running into issues, just give me a shout! I’m here to help you troubleshoot further.
l
Which port does it use
t
Hey there! When you're working with Twilio SIP trunk and LiveKit integration, here are the ports you'll want to keep an eye on: • Port 443: This one’s for secure WebSocket connections and TURN/TLS traffic. • Port 3478: Used by TURN/UDP servers. • Ports 50000-60000 (optional): These handle UDP connections in WebRTC for media streams. • Port 7881 (optional): This one’s for TCP connections in WebRTC. Make sure these ports are open on your firewall for both inbound and outbound traffic so everything runs smoothly. If you need a hand with this, just let me know!
l
how can i check it
?
t
Here’s a simple way to check if the ports you need are open and ready to go: 1. Try Online Port Check Tools: ◦ Look up handy tools like "Port Checker" or "Open Port Scanner" online to quickly test ports like 443, 3478, 50000-60000, or 7881. 1. Use Command Line Tools: ◦ If you’re on Linux or Mac, you can use
telnet
or
nc
(Netcat):
telnet <hostname> <port>
nc -zv <hostname> <port>
◦ For Windows, try `Test-NetConnection`:
Test-NetConnection -ComputerName <hostname> -Port <port>
1. Check Your Firewall Logs: ◦ Take a peek at your firewall logs to see if any traffic to or from those ports is being stopped. 1. Look Into Network Admin Tools: ◦ If you have access, double-check your network’s admin tools to make sure the firewall rules are set to allow those ports. Just swap out
<hostname>
with the right domain (like
*.livekit.cloud
) and
<port>
with the port number you want to check. If you want me to walk you through any of these steps, just give me a shout!
l
image.png
t
It looks like the call log shows the call state as "noanswer," and some important details like SIP response, connection, and media info are missing. This usually means the call didn’t quite make it to the SIP endpoint. No worries though—here are a few friendly steps to help you dig a bit deeper: 1. Check if the SIP Endpoint is Available: Make sure the SIP endpoint
<sip:+13304767390@8zyv871ivm0.sip>.livekit.cloud
is up and ready to accept calls. 2. Verify Your Twilio Trunk Setup: Double-check that the trunk SID
TK26cf0bd1bcf1c4a5a4ea721578942b09
is properly configured and linked to the right phone number and SIP URI. 3. Look at Firewall and Network Settings: Ensure the necessary ports (like 443, 3478, 50000-60000) are open and that nothing’s blocking traffic between Twilio and LiveKit. 4. Review Your Logs: Take a peek at the Twilio and LiveKit logs for any extra clues—things like SIP response codes or error messages can be super helpful. 5. Test the Connection: Try using tools like
telnet
or
nc
to connect to the SIP URI and see if it’s responding properly. If you want, I’m here to help you walk through any of these steps or answer any questions you have. Just let me know!
l
telephoney trunk setup { "sipTrunkId": "ST_uV6P6naVF8T9", "name": "My trunk", "numbers": [ "+13304767390" ], "allowedNumbers": [ "+918788044501" ], "krispEnabled": true }
t
Hey there! It looks like your telephony trunk setup is all good with the following details: • SIP Trunk ID:
ST_uV6P6naVF8T9
• Name: My trunk • Numbers:
+13304767390
• Allowed Numbers:
+918788044501
• Krisp Enabled: Yes Since everything seems set up correctly, the hiccup might be due to connectivity or whether the endpoint is available. Here are a few things to check: 1. Make sure the SIP endpoint
<sip:+13304767390@8zyv871ivm0.sip>.livekit.cloud
is reachable and ready to accept calls. 2. Double-check that your firewall settings allow traffic on these ports: 443, 3478, and 50000-60000. 3. Take a peek at the Twilio and LiveKit logs for any specific error messages or SIP response codes that might give us a clue. If you’re still running into issues, just let me know! I’m here to help and we can dig into some more troubleshooting together.
l
{callId: "SCL_7FJjFu7yGoPj" trunkId: "ST_uV6P6naVF8T9" dispatchRuleId: "SDR_gEqUXpvaqD5y" region: "oashburn1b" roomName: "call-_+918788044501_G5jQbLfxfkC8" participantIdentity: "sip_+918788044501" participantAttributes: {sip.callID: "SCL_7FJjFu7yGoPj" sip.callIDFull: "567a943962c572371686b3cdf47076a0@0.0.0.0" sip.callStatus: "ringing" sip.callTag: "76031034_c3356d0b_35c0c8d0-ec4f-4cf8-982a-3610fc3e05cf" sip.phoneNumber: "+918788044501" sip.ruleID: "SDR_gEqUXpvaqD5y" sip.trunkID: "ST_uV6P6naVF8T9" sip.trunkPhoneNumber: "+13304767390" sip.twilio.callSid: "CA5420b3c61b0a149cd551e3ee6ce8441c" } fromUri: {user: "+918788044501" host: "10.34.5.181" port: 9479 transport: "SIP_TRANSPORT_TCP" } toUri: {user: "+13304767390" host: "8zyv871ivm0.sip.livekit.cloud" port: 5060 transport: "SIP_TRANSPORT_TCP" } callDirection: "SCD_INBOUND" callStatus: "SCS_DISCONNECTED" createdAtNs: "1754311202795965627" endedAtNs: "1754311253388330706" disconnectReason: "CLIENT_INITIATED" audioCodec: "PCMU/8000" } livekit log
t
Thanks so much for sharing the detailed LiveKit log! Based on what you’ve provided, here are a few observations and some next steps we can take together: • Call Status: The call status shows
SCS_DISCONNECTED
, with the disconnect reason as
CLIENT_INITIATED
. This means the client (probably the SIP endpoint or Twilio) ended the call. • Call Direction: It’s an inbound call (
SCD_INBOUND
), targeting the SIP endpoint
8zyv871ivm0.sip.livekit.cloud
. • Transport: The call used
SIP_TRANSPORT_TCP
on port
5060
. • Audio Codec: The codec in use was
PCMU/8000
, which is pretty standard for SIP calls. Here’s what I’d suggest next to troubleshoot this further: 1. Verify SIP Endpoint: Double-check that the SIP endpoint
8zyv871ivm0.sip.livekit.cloud
is set up to accept calls on port
5060
using TCP. 2. Check Disconnect Reason: Take a look at why the client decided to disconnect. It might help to review the logs on the SIP endpoint or Twilio for any clues. 3. Firewall and Network: Make sure port
5060
is open and allowing TCP traffic through your firewall and network. 4. Test Call: Try making another test call and keep an eye on the logs to see if anything new pops up or if there are different error messages. If you want, I’m here to help with any of these steps or if you need more guidance. Just let me know!
l
i disconnected the call because it was ringing only , the agent did not join it , can i send the code to check ?
t
Hey there! Since the call was ringing but the agent didn’t join, it sounds like the issue might be with the agent’s setup or connection. If you could share the relevant code or configuration for the agent, I’d be happy to take a look and help spot any potential problems. When you send it over, please include: • The code or configuration for the agent’s setup. • How the agent is supposed to join the call (like using a SIP client or the LiveKit SDK). • Any logs or error messages you’re seeing from the agent’s side. Once I have that info, I’ll do my best to assist you further!
l
import asyncio import logging from dotenv import load_dotenv from livekit.agents import ( Agent, AgentSession, JobContext, RoomInputOptions, WorkerOptions, cli, function_tool ) from livekit.plugins import groq, silero, noise_cancellation from livekit.plugins.turn_detector.multilingual import MultilingualModel load_dotenv() logger = logging.getLogger("telephony-agent") # Function tools to enhance your agent's capabilities @function_tool async def get_current_time() -> str: """Get the current time.""" from datetime import datetime return f"The current time is {datetime.now().strftime('%I:%M %p')}" class TelephonyAssistant(Agent): def __init__(self) -> None: super().__init__( instructions="""You are a friendly and helpful AI assistant answering phone calls. Your personality: - Professional yet warm and approachable - Speak clearly and at a moderate pace for phone calls - Keep responses concise but complete - Ask clarifying questions when needed Your capabilities: - Answer questions on a wide range of topics - Provide weather information when asked - Tell the current time - Have natural conversations Always identify yourself as an AI assistant when asked. Keep responses conversational and under 30 seconds for phone clarity.""", tools=[get_current_time] ) async def entrypoint(_ctx_: JobContext): """Main entry point for the telephony voice agent.""" # Configure the voice processing pipeline optimized for telephony using Groq session = AgentSession( # Voice Activity Detection vad=silero.VAD.load(), # Speech-to-Text - Groq Whisper stt=groq.STT( model="whisper-large-v3-turbo", language="en", ), # Large Language Model - Groq Llama llm=groq.LLM( model="llama3-8b-8192" ), # Text-to-Speech - Groq PlayAI tts=groq.TTS( model="playai-tts", voice="Arista-PlayAI", ), _turn_detection_=MultilingualModel(), ) # Start the agent session await session.start( agent=TelephonyAssistant(), room=ctx.room, _room_input_options_=RoomInputOptions( # LiveKit Cloud enhanced noise cancellation # - If self-hosting, omit this parameter # - For telephony applications, use
BVCTelephony
for best results
_noise_cancellation_=noise_cancellation.BVCTelephony(), ), ) # Generate personalized greeting based on time of day import datetime hour = datetime.datetime.now().hour if hour < 12: time_greeting = "Good morning" elif hour < 18: time_greeting = "Good afternoon" _else_: time_greeting = "Good evening" await session.generate_reply( instructions=f"""Say '{time_greeting}! Thank you for calling. What's happening?' Speak warmly and professionally at a moderate pace.""" ) if name == "__main__": # Configure logging for better debugging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # Run the agent with the name that matches your dispatch rule cli.run_app(WorkerOptions( _entrypoint_fnc_=entrypoint, _agent_name_="telephony_agent" # This must match your dispatch rule ))
t
Thanks so much for sharing the code for your telephony agent! I took a look, and here are a few important things to double-check: 1. Agent Name: Make sure the
agent_name
in
WorkerOptions
exactly matches the name used in your dispatch rule (
telephony_agent
). 2. Room Configuration: Verify that the room name you’re passing to the agent matches the actual room created for the call (
call-_+918788044501_G5jQbLfxfkC8
). 3. Noise Cancellation: Confirm that the
BVCTelephony
noise cancellation is set up properly for telephony use. 4. Logging: Logging should be turned on for debugging—take a peek at the logs to spot any errors or warnings when the agent initializes or starts a session. 5. Dependencies: Double-check that all the necessary plugins and models like
silero.VAD
,
groq.STT
,
groq.LLM
, and
groq.TTS
are installed and accessible. If everything looks good but the agent still isn’t joining the call, try checking the logs during the
session.start
step for any hiccups. Feel free to reach out if you want a hand troubleshooting or need more help—I’m here for you!
l
i have tested it without twilio , it is working
t
Since the agent is working without Twilio, it seems like the issue might be in the integration between Twilio and LiveKit. Let’s walk through a few steps that could help: 1. Verify Twilio SIP Trunk: Double-check that the SIP trunk is set up correctly with the LiveKit SIP URI (
sip:8zyv871ivm0.sip.livekit.cloud;transport=tcp
). 2. Check Twilio Logs: Take a look at the Twilio call logs to see if there are any errors or warnings popping up during call setup. 3. Firewall and Ports: Make sure the necessary ports (like 443, 3478, 5060, 50000-60000) are open and accessible for both Twilio and LiveKit. 4. Dispatch Rule: Confirm that the dispatch rule in LiveKit is properly routing calls to the agent. 5. Test with Twilio: Try making a test call through Twilio and keep an eye on the logs in both Twilio and LiveKit to spot any differences. If you’d like, I’m here to help with any of these steps or to troubleshoot the Twilio integration further. Just let me know!
l
image.png
test call is failing
t
Hey there! The call log shows a failure with these details: • Call State: Fail • Last SIP Response: 500 Server Internal Error • Post-Dial Delay: 0 seconds • Trunk SID: TKf26cf0bd1bcf14ca54a2e71578942b09 • Signaling IPs: 161.115.179.63 ↔️ 54.172.60.0 • Media IPs: 168.68.136.188 That "500 Server Internal Error" usually means something’s up on the SIP server or endpoint side. Here’s a friendly checklist to help you dig a bit deeper: 1. Check LiveKit Logs: Take a peek at the LiveKit server logs to see if there are any errors or clues related to this call. 2. Verify SIP Endpoint: Make sure the SIP endpoint
<sip:+13304767390@gzyv871ivm0.sip>.livekit.cloud;transport=tcp
is set up correctly and working as it should. 3. Firewall and Ports: Double-check that the necessary ports (like 5060 for SIP signaling) are open and reachable. 4. Twilio Configuration: Have a look at your SIP trunk settings in Twilio, including the SIP URI and transport options, to ensure everything’s spot on. 5. Test Connectivity: Try tools like
telnet
or
nc
to connect to the SIP URI and see if it responds properly. If you want a hand with any of these steps or need more help figuring this out, just let me know—I’m here for you!
It looks like the test call ran into a "500 Server Internal Error," which usually points to something going on with the server side—maybe with the SIP endpoint or trunk setup. No worries though, here are some friendly steps we can try to get to the bottom of it: 1. Verify SIP Endpoint: Double-check that the SIP endpoint
<sip:+13304767390@gzyv871ivm0.sip>.livekit.cloud;transport=tcp
is set up correctly and reachable. 2. Check Trunk Configuration: Make sure the Trunk SID
TKf26cf0bd1bcf14ca54a2e71578942b09
is properly configured in Twilio and linked to the right SIP URI. 3. Firewall and Ports: Confirm that the necessary ports (like 5060 for SIP signaling and 50000-60000 for media) are open and accessible. 4. Logs: Take a look at the LiveKit and Twilio logs to find more clues about the "500 Server Internal Error." Watch out for any specific error messages or misconfigurations. 5. Test Connectivity: Try using tools like
telnet
or
nc
to check if the SIP URI responds as expected. If you want, I’m here to help walk you through any of these steps or dig a little deeper together. Just let me know!
l
only the caller joined the the ai agent did not join
t
Hey there! From what I can see in the event log, it looks like only the caller joined the room and interacted with the AI agent. The participant left pretty quickly, and then the room ended. No worries though—here are some friendly steps we can take together to figure out why the AI agent didn’t fully engage: 1. Verify Room Configuration: Let’s double-check that the room is set up properly so the AI agent can join and chat with participants smoothly. 2. Check Agent Logs: Take a peek at the AI agent’s logs to spot any errors or hiccups during the session. 3. Test Agent Behavior: Try a test call to see how the agent behaves and make sure it’s responding like it should. 4. Review Event Payloads: Expand the "Event payload" details in the log to look for any specific errors or warnings about the participant or agent activity. 5. Twilio Integration: Let’s confirm that the Twilio SIP trunk is routing calls correctly to the LiveKit room and that the agent is being prompted to join. If you want, I’m here to help you walk through any of these steps or troubleshoot further. Just let me know!
l
import asyncio import logging from dotenv import load_dotenv from livekit.agents import ( Agent, AgentSession, JobContext, RoomInputOptions, WorkerOptions, cli, function_tool ) from livekit.plugins import groq, silero, noise_cancellation from livekit.plugins.turn_detector.multilingual import MultilingualModel load_dotenv() logger = logging.getLogger("telephony-agent") # Function tools to enhance your agent's capabilities @function_tool async def get_current_time() -> str: """Get the current time.""" from datetime import datetime return f"The current time is {datetime.now().strftime('%I:%M %p')}" class TelephonyAssistant(Agent): def __init__(self) -> None: super().__init__( instructions="""You are a friendly and helpful AI assistant answering phone calls. Your personality: - Professional yet warm and approachable - Speak clearly and at a moderate pace for phone calls - Keep responses concise but complete - Ask clarifying questions when needed Your capabilities: - Answer questions on a wide range of topics - Provide weather information when asked - Tell the current time - Have natural conversations Always identify yourself as an AI assistant when asked. Keep responses conversational and under 30 seconds for phone clarity.""", tools=[get_current_time] ) async def entrypoint(_ctx_: JobContext): """Main entry point for the telephony voice agent.""" # Configure the voice processing pipeline optimized for telephony using Groq session = AgentSession( # Voice Activity Detection vad=silero.VAD.load(), # Speech-to-Text - Groq Whisper stt=groq.STT( model="whisper-large-v3-turbo", language="en", ), # Large Language Model - Groq Llama llm=groq.LLM( model="llama3-8b-8192" ), # Text-to-Speech - Groq PlayAI tts=groq.TTS( model="playai-tts", voice="Arista-PlayAI", ), _turn_detection_=MultilingualModel(), ) # Start the agent session await session.start( agent=TelephonyAssistant(), room=ctx.room, _room_input_options_=RoomInputOptions( # LiveKit Cloud enhanced noise cancellation # - If self-hosting, omit this parameter # - For telephony applications, use
BVCTelephony
for best results
_noise_cancellation_=noise_cancellation.BVCTelephony(), ), ) # Generate personalized greeting based on time of day import datetime hour = datetime.datetime.now().hour if hour < 12: time_greeting = "Good morning" elif hour < 18: time_greeting = "Good afternoon" _else_: time_greeting = "Good evening" await session.generate_reply( instructions=f"""Say '{time_greeting}! Thank you for calling. What's happening?' Speak warmly and professionally at a moderate pace.""" ) if name == "__main__": # Configure logging for better debugging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) # Run the agent with the name that matches your dispatch rule cli.run_app(WorkerOptions( _entrypoint_fnc_=entrypoint, _agent_name_="telephony_agent" # This must match your dispatch rule )) is this code correct or i need to correct something
t
Your code for the telephony agent looks well put together and should work just fine. That said, here are a few things you might want to double-check: 1. Agent Name: Make sure the
agent_name
in
WorkerOptions
exactly matches the name in your LiveKit dispatch rule (
telephony_agent
). 2. Room Configuration: Double-check that the room name you’re passing to the agent matches the room that was actually created for the call. 3. Noise Cancellation: The
BVCTelephony
noise cancellation looks properly set up for telephony apps. 4. Logging: Since logging is enabled for debugging, take a peek at the logs to catch any errors or warnings when the agent initializes or starts the session. 5. Dependencies: Just to be sure, confirm that all the necessary plugins and models (like
silero.VAD
,
groq.STT
,
groq.LLM
,
groq.TTS
) are installed and accessible. If everything seems right but the agent still isn’t joining the call, have another look at the logs during the
session.start
process for any clues. And hey, feel free to reach out if you want me to help dig into it further!
l
image.png
t
It looks like the call log is showing several failed calls with the error "invalid credentials were provided." This usually means there's a hiccup with the authentication credentials for the SIP trunk. No worries though—here are some easy steps to help you sort it out: 1. Verify SIP Trunk Credentials: Take a moment to double-check the username and password you’ve set up for the SIP trunk in Twilio, and make sure they match what’s configured in LiveKit. 2. Update Configuration: If you find the credentials have changed, just update them in both Twilio and LiveKit so everything stays in sync. 3. Test Connectivity: Once you’ve updated the credentials, try making a test call to see if that clears up the issue. 4. Logs: If things still aren’t working, have a look at the logs in both Twilio and LiveKit—they can give you some extra clues about what’s going on with those failed authentication attempts. If you’d like, I’m here to help walk you through updating the credentials or troubleshooting further. Just let me know!
l
{ "sipTrunkId": "ST_uV6P6naVF8T9", "name": "My trunk", "numbers": [ "+13304767390" ], "authUsername": "s", "authPassword": "123", "krispEnabled": true } <?xml version="1.0" encoding="UTF-8"?> <Response> <Dial> <Sip username="s" password="123">sip:+13304767390@8zyv871ivm0.sip.livekit.cloud </Sip> </Dial> </Response>
t
Thanks so much for sharing the SIP trunk configuration and TwiML response! Based on what you’ve provided, here are a few things we can double-check together: 1. Authentication Credentials: Let’s make sure the
authUsername
(
s
) and
authPassword
(
123
) are exactly the same in both the SIP trunk setup and the TwiML response. 2. SIP URI: It’s a good idea to confirm that the SIP URI
<sip:+13304767390@8zyv871ivm0.sip>.livekit.cloud
is correct and reachable from your side. 3. Twilio Configuration: Double-check that the SIP trunk
ST_uV6P6naVF8T9
is properly configured in Twilio and linked to the right phone number. 4. Test Call: Once those details are all set, try making a test call to see if everything’s working smoothly. If you’re still running into issues, feel free to share any error messages or logs you have. I’m here to help you get this sorted out!
l
How to do a test call
t
Hey there! To try out a test call with your Twilio SIP trunk and LiveKit setup, here’s a simple step-by-step guide for you: 1. Set Up a Twilio Number: First, make sure your Twilio phone number is connected to the SIP trunk
ST_uV6P6naVF8T9
. 2. Use Twilio Console: ◦ Head over to the Voice Logs section in your Twilio Console. ◦ Give your Twilio number a call from any phone to kick things off. 1. Monitor Logs: Keep an eye on the Twilio call logs to see how the call is doing and catch any errors. 2. Direct SIP Call: You can also use a SIP client like Zoiper or Linphone to call the SIP URI
<sip:+13304767390@8zyv871ivm0.sip>.livekit.cloud
directly, using the username
s
and password
123
. 3. Check LiveKit Logs: Lastly, peek at the LiveKit logs to confirm if the call made it to the room and if the agent joined successfully. If you want me to walk you through any of these steps or have questions, just let me know—I’m here to help!