Voice Gateways FAQ

From DocWiki

Jump to: navigation, search

Back to Unified Communications FAQ



Training resources

Go to Voice Gateways FAQ Content Table

What is the difference between an FXS and an FXO??

The basic and most important difference is that FXSs (Foreign Exchange Station) are used for endpoints, like your old phone using a landline, it will provide you with ringtone and will allow you to dial. The FXO (Foreign Exchange Office) is where you plug the actual landline you would get from your telco, to handle those calls and re-route them. For some old integrations between different systems, you can actually use FXSs and FXOs to call across the systems.

FXS and FXO Interfaces

An FXS interface connects the router or access server to end-user equipment such as telephones, fax machines, or modems. The FXS interface supplies ring, voltage, and dial tone to the station and includes an RJ-11 connector for basic telephone equipment, keysets, and PBXs.
An FXO interface is used for trunk, or tie line, connections to a PSTN CO or to a PBX that does not support E&M signaling (when local telecommunications authority permits). This interface is of value for off-premise station applications. A standard RJ-11 modular telephone cable connects the FXO voice interface card to the PSTN or PBX through a telephone wall outlet.
FXO and FXS interfaces indicate on-hook or off-hook status and the seizure of telephone lines by one of two access signaling methods: loop start or ground start. The type of access signaling is determined by the type of service from the CO; standard home telephone lines use loop start, but business telephones can order ground start lines instead.
Loop-start is the more common of the access signaling techniques. When a handset is picked up (the telephone goes off-hook), this action closes the circuit that draws current from the telephone company CO and indicates a change in status, which signals the CO to provide dial tone. An incoming call is signaled from the CO to the handset by sending a signal in a standard on/off pattern, which causes the telephone to ring.
Loop-start has two disadvantages, however, that usually are not a problem on residential telephones but that become significant with the higher call volume experienced on business telephones. Loop-start signaling has no means of preventing two sides from seizing the same line simultaneously, a condition known as glare. Also, loop start signaling does not provide switch-side disconnect supervision for FXO calls. The telephony switch (the connection in the PSTN, another PBX, or key system) expects the router's FXO interface, which looks like a telephone to the switch, to hang up the calls it receives through its FXO port. However, this function is not built into the router for received calls; it only operates for calls originating from the FXO port.
Another access signaling method used by FXO and FXS interfaces to indicate on-hook or off-hook status to the CO is ground start signaling. It works by using ground and current detectors that allow the network to indicate off-hook or seizure of an incoming call independent of the ringing signal and allow for positive recognition of connects and disconnects. For this reason, ground start signaling is typically used on trunk lines between PBXs and in businesses where call volume on loop start lines can result in glare. See the "Disconnect Supervision Commands" section and "FXO Supervisory Disconnect Tone Commands" section for voice port commands that configure additional recognition of disconnect signaling.
In most cases, the default voice port command values are sufficient to configure FXO and FXS voice ports.

You can find plenty of info on this topic by googling "fxs vs fxo"

Go to Voice Gateways FAQ Content Table

What is a DTMF??

Dual-tone multi-frequency signaling

The simple answer is, the signals you send when you press the digits 0-9, * and # on the phone, how are they sent, completely depends on the kind of phone you're using, for old analog phones, they actually use frequencies to transmit those over the copper pairs. In VoIP telephony, we no longer rely on actual frequencies to do that, depending on the protocol the phone is using, you will send a digital packet which will contain what digits you're typing.

In VoIP we have two main method for passing them:

  • OOO, Out-Of-Band, which means there is a dedicated channel over which they are sent
  • In-Band, which means they are sent along with the RTP stream and need to be taken out of it to be processed and recognized.

If you configure a VoIP system and have trouble with an AA (CUC, CUE, UCCX, UCCE, etc) within premises, or when you call the bank, for example, and it seems as it's ignoring (or not recognizing) your input, the problem most likely relies in the DTMF signaling not being passed correctly.

Go to Voice Gateways FAQ Content Table

What DTMF method should I configure??

It depends on the protocol you're using.

For H.323 gateways there are two methods you can use:

  • h245-alphanumeric
  • h245-signal

Both of them are out-of-band, the main difference between them, is that h245-signal also contains the actual duration of the keypress for systems that depend on that to perform a certain function.

