Archive for the ‘MGCP’ Category

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
fair-queue
!

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

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

OR

!
interface GigabitEthernet0/0.105
description *** Voice VLAN ***
encapsulation dot1Q 105
ip address 10.60.x.x 255.255.255.0
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
FastEthernet0/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
Queueing
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
Queueing
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
Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 256
(total queued/total drops/no-buffer drops) 0/0/0

Advertisements

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 192.168.10.39. The 192.168.10.39 was the Right Fax server.

I could ping 192.168.10.39 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 192.168.10.25
ccm-manager config

!

mgcp
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.

The Cisco High-Density Packet Voice Digital Signal Processor (DSP) Module (PVDM2) enables Cisco Integrated Services Routers to provide high-density voice connectivity, conferencing, and transcoding capabilities in Cisco IP Communications solutions. PVDM stands for packet voice DSP module; it is the Cisco product name for the module that provides digital signal processing resources to a system. DSP stands for Digital Signal Processor; it is a generic Industry terminology. A PVDM module could be staffed with one or multiple DSPs.

PVDM2-8 = 8ch (G), 4ch (H), 4ch (M)

PVDM2-16 = 16ch (G), 6ch (H), 8ch (M)

PVDM2-32 = 32ch (G), 12ch (H), 16ch (M)

PVDM2-48 = 48ch (G), 18ch (H), 24ch (M)

PVDM2-64 = 64ch (G), 24ch (H), 32ch (M)

G=g711     H=G723.1,G728, G729, Gt29b, iLBC      M= G711, G729a, G729ab, G726, G722, Fax Relay

PVDM2-16 is one DSP chip (32=2, 48=3, 64=4)
PVDM2-8 is one DSP chip but less processing capacity than the DSP on the 16.
PVDM2-8 contains one TNETV2505GGW DSP; other PVDM2 modules contain 1 to 4 TNETV2510GGW DSPs (referred to C5510 in command outputs)

Codec Complexity and Flex Mode:

You can configure each DSP separately as either medium complexity, high complexity, or flex mode (C5510 only).Configure with voice-card x.  Then codec complexity (flex | high | medium). The DSP treats all calls according to its configured complexity, regardless of the actual complexity of the codec of the call. A resource with configured complexity equal or higher than the actual complexity of the incoming call must be available, or the call will fail.

3725 with NM-HDV in slot 0
!
Gateway#conf t
Gateway(config)#voice-card 0
Gateway(config-voicecard)#codec complexity ?
high    Set codec complexity high. High complexity, lower call density.
medium  Set codec complexity medium. Mid range complexity and call  density.
<cr>
Gateway(config-voicecard)#end

2811 with PVDM2-16 installed on main board.
!
GW_2811#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
GW_2811(config)#voice-card 0
GW_2811(config-voicecard)#codec complexity ?
flex    Set codec complexity Flex. Flex complexity, higher call density.
high    Set codec complexity high. High complexity, lower call density.
medium  Set codec complexity medium. Mid range complexity and call density.

GW_2811(config-voicecard)#end
GW_2811#

For example, if a call requires a high-complexity codec but the DSP resource is configured for medium complexity mode, the call will fail. However, if a medium-complexity call is attempted on a DSP configured for high complexity mode, then the call will succeed and Cisco IOS will allocate a high-complexity mode resource.

Voice cards that do not have C5510 DSPs can be configured only for medium or high complexity. Voice cards that are equipped with C5510 DSPs have an additional complexity option called flex complexity. Setting the codec complexity to medium or high sets the number of voice terminations per DSP to a static number. Flex mode has an advantage when calls of multiple codecs must be supported on the same hardware because flex mode can support more calls than when the DSPs are configured as medium or high complexity. However, flex mode does allow oversubscription of the resources, which introduces the risk of call failure if all resources are used. With flex mode it is possible to have fewer DSP resources than with physical TDM interfaces.

DSP Sharing & Farming:

DSP sharing and DSP farming has been used interchangeably. Cisco IOS dspfarm command is used for both DSP sharing and DSP farming. The DSP farming term was originally used to describe using DSPs as media resources for CallManager. DSP sharing allows C5510 DSPs to terminate a voice call from a voice port that is located in another hardware slot. This can reduce the possibility of oversubscription when using flex complexity. It can also make it easier to add DSPs to an existing gateway. It is physically much easier to add PVDM2s to an NM-HDV2 than it is to add them to the main board of an ISR.

  • A local DSP is on the same voice card as the voice port.
  • A remote DSP is on a different voice card than the voice port.
  • The DSPs on the main board of an ISR are local to the High-Performance WAN Interface Card (HWIC) and Extension Voice Module (EVM) slots and are remote to the NM slots.
  • DSP sharing supports only voice termination not transcoding.
  • DSP sharing is supported on T1/E1 interfaces only.
  • DSP sharing is supported on PVDM2s that are installed on the main board of 2800 and 3800 ISRs.
  • DSP sharing is supported on NM-HDV2s that are installed in a 2800, 3700, or 3800 router.
  • All voice cards that share DSPs must have synchronized clocks.

You should configure all voice cards that share DSPs for the same complexity.
GW_2811(config)#voice-card 0
GW_2811(config-voicecard)#dspfarm
GW_2811(config-voicecard)#end

Please refer to configuration for IOS Transcoding and Hardware Conferencing.

Transcoding & MTP Resources:

Transcoding can be configured on following devices:

  • WS-X6608-T1/E1
  • WS-SVC-CMM-ACT
  • PVDM installed in NM-HDV
  • PVDM2s installed in NM-HDV2
  • PVDM2s installed in ISRs
  • NM-HD-1V/2V/2VE (C5510)
  • 1751/1760

Maximum number of transcoding sessions per device:

Device {Max Sessions}

WS-6608-T1/E1 {24 per port, 192 per module}
WS-SVC-CMM-ACT {64}
C549 {4}
C549 in 1751/1760  {2}
C5510 medium complexity {8}
C5510 high complexity {6}
c5510 flex complexity {16*}

* It is only possible to support 16 transcoding sessions when you are transcoding between two low- complexity codecs. Because this situation is rare, the practical maximum number of transcoding sessions per DSP is 8.

Note: Software-based MTPs can support two voice streams with the same packetization rates. If the voice streams use different packetization rates, a DSP is required. The number of software-based MTP sessions is CPU bound and varies per router platform. You can configure only the C5510 DSP to provide hardware-based MTP services. Each DSP can support 16 MTP sessions. If a call requires MTP services and no MTP is configured, a transcoder is used if available.

Conferencing:

You need to consider only one factor when calculating conference bridge DSP requirements: the number of conferences required.For example, the C5510 supports two mixed-mode conferences with up to eight participants each. Therefore, it is technically accurate to say that the C5510 supports 16 conference participants. But this does not mean we can have 4 conferences of 4 participants each. Number of DSPs required depends on number of Conferences. Particpants per conference are irrelevant.

Device {Max Conference – Max participant}

C549                               {1 – 6}
C5510 (G.711 only)           {8 – 8}
C5510 (G.729a/G.729)     {2 – 8}

E1 Card & PVDM:

How many DSPs/PVDM are required as per E1?

As a rule of thumb always consider One PVDM2-64 for 2 E1s. Each E1 takes up 30 channels (2×30 = 60 > 64). If you are using 1 x E1 then you may use one PVDM2-32.

A PVDM-12 or PVDM2 (32 or higher) can provide voice termination, transcoding, and conferencing simultaneously. The restriction on conferencing is per DSP, not per PVDM. The gateway does track the number of voice ports that are allocated to prevent oversubscription of DSPs. Even though the DSPs are not assigned to a specific voice port, the number of DSPs available for other purposes has been reduced.

You can also use Cisco DSP Calculator to find out DSP resources needed as per requirement.

Useful Commands:

sh voice dsp voice

show voice dsp group all

show dspfarm all

Show dspfarm dsp active

Gateway Outputs:

This is from a gateway which is using on-board PVDM-12 chips.

Show diag#

Slot 2:
High Density Voice Port adapter
Port adapter is analyzed
Port adapter insertion time unknown
EEPROM contents at hardware discovery:
Hardware Revision        : 1.1
Top Assy. Part Number    : 800-03567-01
Board Revision           : E0
Deviation Number         : 0-0
Fab Version              : 02
PCB Serial Number        : JAB04390KNG
RMA Test History         : 00
RMA Number               : 0-0-0-0
RMA History              : 00
Product (FRU) Number     : NM-HDV=
EEPROM format version 4
EEPROM contents (hex):
0x00: 04 FF 40 00 CC 41 01 01 C0 46 03 20 00 0D EF 01
0x10: 42 45 30 80 00 00 00 00 02 02 C1 8B 4A 41 42 30
0x20: 34 33 39 30 4B 4E 47 03 00 81 00 00 00 00 04 00
0x30: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x40: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

HDV SIMMs: Product (FRU) Number: PVDM-12
SIMM slot 0: Empty.
SIMM slot 1: Empty.
SIMM slot 2: PVDM-12 SIMM present.
SIMM slot 3: PVDM-12 SIMM present.
SIMM slot 4: PVDM-12 SIMM present.
.

GWY01#sh voice dsp

DSP  DSP             DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC    VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ======= ===== ======= === == ========= == ===== ============
C549 007 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    01     0 95382631/933
51746
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    02     0 47552148/467
89172
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    03     0 20910677/206
87231
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    04     0 8394645/8321
251
C549 008 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    05     0 3004228/3000
106
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    06     0 983950/97893
8
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    07     0 538659/54259
5
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    08     0 2102367/2139
512
C549 009 01 {medium}  4.1.45 IDLE  idle      0  0 2/0:15    09     0 8154416/8309
524
02 {medium}  4.1.45 IDLE  idle         0 2/0:15    10     0 23548128/239
63817
03 {medium}  4.1.45 IDLE  idle         0 2/0:15    11     0 56429286/574
41003
04 {medium}  4.1.45 IDLE  idle         0 2/0:15    12     0 106057197/10
7984725

This is from another gateway using PVDM2-32 & PVDM2-16:

GW_WCH_01#sh voice dsp group all

DSP groups on slot 0:
dsp 1:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 150, reserved credits: 0
Signaling channels allocated: 16
Voice channels allocated: 6
Credits used: 90
Voice channels:
Ch01: voice port: 0/0/0:15.29, codec: g711ulaw, credits allocated: 15
Ch02: voice port: 0/0/0:15.3, codec: g711alaw, credits allocated: 15
Ch03: voice port: 0/0/0:15.1, codec: g711alaw, credits allocated: 15
Ch04: voice port: 0/0/0:15.2, codec: g711alaw, credits allocated: 15
Ch05: voice port: 0/0/0:15.4, codec: g711alaw, credits allocated: 15
Ch06: voice port: 0/0/0:15.31, codec: g711alaw, credits allocated: 15

