Voice AI Ecosystem
Connect Exotel SIP trunking with Vocallabs (Superflow B2B API)(Alpha)
10 min
this guide links exotel sip trunking and your exotel did to vocallabs vocallabs publishes a b2b rest api on https //api superflow\ run/b2b/ — including createsipcall with did, phone number, websocket url, and webhook url — not the same dashboard byo sip trunk pattern as vapi or elevenlabs use this article for api + telephony alignment ; confirm inbound sip uris and static egress ips with vocallabs if you need classic trunk destination uris / whitelisted ips github repo (reference) https //github com/exotel/agentstream voiceaiecosystem applicability api driven (token + createsipcall / websockets / webhooks) sip trunk routing is optional and only applies if vocallabs provides a stable sip target docs vocallabs api documentation (hosted api reference and samples) engineering detail vocallabs/integrations/exotel vsip/vocallabs exotel voice ai connector md quickstart vocallabs/integrations/exotel vsip/quickstart md vocallabs api (from official docs) topic detail base https //api superflow\ run/b2b/ auth post …/createauthtoken/ — json clientid, clientsecret → bearer token for subsequent calls (docs) sip call post …/vocallabs/createsipcall — phone number, did, websocket url, webhook url, sample rate outbound style calls post …/vocallabs/initiatevocallabscall — agentid, prospect id webhook dial post …/vocallabs/initiatecallwebhook — from (did), number (destination) websocket url get …/vocallabs/getwebsocketurl — query agent id, prospect id wallet / usage get …/getgreenbalance, transaction history — see vocallabs docs for billing context how this maps to exotel concept exotel side vocallabs side did exophone on sip trunk (snippets) use the same e 164 as did (or from in webhook flows) where the api expects your caller / rented number pstn termination exotel edge ip\ port + digest (post …/credentials) not fully specified in the public reference as a single “sip gateway hostname” like other providers — coordinate with vocallabs for sip leg details if createsipcall is meant to drive traffic to exotel inbound pstn → ai trunk destination uris + flow connect sip \<trunk sid> requires a sip origination target from vocallabs if their team only documents rest + websocket , implement that path first; add destination uris when they provide a stable sip uri part a — vocallabs (auth + sip call) 1\ create token curl s x post 'https //api superflow\ run/b2b/createauthtoken/' \\ h 'content type application/json' \\ d '{"clientid" "client id","clientsecret" "client secret"}' use the returned token as authorization bearer \<token> 2\ create sip call (example shape) per https //docs vocallabs ai/vocallabs curl s x post 'https //api superflow\ run/b2b/vocallabs/createsipcall' \\ h 'content type application/json' \\ h 'authorization bearer auth token' \\ d '{ "phone number" "+91xxxxxxxxxx", "did" "+91yyyyyyyyyy", "websocket url" "wss\ //your bridge example com/media", "webhook url" "https //your app example com/vocallabs/webhook", "sample rate" "16000" }' replace did with your exotel number in e 164 when that number is the identity vocallabs should use for the session websocket url / webhook url must be your endpoints as required by vocallabs — see their latest field definitions 3\ other flows initiatevocallabscall — agent + prospect (docs) initiatecallwebhook — from / number for click to call style flows getwebsocketurl — retrieve media url for agent id + prospect id part b — exotel (sip trunk + did) when you use exotel as the indian pstn carrier for the same did you pass to vocallabs create trunk → map did → post …/credentials (if your design uses sip digest toward exotel) templates exotel trunk api snippets md optional post …/whitelisted ips only if vocallabs publishes fixed static egress ips (mask 32 per ip) inbound (only if vocallabs gives you a sip uri to send calls to) post …/destination uris toward that uri → flow → connect → sip \<trunk sid> ( docid 2oddtedmmf64scwjhgvkt troubleshooting symptom what to check 401 on superflow valid createauthtoken + bearer header call fails / wrong cli did / from match e 164 exotel number you own no media websocket url , getwebsocketurl , firewall to vocallabs / your bridge sip vs api mismatch vocallabs may be api first — confirm with their team before assuming full sip trunk parity references resource url vocallabs api docs https //docs vocallabs ai/vocallabs exotel sip api https //docs exotel com/dynamic sip trunking/detailed sip trunking api reference exotel network / firewall https //docs exotel com/dynamic sip trunking/network and firewall configuration
Have a question?
Our super-smart AI, 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.
