Archive for the ‘Cisco Gateway’ Category

The determining factor for whether a gateway registers with a TYPE of VOIP-GW or H323-GW relies entirely on the “allow-connections” commands entered under “voice service voip.” Essentially, if your gateway is functioning as an IP-to-IP gateway, it will display H323-GW.

The commands that make or break this:

voice service voip
allow-connections h t h
allow-connections h t s
allow-connections s t h
allow-connections s t s

After adding or removing these, make sure to bounce your gateway registration with the gatekeeper using “no gateway” and “gateway.”

I just verified this. Here is a snapshot without the commands listed above:

HQ-RTR#show gatekeeper endpoints
CallSignalAddr Port RASSignalAddr Port Zone Name Type Flags
————— —– ————— —– ——— —- —– 1720 58978 Spain VOIP-GW
H323-ID: BR2-RTR
Voice Capacity Max.= Avail.= Current.= 0

After adding the commands listed above:

HQ-RTR#show gatekeeper endpoints
CallSignalAddr Port RASSignalAddr Port Zone Name Type Flags
————— —– ————— —– ——— —- —– 1720 50555 Spain H323-GW
H323-ID: BR2-RTR
Voice Capacity Max.= Avail.= Current.= 0


I had an interesting scenario where customer logged a case with us regarding their RightFax server not working. Those of you who don’t know what is a RightFax server can read about it here. When you dial the fax number from outside, it reaches the gateway and you hear one ringback and then a fast busy. The call flow was something like this:

0XXXX23422 >>>> Birmingham GW  FXO >>> on CCM we have FXO port with number 3422 >> on CCM there was a RP 3422 with a RL pointing towards an Intercluster trunk to The was the Right Fax server.

I could ping which proved no issues between CCM and Right fax server.

I then opened debug voip ccapi inout and observed the Ringback and fast busy tone which was not very helpful. I then asked the customer if fax calls through any other gateway are working and luckily I found one gateway where they had successful fax calls. I compared the MGCP config on both gateways and found one line missing from this gateway which was not working.

The MGCP commands common to both:
ccm-manager fallback-mgcp
ccm-manager redundant-host BELL
ccm-manager mgcp
no ccm-manager fax protocol cisco
ccm-manager music-on-hold
ccm-manager config server
ccm-manager config


mgcp call-agent MICKEY 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 timer receive-rtcp
mgcp sdp simple
mgcp fax t38 ecm
mgcp bind control source-interface FastEthernet0/0
mgcp bind media source-interface FastEthernet0/0

mgcp profile default!

The command which was missing was this:

mgcp rtp payload-type g726r16 static
I added that command and Fax started working.

QoS is very important for Voice traffic which is delay sensitive. I won’t go into details of QoS over here and will just explain the configuration we normally use on a Voice gateway for QoS.

class-map match-any Voice-RTP
match ip precedence 5
match ip dscp ef
match ip rtp 16384 16383
class-map match-any Voice-Cntl
match ip precedence 3
match ip dscp af31
match access-group name voice-signal
ip access-list extended voice-signal
permit tcp any any range 2000 2002
permit udp any any eq 2427
permit tcp any any eq 2428
permit tcp any any eq 1720
permit tcp any any range 11000 11999
policy-map QoS-LAN-Policy
class Voice-RTP
set dscp ef
priority 500
class Voice-Cntl
set dscp af31
bandwidth 30
class class-default

Apply it on Voice VLAN interface or towards the WAN interface if you are configuring it between sites:

interface FastEthernet0/1
ip address
ip rip advertise 2
ip virtual-reassembly
ip tcp adjust-mss 1360
duplex full
speed 100
service-policy output QoS-LAN-Policy


interface GigabitEthernet0/0.105
description *** Voice VLAN ***
encapsulation dot1Q 105
ip address 10.60.x.x
h323-gateway voip bind srcaddr 10.60.x.x
service-policy output QoS-LAN-Policy


Confirmation that the voice packets are hitting the service policy:

GW#sh policy-map int fa0/1

Service-policy output: QoS-LAN-Policy

