Connect a SIP trunk

    Last updated July 2026

    Direct SIP lets you keep your own carrier or telephony provider and route calls to a Symphia voice agent. You point an outbound SIP trunk at Symphia's ingress, lock it down with an address allowlist and digest credentials, then assign the number to an agent. This guide covers the connection details and the steps for common providers.

    1. How Direct SIP works

    With a Symphia-provisioned number, Symphia owns the number and the carrier relationship. With Direct SIP you keep your own number and provider, and simply forward the audio to Symphia:

    1. A caller dials your number on your carrier.
    2. Your SIP trunk sends the call to Symphia's SIP URI over TLS.
    3. Symphia verifies the source address and digest credentials, then bridges the call to the voice agent you assigned to that number.

    Nothing about your existing number, carrier contract, or dial plan has to change — you only add an outbound route to Symphia.

    2. Before you start

    You'll need:

    • A phone number and a SIP trunk with a provider that supports outbound origination (Twilio, Telnyx, Vonage, Bandwidth, Plivo, or any RFC-compliant SIP trunk).
    • The public IP addresses your provider sends SIP traffic from (their "signaling" or "egress" ranges).
    • Admin access to your provider's console to add an origination/routing destination.

    Create the number in Symphia under Voice → your agent → Deployment → Add number → Direct SIP. The dialog generates your SIP URI and stores the allowlist and credentials described below.

    3. Point your trunk at Symphia

    Symphia's SIP ingress is reachable at a per-number URI. Configure your trunk to send calls to:

    sip:{number}@sip.voice.symphia.ai;transport=tls

    Replace {number} with your number in E.164 format (for example +14155550123). The exact URI for your number is shown — and copyable — in the New phone number dialog.

    • Transport: TLS is required. Symphia does not accept unencrypted SIP over UDP/TCP.
    • Port: the standard SIPS port 5061 (implied by transport=tls).
    • Codecs: offer PCMU (G.711 µ-law) or OPUS. Symphia negotiates the best available.
    • DTMF: RFC 2833 / telephone-event.

    4. Restrict inbound traffic (allowed addresses)

    Add the IP addresses or CIDR ranges your provider originates SIP from to the Allowed addresses list. Symphia rejects SIP traffic from any source outside this allowlist, so calls can only arrive from your trunk.

    Enter one address or CIDR block per entry, for example:

    203.0.113.10
    198.51.100.0/24

    The dialog includes Presets for common providers (Twilio, Telnyx, Vonage) that drop in their published ranges. Providers occasionally change their egress ranges — check your provider's current list and keep the allowlist in sync.

    5. Authenticate

    Set a Username and Password under Authentication. Symphia uses these as SIP digest credentials: your trunk must present them when it originates a call. Combined with the address allowlist, this gives you two independent controls on who can reach your agent.

    Use a strong, unique password. Credentials are stored encrypted and are never returned by the API.

    6. Provider guides

    Twilio (Elastic SIP Trunking). Create a trunk, add an Origination URI pointing at your Symphia SIP URI with priority/weight, and attach your number to the trunk. Add Twilio's signaling IP ranges to your Symphia allowlist and set credentials on the trunk's authentication.

    Telnyx. Create a FQDN or credential SIP connection, set the outbound destination to your Symphia SIP URI over TLS, and assign your number to the connection. Add Telnyx's egress ranges to the allowlist.

    Vonage / others. In your provider's SIP trunk or programmable-voice settings, add Symphia's SIP URI as the origination/routing target, force TLS, and add the provider's signaling IPs to the allowlist. Any RFC 3261-compliant trunk that supports TLS origination and digest auth will work.

    In every case the three things to configure are identical: the Symphia SIP URI (over TLS), your provider's egress IPs on the allowlist, and the digest credentials.

    7. Assign the number to a voice agent

    Back in Symphia, open the agent's Deployment tab and assign the number to the agent. Publish the agent — drafts don't answer calls. Inbound calls that arrive on the trunk now reach the published agent's brain, exactly like a Symphia-provisioned number.

    8. Test and troubleshoot

    Place a test call to your number. If it doesn't connect:

    • 403 / call rejected: the source IP isn't on the allowlist, or the digest credentials don't match. Confirm your provider's current egress ranges and re-check the username/password.
    • No audio / one-way audio: usually a codec or NAT issue — ensure PCMU or OPUS is offered and media is allowed to Symphia.
    • TLS handshake failure: confirm the trunk uses transport=tls on port 5061 and trusts a standard public CA.
    • Rings but no agent: make sure the number is assigned to an agent and the agent is published.

    Every call shows up in the agent's Conversations tab with its transcript and recording, which is the fastest way to confirm the route is live. Need a hand? Email support@symphia.ai.