MGCP Call Preservation

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:
<—

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s