Overview
StreamKit Cloud SIP trunking Setup
19 min
streamkit cloud setup (for voice ai) streamkit enables you to connect your contact center to voice ai bots the setup is similar to pstn, but uses mode flow when mapping phone numbers setup flow create trunk → 2 map phone number (mode flow) → 3 map acl to trunk streamkit create trunk 1\ create trunk creates a new sip trunk this is the first step for all sip trunking use cases a sip trunk acts as a virtual connection between your communication system (pbx/contact center) and exotel's telephony network http request post https //\<your api key> \<your api token>@\<subdomain>/v2/accounts/\<your sid>/trunks request headers header value content type application/json request parameters the following parameters are sent as json in the body of the request parameter name mandatory/optional value trunk name mandatory string; unique identifier for the trunk must be alphanumeric with underscores only, maximum 16 characters example outbound trunk, my pbx trunk nso code mandatory string; network service operator code use any anyfor standard configuration domain name mandatory string; sip domain for the trunk format \<your sid> pstn exotel com example ameyo5m pstn exotel com example request curl x post "https //\<your api key> \<your api token>@\<subdomain>/v2/accounts/\<your sid>/trunks" \\ h "content type application/json" \\ d '{ "trunk name" "outbound trunk", "nso code" "any any", "domain name" "\<your sid> pstn exotel com" }' http response on success, the http response status code will be 200 ok the trunk sidis the unique identifier of the trunk save this value as it will be required for all subsequent api calls example response { "request id" "10a67da360d446378d5c2b66407b7f18", "method" "post", "http code" 200, "response" { "code" 200, "error data" null, "status" "success", "data" { "trunk name" "outbound trunk", "date created" "2026 01 23t09 24 59z", "date updated" "2026 01 23t09 24 59z", "trunk sid" "trmum1f708622631150902801a1n", "status" "active", "domain name" "ameyo5m pstn exotel com", "auth type" "ip whitelist", "registration enabled" "disabled", "edge preference" "auto", "nso code" "any any", "secure trunking" "disabled", "destination uris" "/v2/accounts/ameyo5m/trunks/trmum1f708622631150902801a1n/destination uris", "whitelisted ips" "/v2/accounts/ameyo5m/trunks/trmum1f708622631150902801a1n/whitelisted ips", "credentials" "/v2/accounts/ameyo5m/trunks/trmum1f708622631150902801a1n/credentials", "phone numbers" "/v2/accounts/ameyo5m/trunks/trmum1f708622631150902801a1n/phone numbers" } } } response parameters parameter name type & value request id string; unique identifier for this api request method string; http method used (post) http code integer; http status code (200 for success) trunk sid string; important unique identifier for the trunk save this for subsequent api calls example trmum1f708622631150902801a1n trunk name string; name of the trunk as provided in request domain name string; sip domain for the trunk status string; current trunk status active trunk is ready for use, inactive trunk is disabled auth type string; authentication type currently only ip whitelistis supported registration enabled string; sip registration status enabledor disabled edge preference string; edge server preference default auto nso code string; network service operator code secure trunking string; tls status enabledor disabled destination uris string; api path to manage destination uris for this trunk whitelisted ips string; api path to manage acls (whitelisted ips) for this trunk credentials string; api path to credentials for this trunk phone numbers string; api path to manage phone numbers for this trunk date created string; iso 8601 timestamp when trunk was created date updated string; iso 8601 timestamp when trunk was last updated streamkit map phone number (flow mode) same endpoint as pstn, but with mode flowto route calls to voice ai bot example request curl x post "https //\<your api key> \<your api token>@\<subdomain>/v2/accounts/\<your sid>/trunks/\<trunk sid>/phone numbers" \\ h "content type application/json" \\ d '{ "phone number" "+919876543210", "mode" "flow" }' example response { "request id" "9351dabddc21476e8351d662f1ce31e1", "method" "post", "http code" 200, "response" { "code" 200, "error data" null, "status" "success", "data" { "id" "41523", "phone number" "+919876543210", "trunk sid" "trmum1f708622631150902801a1n", "date created" "2026 01 23t13 28 11z", "date updated" "2026 01 23t13 28 11z", "mode" "flow" } } } streamkit map acl to trunk registers your server's public ip address for authentication this is required for outbound/termination calls allowing your system to send calls through the trunk acl (access control list) ensures only authorized ip addresses can use your trunk for outbound calling http request post https //\<your api key> \<your api token>@\<subdomain>/v2/accounts/\<your sid>/trunks/\<trunk sid>/whitelisted ips request headers header value content type application/json request parameters parameter name mandatory/optional value ip mandatory string; your server's public ip address must be a valid ipv4 address example 44 248 146 11, 203 0 113 50 mask optional integer; subnet mask in cidr notation default 32(single ip) use 24for /24 subnet, 16for /16 subnet example 32, 24 example request curl x post "https //\<your api key> \<your api token>@\<subdomain>/v2/accounts/\<your sid>/trunks/\<trunk sid>/whitelisted ips" \\ h "content type application/json" \\ d '{ "ip" "44 248 146 11", "mask" 32 }' http response on success, the http response status code will be 200 ok example response { "request id" "3daaed4cd05d443f854e07e60dd4c008", "method" "post", "http code" 200, "response" { "code" 200, "error data" null, "status" "success", "data" { "id" "1153", "mask" 32, "trunk sid" "trmum1f708622631150902801a1n", "ip" "44 248 146 11", "friendly name" null, "date created" "2026 01 23t11 37 36z", "date updated" "2026 01 23t11 37 36z" } } } response parameters parameter name type & value id string; unique identifier for this acl entry example 1153 ip string; the whitelisted ip address mask integer; subnet mask in cidr notation trunk sid string; the trunk this acl is associated with friendly name string or null; optional friendly name for the ip date created string; iso 8601 timestamp when acl was created date updated string; iso 8601 timestamp when acl was last updated build flow and map voip exophone follow for all steps docid\ zqqihn5jddqdvyw0ear88 b create flow in appbazaar with voicebot applet and passthru applet https //my in exotel com/apps c procure voip exophone or contact support d map did to flow through exophone https //my in exotel com/numbers https //github com/exotel/exotel vsip trunk configuration api/tree/main https //www postman com/grey star 272776/exotel sip trunking apis/collection/14803574 a0c66128 0e2c 4e6d a06a 03173b9d43cd
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.