For SIP, you can use:

  • sip-notify, this is a Cisco proprietary OOO method, created to inter-work with all of the SCCP devices which only support OOO DTMFs
  • sip-kplm, also an OOO method, defined in RFC 4730 which uses SUBSCRIBE messages to register the DTMF, and NOTIFY messages to transport them. KPLM stands for Key Press Markup Language. Good for SIP interoperability between different products.
  • sip-info, another OOO method, this one uses SUBSCRIBE messages to register the digits, but uses INFO messages to transport them. Always enabled in SIP dial-peers
  • rtp-nte, NTE stands for Named Telephone Event, this is an in-band method, defined by RCF 2833 (and many times referred by that name), they are sent along with the RTP and distinguished by the RTP payload type, commonly used. It's a reliable method even if low-bandwidth codecs are used for the RTP
  • cisco-rtp, the other in-band method, this one is Cisco Proprietary and uses the payload type 121 to distinguish the DTMFs from the RTP media, CUCM did not support it, and it has been discontinued.

The way to configure any of the above, is under the dial-peer, use the command:

dtmf-relay <option1> <option2> ... <option6>

They will be used in that order of precedence

Plenty of information in the topic can be found on cisco.com:

Go to Voice Gateways FAQ Content Table

What is a PVDM??

A PVDM is a Packet Voice Media Module, this is a Cisco proprietary term that we use for chips on which we have DSPs (Digital Signal Processors). You're actually a lot closer to DSPs, these are found in plenty of common devices, they are used to transform audio data stored in a chip, into an analog wave you hear from a speaker. Have you ever seen any kids toy in which you press something and a sound comes out of it??? It has a DSP. Cisco IP Phones also have them, they take your voice from the microphone, and transform the analog wave into a digital interpretation after using the Nyquist theorem which we send in the RTP packets, the other end, does the opposite procedure, it takes those 0s and 1s in which your voice is sent over the network, and then the DSP turn them into an analog signal which can be played over the speaker.
There's plenty of information on DSPs on the web if you want to dig further into them and know exactly how they work. I just wanted to give a brief explanation so you had an idea, I'll cover some other functionalities they have in another question.

Go to Voice Gateways FAQ Content Table

When do I need PVDMs??

You need them for several reasons:

  • TDM termination
    If you want to use a PRI, FXS or FXO, you need a PVDM channel per DS0 or FXS / FXO you want to use to turn the analog signal into a digital form
  • Transcoding, which is very similar in a sense to using them for TDM termination if you think about it, changing from codec A to codec B, for example G711uLaw to G.729A.
  • Conference Bridge, the CUCM SW conference bridge only understands G.711, but the DSPs on a PVDM understand a lot more codecs. A HW CFB can be used when you want to user other codecs beyond G.711 in the same conference. The DSP will take care of changing all codecs to G.711, mix the different streams, and send each conferencee the mix, minus his own voice.
  • MTP, when you require an MTP for other codecs other than G.711, and you use them for supplementary services, or transrating.

In modern scenarios using SIP trunks, you might use them for CFB or XCODING if required, but a SIP trunk does not require them for TDM termination as you already receive the calls in a digital format.

Go to Voice Gateways FAQ Content Table

Why are my call failing??

Well, there is any number of reasons why calls might fail, I'll try to list all the ones I can think of.

The debugs you usually want to look at are:

  • debug isdn q931
  • debug voip ccapi inout

ccpapi inout will contain a disconnect reason code like this:

XXXXXX: May  X XX:XX:XX.XXX: //1234/XXXXXXXXXXXX/CCAPI/cc_api_call_disconnected:
   Call Entry(Responsed=TRUE, Cause Value=47, Retry Count=0)

In the above snip, 1234 would be the process ID for that leg of the call, you can then look for the rest of the messages, there should also be another call ID for the other leg of the call in the debugs.. But what we're interested in, is in Cause Value=47, what does that mean??

Well, you can find all the codes here:
Using Call Flows to Resolve Call Processing Problems

47 stands for:
Resource unavailable, unspecified. Whenever you see Cisco Unified Communications Manager initiate a disconnect with cause code 0xAF, 99% of the time the problem is related to a media setup failure. Check for codec capabilities mismatches, especially your regions configuration.

If you get a 47 there, usually check for codecs, make sure XCODERs are available, etc.

Another common cause would be 1:
Unallocated (unassigned) number. This cause indicates that the destination requested by the calling user cannot be reached because the number is unassigned. This number is not in the routing table, or it has no path across the ISDN network.

This one has a lot more options, because it basically means it cannot find a proper routing path:

  • Incorrect digit manipulation, either in the H.323 config, or in CUCM. Wrong number of digits, incorrect inbound CSS, wrong significant digits, etc.
  • In some cases, problems with IP routing, or not binding the signaling to the right interface, which causes the SETUP messages to end up getting no response.
  • In recent releases you can enable the H.323 process in all nodes, but in old releases, the H.323 daemon was only enabled on servers that were listed under the Device Pool's CUCM Group from H.323 gateways. You would get this if you were trying to send the calls to a server where the H.323 daemon was not running

