Saturday, January 5, 2008

CCVP Notes - MGCP Protocol

The following are some notes on MGCP. These may be useful for CVoice and GW/GK studies. Please check out Post One as the reason for sharing my vast knowledge(other than for the good of mankind of course!)

MGCP is a Master/Slave protocol that allows a Call Agent such as Call Manager to track and to control the state of every voice port on a registered gateway. The Call Agent handles all aspects of call control and the gateway preforms the media translation function. MGCP support includes analog and digital interfaces. Gateways are divided into two categories:

Residential Gateway - analog or RJ11 interfaces to VoIP
Trunking Gateway - Digital or PSTN to VoIP

Of course a gateway could perform both functions so this distinction does not make a lot of sense.

There are a different versions of MGCP in use today:
Version 0.1 is supported by Call Manager
Version 1.x is supported by Gateways

Functionality extended by Packages. Use "mgcp package-capability ?" to view.

MGCP Pros
Ease of Configuration
Ease of Administration
Call Survivability for analog and T1 CAS trunks
Encryption support
QSIG support

MGCP Cons
Dependence on a centralized Call Agent - MGCP Fallback is used to alliveate.
No support for FAX signalling and negotiation - This may haved changed. See
http://www.cisco.com/en/US/products/sw/iosswrel/ps1839/products_feature_guide09186a0080106902.html
No Call Survivability for PRI and BRI calls
No FXO Caller ID - I am looking at using H323 at analog locations to overcome this limitation.

MGCP Endpoint Addressing

Analog -
AALN/SLOTx/SUBUNITx/PORTx@Hostname
such as
AALN/S0/SU0/1@Branch223
AALN stands for Analog Access Line Endpoint

Digital - SLOTx/TRUNKTYPE-PORTx/ISDN
B-CHANNELx@Hostname
such as
S0/ds1-1/12@Branch747
TRUNKTYPE could be ds1, e1,e3 -PORT is the digital port on the VWIC card.

Hostname is the host name of the router not a DNS name.

MGCP Operations

SDP (Session Description Protocol) is used to provided detail of MGCP connections. Connections provide endpoint detail such as codec, ip addresses and bandwidth.

Endpoints generate events such as offhook or digits dialed.

The Call Agent then instructs the gateway to send signals such is dial tone or ringing.

MGCP Messages

CreateConnection(CRCX)
From Call Agent - contains call setup parameters gateway responds with a SDP Return Code.

NotificationRequest(RQNT)
From Call Agent - tells gateway what sort of events to monitor for. It also uses this message to instruct the gateway how to respond to an event.

Notify(NFTY)
From the gateway - Sends to the Call Agent when the gateway detects an event.

ModifyConnection(MDCX)
From the Call Agent - instructs the gateway to modify the connection.

DeleteConnection(DLCX)
From the Call Agent - instructs the gateway to terminate the connection. The gateway responds with a SDP message that contain call stats shuch as packet/byte tx/rx counts, average jitter, average delay and number of lost packets.

AuditEndpoint(AUEP)
From Call Agent - used to retrieve endpoint info and status

AuditConnection(AUCX)
From Call Agent - used to retrieve connection info and parameters

Endpoint Configuration(EPCF)
From Call Agent - configures endpoint parameters

RestartInProgress(RSIP)
From the gateway - indicates an endpoint is coming into service, going out of service or restarting. There is a graceful restart that will allow connections to finish, a forced that drops all connections or a restart that indicates the gateway is going to reboot.

MGCP PRI Backhaul

MGCP handles PRI in an interesting way. Layer 2 Q.921 messages are processed by the gateway but Layer 3 Q.931 messages are backhauled to the Call Manager using TCP port 2428. This accounts for the lack of Call Survivability for PRI/BRI using MGCP.

MGCP Fallback

MGCP Fallback should be implemented when MGCP is used. MGCP Fallback allows the router to revert to H323 mode if communication is lost to the Call Manager cluster and uses dial peers for the fallback dialplan.

MGCP DTMF Relay

DTMF is sent as RTP packets by default. Using compression could distort the tones. DTMF relay breaks out the tones and sends them differently. MGCP supports:

Cisco Proprietary

Named Service Event(NSE)

Named Telephony Event(NTE) - Gateway (NTE-GW) or Call Agent(NTE-CA) controlled

These methods still send the tones via RTP but they are coded differently so the receiver recognises them as DTMF.

Out of Band - DTMF is sent as MGCP control messages

No comments: