vSIP Configuration
Exotel Virtual SIP Trunking – TCP (Mumbai)
20 min
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 type port range protocol purpose signaling 5070 tcp sip signaling media 10000–40000 udp rtp streams sip domain and proxy details media server pop region media ips mumbai dc 182 76 143 61, 122 15 8 184 ka dc 14 194 10 247, 61 246 82 75 signaling server pop region proxy fqdn mumbai dc pstn in2 exotel com mumbai cloud pstn in4 exotel com 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 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 header mandatory description request uri yes destination sip uri (exophone mapped to customer sip ip) via yes routing path for sip responses uses tcp in this case record route optional ensures exotel remains in signaling path for subsequent requests from yes caller party number (cli) received by exotel (e g , end user) to yes exophone provisioned by exotel for this customer call id yes unique identifier for the call cseq yes command sequence number, must increment with each new transaction allow yes list of sip methods supported by exotel supported optional sip extensions like replaces, timer x exotel callsid yes unique id for the call session (tracking/debugging) x exotel legsid optional call leg identifier; unique to this direction of the call x exotel trunksid optional identifies which virtual sip trunk was used p asserted identity optional validated caller id presented to customer sip server p early media optional indicates support for early media before call is answered contact optional where exotel can be reached for further in dialog sip messages content type yes indicates media description follows (sdp) content length yes length of the sdp body max forwards yes prevents infinite loops by limiting hop count sdp (v= ) yes contains rtp setup ip, codecs (pcma/pcmu), rtp/dtmf, etc (unencrypted rtp) 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 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 header mandatory description request uri yes final destination number (callee) to be dialed via exotel trunk via yes describes how to return sip responses to customer (over tcp) from yes cli being used — must be a valid exophone registered with exotel to yes destination number (callee, called party number); not used for routing call id yes unique identifier for the call session cseq yes sip sequence number and method (e g , invite) contact optional where exotel can reach back for in dialog requests allow yes methods supported by customer supported optional sip extensions content type yes mime type of message body (sdp) content length yes byte length of sdp content max forwards yes used to control and limit sip hops sdp (v= ) yes media negotiation block, including codecs and ports rtp only (unencrypted) recap – cli & exophone roles direction from (cli) request uri (destination) notes exotel → you customer’s end user cli your sip uri (exophone) used in inbound flows to your system you → exotel your exophone (cli) final user number to dial must use registered cli in from, else call will be rejected 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 issue potential cause resolution no invite received ip not whitelisted contact exotel to confirm ip acl call drops in 30s nat binding lost enable symmetric rtp / force rport one way audio media ports blocked open udp 10000–40000 403 forbidden incorrect domain or auth use correct fromdomain and no auth creds 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
🤔
Have a question?
Our knowledgeable support team and an awesome community will get you an answer in a flash.
To ask a question or participate in discussions, you'll need to authenticate first.