I am using LiveKit SIP to make outbound calls via Airtel SIP trunk in India, but I am getting a 487 Request Terminated error. After debugging with Airtel, they confirmed the issue is related to missing user=phone parameter in SIP URIs.
Current Setup:
- LiveKit SIP Server: 34.xxx.76
- Airtel SIP Server: 117.xxx.5:5076
- Transport: UDP
- CLI Version: 2.12.9
- SIP Image: livekit/sip:latest (pulled Jan 15, 2026)
The Issue:
Airtel requires user=phone parameter in the following SIP headers:
┌─────────────┬───────────────────────────────────────────────┬────────────────────────────────────────────┐
│ Header │ What LiveKit Sends │ What Airtel Requires │
├─────────────┼───────────────────────────────────────────────┼────────────────────────────────────────────┤
│ Request-URI │ sip:+91xxx@117.xxx.175:5076;transport=udp │ sip:+91xxx@117.96.31.175:5076;user=phone │
├─────────────┼───────────────────────────────────────────────┼────────────────────────────────────────────┤
│ From │ sip:+91xxx@34.xxx.76:5060;transport=udp │ sip:+91xxx@34.100.135.76:5060;user=phone │
├─────────────┼───────────────────────────────────────────────┼────────────────────────────────────────────┤
│ To │ sip:+91xxx@117.xxx.175:5076;transport=udp │ sip:+91xxx@117.xxx.175:5076;user=phone │
└─────────────┴───────────────────────────────────────────────┴────────────────────────────────────────────┘
What I Tried:
- Added user=phone to custom headers (P-Asserted-Identity) - Works
- Tried adding ;user=phone to trunk address field:
{“address”: “1XX.XX.XX.175:5076;user=phone”} - Error: trunk address should be a hostname or IP, not SIP URI
- Tried with sip: prefix and template:
{“address”: “sip:{number}@1XX.XX.XX5:5076;user=phone”} - Error: trunk address should be a hostname or IP, not SIP URI
Call Flow (from PCAP):
- LiveKit → INVITE → Airtel
- Airtel → 100 Trying
- Airtel → 183 Session Progress
- Airtel → 487 Request Terminated
The call reaches Airtel and starts processing, but gets terminated due to missing user=phone in URIs.
My Question:
Is there a way to add user=phone parameter to the Request-URI, From, and To headers in outbound SIP calls?
Or is this a feature that needs to be added to LiveKit SIP?