microscopic-dress-75199
09/24/2025, 7:30 PMtall-airline-16756
09/24/2025, 7:30 PMtall-airline-16756
09/24/2025, 7:30 PMProxy-Authorization header) with every INVITE request.
• Take a look at the LiveKit logs for any extra clues, like missing headers or incorrect credentials.
• Verify that your dispatch rules are set up correctly, even though this particular error happens before those rules come into play.
If you’re still running into trouble, it might be helpful to capture and review the SIP INVITE messages to see if the Proxy-Authorization header is there and correct. I’m here to help if you need any further guidance!
Sources: .github/ISSUE_TEMPLATE/bug_report.yaml | Accepting inbound calls | LiveKit Docs | pkg/sip/inbound.go | SIP troubleshooting guide | LiveKit Docs | .github/ISSUE_TEMPLATE/bug_report.yamlmicroscopic-dress-75199
09/24/2025, 7:31 PMtall-airline-16756
09/24/2025, 7:31 PMmicroscopic-dress-75199
09/24/2025, 7:31 PMProxy-Authorization header) with every INVITE request.
• Take a look at the LiveKit logs for any extra clues, like missing headers or incorrect credentials.
• Verify that your dispatch rules are set up correctly, even though this particular error happens before those rules come into play.
If you’re still running into trouble, it might be helpful to capture and review the SIP INVITE messages to see if the Proxy-Authorization header is there and correct. I’m here to help if you need any further guidance!tall-airline-16756
09/24/2025, 7:32 PMmicroscopic-dress-75199
09/24/2025, 7:32 PMtall-airline-16756
09/24/2025, 7:33 PM{
"trunk": {
"name": "My inbound trunk",
"numbers": [
"+15105550100"
],
"auth_username": "<sip_trunk_username>",
"auth_password": "<sip_trunk_password>"
}
}
Key Fields to keep in mind:
• `auth_username`: This is the username you'll use to authenticate inbound SIP invites.
• `auth_password`: This is the password for authenticating inbound SIP invites.
• `numbers`: Here, you list the phone numbers associated with your trunk. The trunk will only accept calls made to these numbers, so be sure to include all relevant ones.
You can easily use this JSON with the LiveKit CLI, SDKs, or API to create your inbound trunk. For example, save this JSON in a file named inbound-trunk.json and then run:
lk sip inbound create inbound-trunk.json
Just a friendly reminder: please double-check that the username and password in this JSON match the credentials you've set up with your SIP provider. If you have any questions or need further clarification, feel free to ask—I'm here to help!
Sources: livekit/livekit_sip.pb.go | SIP APIs | LiveKit Docs | Inbound calls with Twilio Voice | LiveKit Docsmicroscopic-dress-75199
09/24/2025, 7:33 PMtall-airline-16756
09/24/2025, 7:34 PMheaders field. This handy field lets you add custom SIP X-* headers that will be included in the 200 OK responses sent back to your SIP provider.
Here’s a simple example configuration to get you started:
{
"name": "My Inbound Trunk",
"numbers": [
"+1234567890"
],
"auth_username": "username",
"auth_password": "password",
"headers": {
"X-Custom-Header": "value",
"X-Another-Header": "another_value"
}
}
Some additional header-related features you might find useful:
• `headers_to_attributes`: This maps SIP X-* headers received in the INVITE request to participant attributes, making it easier to manage.
• `attributes_to_headers`: This maps LiveKit attributes back to SIP X-* headers when sending follow-up requests like BYE or REFER.
• `include_headers`: This lets you specify how SIP headers should be automatically mapped to attributes, with options like SIP_NO_HEADERS, SIP_X_HEADERS, and SIP_ALL_HEADERS.
If you have any questions or want me to walk you through any part of this setup, just let me know—I’m here to help!
Sources: SIP APIs | LiveKit Docs | livekit/livekit_sip.pb.go | livekit-api/src/services/sip.rs