Provider Compatibility
Before you configure anything in OpenCX, ask your carrier or PBX team for these exact details:- Confirm they can provide a standard for the call flow you want to support.
- Confirm whether inbound and outbound calling are provisioned separately on their side. Many carriers require separate setup for each direction.
- Ask for the , , and they expect you to use for each direction.
- For inbound calls to OpenCX, confirm your carrier can send digest credentials. Self-serve OpenCX inbound trunks issue a generated username and password.
- For outbound calls from OpenCX, ask whether your carrier authenticates by (username/password) or by .
- Confirm which you are allowed to present on outbound calls.
- If they require , allowlist the OpenCX SIP IP ranges below.
- Confirm the carrier supports at least one of the transports and codecs listed below.
If your inbound carrier only supports source IP allowlisting and cannot send
SIP digest credentials, contact OpenCX before rollout. That setup is not
self-serve from the dashboard today.
OpenCX SIP IP Ranges
Find the current static SIP IP ranges in Settings → SIP. Add all listed ranges to your carrier allowlist when the carrier authenticates outbound calls from OpenCX by source IP.Supported Transports And Codecs
For carrier setup, use:- Transports: UDP, TCP, or TLS.
- Codecs: G.711 μ-law (PCMU), G.711 A-law (PCMA), or G.722.
Provider Guides
Some provider-owned guides that are useful when configuring a provider to route calls to an external SIP endpoint:- Twilio Elastic SIP Trunking origination settings
- Telnyx SIP URI Calling
- Plivo SIP Trunking with Vapi
- Sinch Elastic SIP Trunking SIP endpoints
- Wavix SIP Trunking setup guides
Inbound SIP Trunks
Route calls from your carrier to OpenCX agents. Inbound trunks are configured entirely on our side from Settings → SIP. What OpenCX provides:- A SIP endpoint in the region you choose: Global (auto-route), US, EU, United Kingdom, India, Japan, Australia, or Saudi Arabia.
- Generated digest credentials (username and password) for your carrier or to send calls to OpenCX.
- Routing by the dialed number or by the header.
- One or more verified BYOC phone numbers that match the DIDs your carrier sends in the . You can also contact us to manually add verified numbers.
- A trunk on the carrier or PBX side that points to the OpenCX SIP endpoint using the generated credentials.
Outbound SIP Trunks
Make outbound calls from OpenCX through your carrier. Outbound trunks are configured on our side from Settings → SIP. What OpenCX supports:- : UDP (default), TCP, or TLS.
- Authentication by (username/password) or by .
- The outbound SIP host and port.
- The caller ID number approved for outbound presentation.
- The outbound authentication method: digest username/password, or source IP allowlisting. For IP allowlisting, add the OpenCX SIP IP ranges (found in Settings → SIP) to the carrier-side rule.
SIP Transfer Destinations
Route call transfers through SIP instead of the public phone network. Transfer destinations are managed at the organization level and then assigned to agents.- Phone destinations transfer to an E.164 phone number.
- SIP destinations transfer to a SIP URI such as
sip:[email protected]. Optional (username/password) is supported for SIP endpoints. - Custom destinations end the call and are useful when workflows handle pre-transfer or post-transfer behavior.
Advanced: Dynamic Agent Routing
For advanced setups, use the SIP header to route inbound calls to a specific agent dynamically. Include the agent’s ID (shown on the agent settings page) in the header when sending calls to the OpenCX SIP endpoint. This is useful when:- Multiple agents share the same trunk
- Your or carrier decides which agent should answer based on logic or caller data
Supported SIP Headers
OpenCX forwards SIPX-* headers from inbound calls. These headers have first-class behavior:
X-OPENCX-AGENT-ID: route the call to a specific phone agent.X-OPENCX-CONTACT-ID: attach the call to an existing OpenCX contact in the same organization. If the contact is missing or belongs to another organization, OpenCX falls back to phone-number matching.X-OPENCX-CONTACT-CUSTOM-DATA: JSON object merged into the contact. Values must be strings, numbers, or booleans.X-OPENCX-SESSION-CUSTOM-DATA: JSON object merged into the call session. Values must be strings, numbers, or booleans.X-OPENCX-AGENT-LANGUAGE: override the agent language for this call. Use one ISO code or a comma-separated list supported by the phone agent language settings.X-OPENCX-INCLUDE-INSTRUCTION-IDS: comma-separated instruction IDs to include for this call.
X-* SIP headers are stored on the session with the leading X- prefix removed.
Related Documentation
Create Phone Agent
Set up an agent to receive SIP-routed calls.
Agent Configuration
Assign trunks and numbers under Telephony & Routing.
Outbound Calls
Launch calls from the dashboard, API, or workflows.