This article provides enterprise customers with technical steps to integrate Exotel’s Virtual SIP Trunking (vSIP) in Alpha with your PBX, SIP server, or SBC over TCP (Mumbai PoP). It outlines configuration practices, header formats, best practices, and validation techniques.
1. Product Overview
Exotel’s Virtual SIP Trunking (Alpha) allows secure SIP-based PSTN call origination and termination between your SIP infrastructure and Exotel’s platform using IP authentication. This Alpha release is intended for controlled pilots and is not SLA-backed for production workloads.
2. Architecture
Call Type: PSTN <-> SIP Gateway Interconnect
Transport: SIP over TCP (Port 5070)
Media: RTP over UDP (Ports 10000–40000)
Authentication: IP Whitelisting (Registration-based auth not supported)
Edge Location: Mumbai PoP (India)
Note – vSIP Throttling
Exotel enforces a default vSIP rate-limit of 200 calls per minute (CPM) per trunk to safeguard carrier capacity and call quality.
If your traffic profile requires a higher burst rate, raise a request via your CSM or Support ticket. The capacity-planning team will review historical traffic, carrier limits, and QoS requirements and can increase the throttling threshold accordingly.
3. Required Configuration
IP Whitelisting
Your static public IP must be whitelisted by Exotel.
Registration (SIP REGISTER) is not supported.
Ports to Open
SIP Domain and Proxy Details
Media Server POP
Signaling Server POP
Use this proxy for configuring Exotel as a peer/trunk on your SBC or PBX.
4. Sample Configuration – Asterisk PBX
[general]
externip = <your_public_ip>
localnet = 192.168.0.0/16
[exotelvsip]
type = friend
context = incoming
fromdomain = <accountsid>.pstn.exotel.com
host = pstn.in2.exotel.com
port = 5070
transport = tcp
disallow = all
allow = alaw
allow = ulaw
nat = force_rport
insecure = port
canreinvite = no
sendrpid = yes
trustrpid = yes
relaxdtmf = yes
transport=tcp
5: SIP Message Format
A. INVITE from Exotel Trunk (Exotel → Customer)
This is triggered when Exotel routes an inbound call to the customer SIP gateway over TCP.
Sample SIP INVITE
Sip CopyEdit
INVITE sip:+91XXXXXXXXXX@<customer-ip>:5061;transport=tcp SIP/2.0
Record-Route: sip:<exotel-ip>:443;transport=tls;lr
Via: SIP/2.0/TCP <exotel-ip>:443;branch=z9hG4bK2414...
From: "+91AAAAAAAAAA" <sip:+91AAAAAAAAAA@exotelt.pstn.exotel.com>;tag=as2aefddf2
To: <sip:+91XXXXXXXXXX@<customer-ip>>
Call-ID: <UUID>@pstn.mum1.exotel.com
CSeq: 102 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces
X-Exotel-LegSid: <leg-id>
X-Exotel-CallSid: <call-id>
X-Exotel-TrunkSid: <trunk-id>
P-Asserted-Identity: <sip:+91AAAAAAAAAA@exotelt.pstn.exotel.com>
P-Early-Media: supported
Contact: <sip:+91AAAAAAAAAA@<public-ip>:port;transport=tcp>
Content-Type: application/sdp
Content-Length: 1168
Max-Forwards: 67
v=0
o=root 1683048786 1683048786 IN IP4 <exotel-media-ip>
c=IN IP4 <exotel-media-ip>
t=0 0
m=audio 37456 RTP/AVP 8 0 96
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
a=sendrecv
a=rtcp:37457
a=ptime:20
Header Reference Table – INVITE from Exotel
B. INVITE to Exotel Trunk (Customer → Exotel)
Customer initiates an outbound call over TCP, using a registered Exophone as the CLI and targeting any mobile/landline via Exotel.
Sample SIP INVITE
Sip CopyEdit
INVITE sip:+91YYYYYYYYYY@<exotel-ip>:5070 SIP/2.0
Via: SIP/2.0/TCP <customer-ip>:5061;branch=z9hG4bKbK4041f853
Max-Forwards: 70
From: "+91XXXXXXXXXX" <sip:+91XXXXXXXXXX@exotelt.pstn.exotel.com>;tag=as63e4d7f1
To: <sip:+91YYYYYYYYYY@<exotel-ip>>
Contact: <sip:+91XXXXXXXXXX@<customer-ip>:5061;transport=tcp>
Call-ID: <UUID>@exotelt.pstn.exotel.com
CSeq: 102 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 371
v=0
o=root 1002281923 1002281923 IN IP4 <customer-media-ip>
c=IN IP4 <customer-media-ip>
t=0 0
m=audio 18232 RTP/AVP 8 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
Header Reference Table – INVITE to Exotel
Recap – CLI & Exophone Roles
6. Best Practices and Pre-checks
Before Configuration
Confirm you have a static public IP with no CG-NAT or port masking.
Make sure your firewall allows TCP 5070 and UDP 10000–40000 bidirectionally.
Validate that your PBX/SBC supports SIP over TCP and G.711 codecs (PCMA/PCMU).
During Configuration
Prefer PCMA as the first codec in media negotiations; PCMU as fallback.
Disable registration and use static peer trunking.
Use nat=force_rport for NAT traversal if behind a firewall.
Monitor and log Call-ID, X-Exotel-* headers for debugging.
After Configuration
Run test calls and inspect SIP INVITEs and RTP.
Monitor audio quality, latency, and early media (ringback).
Use tcpdump or sngrep to validate SIP dialogues and media ports.
Quick sanity checks
Transport match – your Via: …;transport=tcp must align with port 5070.
Caller-ID hygiene – the From: number in your outbound INVITE must be an authorised CLI/Exophone.
Log Exotel headers – X-Exotel-CallSid, LegSid, TrunkSid are read-only but invaluable for troubleshooting.
7. How to Test Your Setup
Inbound Test (Exotel → Your SIP Server)
Trigger a call to your Exotel VN mapped to the SIP trunk.
Check if your server receives an INVITE from pstn.in2.exotel.com.
Confirm RTP is flowing from 182.76.143.61 or 122.15.8.184.
Outbound Test (Your Server → Exotel)
Send a SIP INVITE to pstn.in2.exotel.com:5070 with the To URI set to a valid destination (e.g., mobile number).
Ensure correct formatting of headers and the contact field.
Look for 100/180/200 OK responses and RTP flow.
8. Troubleshooting Tips
9. Support and Next Steps
This guide covers Exotel vSIP over TCP via the Mumbai PoP under the Alpha release. Production deployment readiness (with TLS, SRTP, failover, dashboards) will be announced during the GA phase.
For support:
Contact your Exotel account manager.
Or raise a ticket via https://support.exotel.com with:
Account SID
Call time and number
SIP trace logs (.pcap or .txt)
Version: Alpha-TCP-Mumbai | Last updated: June 2025 Exotel reserves the right to modify Alpha features and configurations without notice.