Class-map: Voice-RTP (match-any)
55890 packets, 11178000 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: ip precedence 5
55890 packets, 11178000 bytes
5 minute rate 0 bps
Match: ip dscp ef (46)
0 packets, 0 bytes
5 minute rate 0 bps
Match: ip rtp 16384 16383
0 packets, 0 bytes
5 minute rate 0 bps
QoS Set
dscp ef
Packets marked 55890
Strict Priority
Output Queue: Conversation 264
Bandwidth 500 (kbps) Burst 12500 (Bytes)
(pkts matched/bytes matched) 55890/11960460
(total drops/bytes drops) 0/0

Class-map: Voice-Cntl (match-any)
605 packets, 80661 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: ip precedence 3
605 packets, 80661 bytes
5 minute rate 0 bps
Match: ip dscp af31 (26)
0 packets, 0 bytes
5 minute rate 0 bps
Match: access-group name voice-signal
0 packets, 0 bytes
5 minute rate 0 bps
QoS Set
dscp af31
Packets marked 605
Output Queue: Conversation 265
Bandwidth 30 (kbps)Max Threshold 64 (packets)
(pkts matched/bytes matched) 605/76019
(depth/total drops/no-buffer drops) 0/0/0

Class-map: class-default (match-any)
1103573 packets, 80456575 bytes
5 minute offered rate 151000 bps, drop rate 0 bps
Match: any
Flow Based Fair Queueing
Maximum Number of Hashed Queues 256
(total queued/total drops/no-buffer drops) 0/0/0

I had an interesting case last week where calls over ICT trunk would connect but then either party will not hear each other for 8-10 seconds.

The issue was first reported from US users trying to reach UK users over an Inter-cluster trunk (Non-GK). Both clusters had two call managers version 8.0.3. The whole issue started after US call managers were re-located and their IP addresses were changed. The ping response between two clusters was about 145ms which wasn’t too bad. I did a test call to a UK phone by connecting my IP communicator to US (due to time difference it was very difficult to get someone in US to make test calls). I did a CFA on UK phone to Voicemail and could see on my communicator that the call has connected but I didn’t hear the first 10 seconds of the voicemail.

I made a similar test by calling a UK phone but this time asked someone to answer it. The call was connected fine but we couldn’t hear each other for like 10 seconds. After 10 s it was all ok.

The issue was bit different when someone from UK to US would call. In that case call will connect 70% of the time with no issues but 30% of the time it will connect and drop.

I had to run through different CCM traces on both clusters to find below:

### Digit analysis for the call
04:42:47.464 |Digit analysis: match(pi=”2″, fqcn=”XXXXXX1409″, cn=”1409″,plv=”5″, pss=”PT_FRNA_INTERNAL:PT_FRNA_ROUTE”, TodFilteredPss=”PT_FRNA_INTERNAL:PT_FRNA_ROUTE”, dd=”303165″,dac=”0″)|2,100,49,1.20123926^^SEP002318D1DF43
04:42:47.464 |Digit analysis: analysis results|2,100,49,1.20123926^^SEP002318D1DF43
04:42:47.464 ||PretransformCallingPartyNumber=1409

04:42:47.464 |DeviceManager::star_DmPidReq – RequestedName=dec100fa-40c7-ac1a-9dcb-50a73af41700 LookupName=dec100fa-40c7-ac1a-9dcb-50a73af41700|2,100,49,1.20123926^^SEP002318D1DF43
04:42:47.464 |Digit analysis: wait_DmPidRes- Partition=[8a2bfaaa-13f0-4631-9c26-02a08a573cf7] Pattern=[21XXXX] Where=[],cmDeviceType=[AccessDevice], OutsideDialtone =[0], DeviceOverride=[0], PID=RouteListControl(2,100,73,10)|2,100,49,1.20123926^^SEP002318D1DF43

### H225 set-up sent via ICT:
04:42:47.616 |Out Message — H225SetupMsg — Protocol= H225Protocol|*^*^*
04:42:47.616 |Ie – H225BearerCapabilityIe IEData= 04 03 80 90 A2 |*^*^*
04:42:47.616 |Ie – Q931DisplayIe IEData= 28 0B 43 68 61 64 20 48 61 69 6E 65 73 |*^*^*
04:42:47.616 |Ie – H225CallingPartyIe IEData= 6C 08 00 81 32 30 31 34 30 39 |*^*^*
04:42:47.616 |Ie – Q931CalledPartyIe IEData= 70 05 80 33 30 36 33 |*^*^*

