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:

  1. No-Code Setup (Dasha Playground)

  2. 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-ID of 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:

PropertyTypeDescription
accountstringAccount username (see user parameter).
passwordstringAccount password (see password parameter).
ipAclstring[]List of IP addresses or IP masks (e. g. 10.0.1.0/24) you can work with.
prioritynumberAn 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.

Found a mistake? Let us know.

Enroll in beta

Request invite to our private Beta program for developers to join the waitlist. No spam, we promise.