Saturday, March 19, 2011

MGCP Vs H.323

MGCP - IETF standard = Media Gateway Control Protocol.                                                                 
  •  Master/Slave Protocol - Call Agent (CUCM) is used to control the gateway ports.
  • Complete control of dial-plan from the CUCM.
  • Centralized call processing (CUCM).  * Requires dial-peers only for SRST.
  • Survivable end point by default- PRI backhaul.
  • No Caller-ID support with FXO port.

H.323 - ITU standard = ITU Umbrella recommendation.
  • Peer to Peer Protocol.
  • dial-plan controlled locally from H.323 gateway
  • distributed call processing.  CUCM/PSTN sends call to gateway & gateway decides (based on dial-peer) which port/call manager to use for outbound/inbound calls. 
  • Caller -ID supported with FXO port.
  • Not a survivable end point by default.  Survivability (call preserving) is supported form 12.4(9T) IOS release. Requires manual configuration, as listed below. Also requires CUCM service parameter to set for "Allow peer to Preserve H.323 calls"
    • #voice service voip
    • #h323
    • #call preserve

Survivability (Call Preserving):

When there is WAN connection failure or degraded WAN connection between gateway & CUCM or ccm.exe service is stopped on the call manager -

if the gateway is MGCP, all active calls would be preserved, but all new calls tried would be failed & supplementary services like hold, transfer would not function until gateway registers with secondary Call Manager.  The MGCP gateway would try to re-register with secondary Call Manager in the CUCM group.  When the gateway re-registers with secondary Call Manager, call preservation involves three steps which are completey transperent to the users.
  1. CUCM sends AUEP to the gateway - to find status of each B-channel on gateway.
  2. CUCM sends AUCX to end point for which gateway reportes as a preserved call.
  3. Finally Q.931 status enquiry message to confirm the status of calls that CUCM believes are preserved.
if the gateway is H.323, all active calls would be lost (if call preserve is not configured).  Because as soon as CUCM detects TCP connection lost it cleares all calls & closes the TCP sockets for all active calls by sending TCP FIN message.  If the gateway came up within a short while the gateway would receive the TCP FIN message and clears all calls.  If the gateway took a while to come up, the TCP FIN message will not reach the gateway.  But gateway would try sending keepalive messages to the CUCM for restoring the connection with primary Call Manager.When the Call Manager receives these keepalive messages it sends TCP RST (reset - tear down all active calls) message in response as it closed all TCP sockets.  So either way H.323 gateway could not preserve any active calls during failover & fail back scenarios.

If the "call preserve" is configured (supported on IOS versions starting 12.4(9T)) this command causes H.323 gateways to ignore socket closure messages (socket error) on H.225 & H.245 connections for active calls.  That is how H.323 gateway preserves active calls using call preserver configuraiton.

PRI backhaul.
Transporting of signalling information from MGCP gateway to Call Control Agent (CUCM) is called PRI backhauling.
  • PRI backhauling is carried over TCP port 2428.
  • All Q.931 messages & D-channell signalling information is passed between CUCM & gateway using this TCP connection.
  • All L2 information is terminated at the gateway & L3 information is passed to CUCM - Call Agent.
  • MGCP gateway does not parse or have any knowledge of these signalling packets.

Useful Q.931 timers

T310 - how long to wait to get response such as ALERTING or CONNECT
T303 - how long to wait to get response such as Call Proceeding for SETUP message.


  1. What do you mean by "No Caller-ID support." for MGCP?

  2. FXO port with MGCP. Sorry I should have noted as "No Caller-ID support with FXO port".