most-dawn-67700
12/15/2025, 11:33 PMtall-airline-16756
12/15/2025, 11:33 PMtall-airline-16756
12/15/2025, 11:33 PMmost-dawn-67700
12/16/2025, 12:30 AMtall-airline-16756
12/16/2025, 12:30 AM<http://my-trunk.pstn.twilio.com|my-trunk.pstn.twilio.com>) and provide the `authUsername`/`authPassword`.
• In the LiveKit outbound trunk, include the Twilio number(s) you want to use as caller ID (or use ["*"] and set the number per call via sip_number).
Once those steps are done, you can place outbound calls from LiveKit using the same Twilio number that receives inbound calls. Would you like the exact LiveKit request fields or an example CreateSIPParticipant call to set the caller ID?
Sources: Create and configure a Twilio SIP trunk | LiveKit docs | SIP outbound trunk | LiveKit docs | Making outbound calls | LiveKit docs | Using Wavix to accept and make calls | LiveKit docsmost-dawn-67700
12/16/2025, 12:46 AMtall-airline-16756
12/16/2025, 12:47 AM{
"transport": "SIP_TRANSPORT_TLS",
"mediaEncryption": "SIP_MEDIA_ENCRYPT_REQUIRE"
}
Would you like the exact LiveKit API fields for creating the trunk or provider-specific notes (e.g., Twilio/Telnyx) for enabling SRTP?
Sources: Secure trunking | LiveKit docs | SIP APIs | LiveKit docsmost-dawn-67700
12/16/2025, 3:24 AMtall-airline-16756
12/16/2025, 3:25 AMaddress, auth creds, and the phone number listed). You can list trunks with lk sip outbound list.
2. Create a SIP participant that places an outbound call. Example JSON:
{
"sip_trunk_id": "<your-outbound-trunk-id>",
"sip_call_to": "<test-phone-number>",
"room_name": "test-room",
"participant_identity": "test-participant",
"participant_name": "Test Caller",
"wait_until_answered": true
}
1. Run the request (CLI: lk sip participant create sip-participant.json or call the CreateSIPParticipant API).
2. Verify the call connects — the participant will join the LiveKit room and sip.callStatus becomes active.
3. If it fails, check the error returned by the CreateSIPParticipant request, LiveKit call logs, and your SIP provider logs for SIP response codes (authentication, routing, SRTP issues, etc.).
Optional tests:
• Use ["*"] wildcard trunk and set sip_number per call to test different caller IDs.
• Dispatch a voice agent that uses CreateSIPParticipant to automate repeatable tests.
Would you like an exact API request example for your environment (curl or SDK) or help interpreting any specific error codes you see?
Sources: Make outbound calls | LiveKit docs | SIP troubleshooting guide | LiveKit docs | Agents telephony integration | LiveKit docsmost-dawn-67700
12/16/2025, 5:08 AM[TRANSFER] Error transferring call: TwirpError(code=permission_denied, message=twirp error unknown: sip status 403: Forbidden, status=403, metadata={'error_details': 'CAcSGXNpcCBzdGF0dXMgNDAzOiBGb3JiaWRkZW4aNwoldHlwZS5nb29nbGVhcGlzLmNvbS9saXZla2l0LlNJUFN0YXR1cxIOCJMDEglGb3JiaWRkZW4=', 'sip_status': 'Forbidden', 'sip_status_code': '403'})tall-airline-16756
12/16/2025, 5:09 AMtel:+15105550100 or <sip:+15105550100@sip.provid>er.com.
• If using a domain, ensure it’s resolvable and allowed by your provider.
1. Confirm outbound trunk credentials & endpoint
• Check `authUsername`/`authPassword` and address in your LiveKit outbound trunk match the provider’s SIP trunk credentials and domain.
1. Check region / regulatory restrictions
• Some regions block transfers across borders. If needed, set destination_country or use region-pinned trunks that match the destination.
1. Ensure secure trunking settings if required
• If provider requires TLS/SRTP, set transport: SIP_TRANSPORT_TLS and mediaEncryption: SIP_MEDIA_ENCRYPT_REQUIRE and enable SRTP on the provider side.
1. Inspect logs for provider error details
• Check LiveKit telephony call logs and your SIP provider logs for the exact SIP response and reason phrases (provider logs often show why REFER was rejected).
If you want, share:
• Your SIP provider (Twilio/Telnyx/other),
• The sanitized TransferSIPParticipant request (no secrets),
• Any provider-side log lines or SIP response details,
and I’ll help interpret them and suggest the exact config change.
Sources: SIP troubleshooting guide | LiveKit docs | Secure trunking | LiveKit docs | SIP APIs | LiveKit docs | SIP outbound trunk | LiveKit docsmost-dawn-67700
12/16/2025, 5:12 AMtall-airline-16756
12/16/2025, 5:12 AMaddress, credentials, and numbers).