dsp 2:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 225, reserved credits: 0
Signaling channels allocated: 16
Voice channels allocated: 1
Credits used: 15
Voice channels:
Ch01: voice port: 0/0/0:15.5, codec: g711alaw, credits allocated: 15

dsp 5:
State: UP, firmware: 4.4.24
Max signal/voice channel: 16/16
Max credits: 240
Group: FLEX_GROUP_VOICE, complexity: FLEX
Shared credits: 240, reserved credits: 0
Signaling channels allocated: 2
Voice channels allocated: 0
Credits used: 0

DSP groups on slot 1:
This command is not applicable to slot 1

DSP groups on slot 2:
This command is not applicable to slot 2

0 DSP resource allocation failure

GW_WCH_01#sh voice dsp

DSP  DSP                DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ========== ===== ======= === == ========= == ===== ============

—————————-FLEX VOICE CARD 0 ——————————
*DSP VOICE CHANNELS*
DSP   DSP                DSPWARE CURR  BOOT                         PAK   TX/RX
TYPE  NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABRT PACK COUNT
===== === == ======== ========== ===== ======= === == ========= == ==== ============
C5510 001 01 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  01    0    3128/3041
C5510 001 02 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  02    0  10125/10293
C5510 001 03 g711alaw     4.4.24 busy  idle      0  0 0/0/0:15  03    0    1432/1215
*DSP SIGNALING CHANNELS*
DSP   DSP                DSPWARE CURR  BOOT                         PAK   TX/RX
TYPE  NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABRT PACK COUNT
===== === == ======== ========== ===== ======= === == ========= == ==== ============
C5510 001 01 {flex}       4.4.24 alloc idle      0  0 0/1/1     06    0         18/0
C5510 001 02 {flex}       4.4.24 alloc idle      0  0 0/1/0     06    0        442/0
C5510 001 03 {flex}       4.4.24 alloc idle      0  0 0/1/3     02    0         18/0
C5510 001 04 {flex}       4.4.24 alloc idle      0  0 0/1/2     02    0        110/0
————————END OF FLEX VOICE CARD 0 —————————-

GW_WCH_01#sh voice dsp active

DSP  DSP                DSPWARE CURR  BOOT                         PAK     TX/RX
TYPE NUM CH CODEC       VERSION STATE STATE   RST AI VOICEPORT TS ABORT  PACK COUNT
==== === == ======== ========== ===== ======= === == ========= == ===== ============

—————————-FLEX VOICE CARD 0 ——————————
*DSP ACTIVE VOICE CHANNELS*
DSP      DSPWARE           VOX DSP               SIG DSP            PAK   TX/RX
TYPE     VERSION CODEC    NUM CH TS VOICEPORT SLT NUM CH TS RST AI ABRT PACK COUNT
===== ========== ======== === == == ========= === === == == === == ==== ============
C5510 4.4.24 g711alaw 001 01 01 0/0/0:15  000 001 05 01   0  0    0  15825/15801
C5510 4.4.24 g711alaw 001 02 02 0/0/0:15  000 001 06 02   0  0    0  22822/23053
C5510 4.4.24 g711alaw 001 03 03 0/0/0:15  000 001 07 03   0  0    0  14129/14030
C5510 4.4.24 g711alaw 001 04 04 0/0/0:15  000 001 08 04   0  0    0    6865/5661
C5510 4.4.24 g711alaw 001 05 05 0/0/0:15  000 001 09 05   0  0    0    4636/4588
C5510 4.4.24 g711alaw 002 01 06 0/0/0:15  000 001 10 06   0  0    0    3141/3180
————————END OF FLEX VOICE CARD 0 —————————-

Transcoding SessionsWS-6608-T1/E1 {24 per port, 192 per module}

WS-SVC-CMM-ACT {64}

C549 {4}

C549 in 1751/1760  {2}

C5510 medium complexity {8}

C5510 high complexity {6}

c5510 flex complexity {16*}

* It is only possible to support 16 transcoding sessions when you are transcoding between two low- complexity codecs. Because this situation is rare, the practical maximum number of transcoding sessions per DSP is 8.

I don’t remember how many times I came across customers complaining that their phones are either x minutes ahead or x minutes behind the normal time.

This is what I do whenever I come across time issues. This is for applicance based Call manager (5.x, 6.x, 7.x, 8.x)

  • Go to OS Admin > Settings > NTP server
  • Is there any NTP Server? If there is an IP address mentioned then try to Ping that IP from OS Admin > Services > Ping
  • Most of the time customers add the CUCM IP address as NTP address. This is not correct. Under OS Admin > NTP server – it should point to a NTP server within the network.
  • Find the gateway which is accessible from CUCM
  • Go to that Gateway and setup NTP as follows:
Router# Conf t
Router# clock timezone GMT 0
Router# clock summer-time BST recurring last Sun Mar 2:00 last Sun Oct 2:00
Router# ntp server 130.88.203.12 (or use 130.88.200.4)

There are several NTP servers where you can point your gateway.

List : http://www.timetools.co.uk/ntp-servers/ref/ntp-server-uk.htm
Do ping the IP address from gateway to make sure it is reachable.

TIP: Some low-end routers, such as the 1600 and 1700 series, don’t support the full NTP protocol. They support only a stripped-down version called SNTP. SNTP is a client-only version of NTP and can be configured with the sntp server command.

Also run the following commands to check Synchronization:

Sh ntp status
sh ntp association

