cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1728
Views
0
Helpful
0
Comments
GaryB-UK
Level 1
Level 1

So about a year ago I had to implement a back to back ISDN gateway. By this I mean that I needed to interface with a PBX solution that could only do ISDN and not SIP to the PSTN.

 

I had done something similar in the past where there was a CUCM and a Nortel solution that needed a connection for cross platform dialing but this solution was slightly different.

 

After much time spent on the Internet and speaking with others everything said it WAS possible but nobody had actually done it and I could find little to no documentation about it.

 

So the current setup had a Mitel PBX connected directly to the PSTN ISDN lines. The idea was to place a Cisco gateway "in-line" with the ISDN lines. This would mean that the Mitel system could place calls normally and the Cisco gateway would then place them to the PSTN. The Cisco gateway would therefore need to simulate the PSTN clocking to the Mitel so that the Mitel was oblivious to the change. The Cisco gateway would then need to interface with the PSTN and send the call out.

BEFORE IMAGE - See attachments

AFTER IMAGE - See attachments

As you can see from the diagrams above the Cisco gateway was placed directly in-line with the ISDN connections. Also as we were migrating from Mitel to Cisco we implemented additional PSTN lines for the migration.

 

So the call flows:

 

This is all fairly standard stuff

 

PSTN -> MITEL – Straight through the gateway to MITEL

MITEL -> PSTN – Straight thought the gateway to PSTN

 

PSTN -> Cisco – Straight though the gateway to the Cisco platform

Cisco -> PSTN – Straight thought the gateway to PSTN

 

Cisco - > Mitel – Call is placed to the DDI of a user on the Mitel, the call will be sent to the Cisco gateway and will then be sent over the 4 ISDN lines to the Mitel

Mitel -> Cisco – Call is placed to the DDI of a user on the Cisco, the call will be sent to the Cisco gateway and will then be sent over the SIP connection to the CUCM cluster

 

Migration:

The reason that this was done was that the client did not want to make any changes to the Mitel platform. This is why DDIs were used, this also meant that users dialling habits would remain the same. The phone books of each system were updated with the DDIs of people on the other platform.

 

This gateway allowed for granular control over incoming numbers, it meant that queues on the Cisco platform could be configured and tested with test numbers during the build and test phases. When it came to the cut over, individual numbers and lines could be cut over based upon the business requirements. This allowed for a very easy and safe way of directing numbers to and from each platform and gave the Cisco gateway absolute control of the number manipulation.

 

Enough with the background into the IOS gateway config.

 

The following is not the full IOS configuration but is the majority that is needed to get the system up and working. It will only focus on the specifics for the ISDN setup:

This is for a UK PSTN setup you will need to alter the settings and dialpeers based on your country requirments.

 

Sets the Card type to E1 (UK)

 

card type e1 0 0

card type e1 0 1

card type e1 0 2

 

 

Sets the clocking for the cards and the E1 lines

 

network-clock-participate wic 0

network-clock-participate wic 1

network-clock-participate wic 2

network-clock-select 1 E1 0/0/0

network-clock-select 2 E1 0/0/1

network-clock-select 3 E1 0/0/2

network-clock-select 4 E1 0/0/3

network-clock-select 5 E1 0/2/0

network-clock-select 6 E1 0/2/1

 

Sets the switch type

 

isdn switch-type primary-net5

 

Creates a PSTN Group of ISDN lines

 

trunk group PSTN-TRUNK

hunt-scheme sequential

 

Creates a MITEL Group of ISDN lines

 

trunk group MITEL-TRUNK

hunt-scheme sequential

 

This is needed to disconnect the ISDN calls when the remote party disconnects

 

voice call disc-pi-off

 

E1 Controller Config

 

 

----------PSTN-----------

controller E1 0/0/0

pri-group timeslots 1-31

!

controller E1 0/0/1

pri-group timeslots 1-31

!

controller E1 0/0/2

pri-group timeslots 1-31

!

controller E1 0/0/3

pri-group timeslots 1-31

!

 

----------MITEL-----------

 

 

controller E1 0/1/0

clock source internal

pri-group timeslots 1-31

!

controller E1 0/1/1

clock source internal

pri-group timeslots 1-31

!

controller E1 0/1/2

clock source internal

pri-group timeslots 1-31

!

controller E1 0/1/3

clock source internal

pri-group timeslots 1-31

!

 

----------PSTN-----------

 

controller E1 0/2/0

pri-group timeslots 1-31

!

controller E1 0/2/1

pri-group timeslots 1-31

 

The following is the setup for 1 ISDN interface for the PSTN connection. You will need the same for each interface

This sets up the ISDN line for the PSTN connection and adds it to the PSTN trunk. This is for a UK E1 connection, alter accordingly

 

interface Serial0/0/0:15

no ip address

encapsulation hdlc

isdn switch-type primary-net5

isdn incoming-voice voice

trunk-group PSTN-TRUNK

no cdp enable

 

 

