All integration guides
Connect Cisco CUBE to TelecomsXchange
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
- CUCMRoute pattern to the CUBE SIP trunk
- then, +447700900123, Cisco CUBEDial-peer with translation profile
- then, 80039#447700900123, TelecomsXchangesip01, UDP 5060
- Seller's routeThe route you purchased
On this page
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 guideVOIP_LOGINandVOIP_PASSWORDstand for them. - A purchased route and its tech prefix from My Interconnections, for example
80039#. In this guideTECH_PREFIXstands 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, hereGigabitEthernet0/0/1. The CUCM node in the examples is10.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?#
- Set the global voice settings. The trusted list is CUBE's toll-fraud protection: it only accepts SIP from addresses listed here.
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 g711alawTelecomsXchange passes codecs through without transcoding, so list the codecs your route supports (as in the Purchased Route Confirmation email).
- Add the translation rule that turns the E.164 number into
TECH_PREFIX+ number. Each rule replaces a leading+or00with the tech prefix:
voice translation-rule 100
rule 1 /^\+/ /80039#/
rule 2 /^00/ /80039#/
!
voice translation-profile TCXC-OUT
translate called 100Check it before you use it. The output should show 80039#447700900123:
test voice translation-rule 100 +447700900123- 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:
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 vadIf 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:
dial-peer voice 100 voip
authentication username VOIP_LOGIN password 0 VOIP_PASSWORD realm 174.136.44.213On 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#.
- Add the inbound dial-peer for calls from CUCM, so CUBE applies the right settings on that leg:
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- 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 port5060. - Call Routing → Route/Hunt → Route Pattern: add\+!(or00!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 matchesdestination-pattern \+Ton 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.
- Allow
174.136.44.213on 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.213is already in the trusted list from step 1. - Match TelecomsXchange with a URI class on the Via header, and send those calls to CUCM:
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- 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
14165551234to 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?#
- Turn on SIP debugging:
debug ccsip messages(withterminal monitoron an SSH session). Adddebug voice translationto see the rewrite. - Place a call from a CUCM phone to
+447700900123. - In the debug, look for the INVITE to
80039#447700900123(or80039%23447700900123) and the reply.show call active voice briefshows the call legs and the dial-peers used;show dial-peer voice summaryshows whether dial-peer 100 is up. - 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.
Finished this guide?
This guide matches platform build 83b4ebc9. Markdown version.