Router# show ntp status

Clock is synchronized, stratum 4, reference is 130.88.203.12

nominal freq is 250.0000 Hz, actual freq is 249.9990 Hz, precision is 2**19
reference time is AFE2525E.70597B34 (00:10:22.438 PDT Mon Jul 5 1993)
clock offset is 7.33 msec, root delay is 133.36 msec
root dispersion is 126.28 msec, peer dispersion is 5.98 msec

Router#show ntp associations

address            ref clock         st      when    poll   reach   delay   offset    disp
~172.31.32.2       172.31.32.1       5       29      1024   377     4.2     -8.59     1.6
+~192.168.13.33    192.168.1.111     5       69      128    377     4.1     3.48      2.3
*~130.88.203.12    130.88.203.12     2       32      128    377     7.9     11.18     3.6
* master (synced), # master (unsynced), + selected, – candidate, ~ configured

The poll field represents the polling interval (in seconds) between NTP poll packets. As the NTP server and client are better synced and there aren’t dropped packets, this number increases to a maximum of 1024. The offset field is the calculated offset (in milliseconds) between the client and server time. The client slows down or speeds up its clock to match the server’s time value. The offset decreases toward zero over time. It probably will never reach zero since the packet delay between the client and server is never exactly the same, so the client NTP can’t ever exactly match its clock with the server’s. Additional details about the output field are explained in the Basic System Management Commands document.

If there’s an asterisk (*) next to a configured peer, then you are synced to this peer and using them as the master clock. As long as one peer is the master then everything is fine. However, the key to knowing that NTP is working properly is looking at the value in the reach field.