### Connect received (call answered)
04:42:49.461 |In  Message — H225ConnectMsg — Protocol= H225Protocol|*^*^*
04:42:49.461 |Ie – H225BearerCapabilityIe — IEData= 04 03 80 90 A2 |*^*^*
04:42:49.461 |Ie – Q931DisplayIe — IEData= 28 0C 53 74 65 76 65 20 47 61 72 6E 65 72 |*^*^*
04:42:49.461 |Ie – Q931ConnectedNumIe — IEData= 4C 06 00 81 33 30 36 33 |*^*^*

### outgoing TCS sent after about 8 seconds:
04:42:57.260 |TranslateAndTransport(21728)::waitForSdlRsp_H245TcpConnectionInfo – received H245TcpConnectionInfo from H245Handler|0,0,0,0.0^*^*
04:42:57.264 |
H245ASN – TtPid=(21728) -Outgoing #195026  -value MultimediaSystemControlMessage ::= request : terminalCapabilitySet :

¬Also, the SDL logs indicate a significant delay in the TCS being sent out:
Line 135: 027643128| 2011/07/06 04:42:49.465| 002| SdlSig    | H245ConnectReq                        | wait                          | H245Handler(2,100,24,1)         | TranslateAndTransport(2,100,16,21728)| (2,100,23,21728).1-(*:*)                | [NP – PQ: 0]
Line 331: 027643324| 2011/07/06 04:42:57.259| 002| SdlSig    | H245TcpConnectionInfo                 | waitForSdlRsp                 | TranslateAndTransport(2,100,16,21728)| H245Handler(2,100,24,1)         | (0,0,0,0).0-(*:*)                       | [R:NP – HP: 0, NP: 0, LP: 0, VLP: 0, LZP: 0 DBP: 0]
Line 332: 027643325| 2011/07/06 04:42:57.259| 002| SdlSig    | TtControlChannelEstablished           | waitForTransportEstablishment | H245SessionManager(2,100,23,21728)| TranslateAndTransport(2,100,16,21728)| (0,0,0,0).0-(*:*)                       | [R:NP – HP: 0, NP: 0, LP: 0, VLP: 0, LZP: 0 DBP: 0]

This shows the H225 part of H323 is fine but H245 was taking time. I did reset of trunks, changed Call manager priorities etc but that didn’t help.

I then enabled ‘Outbound FastStart’ for all outbound calls from US to UK and enabled the same for inbound calls on UK trunk. This fixed the issue.

I had to provide a MTP resource under MRGL at US trunk as FastStart needs MTP.

US Cluster:

UK Cluster:

A little about how ‘Outbound FastStart’ works from Cisco:

Outbound Calls :

Enable Outbound FastStart   

Check this check box to enable the H.323 FastStart feature on outgoing calls.
By default, the check box remains unchecked for the H.323 gateway or trunk.
When you check the Enable Outbound FastStart check box, you must set the Media Termination Point Required, Media Resource Group Lists, and Codec for Outbound FastStart.

Inbound Calls:

Enable Outbound FastStart   

Check this check box to enable the H.323 FastStart call connections on incoming calls.
By default, the check box remains unchecked for the H.323 gateway.
For intercluster calls, you must check the Enable Inbound FastStart check box on Cisco CallManager servers in other clusters for the outbound FastStart feature to work.
If you updated Cisco CallManager 3.3(2) servers in other clusters with support patch B, do not enable inbound FastStart because 3.3(2)spB does not support the inbound FastStart feature over intercluster trunks

One of our customer has multiple sites across the globe including sites in UK and US.

Their initial design was to send all UK calls from US over a SIP trunk to break out from a UK gateway for LCR (least cost routing). For some reason they stopped using that trunk and configured local dial peers on US gateways for international calls. All sites were working fine as they were going through one route pattern (for international calls), one route list (Local Route Group) except one site. This site was getting an ‘unallocated/unassigned number’ when calling an international number (UK inour case). This was a bit suprising as all sites were using same settings on Route Pattern, Route List , Route Group etc.