Causes 16 and 17 are quite common and are not usually related to failures, but normal call events.

Depending on the telco, another reason for calls to fail is that they expect a certain combination of PLAN and TYPE to be sent, depending on the kind of call, you'll see it in a debug isdn q931:

        Calling Party Number i = 0x2180, 'XXXXXXXXXXX'
                Plan:ISDN, Type:National
        Called Party Number i = 0x81, 'XXXXXX'
                Plan:ISDN, Type:Unknown 

I've seen several kinds of requests from telcos, send type unknown for all calls, send type as international and do not send the access digits (011 for US, or whatever + means in your country) send country code + subscriber number, send as international with 011, etc. Make sure to ask your telco what combination they expect to accept your calls.

Another reason for failure is that some telcos will not allow you to send the ANI if it's not something within the range that you own, some telcos might simply reject the calls, some others will accept the call, but will re-write the ANI, most usually to the main number.

Go to Voice Gateways FAQ Content Table

What is the difference between MGCP, H.323 and SIP??

You might want to review this doc:

SIP on some level is similar to H.323, it's a peer to peer protocol, but it's much more powerful and geared towards audio / video / multimedia.
You can review a good explanation about SIP Vs. H.323 here:

You usually want to go to MGCP when you want a centralized dial plan within CUCM, easier to manage, but not as powerful as H.323 or SIP. H.323 requires a lot more configuration in the ISR and CUCM, and usually dial plan changes need to be done on both. This allows for a more flexible dial plan, and to manage the calls before they even reach CUCM, modifying the calling, called numbers, dial plan, etc.

There is a lot of information on this topic, a good reading from Bill Bell can be found here:

A simple google search on H.323 Vs SIP or any of the possible combinations, will render a good number of links on the topic.

Go to Voice Gateways FAQ Content Table

How to configure E1-CAS??

This are not found very often, except down here in MX, here's a sample config:

isdn switch-type primary-net5

controller E1 1/0
 framing NO-CRC4
 ds0-group 0 timeslots 1-15,17-31 type r2-digital r2-compelled
 cas-custom 0
 country telmex
 category 2
 answer-signal group-b 1
 caller-digits 4
 dnis-digits min 4 max 10

interface Loopback0
 ip address
 h323-gateway voip interface

Another version for MX

controller E1 0/0/0
 framing NO-CRC4 
 line-termination 75-ohm
 ds0-group 0 timeslots 1-15,17-31 type r2-digital r2-compelled ani
 cas-custom 0
 country telmex
 category 2
 answer-signal group-b 1
 caller-digits 4
 dnis-digits min 1 max 4
 ani-digits min 0 max 10
 answer-guard-time 1000

I found this snip from a config for Argentina

controller E1 0/0/0
 framing NO-CRC4
 ds0-group 0 timeslots 1-15,17-31 type r2-digital r2-compelled
 cas-custom 0
 country argentina

Unfortunately this old technology is not something the one size fits all kind of config, and it will vary a lot depending on the needs and country on which you're deploying this. The easiest method would be to engage with your local telco and ask for a sample config.

Here are some configuration docs:

Go to Voice Gateways FAQ Content Table

I upgraded my IOS to 15.x and now calls are failing, CCAPI debugs show _ManagedAppProcess_TOLLFRAUD_APP??

This is due to a new security enhancement in IOS 15.1(2)T

Toll-Fraud Prevention Feature in IOS Release 15.1(2)T

voice service voip
ip address trusted list
ipv4 x.x.x.x x.x.x.x  --> Subnet, or exact IP
ipv4 ----> This would allow connections from ANY source

