- 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 *@kl2951-router.shelfdrilling.com MGCP 0.1
RM: graceful
<--- p="">
callref = 0x8001
- 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 *@kl2951-router.shelfdrilling.com MGCP 0.1
RM: restart
<--- p="">
--->- 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
<--- p="">
--->- 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@kl2951-router.shelfdrilling.com MGCP 0.1
F: X, A, I
<--- p="">
--->- 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
<--- p="">
--->- 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@kl2951-router.shelfdrilling.com MGCP 0.1
I: 6
F: C, M
<--- p="">
--->- 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
<--- p="">
--->- 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@kl2951-router.shelfdrilling.com MGCP 0.1
X: 1
R: R/iu
Q: process,loop
<--- p="">
--->
Jan 27 21:49:12 MST: MGCP Packet sent to 10.170.4.10:2427--->
200 791 OK
<--- p="">
--->- 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 <- pd="8<span" status="" style="mso-spacerun: yes;"> ->
--->
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)
Grt article...hats off!!!
ReplyDelete