SIVO
SIP trunks

Integrations

SIP trunks

Connect SIVO with your phone carrier. Certified templates for Zadarma, Twilio, Bandwidth and a custom template for any SIP carrier.

Updated:
siptrunksintegrationscarriers

A SIP trunk is the connection between SIVO and your phone carrier. SIVO is not a carrier — you contract your provider and SIVO talks SIP to them.

Certified carriers

CarrierCoverageStatus
ZadarmaEU, LATAM, USAProduction tested
TwilioGlobalProduction tested
BandwidthUSA (with E911), CanadaProduction tested
CustomAny SIP carrierGeneric template

Step-by-step configuration

Zadarma

  1. Settings → SIP trunks → + New → Zadarma.
  2. Fill in:
    • Name: e.g. zadarma-prod.
    • SIP user: provided by Zadarma (format 1XXXXX).
    • SIP password: same.
    • Allowed CIDRs: 185.45.152.0/24 (full range, not just individual IPs).
  3. Save. Status turns REGED within ~30s if credentials are correct.

Twilio Elastic SIP Trunking

  1. In Twilio Console → Elastic SIP Trunking → Trunks → + Create.
  2. Create the trunk with a name, note the Termination URI (<trunk>.pstn.twilio.com).
  3. In SIVO: Settings → SIP trunks → + New → Twilio.
  4. Fill in:
    • Termination URI: the one you copied.
    • Auth: IP (recommended) or credentials.
    • Allowed CIDRs: Twilio’s public IPs (see their docs by region).
  5. In Twilio, add the IP Access Control List with SIVO’s public IP (we give it to you after creating the trunk).

Bandwidth

  1. Settings → SIP trunks → + New → Bandwidth.
  2. Fill in the data provided by Bandwidth during your onboarding.
  3. For US calls with E911 compliance, configure E911 location per DID at Settings → DIDs → your number → E911.

Custom

For any non-certified carrier:

  1. Settings → SIP trunks → + New → Custom.
  2. You need:
    • Registrar host (where SIVO sends REGISTER).
    • User + password.
    • Transport: UDP, TCP or TLS.
    • Codecs: preference order (PCMU, PCMA, Opus, G.722).
    • Allowed CIDRs for the carrier’s source IP range.
  3. Save and verify status.

Trunk states

StateMeaning
REGEDRegistered correctly. Ready to receive/send calls.
TRYINGAttempting registration. Wait 30 seconds.
FAILAuthentication or network failure.
NOREGNo registration attempt (trunk created but disabled).
EXPIREDRegistration expired without renewal. Usually network.

Allowed CIDRs — why it matters

SIVO validates inbound SIP calls come from the IPs declared in Allowed CIDRs. This:

  • Blocks SIP bots that scan the internet (hundreds a day) before touching the DB.
  • Prevents fraud if your credentials leak.
  • Reduces noise in logs and metrics.

Trunk failover

Define a primary trunk and one or more failover trunks for resilience:

  1. Settings → SIP trunks → your primary trunk → Failover policy.
  2. Select alternative trunks in priority order.
  3. If the primary doesn’t respond in 5 seconds (no 18x, no 200), SIVO retries via the next.

Useful for:

  • Geographic resilience (EU primary, US backup).
  • Combining carriers (one cheap for local, one premium for international).
  • Gradual migrations (carrier swap without big-bang).

Outbound routing

When an agent makes an outbound call, SIVO picks the trunk based on:

  1. Origin DID (caller ID) — if tied to a specific trunk.
  2. Destination prefix — you can define rules like “everything starting with +34 goes via Zadarma”.
  3. Tenant default trunk — fallback.

Rules are configured at Settings → Outbound routing.

Outbound caller ID

For the called party to see one of your numbers (not the trunk’s):

  1. Settings → DIDs → your number → Outbound → tick “Allow as outbound caller ID”.
  2. Settings → Users → your agent → Authorized DIDs → add the DID.
  3. The agent sees a selector in their softphone to pick which caller ID per call.

Verification

After configuring:

  1. Call from your mobile to the assigned DID → should enter the IVR.
  2. From the softphone, dial a PSTN number → should go out.
  3. In Calls → History, both calls should appear with status=answered and trunk=<your-trunk>.
  4. If something fails → see Troubleshooting.