Help Center
All integration guides

Connect Cisco CUBE to TelecomsXchange

Guide 14 of 286-minute readUpdated 23 October 2026

In short: On CUBE, add an outbound dial-peer to dns:sip01.telecomsxchange.com:5060 over UDP with a translation profile that replaces + or 00 with the tech prefix, and authorise CUBE's public IP or add authentication username VOIP_LOGIN on the dial-peer. Trust 174.136.44.213, match it with voice class uri and incoming uri via, and route those calls to CUCM.

CUCM through CUBE to a purchased route
  1. CUCMRoute pattern to the CUBE SIP trunk
  2. then, +447700900123, Cisco CUBEDial-peer with translation profile
  3. then, 80039#447700900123, TelecomsXchangesip01, UDP 5060
  4. Seller's routeThe route you purchased
On this page
  1. Before you start
  2. How do I send calls to TelecomsXchange?
  3. How do I receive calls from TelecomsXchange?
  4. How do I receive calls on numbers I bought?
  5. How do I test it?
  6. What if something goes wrong?
  7. References
  8. Common questions

This guide connects Cisco Unified Communications Manager (CUCM) to TelecomsXchange through a Cisco Unified Border Element (CUBE) on IOS XE: CUCM sends calls to CUBE, CUBE rewrites the number and sends it to a purchased route, and calls from TelecomsXchange come back through CUBE to CUCM. For the full list of TelecomsXchange values, see Connect a SIP platform.

Warning

TelecomsXchange does not accept SIP REGISTER. Don't add a registrar or credentials line for it under sip-ua. CUBE is recognised by its source IP or by digest authentication on the INVITE.

Before you start#

  • A SIP account with CUBE's public IP, for example 203.0.113.10, or a VoIP login and password from Edit Account → Add SIP Digest Auth. In this guide VOIP_LOGIN and VOIP_PASSWORD stand for them.
  • A purchased route and its tech prefix from My Interconnections, for example 80039#. In this guide TECH_PREFIX stands for that value.
  • A CUBE-licensed router on IOS XE (ISR 1000, ISR 4000, Catalyst 8000 or CSR 1000v/Catalyst 8000V) with a public interface, here GigabitEthernet0/0/0, and an internal interface towards CUCM, here GigabitEthernet0/0/1. The CUCM node in the examples is 10.1.1.10.
  • To sell: a route with IP Address:Port set to CUBE, for example 203.0.113.10:5060, and the values in Interconnect Info.

How do I send calls to TelecomsXchange?#

  1. Set the global voice settings. The trusted list is CUBE's toll-fraud protection: it only accepts SIP from addresses listed here.
Text
voice service voip
 ip address trusted list
  ipv4 174.136.44.213 255.255.255.255
  ipv4 10.1.1.10 255.255.255.255
 allow-connections sip to sip
 sip
  early-offer forced
!
voice class codec 1
 codec preference 1 g729r8
 codec preference 2 g711ulaw
 codec preference 3 g711alaw

TelecomsXchange passes codecs through without transcoding, so list the codecs your route supports (as in the Purchased Route Confirmation email).

  1. Add the translation rule that turns the E.164 number into TECH_PREFIX + number. Each rule replaces a leading + or 00 with the tech prefix:
Text
voice translation-rule 100
 rule 1 /^\+/ /80039#/
 rule 2 /^00/ /80039#/
!
voice translation-profile TCXC-OUT
 translate called 100

Check it before you use it. The output should show 80039#447700900123:

Text
test voice translation-rule 100 +447700900123
  1. Add the outbound dial-peer to TelecomsXchange. It matches E.164 numbers from CUCM (\+T), applies the translation after it's selected, and sends the INVITE to sip01 over UDP:
Text
dial-peer voice 100 voip
 description Outbound to TelecomsXchange
 destination-pattern \+T
 session protocol sipv2
 session target dns:sip01.telecomsxchange.com:5060
 session transport udp
 translation-profile outgoing TCXC-OUT
 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

If CUCM sends international numbers with 00 instead of +, change the destination pattern to 00T. Don't add voice-class sip options-keepalive to this dial-peer: TelecomsXchange answers OPTIONS only within a call.

Digest variant. If CUBE sends from an IP that isn't on the account, add the VoIP login and password to the dial-peer. CUBE answers TelecomsXchange's 401 or 407 challenge with them; the challenge realm is 174.136.44.213:

Text
dial-peer voice 100 voip
 authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213

On older releases without per-dial-peer authentication, put the same authentication username ... password 0 ... realm 174.136.44.213 line under sip-ua instead.

Tip

To pick routes per destination, add one dial-peer and translation rule per route, for example destination-pattern \+44T with rule 1 /^\+/ /80039#/, and a catch-all dial-peer with a routing group prefix such as 444101#.

  1. Add the inbound dial-peer for calls from CUCM, so CUBE applies the right settings on that leg:
Text
voice class uri CUCM sip
 host ipv4:10.1.1.10
!
dial-peer voice 110 voip
 description Inbound from CUCM
 session protocol sipv2
 incoming uri via CUCM
 voice-class codec 1
 voice-class sip bind control source-interface GigabitEthernet0/0/1
 voice-class sip bind media source-interface GigabitEthernet0/0/1
 dtmf-relay rtp-nte
 no vad
  1. In CUCM Administration, point calls at CUBE: - Device → Trunk → Add New, type SIP Trunk, with Destination Address 10.1.1.20 (CUBE's inside address) and port 5060. - Call Routing → Route/Hunt → Route Pattern: add \+! (or 00! if your dial plan isn't globalised) pointing at the CUBE trunk or a route list containing it. - Send the called number as E.164 with +, so it matches destination-pattern \+T on CUBE.