A pound sign (#) displayed next to a configured peer in the show ntp associations command output indicates that the router isn’t syncing with the peer even though NTP request and response packets are being exchanged. In this case, check the output of the show ntp associations detail command or the NTP debugs to see why the clocks aren’t syncing. You can use the show ntp associations detail  and show ntp status  commands to obtain additional information regarding the state of NTP.

I remember there was this one customer where I had to leave for several hours before the gateway sycnhed with external NTP server.

ACL is also important if you want to restrict access to your Router NTP clock. If you don’t put an ACL then your router is also acting as a NTP server for any external source. Although its not a major issue but a sophisticated attacker may access your gateway.

This is how you can configure an ACL:

To provide time services only to internal systems. Lets say internal network is 192.168.1.x.

1. Configure an ACL to restrict access to internal systems:

2. Configure NTP to use the ACL with the ntp access-group serve-only command:

RouterOne#config terminal
Enter configuration commands, one per line.  End with CNTL/Z.

Router#ntp server 130.88.203.12

Router#access-list 21 permit 192.168.0.0 0.0.255.255
Router#access-list 21 deny any
Router#ntp access-group serve-only 21
Router#^Z

  • Once the gateway is synched you can check the time at gateway by doing show clock
  • Add the loopback IP address of this gateway under OS Admin > NTP server of CUCM
  • The CUCM will show – The NTP server is accessible
  • Go to CUCM Admin > System > Phone NTP Reference > Enter the Loopback IP of gateway
  • Go to CUCM Admin > System > Date/Time Group and add NTP reference
  • The Phones will Synch after sometime
  • If you want to do it immediately then restart the device or reset the D/T group (this will reset all devices so make sure customer is aware of it)

MGCP gateway is a Survivable endpoint unlike H323 which is not survivable. What does it mean? It means that an active call through an MGCP gateway will not tear-down and the call will be preserved.

As discussed already in another section that an MGCP gateway terminates Layer 2 signalling at the gateway while Backhauling Layer 3 Q931 Signalling to CUCM through TCP port 2428. Terminating Layer 2 Signal (Q921) at gateway means the D-channel will remain up even if one of the call manager goes down. There are three steps involved in MGCP call preservation which are transparent to user:

  1. CUCM send AUEP (Audit Endpoint) to the gateway to find the state of each B-channel
  2. CUCM send AUCX for any Endpoint for which the gateway reports a preserved call
  3. Send Q.931 Status Enquiry messages to the PRI device attached to the gateway to confirm the status of any calls CUCM believes are preserved.

Verification:

  • Open the debug mgcp packet and debug isdn q931
  • Make an active call
  • Packets flow can be seen between gateway and Primary call manager – Subscriber (10.10.210.11)
  • Shut the Subscriber (deactivate ccm service at Sub)
  • On the gateway you will notice change of IP from Sub to Pub (10.10.210.10)
  • CUCM Pub will now send AUEP to gateway
  • Gateway will send back the status of each channel (with calls, without calls)
  • CUCM will send AUCX to gateway
  • Gateway will send connection details something like “D0000892839238”
  • Pub will take over L3 backhauling

Traces:
Calling 911 from Internal externsion:

Jun  1 20:54:38.905: ISDN Se0/0/0:23 Q931: TX -> SETUP pd = 8  callref = 0x0001
Bearer Capability i = 0x8090A2
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98381
Exclusive, Channel 1
Display i = ‘Joe Bloggs’
Calling Party Number i = 0x0081, ‘+12025676001’
Plan:Unknown, Type:Unknown
Called Party Number i = 0x81, ‘911’
Plan:ISDN, Type:Unknown
Jun  1 20:54:38.941: ISDN Se0/0/0:23 Q931: RX <- CALL_PROC pd = 8  callref = 0x8001
Channel ID i = 0xA98381
Exclusive, Channel 1
Jun  1 20:54:38.953: ISDN Se0/0/0:23 Q931: RX <- ALERTING pd = 8  callref = 0x8001
Progress Ind i = 0x8188 – In-band info or appropriate now available
Jun  1 20:54:43.089: ISDN Se0/0/0:23 Q931: RX <- CONNECT pd = 8  callref = 0x8001
Jun  1 20:54:43.113: ISDN Se0/0/0:23 Q931: TX -> CONNECT_ACK pd = 8  callref = 0x0001

Communication between Sub and gateway:

Jun  1 20:54:38.889: MGCP Packet sent to 10.10.210.11:2427—>
200 208 OK
I: 2

v=0
c=IN IP4 10.10.200.3
m=audio 16668 RTP/AVP 0 100
a=rtpmap:100 X-NSE/8000
a=fmtp:100 192-194,200-202
a=X-sqn:0
a=X-cap: 1 audio RTP/AVP 100
a=X-cpar: a=rtpmap:100 X-NSE/8000
a=X-cpar: a=fmtp:100 192-194,200-202
a=X-cap: 2 image udptl t38
<—

Connection established:

Jun  1 20:54:39.001: MGCP Packet received from 10.10.210.11:2427—>
MDCX 209 S0/SU0/DS1-0/1@R12.cisco.com MGCP 0.1
C: D00000000213927c000000F500000001
I: 2
X: 1
L: p:20, a:PCMU, s:off, t:b8, fxr/fx:t38
M: recvonly
R: D/[0-9ABCD*#]
Q: process,loop
<—

Jun  1 20:54:39.189: MGCP Packet received from 10.10.210.11:2427—>

MDCX 210 S0/SU0/DS1-0/1@R12.cisco.com MGCP 0.1
C: D00000000213927c000000F500000001
I: 2
X: 1
L: p:20, a:PCMU, s:off, t:b8, fxr/fx:t38
M: sendrecv
R: D/[0-9ABCD*#], FXR/t38
S:
Q: process,loop

v=0
o=- 2 0 IN EPN S0/SU0/DS1-0/1@R12.cisco.com
s=Cisco SDP 0
t=0 0
m=audio 21962 RTP/AVP 0
c=IN IP4 192.168.10.13
a=X-sqn:0
a=X-cap:1 image udptl t38
<—

Jun  1 20:58:20.055: MGCP Packet sent to 10.10.210.11:2427—>
NTFY 521011089 *@R12.cisco.com MGCP 0.1
X: 0
O:
<—

Jun  1 20:58:20.055: MGCP Packet received from 10.10.210.11:2427—>
200 521011089
<—

Subscriber went down – see how Publisher took over:

Jun  1 21:36:12.548: MGCP Packet sent to 10.10.210.10:2427—>
200 28
I:
X: 0
L: p:10-20, a:PCMU;PCMA;G.nX64, b:64, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:10-220, a:G.729;G.729a;G.729b, b:8, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:10-110, a:G.726-16;G.728, b:16, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:10-70, a:G.726-24, b:24, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:10-50, a:G.726-32, b:32, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:30-270, a:G.723.1-H;G.723;G.723.1a-H, b:6, e:on, es-cci, gc:1, s:on, t:10, r:g
R1#, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
L: p:30-330, a:G.723.1-L;G.723.1a-L, b:5, e:on, es-cci, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;FXR;PRE
M: sendonly, recvonly, sendrecv, inactive, loopback, conttest, data, netwloop, netwtest
<—

EVENT 1 = Audit endpoint

Jun  1 21:36:12.548: MGCP Packet received from 10.10.210.10:2427—>
AUEP 29 S0/SU0/DS1-0/4@R12.cisco.com MGCP 0.1
F: X, A, I
<—

Jun  1 21:36:12.548: MGCP Packet sent to 10.10.210.10:2427—>
500 29 Endpt Unknown
<—

Jun  1 21:36:12.552: MGCP Pa
R1#cket received from 10.10.210.10:2427—>
AUEP 30 S0/SU0/DS1-0/5@R12.cisco.com MGCP 0.1
F: X, A, I
<—

Jun  1 21:36:12.552: MGCP Packet sent to 10.10.210.10:2427—>
500 30 Endpt Unknown
<—

Jun  1 21:36:12.552: MGCP Packet received from 10.10.210.10:2427—>
AUEP 31 S0/SU0/DS1-0/6@R12.cisco.com MGCP 0.1
F: X, A, I
<—

Jun  1 21:36:12.552: MGCP Packet sent to 10.10.210.10:2427—>
500 31 Endpt Unknown

(output omitted)

EVENT 2 = Audit connection

Jun  1 21:36:12.572: MGCP Packet received from 10.10.210.10:2427—>
AUCX 49 S0/SU0/DS1-0/1@R12.cisco.com MGCP 0.1
I: 3
F: C, M
<—

Jun  1 21:36:12.576: MGCP Packet sent to 10.10.210.10:2427—>
200 49
C: D00000000213927e000000F500000002
M: sendrecv
<—

Jun  1 21:36:12.576: MGCP Packet received from 10.10.210.10:2427—>
RQNT 50 S0/SU0/DS1-0/1@R12.cisco.com MGCP 0.1
X: 1
R: R/iu, FXR/t38
Q: process,loop
<—

Jun  1 21:36:12.580: MGCP Packet sent to 10.10.210.10:2427—>
200 50 OK
<—

EVENT 3 = Status enquiry
Jun  1 21:36:12.592: ISDN Se0/0/0:23 Q931: TX -> STATUS_ENQ pd = 8  callref = 0x0002
Jun  1 21:36:12.600: ISDN Se0/0/0:23 Q931: RX <- STATUS pd = 8  callref = 0x8002
Cause i = 0x809E – Response to STATUS ENQUIRY or number unassigned
Call State i = 0x0A
Jun  1 21:36:13.732: MGCP Packet sent to 10.10.210.10:2427—>
NTFY 521011249 *@R12.cisco.com MGCP 0.1
X: 0
O:
<—

Jun  1 21:36:13.732: MGCP Packet received from 10.10.210.10:2427—>
200 521011249
<—

Jun  1 21:36:25.184: MGCP Packet sent to 10.10.210.10:2427—>
NTFY 521011252 *@R12.cisco.com MGCP 0.1
X: 0
O:
<—

MGCP Configuration Using Trombone Feature:

To register an MGCP gateway to call manager, follow these steps:

  • Do a show inventory OR show diag to check the position of E1/T1
  • Enable the E1/T1 by using command – card type T1 0 0 OR card type T1 0 1 (whatever the case may be)
  • Do show ver to check what gateway is it
  • isdn switch-type primary-ni
  • network-clock-particpate wic 0
  • network-clock-select 1 E1 0/0/0
  • Go to CCM and add MGCP gateway as per type
  • Make sure the name and domain are exactly the same as they are on gateway
  • If domain is cisco.com and the name of the router is R1 then under domain you would enter “R1.cisco.com”
  • Select the module in Slot 0 or Slot 1 as found out from earlier commands
  • Select the VWIC in proper subunit – Save the config
  • Select Device protocol as “Digital Access PRI”
  • Select Device pool
  • Call classification: offnet
  • Significant digits: 4 (as per internal extensions) – if you are not using any translation rules otherwise you can select all here
  • All checked – Display IE delivery, Redirecting Number IE Delivery – Outbound, Redirecting Number IE Delivery – Inbound
  • Check Linecode and Framing as per your requirements – ammend if required
  • Save the config
  • Go to the gateway and use the following commands for trombone feature:

ccm-manager config server 10.10.210.11
ccm-manager config

These commands will enable MGCP with following auto-generated commands:

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

ccm-manager redundant-host 10.10.210.10
ccm-manager mgcp
ccm-manager music-on-hold
ccm-manager config server 10.10.210.11
ccm-manager config
!
mgcp
mgcp call-agent 10.10.210.11 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 rtp payload-type g726r16 static
mgcp profile default
!
!

You will still need  to bind the interfaces to your Voice VLAN or Loopback as follows:

mgcp bind control source-interface FastEthernet0/0.20
mgcp bind media source-interface FastEthernet0/0.20

Also use the following command for DTMF-RELAY:

mgcp dtmf-relay voip codec all mode out-of-band

Under Serial interface, use the following commands will be auto-generated but you still need bchan command:

interface Serial0/0/0:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
isdn bind-l3 ccm-manager
isdn bchan-number-order ascending
no cdp enable
!

Do a ‘no shut’ at Voice port:

Voice-port 0/0/0:23
no shut
!

Do a show isdn status and check if L2 and L3 is up. L3 must show “MULTIPLE_FRAME_ESTABLISHED”.

HQ#show 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:
ACTIVE
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: 0x8000003F
Number of L2 Discards = 0, L2 Session ID = 3
Total Allocated ISDN CCBs = 0
R1#show voice port summa
IN OUT
PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC
=============== == ============ ===== ==== ======== ======== ==
0/0/0:23 01 xcc-voice up none none none y
0/0/0:23 02 xcc-voice up none none none y
0/0/0:23 03 xcc-voice up none none none y
0/0/0:23 04 xcc-voice up none none none y
0/0/0:23 05 xcc-voice up none none none y
0/0/0:23 06 xcc-voice up none none none y
—————————-OUTPUT OMITTED————————————-

If for any reason it is not showing Frame established and instead showing “TEI_ASSIGNED” then do the following:

int ser0/0/0:23
no isdn bind-l3 ccm-manager
isdn bind-l3 ccm-manager

This will bring the L3 interface up and you will see at the gateway:

Jun 28 22:40:31.591: %ISDN-6-LAYER2UP: Layer 2 for Interface Se0/0/0:23, TEI 0 changed to up

Also if you miss the “service mgcp” command during manual setup under controller then you won’t be able to bind L3 to ccm-manager.

MGCP Configuration CLI:

The minimum commands needed to configure MGCP are as follows:

!
ccm-manager fallback-mgcp
ccm-manager redundant-host 10.10.10.1
ccm-manager mgcp
ccm-manager music-on-hold
ccm-manager config server 10.10.10.2
!
mgcp
mgcp call-agent 10.10.10.2 service-type mgcp version 0.1
mgcp bind control source-interface GigabitEthernet0/0.102
mgcp bind media source-interface GigabitEthernet0/0.102
!

Verification:

Check the status of CCM registration as:

HQ#sh ccm
MGCP Domain Name: HQ.cisco.com
Priority        Status                   Host
============================================================
Primary         Registered               10.10.210.11
First Backup    Backup Ready             10.10.210.10
Second Backup   None

Current active Call Manager:    10.10.210.11
Backhaul/Redundant link port:   2428
Failover Interval:              30 seconds
Keepalive Interval:             15 seconds
Last keepalive sent:            22:42:36 UTC Jun 28 2010 (elapsed time: 00:00:03)
Last MGCP traffic time:         22:42:36 UTC Jun 28 2010 (elapsed time: 00:00:03)
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:  10.10.210.11
Current Link State: OPEN
Statistics:
Packets recvd:   12
Recv failures:   4
Packets xmitted: 11
Xmit failures:   0
PRI Ports being backhauled:
Slot 0, VIC 0, port 0
Configuration Auto-Download Information
=======================================
Current version-id: 1277766378-c7f9fddc-ae90-4306-bfb5-439bb5a2fcb6
Last config-downloaded:00:00:00
Current state: Waiting for commands
Configuration Download statistics:
Download Attempted             : 2
Download Successful          : 2
Download Failed              : 0
TFTP Download Failed         : 0
Configuration Attempted        : 1
Configuration Successful     : 1
Configuration Failed(Parsing): 0
Configuration Failed(config) : 0
Last config download command: New Registration
FAX mode: cisco
Configuration Error History:

HQ#sh mgcp
MGCP Admin State ACTIVE, Oper State ACTIVE – Cause Code NONE
MGCP call-agent: 10.10.210.11 2427 Initial protocol service is MGCP 0.1
MGCP validate call-agent source-ipaddr DISABLED
MGCP validate domain name DISABLED
MGCP block-newcalls DISABLED
MGCP send SGCP RSIP: forced/restart/graceful/disconnected DISABLED
MGCP quarantine mode discard/step
MGCP quarantine of persistent events is ENABLED
MGCP dtmf-relay voip codec all mode out-of-band
MGCP dtmf-relay for voAAL2 is SDP controlled
MGCP voip modem passthrough mode: NSE, codec: g711ulaw, redundancy: DISABLED,

(output omitted)

For debugging of Layer 2 use debug isdn q921 which must show Receiver Ready messages:

Jun 28 22:45:13.071: ISDN Se0/0/0:23 Q921: User TX -> RRp sapi=0 tei=0 nr=0
Jun 28 22:45:13.075: ISDN Se0/0/0:23 Q921: User RX <- RRf sapi=0 tei=0 nr=0

For debugging of Layer 3 call flow use debug isdn q931.

NOTE:  You may come across when your gateway is not registering to CUCM as per your ‘source-address’ or may be it is not registering at all. Issue the following command at the gateway

#no mgcp
#mgcp

The above two command are very important if you have manually configured MGCP (not using trombone) as ‘resetting’ the gateway at Call manager will not reset the gateway unless you issue the above command. If it’s configured by using trombone then ‘resetting’ at call manager will reset the gateway and mgcp as well. If you make any changes on gateway or call manager which is related to call routing then its always a good practice to reset the gateway as well.

How to check the E1/T1 card type and its position:

It is very important to find out correct card type and its slot position before you configure the gateway. Lets take an example:

HQ#sh diag
Slot 0:
C2811 Motherboard with 2FE and integrated VPN Port adapter, 2 ports
Port adapter is analyzed
Port adapter insertion time unknown
Onboard VPN             : v2.3.3
EEPROM contents at hardware discovery:
PCB Serial Number        : FOC11193CJH
Hardware Revision        : 1.0
Top Assy. Part Number    : 800-26920-03
Board Revision           : A0
Deviation Number         : 0
Fab Version              : 03
RMA Test History         : 00
RMA Number               : 0-0-0-0
RMA History              : 00
Processor type           : 87
Hardware date code       : 20070513
Chassis Serial Number    : FTX1123F0A5
Chassis MAC Address      : 001b.d504.2708
MAC Address block size   : 24
CLEI Code                : COM7C00ARA
Product (FRU) Number     : CISCO2811
Part Number              : 73-10258-04
Version Identifier       : V04
EEPROM format version 4
EEPROM contents (hex):
0x00: 04 FF C1 8B 46 4F 43 31 31 31 39 33 43 4A 48 40
0x10: 03 E7 41 01 00 C0 46 03 20 00 69 28 03 42 41 30
0x20: 88 00 00 00 00 02 03 03 00 81 00 00 00 00 04 00
0x30: 09 87 83 01 32 40 71 C2 8B 46 54 58 31 31 32 33
0x40: 46 30 41 35 C3 06 00 1B D5 04 27 08 43 00 18 C6
0x50: 8A 43 4F 4D 37 43 30 30 41 52 41 CB 8F 43 49 53
0x60: 43 4F 32 38 31 31 20 20 20 20 20 20 82 49 28 12
0x70: 04 89 56 30 34 20 D9 02 40 C1 FF FF FF FF FF FF

PVDM Slot 0:
16-channel (G.711) Voice/Fax PVDMII DSP SIMM PVDM daughter card
Hardware Revision        : 4.0
Part Number              : 73-8538-05
Board Revision           : B0
Deviation Number         : 0
Fab Version              : 04
PCB Serial Number        : FOC11194QU1
RMA Test History         : 00
RMA Number               : 0-0-0-0
RMA History              : 00
Processor type           : 00
Product (FRU) Number     : PVDM2-16
Version Identifier       : V01
EEPROM format version 4
EEPROM contents (hex):
0x00: 04 FF 40 03 EF 41 04 00 82 49 21 5A 05 42 42 30
0x10: 88 00 00 00 00 02 04 C1 8B 46 4F 43 31 31 31 39
0x20: 34 51 55 31 03 00 81 00 00 00 00 04 00 09 00 CB
0x30: 88 50 56 44 4D 32 2D 31 36 89 56 30 31 20 D9 02
0x40: 40 C1 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

PVDM Slot 1:
16-channel (G.711) Voice/Fax PVDMII DSP SIMM PVDM daughter card
Hardware Revision        : 4.0
Part Number              : 73-8538-05
Board Revision           : C0
Deviation Number         : 0
Fab Version              : 04
PCB Serial Number        : FOC124757LW
RMA Test History         : 00
RMA Number               : 0-0-0-0
RMA History              : 00
Processor type           : 00
Product (FRU) Number     : PVDM2-16
Version Identifier       : V01
EEPROM format version 4
EEPROM contents (hex):
0x00: 04 FF 40 03 EF 41 04 00 82 49 21 5A 05 42 43 30
0x10: 88 00 00 00 00 02 04 C1 8B 46 4F 43 31 32 34 37
0x20: 35 37 4C 57 03 00 81 00 00 00 00 04 00 09 00 CB
0x30: 88 50 56 44 4D 32 2D 31 36 89 56 30 31 20 D9 02
0x40: 40 C1 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x50: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x60: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0x70: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

WIC Slot 0:
T1 (2 port) Multi-Flex Trunk WAN daughter card

Hardware revision 1.0           Board revision C0
Serial number     35872274      Part number    800-04477-04
Version Identifier     V01      FRU Part Number     VWIC-2MFT-T1
Test history      0x0           RMA number     00-00-00
Connector type    PCI
EEPROM format version 1
EEPROM contents (hex):
0x20: 01 22 01 00 02 23 5E 12 50 11 7D 04 00 00 00 00
0x30: 60 00 00 00 07 07 09 00 FF FF FF FF FF FF FF FF

As you can see that Slot 0 is motherboard and the WIC card is at Sub Slot 0 of Slot 0 making its position 0 0.

So the card type command will be card type T1 0 0.

Another way of finding it as follows:

HQ#sh inventory
NAME: “2811 chassis”, DESCR: “2811 chassis”
PID: CISCO2811         , VID: V04 , SN: FTX1123F0A5

NAME: “Two port T1 voice interface daughtercard on Slot 0 SubSlot 0”, DESCR: “Two port T1 voice interface daughtercard” PID: VWIC-2MFT-T1      , VID: V01, SN: 35872274

NAME: “PVDMII DSP SIMM with one DSP on Slot 0 SubSlot 4”, DESCR: “PVDMII DSP SIMM with one DSP”
PID: PVDM2-16          , VID: V01 , SN: FOC11194QU1

NAME: “PVDMII DSP SIMM with one DSP on Slot 0 SubSlot 5”, DESCR: “PVDMII DSP SIMM with one DSP”
PID: PVDM2-16          , VID: V01 , SN: FOC124757LW

MGCP Call Flow – ISDN PRI

Posted: June 21, 2010 in Gateways, MGCP

In a typical ISDN setup for an Inbound call from PSTN to an IP phone (-SCAC-)

CCM  –  GW  – PSTN

Setup <——-

Call proceeding ——->

Alerting ——->

Connect ——>

  1. Gateway and PSTN switch exchange Q921 Layer 2 information. Gateway registers with ISDN switch and terminates Q921 at gateway.
  2. A Q931 Setup message arrives. The gateway puts it in a packet and send it to CCM via TCP port 2428 (Backhaul)
  3. CCM then sends three Q.931 messages – Call proceeding, Alerting and connect
  4. After the call is brought up, CCM sends the gateway an MGCP MDCX to tell it parameters for connection
  5. Gateway sends an ack of connection

MGCP – How it works?

Posted: June 21, 2010 in Gateways, MGCP

General:

MGCP stands for Media Gateway Control Protocol. It’s a client-server protocol which means that it has  to depend on Media Controller (Call agent) for call routing. In case of Cisco this MC is a CUCM. The Call agent controls the ports of a MGCP gateway.

UDP Port 2427  is used for communication between Call manager and Gateway. TCP port 2428 is used for PRI Backhauling and Keepalives from Gateway to Call manager. PRI backhauling is process where layer 3 information is passed back to Call manager while layer 2 stays at the gateway. Prior to Call manager 3.1, gateway use to pass all the L2 (Q921) information back to Call manager. Call manager use to serve Q921 and Q931 messages. So loss of communication with that call manager would bring the L2 and L3. Losing L2 means losing D-channel effectively dropping the call. In new method of Call preservation an MGCP gateway preserves a call by terminating L2 at the gateway itself. We will discuss Call Preservation in another section.

MGCP messages between CCM and Gateway:

AUEP -> Audit Endpoint -> CCM to GW

AUCX -> Audit Connection-> CCM to GW

CRCX-> Create Connection-> CCM to GW

DLCX-> Delete Connection-> CCM to GW or GW to CCM

EPCF-> Endpoint Configuration-> CCM to GW

MDCX-> Modify Connection-> CCM to GW

RQNT-> Request Notification-> CCM to GW

NTFY-> Notify-> GW to CCM

RSIP-> Restart in progress-> GW to CCM

Call Flow:

  1. Phone goes off-hook
  2. CCM asks Calling Gateway to create connection to that endpoint
  3. Gateway creates a connection and send an SDP message to CCM
  4. CCM asks receiving gateway to create connection on one of its endpoints
  5. Receiving gateway creates a connection and sends its own SDP
  6. CCM sends the Session Description information from receiving gateway to Calling gateway with MDCX message
  7. Communication is now bi-directional and call can proceed
  8. When an endpoint hangs up, CCM sends DLCX to both gateways