SIP<>Airtel Outbound Calling

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=udpsip:+91xxx@34.100.135.76:5060;user=phone
├─────────────┼───────────────────────────────────────────────┼────────────────────────────────────────────┤
│ To │ sip:+91xxx@117.xxx.175:5076;transport=udpsip:+91xxx@117.xxx.175:5076;user=phone
└─────────────┴───────────────────────────────────────────────┴────────────────────────────────────────────┘
What I Tried:

  1. Added user=phone to custom headers (P-Asserted-Identity) - Works
  2. Tried adding ;user=phone to trunk address field:
    {“address”: “1XX.XX.XX.175:5076;user=phone”}
  3. Error: trunk address should be a hostname or IP, not SIP URI
  4. Tried with sip: prefix and template:
    {“address”: “sip:{number}@1XX.XX.XX5:5076;user=phone”}
  5. Error: trunk address should be a hostname or IP, not SIP URI

Call Flow (from PCAP):

  1. LiveKit → INVITE → Airtel
  2. Airtel → 100 Trying
  3. Airtel → 183 Session Progress
  4. 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?

I thought the way to achieve this was by appending it to the address on the outbound trunk, SIP outbound trunk | LiveKit Documentation but you said you already tried that.

I believe you are self-hosting your SIP server though? I’m less familiar with that

yes , we are self-hosting it.