How do I receive calls from TelecomsXchange?#

Calls on routes you sell, and on numbers you bought, come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 format without +, such as 14165551234.

  1. Allow 174.136.44.213 on any firewall or ACL in front of CUBE for UDP 5060 and the RTP range (CUBE uses UDP 8000 to 48198 by default). 174.136.44.213 is already in the trusted list from step 1.
  2. Match TelecomsXchange with a URI class on the Via header, and send those calls to CUCM:
Text
voice class uri TCXC sip
 host ipv4:174.136.44.213
!
dial-peer voice 200 voip
 description Inbound from TelecomsXchange
 session protocol sipv2
 incoming uri via TCXC
 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
!
dial-peer voice 210 voip
 description Outbound to CUCM
 destination-pattern [1-9]T
 session protocol sipv2
 session target ipv4:10.1.1.10:5060
 session transport udp
 voice-class codec 1
 voice-class sip bind control source-interface GigabitEthernet0/0/1
 voice-class sip bind media source-interface GigabitEthernet0/0/1
 dtmf-relay rtp-nte
 no vad
  1. On the CUCM SIP trunk to CUBE, set the Calling Search Space for inbound calls to one that reaches your directory numbers, and use Significant Digits or a called-party transformation to map 14165551234 to the extension. If your route has an Outgoing Prefix or strips digits (Edit Route → Outgoing Number Translation Parameters), match the number in that format.

Warning

Keep 174.136.44.213 and your CUCM nodes as the only entries in ip address trusted list. Calls from any other address are rejected before they reach a dial-peer, which stops toll fraud on CUBE's public interface.

How do I receive calls on numbers I bought?#

Set the number's SIP Endpoint (Primary) in DID Settings to CUBE, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213, dial-peer 200 matches it, and dial-peer 210 sends it to CUCM.

How do I test it?#

  1. Turn on SIP debugging: debug ccsip messages (with terminal monitor on an SSH session). Add debug voice translation to see the rewrite.
  2. Place a call from a CUCM phone to +447700900123.
  3. In the debug, look for the INVITE to 80039#447700900123 (or 80039%23447700900123) and the reply. show call active voice brief shows the call legs and the dial-peers used; show dial-peer voice summary shows whether dial-peer 100 is up.
  4. In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs → CDR (Voice). Turn debugging off with undebug all.

What if something goes wrong?#

You see What to do
401 or 407 repeated, then the call fails CUBE isn't answering the challenge. Add authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213 to the dial-peer and check the login on Edit Account.
403 Forbidden CUBE's public IP isn't authorised and no credentials were sent. Compare the source IP in the debug with the account's IP Address and Additional Allowed IPs; check the account isn't blocked or out of balance.
404 Not Found Missing or wrong tech prefix. Run test voice translation-rule 100 +447700900123, and check translation-profile outgoing TCXC-OUT is on dial-peer 100.
408 Request Timeout No reply from sip01. Check outbound UDP 5060 and that the router resolves the name (ip name-server and ip domain lookup).
503 Service Unavailable The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group.
One-way or no audio Media isn't bound to the public interface, or RTP is blocked. Check voice-class sip bind media on both dial-peers and the RTP range on the firewall.
Inbound calls rejected with 403 174.136.44.213 isn't in ip address trusted list.
Inbound call matches the wrong dial-peer Check show voice class uri TCXC and that dial-peer 200 has incoming uri via TCXC; the default dial-peer 0 doesn't apply your codec and DTMF settings.

References#

Common questions

Can CUBE register to TelecomsXchange?

No. TelecomsXchange is peering only and does not accept REGISTER, so don't configure credentials or a registrar under sip-ua for it. CUBE is recognised by its source IP, or by answering the digest challenge with authentication username on the dial-peer.

Does CUBE send the # as %23?

It may. TelecomsXchange accepts the tech prefix either way: it decodes %23 back to # before matching the prefix.

Do I need SIP OPTIONS keepalive on the dial-peer?

No. TelecomsXchange answers OPTIONS only within a call, so leave voice-class sip options-keepalive off the TelecomsXchange dial-peer or CUBE will mark it busied out.

Does TelecomsXchange support TLS or SRTP to CUBE?

No. TelecomsXchange uses SIP over UDP with RTP. Keep TLS and SRTP on the CUCM side of CUBE if you need them, and use UDP and RTP towards TelecomsXchange.

Can CUBE register to TelecomsXchange?
No. TelecomsXchange is peering only and does not accept REGISTER, so don't configure credentials or a registrar under sip-ua for it. CUBE is recognised by its source IP, or by answering the digest challenge with authentication username on the dial-peer.
Does CUBE send the # as %23?
It may. TelecomsXchange accepts the tech prefix either way: it decodes %23 back to # before matching the prefix.
Do I need SIP OPTIONS keepalive on the dial-peer?
No. TelecomsXchange answers OPTIONS only within a call, so leave voice-class sip options-keepalive off the TelecomsXchange dial-peer or CUBE will mark it busied out.
Does TelecomsXchange support TLS or SRTP to CUBE?
No. TelecomsXchange uses SIP over UDP with RTP. Keep TLS and SRTP on the CUCM side of CUBE if you need them, and use UDP and RTP towards TelecomsXchange.