I thought to first find out if our dialled number is hitting the gateway as it is without any change. Did a CCAPI INOUT to find out as follows: (The X mark in Calling/Called number can be any digit)
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_supported_data: data_mode=0×10082
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructTDUsrContainer: usrContainer[0x6408896C], magic[FACE0FFF]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDUtilAddDataToUsrContainer: container=0x6408896C, tagID=6, dataSize=16, instID=-1,modifier=2
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructInstanceTDObject: tdObject[0x65C89E68], nxtElem[0x0], magic[0xFACE0FFF] tagID[6], dataLen[16], modif[2]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToContainer: Adding tdObject[0x65C89E68] instID[-1] into container[0x6408896C]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDUtilAddDataToUsrContainer: container=0x6408896C, tagID=22, dataSize=12, instID=-1,modifier=4
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructInstanceTDObject: tdObject[0x638DCC78], nxtElem[0x0], magic[0xFACE0FFF] tagID[22], dataLen[12], modif[4]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToContainer: Adding tdObject[0x638DCC78] instID[-1] into container[0x6408896C]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_display_ie_subfields:

02:05:19: cc_api_call_setup_ind:

02:05:19:  cisco-username=Sharon Sidd
02:05:19: —– ccCallInfo IE subfields —–

02:05:19:  cisco-ani=585XXX50X0
02:05:19:  cisco-anitype=1
02:05:19:  cisco-aniplan=1
02:05:19:  cisco-anipi=0
02:05:19:  cisco-anisi=1

02:05:19:  dest=90114411898X1XXX    <<<< As you can see Call manager handed over the same number which was dialled

02:05:19:  cisco-desttype=0
02:05:19:  cisco-destplan=0
02:05:19:  cisco-rdn=

02:05:19:  cisco-rdntype=-1
02:05:19:  cisco-rdnplan=-1
02:05:19:  cisco-rdnpi=-1
02:05:19:  cisco-rdnsi=-1
02:05:19:  cisco-redirectreason=-1

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_call_setup_ind: (vdbPtr=0x6428E260, callInfo={called=90114411898X1XXX,called_oct3=0×80,calling=585XXX50X0,calling_oct3=0×11,calling_oct3a=0×81,

calling_xlated=false,subscriber_type_str=Unknown,fdest=1,peer_tag=50, prog_ind=0,callingIE_present 1, src_route_label=, tgt_route_label= clid_transparent=0},callID=0x6408BD24)
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_call_setup_ind:
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_call_setup_ind: type 0 , prot 1
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccCheckClipClir:
02:05:19: ccCheckClipClir: calling number is: “585XXX50X0″, calling oct3a is: 0×81
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccCheckClipClir:
02:05:19: Calling Party number is User Provided
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccCheckClipClir:
02:05:19: Leaving ccCheckClipClir
calling number is: “585XXX50X0″
calling oct3 is:  0×11
calling oct3a is: 0×81

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_api_call_setup_ind: (vdbPtr=0x6428E260, callInfo={called=90114411898X1XXX, calling=585XXX50X0, fdest=1 peer_tag=50}, callID=0x6408BD24)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: Increment call volume: 0
02:05:19: //207/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: current call volume: 1
02:05:19: //207/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: entry’s incoming TRUE.

02:05:19: //207/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: is_incoming is FALSE

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructHashProfileTab: profileTable[0x653738A0], numBuckets[11], numEntries[0]

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccTDPvtProfileTableBuildManager: Invoking necessary profileTable updaters…

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtUpdateProfileTabFromContainer: Updating profileTable[0x653738A0] with objects in container[0x6408896C]

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtUpdateProfileTabFromContainer: obtained key[5] for the tag[6]

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToProfileBucket: profileTable[0x653738A0], tdObject[0x65C89E68]

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtUpdateProfileTabFromContainer: obtained key[0] for the tag[22]

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToProfileBucket: profileTable[0x653738A0], tdObject[0x638DCC78]

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccTDPvtProfileTableBuildManager:

02:05:19: ccTDUtilDumpAllElemInProfileTab: profileTable[0x653738A0], numBuckets[11], numEntries[2]

02:05:19: Bucket { 0 } ——>0x638DCC78[0x0,t-22,l-12,d-0x638DCC98,m-4,u-7519,g-FACE0FFF]


02:05:19: Bucket { 5 } ——>0x65C89E68[0x0,t-6,l-16,d-0x65C89E88,m-2,u-7519,g-FACE0FFF]