It is worth noting that any IP which is configured under a dial-peer, will also be added to the trusted list (even-though, it won't show in the config) as the system will understand that you're actually expecting to make / receive calls from that IP.

Go to Voice Gateways FAQ Content Table

I have a new ISR 4XXX but my CUCM does not have it as an option for MGCP??

Support the ISR 4XXX series is only native in CUCM 10.5(2), an enhancement bug was filed for this, and some ES will provide support for some older releases in the MR train.
See CSCuo85914 Add QED support for ISR4351, ISR4331 and ISR4321 gateways

Go to Voice Gateways FAQ Content Table

How can I tell if I can configure recording on my GW??

The requirements are outlined here:
UCM 10 - Unified CM Gateway Recording requirements

UPDATED 6/11/2018
UCM 10 - Unified CM Gateway Recording requirements

The two main options that are available right now are BiB recording and NBR (Network Based Recording), you can find some information around monitoring and recording in the SRND

Go to Voice Gateways FAQ Content Table

How do I enable the Feature Licenses on ISR G2 and 4K??

This has been nicely outlined here, the various options that you have, as well as the steps to do so:

Go to Voice Gateways FAQ Content Table

Where do I have to install the PVDM4 on my ISR 4K??

That depends on what you want to use them for:

Q. Can I use the motherboard PVDM4 for T1/E1 TDM voice service?
A. No. Only PVDM4 installed on T1/E1 NIM can be used for TDM voice services, the motherboard PVDM4 can only be used for IP based voice services such as conferencing, transcoding and MTP. However, extra DSP resources on PVDM4 installed on T1/E1 NIM can be pooled together with motherboard PVDM4 in dspfarm for IP based voice services.

Q. Can PVDM4 on one T1/E1 NIM be shared with another T1/E1 module for TDM voice service?
A. No. Each T1/E1 NIM needs to have a dedicated PVDM4 to support TDM voice services.

Q. Can I use the PVDM4 on the motherboard on T1/E1 NIM?
A. Yes. The PVDM4 on motherboard and T1/E1 NIM are identical.

Cisco Fourth Generation 1-, 2-, 4-, and 8-Port T1/E1 Multiflex Trunk Voice/WAN Network Interface Modules FAQ

Cisco 4000 Series PVDMs are available in two form factors with four supported densities in each form factor:

● Motherboard PVDMs (PVDM4) for densities up to 256 channels (Figure 1)

● PVDM enhanced services modules (SM-X-PVDM) for densities up to 3080 channels (Figure 2)

The motherboard PVDMs are supported on all Cisco 4000 Series ISRs. They can be plugged directly into the single slot on the router motherboard or into the network interface module (NIM) that supports T1/E1 ports. A PVDM4 module plugged into the motherboard delivers IP-based voice services such as conferencing, media optimization, and transcoding only.

A PVDM4 module plugged into the T1/E1 NIM would be used for voice T1/E1 connectivity. Any excess channels can be reused toward other IP-based services supported on the motherboard slot. Enhanced DSP architecture accommodates a new packet-processing engine optimized for rich-media voice applications, while concurrently supporting the TDM-IP voice framework.

The PVDM enhanced services modules are supported on ISRs that contain an SM-X slot - namely the Cisco 4331, 4351, and 4451 ISRs. The SM-X modules support only IP-based voice services and cannot be used for TDM applications.

Cisco 4000 Series Integrated Services Router Packet Voice Digital Signal Processor Modules (PVDMs) for Cisco Unified Communications Solutions Data Sheet

Go to Voice Gateways FAQ Content Table


Can I configure encryption between my CUCM and my MGCP GW??

Yes, although this is not commonly seen, specially since you would only enable security between CUCM and MGCP, once the call goes out to the PSTN, it would not be encrypted. If you want to do so, you can find the instructions here:
Media and Signaling Authentication and Encryption

Go to Voice Gateways FAQ Content Table

How to bind MGCP signaling to an interface??

This is quite easy, you just need the following commands:

mgcp bind control source-interface <interface>
mgcp bind media source-interface <interface>

Go to Voice Gateways FAQ Content Table

How to configure an IOS MGCP GW??

There are already several documents on this:

This is an example from a GW in my lab, 2851 running c2800nm-adventerprisek9_ivs-mz.124-20.T1.bin, using:

WIC Slot 0:
       T1 (1 port) Multi-Flex Trunk WAN daughter card
       Hardware revision 1.0           Board revision E0
       FRU Part Number     VWIC-1MFT-T1=

My running config is:

network-clock-participate wic 0
ip domain name pdimx.cisco.com
ip host CUCM86.pdimx.cisco.com
voice-card 0
 dsp services dspfarm
controller T1 0/0/0
 framing esf
 linecode b8zs
 pri-group timeslots 1-24 service mgcp
interface Serial0/0/0:23
 no ip address
 encapsulation hdlc
 isdn switch-type primary-ni
 isdn incoming-voice voice
 isdn bind-l3 ccm-manager
 no cdp enable
voice-port 0/0/0:23
ccm-manager mgcp
ccm-manager music-on-hold
ccm-manager config server
ccm-manager config
mgcp call-agent CUCM86 2427 service-type mgcp version 0.1
mgcp rtp unreachable timeout 1000 action notify
mgcp modem passthrough voip mode nse
mgcp package-capability rtp-package
mgcp package-capability sst-package
mgcp package-capability pre-package
no mgcp package-capability res-package
no mgcp package-capability fxr-package
no mgcp timer receive-rtcp
mgcp sdp simple
mgcp rtp payload-type g726r16 static
mgcp profile default

Go to Voice Gateways FAQ Content Table

How to configure FXS / FXO with MGCP??

Besides the configuration from How to configure an IOS MGCP GW??, if you have these two lines:

ccm-manager config server x.x.x.x
ccm-manager config

Then once you configure the endpoints in CUCM, and reset the GW, CUCM will push the configuration you need, if you don't have them, or want to fully manually configure MGCP, then you just need to add a dial-peers so that you bind MGCP control

dial-peer voice 999100 pots
 application mgcpapp
 port 1/0/0

dial-peer voice 999101 pots
 application mgcpapp
 port 1/0/1

Related links:

Go to Voice Gateways FAQ Content Table

How to block inbound calls with MGCP??

A document for this has been written before, the instructions are the same, I believe you require CUCM 8.5+ for this to work:
Blocking Calls Based on Calling Party ID

Go to Voice Gateways FAQ Content Table

How to check MGCP registration??

Most people believe that this command will get you what the actual registration status on CUCM should be:

2851-PDI#show ccm-manager
MGCP Domain Name: 2851-PDI.pdimx.cisco.com
Priority        Status                   Host
Primary         Registered               CUCM86 (
First Backup    None
Second Backup   None

Current active Call Manager:
Backhaul/Redundant link port:   2428
Failover Interval:              30 seconds
Keepalive Interval:             15 seconds
Last keepalive sent:            16:38:44 CST May 4 2015 (elapsed time: 00:00:10)
Last MGCP traffic time:         16:38:44 CST May 4 2015 (elapsed time: 00:00:10)
Last failover time:             None
Last switchback time:           None
Switchback mode:                Graceful
MGCP Fallback mode:             Not Selected
Last MGCP Fallback start time:  None
Last MGCP Fallback end time:    None
MGCP Download Tones:            Disabled
TFTP retry count to shut Ports: 2

Backhaul Link info:
    Link Protocol:      TCP
    Remote Port Number: 2428
    Remote IP Address:
    Current Link State: OPEN
        Packets recvd:   4
        Recv failures:   0
        Packets xmitted: 4
        Xmit failures:   0
    PRI Ports being backhauled:
        Slot 0, VIC 0, port 0
Configuration Auto-Download Information
 No configurations downloaded
Current state: Waiting for commands
Configuration Download statistics:
        Download Attempted             : 2
          Download Successful          : 2
          Download Failed              : 0
          TFTP Download Failed         : 1
        Configuration Attempted        : 1
          Configuration Successful     : 0
          Configuration Failed(Parsing): 0
          Configuration Failed(config) : 1
Last config download command:
FAX mode: cisco
Configuration Error History:
voice-port 0/1/0
 signal groundStart

But, that actually only shows the status of the connection between MGCP and CUCM on port 2428, that does not really determine the actual registration status on CUCM. Specially with PRIs, that can lead to confusion.

Besides the above showing that it's able to get the config, and proper communication is going on over ports 2427 and 2428, you want to make sure your PRI is actually up:

2851-PDI#sh isdn status
Global ISDN Switchtype = primary-ni

%Q.931 is backhauled to CCM MANAGER 0x0003 on DSL 0. Layer 3 output may not apply

ISDN Serial0/0/0:23 interface
        dsl 0, interface ISDN Switchtype = primary-ni
        L2 Protocol = Q.921 0x0000  L3 Protocol(s) = CCM MANAGER 0x0003
    Layer 1 Status:
    Layer 2 Status:
        TEI = 0, Ces = 1, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED
    Layer 3 Status:
        0 Active Layer 3 Call(s)
    Active dsl 0 CCBs = 0
    The Free Channel Mask:  0x807FFFFF
    Number of L2 Discards = 0, L2 Session ID = 1
    Total Allocated ISDN CCBs = 0

If you see under Layer 1 Status:

Layer 1 Status:


If you see under Layer 2 Status:

Layer 2 Status:
        TEI = 0, Ces = 1, SAPI = 0, State = TEI_ASSIGNED

Your PRI will NEVER show up as registered in CUCM, once you plug in a live PRI in the card and Layers 1, 2 and 3 come up, it will register fine.

Go to Voice Gateways FAQ Content Table

Is a partial PRI supported with MGCP??

No, this is officially NOT SUPPORTED by Cisco, if you want to use partial PRIs, you would need to switch to H.323 for this.

However, there is an unsupported method for this via CUCM service parameters:

Change B-Channel Maintenance Status 1:
This parameter allows Cisco CallManager to change individual B-Channel maintenance status for PRI and CAS interfaces in real time for troubleshooting.

Input Format: Device Name = B-channel Maintenance Status
S0/DS1-0@SDA123456789ABC = 0000 1111 0000 0000 0000 0001 (24 bits for T1. Channel number begins with 1 to 24 from left to right. In the case of PRI, the last bit specifies the D-Channel, which does not get affected. In this example, the 5th through 8th B-Channels are out of service.)
S1/DS1-0@DLS2-CM136-VG200-2.SELSIUSCMLAB.CISCO.COM = 0000 0000 0000 0000 0000 0000 1111 1111 (32 bits for E1. B-Channel number begins with 1 to 32 from left to right. The 16th channel specifies the D-Channel. The last bit does not affect any channel. In this example, the 25th through 31st channels are marked out of service.)

The Device Name as specified in the Gateway Configuration page in Cisco CallManager Administration MUST exactly match the gateway name that this field specifies. To avoid any manual inputting mistake, copy the Device Name from Cisco CallManager Administration and paste it into this service parameter. "=" is mandatory and unique to distinguish the Device Name and B-Channel Maintenance Status fields.
BCHANNEL MAINTENANCE STATUS = xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
Where x can be:
0 -- In service
1 -- Graceful out of service (Change channel status until active call ends if an active call exists on that channel.)
2 -- Forceful out of service (Tear down active call first; then, change channel status immediately if an active call exists on that channel.)

Because values other than 0,1, or 2 are invalid, the system ignores them. Make sure that the total number of 'x' is either 24 for T1 or 32 for E1. Any other invalid length or mismatch (for example, 24 for E1) gets treated as error, and no action gets taken for that device.

SPACE: Optional.
The spaces between device name and "=", between '=' and BCHANNEL MAINTENANCE STATUS, and between x and x, are all optional. You cannot use any space inside the DEVICE NAME field.

PRI Specific: To use this feature, the Enable status poll check box must be checked on the PRI Gateway Configuration window. If it is not, you need to check the check box, click Update, and reset the gateway for the service parameter change to take effect.

Maximum length: 255

The related bugs are:

  • CSCdw78580 need ability to take channels in and out of service on PRI gateway
  • CSCdx92111 ChangeBChannelMaintenanceStatus is limited to 5 gateways

Go to Voice Gateways FAQ Content Table

My PRI is not registering, what can I check??

Besides making sure that your config, and your GW registration is fine, the most common causes for an MGCP GW not registering are:

  • Not having the proper DNS resolution, or typos
  • Configuring just the hostname and not the FQDN of the ISR on CUCM
  • Choosing the wrong slot / card
  • Firewalls or ACLs

If all the above is correct, then you want to enable:

  • debug mgcp packets
  • debug mgcp events
  • or you can enable debug mgcp all

Then you would need to go through the debugs to try and pinpoint at what point the process is failing.

Related links;

Go to Voice Gateways FAQ Content Table


How to configure an H.323 GW??

There are some documents on this:

This is an example from my lab, running a 2801 with c2801-ipvoice_ivs-mz.124-20.T1.bin

I'm using:

       T1 (1 port) Multi-Flex Trunk WAN daughter card
       Hardware revision 1.0           Board revision E0
       FRU Part Number     VWIC-1MFT-T1=

Which is directly on slot 0

This is my running config

network-clock-participate wic 3

ip domain name pdimx.cisco.com

voice service voip
 allow-connections h323 to h323
 allow-connections h323 to sip
 allow-connections sip to h323
 allow-connections sip to sip

voice class codec 1
 codec preference 1 g711ulaw bytes 160
 codec preference 2 g711alaw bytes 160
 codec preference 3 g729r8 bytes 20

voice class h323 1
 h225 timeout tcp establish 3

controller T1 0/3/0
 framing esf
 linecode b8zs
 pri-group timeslots 1-24

interface FastEthernet0/0
 ip address
 duplex auto
 speed auto
 h323-gateway voip interface
 h323-gateway voip bind srcaddr

interface Serial0/3/0:23
 no ip address
 encapsulation hdlc
 isdn switch-type primary-ni
 isdn protocol-emulate network
 isdn incoming-voice voice
 no cdp enable

voice-port 0/3/0:23

dial-peer voice 101 voip
 preference 1
 destination-pattern ....
 voice-class codec 1
 voice-class h323 1
 session target ipv4:
 dtmf-relay h245-alphanumeric
dial-peer voice 102 voip
 voice-class codec 1
 incoming called-number .
dial-peer voice 103 pots
 incoming called-number .
dial-peer voice 104 pots
 destination-pattern 9.T
 port 0/3/0:23
dial-peer voice 105 voip
 preference 2
 destination-pattern ....
 voice-class codec 1
 voice-class h323 1
 session target ipv4:
 dtmf-relay h245-alphanumeric

One thing you would not require on a production environment, would be the command:

 isdn protocol-emulate network

I only have that command in order to have a PRI connection for lab purposes, this is the other end of the PRI from my MGCP config example

Related links:

Go to Voice Gateways FAQ Content Table

H323 Failover for outbound calls

The default behavior in IOS, when there are no valid POTS dial-peers for a call to go out of, is to return “unallocated number” as a cause code to CCM. This can happen even if a t1 goes down. When the T1 goes down, the POTS peer is marked as down, and when CCM sends a call to the gateway, it’ll return a UAN cause code to the ccm, causing CCM (by default) to stop hunting for other available gateways.

There are ways to change the behavior using service parameters in CCM, and an alternative in the IOS config. Both are outlined here:

You can issue the global command "no dial-peer outbound status-check pots" on the IOS GW, if you're opposed to changing the CCM behavior. What this command will do is cause the dial-peer to stay up. IOS will try and route the call, and when the T1 is down, it returns "No circuit available" to CCM. When CCM receives this cause code, it knows there's been a non-user error, and continues hunting, achieving the desired behavior. The IOS code will translate any code we get from pots side to IP side

Go to service parameters >> CCM >> route pattern (cluster wide config) and change the following:
Stop Routing on Unallocated Number Flag = False
Stop Routing on User Busy Flag = False

Go to Voice Gateways FAQ Content Table

How can I block / reject inbound calls on an H.323 GW??

You can find plenty of examples and the full explanation of how to do this in the below two links:

Reject Calls

Use the reject keyword to reject calls that match. This example rejects all calls that start with "234".

rule 1 reject /^234/
router#test voice translation-rule 10 1234
1234 Didn't match with any of rules

router#test voice translation-rule 10 2345
 blocked on rule 1

Call Blocking Configuration Examples

Go to Voice Gateways FAQ Content Table

How, and why, to bind H.323 signaling to an interface??

You only need to add the commands:

h323-gateway voip interface
h323-gateway voip bind srcaddr

this would be an example

interface FastEthernet0/0
 ip address
 duplex auto
 speed auto
 h323-gateway voip interface
 h323-gateway voip bind srcaddr

Why would you want to do this??'
In some scenarios your H.323 signaling might come out using another IP interface from the ISR, the problem with that, is that CUCM will only accept H.323 signaling from the IP with which you defined the H.323 GW, and that would cause a failure for inbound calls. That's the reason why you would want to manually set which IP interface you will use.

Go to Voice Gateways FAQ Content Table

How to configure redundancy in dial peers pointing to CUCM??

This has already been covered in documentation:

This is actually quite easy:

voice class h323 1
 h225 timeout tcp establish 3

dial-peer voice 101 voip
 preference 1
 destination-pattern ....
 voice-class codec 1
 voice-class h323 1
 session target ipv4:
 dtmf-relay h245-alphanumeric

dial-peer voice 105 voip
 preference 2
 destination-pattern ....
 voice-class codec 1
 voice-class h323 1
 session target ipv4:
 dtmf-relay h245-alphanumeric

Go to Voice Gateways FAQ Content Table

How many dial-peers can I configure in my ISR??

This is a question I've seen plenty of times, the simple answer, is that there are way too many factor to provide a straight answer.
The theoretical limit for most platforms, is 2 billion, I doubt anyone will be anywhere near that number.

As each DP takes memory in order to run, depending on how many options you configure in them, they will be smaller or larger. A very simple DP with a destination-pattern and IPv4 target will be around 6KB of memory. If you're already above 500 DPs, then you should start considering a GK / SME deployment, and a centralized dial plan.

The only real way to find out how many DPs you platform, with your current config can support, is to test it. As I mentioned, depending on the complexity of your DPs, they will take more than 6 KBs, and you also don't want to go too high on the memory usage on your ISR.

Go to Voice Gateways FAQ Content Table

How to route calls on different PRI based on calling number from CUCM??

The easiest way to do this, is doing it with a CUCM config.

Assuming you want to configure a two groups of people to make calls using the same H.323 GW which has 2 (or more) PRIs

Group A Group B

Usually you would have just one Route Pattern like 9.1XXXXXXXXXX in one partition. For this, you will need to create a new partition, only Group B can reach, and use the same pattern.

You would end up with:

  • 9.1XXXXXXXXXX on partitionA
  • 9.1XXXXXXXXXX on partitionB

Now make sure you control access to only one of them for each group via their CSS. Now, the important part of this config, is that you will add a prefix on each route pattern, they need to be different.

  • 9.1XXXXXXXXXX on partitionA Prefix 333
  • 9.1XXXXXXXXXX on partitionB Prefix 444

We will set the Route Pattern to Discard PreDot

Now, in your GW, you will use that prefix to differentiate where do you want to route the call:

dial-peer voice 101 pots
 destination-pattern 3331T
 port 0/2/0:23

dial-peer voice 102 pots
 destination-pattern 4441T
 port 0/3/0:23

As exact matches will be removed from the called number in the SETUP message, you will only send 10 digits out to your telco.

Go to Voice Gateways FAQ Content Table

What are the dial-peers??

The dial-peers are the equivalent of Route Patterns in CUCM, they will contain a destination-pattern, which will match the number you're trying to reach, and a target, using IP or hostname, for the peer where they are located.

dial-peer voice 101 voip --> We define 101 as the number, this is chosen by user, and voip, or pots
preference 1 --> The preference is used when you have more than one option for routing the same number
destination-pattern .... --> This is the number we're going to match, in this case, any 4 digits number
session target ipv4: --> This is the IP of the peer where the numbers are
dtmf-relay h245-alphanumeric --> This is the DTMF method we're going to use for the call (if necessary)

Go to Voice Gateways FAQ Content Table

How to configure the dial-peers??

Well, this is a whole topic on its own, you can configure very basic dial-peers like the ones I've listed in the examples, to very complex dial-peers for very specific purposes, it depends what you need, I suggest you review the following docs:

Besides the actual configuration, you also need to understand two very important concepts in H.323 and dial-peers, the operational status, and inbound and outbound call legs:

The importance of matching inbound and outbound dial-peers relies in the fact that you will set certain call properties with them, otherwise, you will use the default dial-peer which most usually is not desired. A VERY IMPORTANT thing to remember, is that by default, H.323 uses G.729r8 as the default codec, unless specifically changed in the dial-peer, or the voice-class codec

Go to Voice Gateways FAQ Content Table

How to configure FXS / FXO with H.323??

An FXO configuration can be as simple as:

voice-port 0/1/1
 connection plar opx 111
 caller-id enable

Or a lot more elaborate

voice-port 0/1/1
 supervisory disconnect dualtone mid-call
 supervisory custom-cptone CISCOTest-custom
 pre-dial-delay 0
 input gain -6
 echo-cancel coverage 32
 no non-linear
 timeouts call-disconnect 5
 timeouts wait-release 5
 timing hookflash-out 50
 connection plar opx immediate 111
 caller-id enable

The settings for connection depend on the usage, most usually it's plar, or plar opx
Command reference: connection

The same for an FXS

voice-port 2/0
 timeouts initial 60
 timeouts interdigit 60
 timeouts ringing infinity
 caller-id enable type 1

voice-port 0/1/1
 supervisory disconnect dualtone mid-call
 no battery-reversal
 echo-cancel mode 2
 cptone XX
 timeouts call-disconnect 3
 timeouts ringing infinity
 timeouts wait-release 3
 timing digit 200
 timing inter-digit 200
 connection plar 111

The routing on this interfaces is most usually that you configure them using a trunk to bundle them as a single interface, at least for routing, and point to the trunk group. Otherwise, you point to the interface directly in the dial-peer configuration.

Go to Voice Gateways FAQ Content Table


How to configure a SIP trunk??

UPDATED 6/11/2018
Here are several examples, some of the configuration might depend on who is on the other side of the SIP trunk, if it's another call control agent, or if it's a telco, I'll add some Live presos around the topic at a later date:

Examples specific to certain platform and telcos can be found here:

Go to Voice Gateways FAQ Content Table

What is early offer and delayed offer??

This refers to the SIP INVITE message which is used to start a call to a SIP endpoint. If the INVITE contains SDP (Session Description Protocol), then this would be an Early Offer, because you're already sending out what capabilities you have and want for the call. If you send the INVITE without SDP, and then wait for the OK message to come back from the called party with his capabilities, then this would be a Delayed Offer.
It's very important to know, specially for SIP trunks, whether they are expecting DO, or EO for the session establishment.

This topic is nicely explained here:

Go to Voice Gateways FAQ Content Table

Can I configure multiple Registrars on a SIP trunk??

Yes, you can, please read the following documentation:

Go to Voice Gateways FAQ Content Table


Example SCCP configuration for IOS

 sccp local FastEthernet0/0
 sccp ccm X.X.X.X identifier 10
 sccp ccm X.X.X.X identifier 12

 sccp ccm group 1
 associate ccm 10 priority 1
 associate ccm 12 priority 2

 stcapp ccm-group 1

 dial-peer voice 1 pots
 service stcapp
 port 2/1

 dial-peer voice 2 pots
 service stcapp
 port 2/2

Go to Voice Gateways FAQ Content Table

Back to Unified Communications FAQ

Any comments, questions, suggestions, contributions, etc. please send them to javalenc@cisco.com. Please make sure the subject is formatted "UC FAQ <anything else>" as I'll have rules in my mail to match them, otherwise, they'll end up in my spam folder.

Rating: 5.0/5 (6 votes cast)

Personal tools