cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Walkthrough Wednesdays

MGCP Switchover

896
Views
5
Helpful
1
Comments
  • MGCP GW sends keepalives to primary CUCM every 15 sec using empty NTFY message
  • CUCM acknowledges the message using 200OK
  • If no-response is received within 30 sec, MGCP will consider CUCM dead and will try to switchover to next CUCM.
  • In case secondary isn’t available, the gateway can fall back to using the default H.323 session application, if it is configured.

 

Note: The difference between switchover and fallback. Switchover between CUCM servers while fallback will take place when all CUCM servers aren't responding.

 

  • If the Primary CUCM fails:
    • D-channel will remain up since Q921 messages terminate on the gateway
    • Backhaul will go down since Q931 messages terminate on CUCM
  • During CUCM Switchover, calls will be treated as follow:
    • Active calls will be preserved because D-Channel is up
    • New calls will be rejected because backhaul is to CUCM is down
    • Calls in Transition state will be cleared
  • The messaging will be as follow:

 

  • After NTFY messages being sent for 30 seconds without response, MGCP Gateway will send RSIP Graceful message to Primary Failed CUCM (without a response from CUCM)

 

Jan 27 21:49:11 MST: MGCP Packet sent to 10.170.4.11:2427--->

RSIP 329754022 *@mgcpgateway.testdomain.com MGCP 0.1

RM: graceful

<---

 

  • MGCP Gateway will send RSIP Restart message to Secondary CUCM

 

Jan 27 21:49:11 MST: MGCP Packet sent to 10.170.4.10:2427--->

RSIP 329754024 *@mgcpgateway.testdomain.com MGCP 0.1

RM: restart

<---

 

  • Secondary CUCM will respond with 200OK Acknowledgement confirming that it is alive

 

Jan 27 21:49:11 MST: MGCP Packet received from 10.170.4.10:2427--->

200 329754024

<---

 

  • Secondary CUCM will send AUEP messages for each Voice Port or PRI Channel requesting X (RequestIdentifer), I (ConnectionId), A (Capabilities)

 

Jan 27 21:49:11 MST: MGCP Packet received from 10.170.4.10:2427--->

AUEP 760 S0/SU0/DS1-0/1@mgcpgateway.testdomain.com MGCP 0.1

F: X, A, I

<---

 

  • MGCP Gateway will respond with 200OK acknowledgement providing the requested details.

 

Jan 27 21:49:11 MST: MGCP Packet sent to 10.170.4.10:2427--->

200 760

I: 6

X: 1

L: p:10-20, a:PCMU;PCMA;G.nX64, b:64, e:on, gc:1, s:on, t:10, r:g, nt:IN;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE

L: p:10-220, a:G.729;G.729a;G.729b, b:8, e:on, gc:1, s:on, t:10, r:g, nt:IN;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE

L: p:10-110, a:G.726-16;G.728, b:16, e:on, gc:1, s:on, t:10, r:g, nt:IN;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE

L: p:10-70, a:G.726-24, b:24, e:on, gc:1, s:on, t:10, r:g, nt:IN;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE

L: p:10-50, a:G.726-32, b:32, e:on, gc:1, s:on, t:10, r:g, nt:IN;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE

M: sendonly, recvonly, sendrecv, inactive, loopback, conttest, data, netwloop, netwtest

<---

 

  • If there is no active call, I will be empty and X will be '0'.
  • If there is an active call, I will point to ConnectionId of the call and X will point to RequestIdentifier of the call

 

  • Once Secondary CUCM completes the query of AUEP, it will send AUCX message using I (ConnectionId) requesting for C (CallId) and M (ConnectionMode)

 

Jan 27 21:49:11 MST: MGCP Packet received from 10.170.4.10:2427--->

AUCX 790 S0/SU0/DS1-0/1@mgcpgateway.testdomain.com MGCP 0.1

I: 6

F: C, M