02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaCallSetupInd: cid(207), st(SSA_CS_MAPPING),oldst(0), ev(24)ev->e.evCallSetupInd.nCallInfo.finalDestFlag = 1
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaCallSetupInd: src route label=, tgt route label= tg_label_flag 0×0
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaCallSetupInd: finalDest cllng(585XXX50X0), clled(90114411898X1XXX) tgt_route_label()tg_label_flag 0×0
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaCallSetupInd: cid(207), st(SSA_CS_CALL_SETTING),oldst(0), ev(24)dpMatchPeersMoreArg result= 0
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaDebugPeers: ssaSetupPeer cid(207) peer list: tag(1) called number (90114411898X1XXX) tag(104) called number (90114411898X1XXX) tag(105) called number (90114411898X1XXX)
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaSetupPeer: dialpeer tags in rotary= 1  104  105
02:05:19: //207/xxxxxxxxxxxx/SSAPP:50:-1/ssaSetupPeer: cid(207), destPat(90114411898X1XXX), matched(1), prefix(), peer(64A70EFC), peer->encapType (1)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallProceeding: (callID=0xCF, prog_ind=0×0)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest: (Inbound call = 0xCF, outbound peer =1, dest=,
params=0×64392138 mode=0, *callID=0×64392708, prog_ind = 0callingIE_present 1)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:

02:05:19: ccCallSetupRequest numbering_type 0×80
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:
02:05:19: ccCallSetupRequest: calling number is:585XXX50X0

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest: calling oct3a is:0×81

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate: (vdbPtr=0x64852F88, dest=, callParams={called=90114411898X1XXX,called_oct3=0×80, calling=585XXX50X0,calling_oct3=0×11, calling_oct3a= 0×81, calling_xlated=false,  subscriber_type_str=Unknown, fdest=1, voice_peer_tag=1},mode=0×0, appl_call_id=, callingIE_present=1)

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate:
02:05:19: ccIFCallSetupRequestPrivate: src route label  tgt route label tg_label_flag 0×0

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate:  vdbPtr type = 6

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate:
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate: (vdbPtr=0x64852F88, dest=, callParams={called=90114411898X1XXX, called_oct3 0×80,  calling=585XXX50X0,calling_oct3 0×11, calling_oct3a 0×81, calling_xlated=false,  fdest=1, voice_peer_tag=1}, mode=0×0, xltrc=-5)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccIFCallSetupRequestPrivate:
02:05:19: //208/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: not incoming entry
02:05:19: //208/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: entry’s incoming FALSE.
02:05:19: //208/xxxxxxxxxxxx/CCAPI/cc_insert_call_entry: is_incoming is FALSE
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/cc_set_voice_port_value:
02:05:19: CC_IF_TELEPHONY: echo =0, playout = 0

02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccSaveDialpeerTag: (callID=0xCF, dialpeer_tag=1)
02:05:19: //208/xxxxxxxxxxxx/CCAPI/ccCallSetContext: (callID=0xD0, context=0x638F184C)
02:05:19: //207/xxxxxxxxxxxx/CCAPI/ccCallReportDigits: (callID=0xCF, enable=0×0)
02:05:19: //-1/xxxxxxxxxxxx/CCA

VG-FRNA-MON-3725#PI/ccTDConstructTDUsrContainer: usrContainer[0x64082410], magic[FACE0FFF]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDUtilAddDataToUsrContainer: container=0×64082410, tagID=19, dataSize=4, instID=0,modifier=1
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructInstanceTDObject: tdObject[0x638FB624], nxtElem[0x0], magic[0xFACE0FFF] tagID[19], dataLen[4], modif[1]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToContainer: Adding tdObject[0x638FB624] instID[0] into container[0x64082410]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructMultiInstHolderObject: multiHolder[0x653B1B44], nxtElem[0x0], magic[0xFACE0FFF], tagID[19], dataLen[0], modif[-1], numInst[0]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtPushInstToMultiInstHolder: Successful in pushing instance object[0x638FB624] into holder[0x653B1B44]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDConstructHashProfileTab: profileTable[0x6566213C], numBuckets[11], numEntries[0]
02:05:19: //208/xxxxxxxxxxxx/CCAPI/ccTDPvtProfileTableBuildManager: Invoking necessary profileTable updaters…
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtUpdateProfileTabFromContainer: Updating profileTable[0x6566213C] with objects in container[0x64082410]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtUpdateProfileTabFromContainer: obtained key[6] for the tag[19]
02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDPvtAddObjectToProfileBucket: profileTable[0x6566213C], tdObject[0x653B1B44]
02:05:19: //208/xxxxxxxxxxxx/CCAPI/ccTDPvtProfileTableBuildManager:
02:05:19: ccTDUtilDumpAllElemInProfileTab: profileTable[0x6566213C], numBuckets[11], numEntries[1]
02:05:19: Bucket { 6 } ——>0x653B1B44[0x0,t-19,m-1,g-FACE0FFF 0x638FB624,i-0<t-19,l-4,d-0x638FB644,m-1,u-7519,g-FACE0FFF> ]

