Bring Your Own Carrier (BYOC)
Bring Your Own Carrier (BYOC)
Dasha platform enables seamless integration with existing VoIP infrastructure through SIP (Session Initiation Protocol) connectivity. This allows both platform users and their end customers to maintain their current telephony setups while leveraging Dasha's conversational AI capabilities.
Overview
BYOC support enables organizations to:
- Keep existing carrier relationships and phone numbers
- Maintain current PBX systems and call routing
- Preserve quality of service agreements
- Control costs through preferred carriers
- Enable end-users to keep their telephony setup
Supported Platforms
Dasha works with major VoIP providers and platforms including:
Commercial Platforms
- Twilio
- Avaya
- Five9
- Genesys
- RingCentral
- 8x8
- Any SIP-compliant carrier or platform
Open Source PBX Systems
- Asterisk
- FreeSWITCH
- OpenSIPS
- Kamailio
Integration Methods
Integration Options
You can set up VoIP integrations through multiple approaches:
-
No-Code Setup (Dasha Playground)
-
Programmatic Integration
Inbound Calls
For incoming calls, Dasha provides a unique SIP URI that can be configured in your carrier's system. See our inbound calls tutorial for detailed setup instructions. The URI format is:
sip:<unique-id>@sip.us.dasha.ai
Outbound Calls
For outgoing calls, Dasha connects through your SIP trunk using provided credentials. See our outbound calls tutorial for setup details.
Security Features
Dasha's BYOC implementation includes:
- TLS encryption for all connections
- IP-based access control lists
- SIP authentication
- Secure real-time protocol (SRTP) support
SIP Headers and Call Routing
Dasha provides comprehensive access to SIP headers, including Diversion headers, which are crucial for advanced call routing and tracking call history. The Diversion header is particularly important as it:
- Preserves the original called number when calls are forwarded
- Enables tracking of call forwarding chain
- Helps implement accurate billing and call analytics
- Supports complex call routing scenarios based on original destination
Accessing SIP Headers
You can access SIP headers in your DashaScript using the getConnectOptions() method, which returns an object containing:
- SIP domain of the current connection
- From header information (user part and display name)
- Diversion headers (user parts and domains for multiple forwarding hops)
- Custom X-headers (automatically converted from X-Header-Name format to sip_x_header_name)
- SIP
Call-IDof the call (sip_callId), for matching the conversation with your carrier's call records
User-to-User (UUI) header
Dasha sends and receives the SIP User-to-User header (RFC 7433) on both inbound and outbound calls, so data can follow a call through a transfer chain.
Sending. Set it per call in the #connect / #connectSafe options, or per transfer in the #forward options:
#connectSafe("+15551234567", { sip_uui: "ticket-42" }); // → User-to-User: 7469636B65742D3432;encoding=hex #connectSafe("sip:queue@pbx.example.com", { "sip_User-to-User": "7469636B65742D3432;encoding=hex;purpose=isdn-uui" }); // raw value; line breaks and | are removed, data over 1024 characters is cut #forward("sip:agent@pbx.example.com", { sip_uui: "ticket-42" }); // embedded in the Refer-To URI
The wire form is uppercase hex of the UTF-8 bytes with ;encoding=hex (the RFC default). sip_uui_encoding: "ascii" sends the text itself, sip_uui_pd: "04" prepends a protocol discriminator for ISDN peers. A payload longer than 256 bytes is cut at 256 with a warning in the conversation log; keep it at 128 bytes or less for every carrier to accept it. On a transfer the header rides inside the Refer-To URI (<sip:agent@pbx?User-to-User=…>), which the transfer target copies onto its INVITE. A raw value near the 1024-character limit makes the INVITE larger than many UDP paths carry without fragmentation; keep the header short.
Receiving. The first User-to-User header of the INVITE (inbound) or of the 18x/200 response (outbound) is in #getConnectOptions() as sip_uui (decoded), sip_uui_raw, sip_uui_encoding, sip_uui_purpose and sip_uui_content; the header of the far end's BYE is uui in #getHangupInfo(). The SDK ready event carries it as info.sip.uui, and a custom SIP domain webhook receives it as userToUser. Protocol discriminator bytes are not stripped; use #transcode on sip_uui_raw to decode a value yourself.
Twilio. Twilio reads and emits User-to-User only on Programmable Voice SIP Domains (<name>.sip.<region>.twilio.com); BYOC trunks and Elastic SIP Trunking drop it. Dial the SIP domain from Dasha over SIP (not the PSTN number). Twilio does not forward the header by itself: your voice webhook receives it as SipHeader_User-to-User, and your TwiML re-stamps it on the next leg, e.g. <Dial><Sip>sip:queue@yourcompany.sip.talkdesk.com?User-to-User=7469636B65742D3432%3Bencoding%3Dhex</Sip></Dial> (percent-encode ; = &; the URI stays under 255 characters and the header part under 1024).
TalkDesk. TalkDesk extracts User-to-User on BYOC numbers (not PSTN), expects the RFC 7433 hex form and caps the data at 256 bytes; it exposes the value to Studio flows as a variable. Send the hex payload without a protocol discriminator unless your flow strips it.
Common use cases for Diversion headers include:
- Call center routing based on original dialed number
- Multi-tenant setups with number preservation
- Tracking call forwarding chains
- Implementing fallback routing logic
Reference configuration:
| Property | Type | Description |
|---|---|---|
| account | string | Account username (see user parameter). |
| password | string | Account password (see password parameter). |
| ipAcl | string[] | List of IP addresses or IP masks (e. g. 10.0.1.0/24) you can work with. |
| priority | number | An integer from 0 to 7. The job with a higher priority will be processed earlier. |
Multi-tenant Support
Organizations can:
- Configure multiple carrier connections
- Support different end-user carrier preferences
- Maintain separate routing rules per tenant
- Set priorities for different connections
Technical Requirements
- SIP-compliant carrier or PBX system
- Network access to Dasha's SIP endpoints
- Proper firewall configuration for SIP traffic
Through BYOC support, Dasha enables organizations to add conversational AI capabilities while preserving their telecommunications infrastructure investments and relationships at every level of deployment.