vSIP Configuration
Exotel Virtual SIP Trunking to Flow Integration Guide
13 min
this guide outlines how to integrate exotel’s virtual sip trunking (vsip) with your voice application flow (e g , ivr or agent connect) using sip signaling it focuses on the use case of routing inbound sip calls from external sip systems into exotel flow applets 1\ use case external sip system to exotel flow this guide is meant for customers who host their own sip pbx or bot platform want to initiate sip calls into exotel to trigger flows (like connect or ivr) require sip over tls or tcp transport example scenarios scenario description sip bot to exotel flow external sip bot initiates call to exotel vn → exotel triggers ivr flow sip pbx to exotel flow sip endpoint dials into exotel flow for agent routing or ivr processing regional sip→flow (cross border pop) enterprise infra routes call to exotel pop (sg/mum/ka) for flow handling 2\ sip integration requirements what you need to share with exotel account sid exophone (vn) that should route to flow source ip or fqdn from where sip invite will originate transport type (tcp/tls) 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 what exotel will do provision sip trunk mapping on the vn route incoming invite on sip trunk to your assigned flow (via connect applet) 3\ sip configuration reference (customer side) here is an asterisk style example for tls \[general] externip = \<your public ip> localnet = 192 168 0 0/16 \[exotelvsip] type = friend context = outgoing fromdomain = \<accountsid> pstn exotel com host = pstn sgp1 exotel com port = 443 transport = tls disallow = all allow = ulaw allow = alaw nat = force rport insecure = port canreinvite = no sendrpid = yes trustrpid = yes relaxdtmf = yes encryption = yes ports to open type port protocol description sip 443 / 5070 tls/tcp sip signaling rtp media 10000 40000 udp media/audio ports 4\ sample sip invite to exotel (flow integration) sip invite sip +91xxxxxxxxxx\@pstn sgp1 exotel com sip/2 0 via sip/2 0/tls your sbc domain com 5061;branch=z9hg4bk4041f853 from "+91yyyyyyyyyy" \<sip +91yyyyyyyyyy\@exotelt pstn exotel com>;tag=as63e4d7f1 to \<sip +91xxxxxxxxxx\@pstn sgp1 exotel com> call id abcdef1234567890\@exotelt pstn exotel com cseq 102 invite contact sip +91yyyyyyyyyy\@your sbc domain com 5061;transport=tls allow invite, ack, cancel, options, bye, refer, subscribe, notify, info, publish, message supported replaces, timer x exotel accountsid exotelt content type application/sdp header reference – sip invite to exotel (flow integration) header mandatory example (redacted) description request uri yes sip +91xxxxxxxxxx\@pstn in2 exotel com target exophone (vn) to route the call into a flow or pstn leg x exotel accountsid yes exxxxxx identifies your exotel account required for flow integration (tenant name) via yes sip/2 0/tls your sbc domain com 5061 your sbc’s transport, used by exotel to route responses from yes "sales" \<sip +91yyyyyyyyyy\@customer com> cli of customer(callee) to yes \<sip +91xxxxxxxxxx\@pstn in2 exotel com> exophone contact yes \<sip +91yyyyyyyyyy\@your sbc domain com 5061> your contact uri for exotel to send 200 ok, bye, and other dialog messages call id yes abc123xyz\@your sbc unique identifier for sip session; echoed in exotel response cseq yes 102 invite sip sequence number max forwards yes 70 prevents sip loops by limiting hops supported optional replaces, timer advertises sip extensions your ua supports allow optional invite, ack, bye, cancel, options sip methods your sbc is willing to process content type yes application/sdp indicates the message contains sdp for media negotiation important notes only use x exotel accountsid for flow routing this is essential for exotel to associate the call with the correct flow do not add x exotel callsid, x exotel legsid, or x exotel trunksid these headers are auto injected by exotel in the inbound leg ensure your sip infrastructure handles g 711 pcma (preferred codec) sip over tls (port 443) srtp if tls is enabled 5\ edge pops and ips to whitelist region sip proxy fqdn media ips karnataka pstn in1 exotel com 14 194 10 247, 61 246 82 75 mumbai pstn in2 exotel com 182 76 143 61, 122 15 8 184 singapore pstn sgp1 exotel com 18 142 150 245, 122 248 223 73 ksa (upcoming) coming soon coming soon 6\ testing steps place a sip invite to the exophone you've been assigned confirm that the call lands in the expected flow (e g , connect applet rings agent) use sngrep, sip set debug on, or wireshark to validate sip path ensure rtp is established from your system to exotel's media ip 7\ best practices ensure exophone is mapped to a live flow before testing always share your sip signaling ip/fqdn and transport in advance prefer pcma (g 711 a law) for better regional pstn compatibility use tls transport when possible to ensure encryption and srtp confirm dns resolves fqdn correctly if not using static ip 8\ support contact your exotel account manager with account sid flow/exophone id sip signaling ip or fqdn preferred transport (tcp or tls) technical help support exotel com share call samples and sip logs for troubleshooting
🤔
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.