<---

 

  • MGCP GW will acknowledge the message with 200OK and provide the details

 

Jan 27 21:49:11 MST: MGCP Packet sent to 10.170.4.10:2427--->

200 790

C: D000000002924996000000F500000001

M: sendrecv

<---

 

  • Secondary CUCM will request MGCP Gateway to monitor DTMF Events using RQNT message. MGCP will acknowledge the request

 

Jan 27 21:49:12 MST: MGCP Packet received from 10.170.4.10:2427--->

RQNT 791 S0/SU0/DS1-0/1@mgcpgateway.testdomain.com MGCP 0.1

X: 1

R: R/iu

Q: process,loop

<---

 

Jan 27 21:49:12 MST: MGCP Packet sent to 10.170.4.10:2427--->

200 791 OK

<---

 

  • Secondary CUCM will send Q.931 Status Enquiry message to the PRI device attached to the gateway to confirm the status of any calls CUCM believes are preserved.

 

Jan 27 21:49:12 MST: ISDN Se0/0/0:15 Q931: TX -> STATUS_ENQ pd = 8 callref = 0x0001

Jan 27 21:49:12 MST: ISDN Se0/0/0:15 Q931: RX <- STATUS pd = 8 callref = 0x8001

       Cause i = 0x829E - Response to STATUS ENQUIRY or number unassigned

       Call State i = 0x0A

 

Note: You can't enable or disable MGCP call preservation at GW or CUCM level unlike H323.

 

Note the difference between SIP/H323 & MGCP. Here call preservation matters if its PRI or non-PRI endpoint because of backhaul concept. However, in SIP/H323, it won't matter since those protocols are independent.

 

  • During fallback, MGCP gateway will keep probing CUCM servers and once any of them is restored, MGCP GW (in fallback mode) will Rehome to register with that CUCM.
  • The message will be RSIP Graceful > RSIP Restart > 200OK > AUEP > 200OK
  • There are multiple modes of switchback:
    • Graceful (after last call completed) - Default
    • Immediate (even with active calls)
    • Never (disable switchback)
    • Schedule (schedule switchback)
    • Uptime (wait for x time of CUCM restoration before switchback. This is guard time to avoid flapping)
Comments
aalejo
Contributor

Great  document.

Small Correction: When Call Agent does an AuditEndpoint (AUEP) after a switchover, on the response from the Media Gateway, RequestIdentifier (X) does not have to be zero, Since X increment on every call agent request, X will be the latest value sent by previous call agent.

 

Example from:

 

https://dreamforccie.wordpress.com/2010/08/07/understanding-mgcp-packets-a-brief-overview-and-example-with-debugs/

 

Aug  7 09:11:25.591: MGCP Packet received from 10.10.210.11:2427—>
AUEP 74 S0/SU0/DS1-0/1@HQ.ccievoice.com MGCP 0.1
F: X, A, I
<—

– MGCP GW sends the status of the requested bearer channel regardless of active/block/idle state with ‘200’ message
————————————————————————————————————————————————
Aug  7 09:11:25.595: MGCP Packet sent to 10.10.210.11:2427—>
200 74
I:
X: 1
L: p:10-20, a:PCMU;PCMA;G.nX64, b:64, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-220, a:G.729;G.729a;G.729b, b:8, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-110, a:G.726-16;G.728, b:16, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-70, a:G.726-24, b:24, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:10-50, a:G.726-32, b:32, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:30-270, a:G.723.1-H;G.723;G.723.1a-H, b:6, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
L: p:30-330, a:G.723.1-L;G.723.1a-L, b:5, e:on, gc:1, s:on, t:10, r:g, nt:IN;ATM;LOCAL, v:T;G;D;L;H;R;ATM;SST;PRE
M: sendonly, recvonly, sendrecv, inactive, loopback, conttest, data, netwloop, netwtest
<—

– CA Agent again sends another AUEP message to check the status of DS1-0/2 circuit
———————————————————————————————————