02:05:19: //-1/xxxxxxxxxxxx/CCAPI/ccTDDestructTDUsrContainer: Container[0x64082410]

02:05:19: ISDN Se2/0:23 Q931: TX -> SETUP pd = 8  callref = 0x00B0

Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98397
Exclusive, Channel 23
Calling Party Number i = 0×1181, ’585XXX50X0′
Plan:ISDN, Type:International
Called Party Number i = 0×80, ’4411898X1XXX’    <<< Number got changed at the gateway
Plan:Unknown, Type:Unknown
Cause i = 0×8281 – Unallocated/unassigned number   <<< The error is coming from provider side

It appears though that call manager is sending the correct number ’901144….’ but for some reason the Q931 debugs were showing number going out as ’44……’ without the prefix ’011′. I checked the dialpeers and there was no stripping or forward-digits restriction on it. To remove any doubt concerning dial peers, I  created an explicit 9011 dial peer with prefix 011 and assign it preference 1. Even that didn’t work and my call was going out without 011 and failing.

Looking closely at Q931 debugs I found something interesting:

Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98397
Exclusive, Channel 23
Calling Party Number i = 0×1181, ’585XXX50X0′
Plan:ISDN, Type:International
Called Party Number i = 0×80, ’4411898X1XXX’
Plan:Unknown, Type:Unknown
Cause i = 0×8281 – Unallocated/unassigned number

The outgoing called number had plan and type ‘Unknown’. Though the same settings were working fine for other sites I thought to explicitly assign proper type and plan and see if that makes any difference.

I created a seperate translation rule and Voice translation profile and included it in POTS dial peer.

voice translation-rule 5
rule 1 // // type any international plan any isdn

voice translation-profile PRI-INTL
translate calling 3
translate called 5

dial-peer voice 9011 pots
translation-profile outgoing PRI-INTL
preference 1
destination-pattern 9011T
progress_ind alert enable 8
progress_ind progress enable 8
progress_ind connect enable 8
port 2/0:23
prefix 011

Now when I dialled the number, it worked like a charm:

19:21:26: ISDN Se2/0:23 Q931: TX -> SETUP pd = 8  callref = 0×0147
Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98397
Exclusive, Channel 23
Calling Party Number i = 0×1181, ’585XXX50X0′
Plan:ISDN, Type:International
Called Party Number i = 0×91, ’4411898X1XXX’
Plan:ISDN, Type:International

19:21:26: ISDN Se2/0:23 Q931: RX <- CALL_PROC pd = 8  callref = 0×8147
Channel ID i = 0xA98397
Exclusive, Channel 23
19:21:28: ISDN Se2/0:23 Q931: RX <- ALERTING pd = 8  callref = 0×8147
Progress Ind i = 0×8488 – In-band info or appropriate now available
19:21:33: ISDN Se2/0:23 Q931: TX -> DISCONNECT pd = 8  callref = 0×0147
Cause i = 0×8090 – Normal call clearing
19:21:33: ISDN Se2/0:23 Q931: RX <- RELEASE pd = 8  callref = 0×8147
19:21:33: ISDN Se2/0:23 Q931: TX -> RELEASE_COMP pd = 8  callref = 0×0147

Provider was expecting proper type and plan and even though the call was still going without prefix ’011′ but it was working.

The setting below applies to packets generated by the router itself.

For H323 gateways

Default for signaling is af31 (26). Need to change this to cs3 (24).

dial-peer voice 1500 voip
ip qos dscp cs3 signaling 

For MGCP gateways

mgcp ip qos dscp cs3 signaling