Skip to content
SIPTrunkHub

Setup guide · Via CUBE

Connect a SIP trunk to Cisco CUCM

CUCM should not talk to a carrier directly. CUBE (an IOS-XE router) sits at the edge: CUCM sends calls to CUBE over a SIP trunk, and CUBE sends them to SIPTrunkHub. This guide covers the CUBE side and the CUCM pieces that point at it.

Before you start

What you need

  • CUBE on IOS-XE 17.x with a CUBE license
  • A public interface on CUBE (we whitelist its IP)
  • CUCM 12.5+ admin access
  • Your SIPTrunkHub account details: SIP server, auth method, tech prefix if any

IP auth or register auth?

IP authentication

Recommended

Recommended. We whitelist the CUBE public IP and CUBE trusts ours. No registration.

Register (digest) authentication

Supported with sip-ua credentials and a registrar line, for sites without a static IP.

Step by step

Configure Cisco CUCM

sip.example-host.net and 203.0.113.10 are documentation placeholders. Replace them, and the username, password and tech prefix, with the values from your account.

  1. 01

    Enable CUBE and trust our IP

    Allow SIP-to-SIP calls and add our signalling IP to the trusted list. CUBE drops INVITEs from untrusted sources.

    IOS-XE
    voice service voip
     ip address trusted list
      ipv4 203.0.113.10 255.255.255.255
     allow-connections sip to sip
     sip
      early-offer forced
      midcall-signaling passthru
    !
    voice class codec 1
     codec preference 1 g711ulaw
     codec preference 2 g711alaw
     codec preference 3 g729r8
  2. 02

    Build the outbound dial-peer

    Send calls from CUCM to SIPTrunkHub. Bind signalling and media to the public interface. A translation rule strips 00.

    IOS-XE
    voice translation-rule 100
     rule 1 /^00\(.*\)/ /\1/
    !
    voice translation-profile STRIP-00
     translate called 100
    !
    dial-peer voice 200 voip
     description OUT to SIPTrunkHub
     destination-pattern 00T
     translation-profile outgoing STRIP-00
     session protocol sipv2
     session target dns:sip.example-host.net
     voice-class codec 1
     voice-class sip bind control source-interface GigabitEthernet0/0/0
     voice-class sip bind media source-interface GigabitEthernet0/0/0
     dtmf-relay rtp-nte
     no vad
  3. 03

    Build the inbound dial-peer

    Match DIDs from us and send them to CUCM.

    IOS-XE
    dial-peer voice 100 voip
     description IN from SIPTrunkHub
     incoming called-number 44207946....
     session protocol sipv2
     voice-class codec 1
     dtmf-relay rtp-nte
     no vad
    !
    dial-peer voice 300 voip
     description TO CUCM
     destination-pattern 44207946....
     session target ipv4:10.0.0.10
     session protocol sipv2
     voice-class codec 1
     dtmf-relay rtp-nte
  4. 04

    Optional: register authentication

    Only if you cannot use IP auth.

    IOS-XE
    sip-ua
     credentials username YOUR_SIP_USERNAME password 0 YOUR_SIP_PASSWORD realm sip.example-host.net
     authentication username YOUR_SIP_USERNAME password 0 YOUR_SIP_PASSWORD
     registrar dns:sip.example-host.net expires 3600
  5. 05

    Point CUCM at CUBE

    In CUCM: Device › Trunk › Add New › SIP Trunk with the destination set to the CUBE inside IP, port 5060. Then Call Routing › Route/Hunt › Route Pattern, for example 9.00! pointing to that trunk, discarding the 9 as PreDot.

Media

Codec order

  • voice class codec 1 sets the offer order: G.711 u-law, a-law, then G.729.
  • Early offer forced is required. CUCM sends delayed offer by default and many carriers reject it.
  • For fax, configure fax protocol t38 on the dial-peers if your gateways support it.

NAT notes

  • Put CUBE on a public IP. NAT in front of CUBE needs ip nat with SIP awareness and is not recommended.
  • Bind control and media to the same public interface so SDP carries the right IP.
  • Allow UDP 5060 and RTP 8000–48198 (CUBE defaults) from our IPs on any upstream ACL.

Verify

Test the trunk

Check dial-peer status and options keepalive, then debug a test call.

IOS-XE
show dial-peer voice summary
show sip-ua register status
debug ccsip messages
show call active voice brief

Troubleshooting

Common SIP errors

What each response means and what to check first on Cisco CUCM. If you still need help, send the Call-ID and timestamp to the NOC.

Common SIP error codes and fixes for Cisco CUCM
CodeMeaningLikely causeFix on Cisco CUCM
401UnauthorizedWe challenged the INVITE or REGISTER and the credentials were wrong or missing. With IP auth it usually means the call arrived from an IP we have not whitelisted.Check the username, password and auth realm. For IP auth, confirm the public IP your PBX actually sends from matches the one on your account.
403ForbiddenAuthenticated, but not allowed: wrong or missing tech prefix, zero prepaid balance, destination blocked on your account, or an invalid caller ID.Calls leaving from the wrong interface. Confirm voice-class sip bind is on the outbound dial-peer.
404Not FoundThe dialled number is not in a format we can route: missing country code, an extra 00 or +, or a local trunk prefix left in.The translation rule did not match. Use test voice translation-rule 100 0044207946000 to check.
408Request TimeoutNo response came back. Usually a firewall, wrong port or transport, a DNS failure, or SIP ALG on the router eating packets.Early offer missing or DNS failing. Check ip name-server and early-offer forced.
480Temporarily UnavailableThe far end could not be reached: handset off, out of coverage, or the route for that prefix is temporarily down.Retry later or route to another trunk. If it hits one prefix repeatedly, send examples to the NOC.
486Busy HereThe called party is busy, or you reached the concurrent-channel limit on your account.Treat as a normal busy. If every call returns 486, check your active channel count against your limit.
503Service UnavailableCapacity limit hit (calls per second or channels), or every route for that destination failed.Pace your dialer to the agreed CPS. Configure a second trunk for failover. Ask the NOC if it persists.

Seeing one-way audio instead of an error? Read One-Way Audio on VoIP Calls.

FAQ

Cisco CUCM questions

Can CUCM connect directly without CUBE?

Technically yes, but you lose topology hiding, codec control and security. We support CUBE or another SBC in front of CUCM.

Do I need a CUBE license?

Yes. CUBE sessions need licensing on IOS-XE. Check with your Cisco partner.

How do I add failover?

Create a second outbound dial-peer with the same pattern, a lower preference, and a different session target.

Related

Other setup guides

All 12 guides

Popular destinations

Stuck on a step?

The NOC answers 24/7. Send your platform, a SIP trace and the Call-ID of a failed attempt.

Ready to connect Cisco CUCM?

Prepaid from $200. No setup fee, no contract. Get rates and your account details from sales.