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:
- CUCM send AUEP (Audit Endpoint) to the gateway to find the state of each B-channel
- CUCM send AUCX for any Endpoint for which the gateway reports a preserved call
- 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:
<—