Last year I was forced to transition all of our Telstra ISDN Voice circuits to Telstra SIP (IP based). In Australia the NBN (National Broadband Network) is continuing its roll out and because of this Telstra is decomissioning the aging ISDN network. Customers are being forced to move from it to newer voice technologies such as SIP. You can consume the “Telstra SIP Connect” service on either their MPLS network or NBN circuits. For those that don’t know the NBN is a mix of FTTN, FTTP, FTTC and Wireless technologies. For this scenario the existing WAN service is already Telstra MPLS.

The main issue I faced when converting around a dozen Cisco voice routers (29xx and 43xx series ISR’s) from ISDN to SIP was the original calling party enforcement – for want of a better term to describe it. Simply put under a SIP trunk when you place a call outbound, if the caller ID is not a number that is assigned to the trunk the call will fail with a standard voice announcement about how the call cannot be completed as dialed. Now don’t get me wrong there is a reason for this, anyone could spoof caller id connected to the Telstra SIP service for phone numbers that are not theirs. The difference here is that under ISDN the exchange would replace any caller id with the first number in the block assigned to the circuit. I know, this problem is a bit of a mouthful. So for those of you that have say Cisco Call Manager as the IP PBX, features such as extension mobility break with this problem.

A viable workaround for this issue was to create voice translation profiles on the voice routers. If a call comes in from CUCM to the gateway with a caller ID that does not exist on the trunk – replace it with a number that does. For simplicity sake I chose the first number in the first block, which translates back to our switchboard if someone return calls it. Below is the config for a Cisco voice router to implement this fix:

voice translation-rule 100
rule 1 /^892299[1-3]../ /895998600/
rule 2 /^8922984../ /895998600/
rule 3 /^8931207../ /895998600/
rule 4 /^892398[0-5]../ /895998600/
rule 5 /^8943390../ /895998600/
!
voice translation-profile SET_CALLING_NUMBER
translate calling 100
!
dial-peer voice 17 voip
description Incoming from CUCM
translation-profile incoming SET_CALLING_NUMBER

In this instance the telelphony service provider (Telstra) uses a 9 digit dial plan, so when calls leave Call Manager they are set as 9 digit. As above any call that hits the gateway by say a user with an extension mobility profile will be translated if the calling number matches the voice translation 100 rule. I am yet to find a solution with the Telstra SIP Connect service that allows you to place calls out any trunk and keep the originating caller ID. As I mentioned previously it is obviously a security requirement so i don’t think it’s possible. I hope this assists someone else who may have the same issue with a telephony service provider and SIP.