Hi everyone, I’m running into an issue with outbound SIP calls dropping mid-conversation and would appreciate any insight from the community.**
Setup:**
-
LiveKit Agents SDK v1.2.15, worker region: US West B
-
Outbound SIP via Twilio Elastic SIP Trunk (Umatilla/us2)
-
Pipeline: Google STT (streaming) → GPT-4o (max_completion_tokens=150, temp=0.3) → ElevenLabs TTS (eleven_turbo_v2_5, streaming_latency=2)
What happens:
After the user speaks and the STT transcript is received, the agent starts processing (LLM inference + TTS generation). During this processing window (~14 seconds in this case), no RTP packets are sent to Twilio. Twilio detects RTP inactivity and the call drops.
Twilio Voice Insights confirms “Who Hung Up: caller” — meaning LiveKit’s SIP bridge is sending the BYE, not Twilio.
Already ruled out / tried:
-
Symmetric RTP enabled on Twilio trunk
-
Localized SIP URI set to Umatilla (us2) matching worker region
-
No explicit ctx.shutdown() in the agent logic
Relevant logs:
13:51:14 - received user transcript {“user_transcript”: “Hola Qué tal con John Down”, “language”: “es-US”}
13:51:28 - stream closed {“participant”: “carrier”, “source”: “SOURCE_MICROPHONE”}
13:51:28 - [LIFECYCLE] SIP participant disconnected: carrier
13:51:38 - livekit.plugins.google - stream timed out, restarting.
14-second gap between transcript received and disconnection = exact LLM+TTS processing time.
Question: Does the LiveKit SIP bridge send RTP silence/comfort noise packets during agent processing to keep the Twilio media session alive? If not, is there a configuration to enable this? This appears to be the root cause of intermittent call drops in production.
Thanks in advance for any help or pointers this is blocking us in production.