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
RecommendedRecommended. 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.
- 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 - 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 - 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 - 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 - 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.
show dial-peer voice summary
show sip-ua register status
debug ccsip messages
show call active voice briefTroubleshooting
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.
| Code | Meaning | Likely cause | Fix on Cisco CUCM |
|---|---|---|---|
| 401 | Unauthorized | We 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. |
| 403 | Forbidden | Authenticated, 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. |
| 404 | Not Found | The 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. |
| 408 | Request Timeout | No 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. |
| 480 | Temporarily Unavailable | The 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. |
| 486 | Busy Here | The 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. |
| 503 | Service Unavailable | Capacity 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.
Popular destinations
SIP Trunk United States+1
SIP Trunk United Kingdom+44
SIP Trunk Germany+49
SIP Trunk United Arab Emirates+971
SIP Trunk Philippines+63
SIP Trunk Australia+61
Stuck on a step?