The following is the setup for 1 ISDN interface for the MITEL connection. You will need the same for each interface

Notice the “overlap-receiving”, this was needed to allow for all of the digits as the Mitel system seemed to like to use overlap sending. Also notice the “protocol-emulate network” to provide clocking to the MITEL to simulate a PSTN ISDN.

 

interface Serial0/1/0:15

no ip address

encapsulation hdlc

isdn switch-type primary-net5

isdn overlap-receiving T302 2000

isdn protocol-emulate network

isdn incoming-voice voice

trunk-group MITEL-TRUNK

no cdp enable

 

 

For the voice ports all are configured are:

 

voice-port 0/0/0:15

cptone GB

bearer-cap Speech

 

From an ISDN part that is about all that is needed

Now you just need a good shaking of dial-peers and I mean a load of them.

 

Below are a few of the dialpeers I had to create:

 

Standard incoming dialpeers

 

Assumed for Cisco

 

dial-peer voice 100 pots

description Range1- 1111..

incoming called-number 1111..

direct-inward-dial

 

Assumed for Mitel

 

dial-peer voice 101 pots

description Range2- 2222..

incoming called-number 2222..

direct-inward-dial

 

Generic catch all

 

dial-peer voice 102 pots

trunkgroup PSTN-TRUNK

preference 2

incoming called-number .

direct-inward-dial

 

 

Dialpeers to CUCM

 

dial-peer voice 103 voip

description Inbound DDI range to CUCM SUB1

translation-profile outgoing INBOUND

preference 1

max-conn 255

destination-pattern 1111..

session protocol sipv2

session target ipv4:XXX.XXX.XXX.XXX

session transport tcp

voice-class sip options-keepalive up-interval 12 down-interval 65 retry 2

dtmf-relay rtp-nte

codec g711alaw

no vad

 

 

 

Dialpeers for MITEL

 

 

dial-peer voice 104 pots

trunkgroup MITEL-TRUNK

description MITEL RANGE2-2222..

preference 1

destination-pattern 2222..

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

Outbound Dialpeers

 

CUCM dial peer for outbound calls

 

dial-peer voice 105 pots

trunkgroup PSTN-TRUNK

description POTS Dial Peer

preference 1

destination-pattern 9T

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

!

 

MITEL dialpeers for outbound calls

You have to take into account all numbers that are dialled by the PBX here. You don’t have a CUCM server to do any digit manipulation so you need to accept the digits from the PBX just like a PSTN provider

 

Generic Outbound dialpeer

 

dial-peer voice 106 pots

trunkgroup PSTN-TRUNK

description POTS Dial Peer

preference 1

destination-pattern 0T

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

UK Directory services dialpeer

 

dial-peer voice 107 pots

trunkgroup PSTN-TRUNK

description POTS Dial Peer

preference 1

destination-pattern 118...

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

UK Emergency dialpeer

 

dial-peer voice 108 pots

trunkgroup PSTN-TRUNK

description 999 EMERGENCY

preference 1

destination-pattern 999

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

!

 

EMEA Emergency dialpeer

 

dial-peer voice 109 pots

trunkgroup PSTN-TRUNK

description 112 EMERGENCY

preference 1

destination-pattern 112

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

UK Restrict CLI Dialpeer

 

dial-peer voice 110 pots

trunkgroup PSTN-TRUNK

description SHOW CLI

preference 1

destination-pattern 1470T

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

UK Allow CLI Dialpeer

 

dial-peer voice 111 pots

trunkgroup PSTN-TRUNK

description RESTRICT CLI

preference 1

destination-pattern 141T

progress_ind alert enable 8

progress_ind progress enable 8

progress_ind connect enable 8

progress_ind disconnect enable 8

direct-inward-dial

forward-digits all

 

Catchall dialpeer for Mitel

 

dial-peer voice 112 pots

trunkgroup FROM-MITEL

preference 2

incoming called-number .

direct-inward-dial

 

There are many other dialpeers needed but this is the basic that you will need but this will differ from setup to setup

 

Translation Rules

 

So in order to prevent Callers from each system placing a call to the PSTN for an internal number as they will be dialling the full DDI you need to catch that and then loop it.

 

Area code is assumed to be 333 333 with 6 digits for the number (as above these ranges are 1111.. and 2222..)

 

Voice translation-rule 1

rule 1 /^333333\(1111..\)/ /\1/

rule 2 /^333333\(2222..\)/ /\1/

 

 

voice translation-profile LOOPMYCALL

translate called 1

 

 

 

This dialpeer will match the internal Cisco range and then apply a voice translation profile using the above rules. This will alter the number to match the inbound dialpeer and then rout the call correctly. You should probably also set the codec here if you want DTMF to work.

 

dial-peer voice 113 pots

description Range1 -1111..

translation-profile incoming LOOPMYCALL

preference 1

incoming called-number 3333331111..

direct-inward-dial

 

 I hope this helps anyone looking to do something similar

Gary

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: