Media Gateway Control Protocol – MGCP
July 29th, 2010 by
admin
In following blog posts I will write about different Cisco based VoIP solutions and I will try to cover some foundation topics like voice signaling protocols and so on. My aim is to present different solutions and possibilities and I hope that you will find it interesting and helpful.
About MGCP and reasons to use it
Media Gateway Control Protocol is client server voice signaling protocol. Call control is handled by call agent (Cisco Unified Communications Manager) and media translation is performed by voice gateway. It is important to mention that it is only client – server model based voice signaling protocol on the market. Also, it is well know for its simple configuration (it is just matter of configuring call agent and remembering several gateway commands), centralized management and one of the main benefits is it’s use for MGCP back-haul QSIG configurations (in short: Layer 2 signalization is handled by voice gateway which is under control of call agent, and layer 3 signalization is forwarded to call agent – Cisco Unified Communications Manager – CallManager). Please note that MGCP is often called Megaco by telco people.
MGCP Messages
- Create connection – CRCX
- Notification request – RQNT
- Notify – NTFY
- Modify connection – MDCX
- Delete connection – DLCX
- Audit endpoint – AUEP
- Endpoint configuration – EPCF
- Restart in progress – RSIP
MGCP Call flow
MGCP configuration basics
This part of text will cover MGCP configuration – just foundations. Please note that it won’t include all specific configurations, it will just cover base configuration, but in several new posts I will try to cover different configuration scenarios and solutions.
So, let assume that MGCP call agent, in our case Cisco Unified Communications Manager – CallManager is working on IP address 192.168.1.95. Also, assume that redundant CallManager is working on IP address 192.168.1.100. This text does not show CallManager side of configuration of a gateway and I assume that that part is already successfully configured (I will eventually edit this blog post to include that configuration, afterwards)
Configurations is as follows:
1. From global configuration mode start MGCP proces:
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#mgcp
Router(config)#
2. Next thing we need to do is to configure call agent, redundant call agent and we need to inform voice gateway that call agent is under control of MGCP. We can do that as follows:
Router(config)#mgcp call-agent 192.168.1.95
Router(config)#ccm-manager redundant-host 192.168.1.100
Router(config)#ccm-manager mgcp
3. Once done with that, we can configure out Cisco Unified Communications Manager gateway options. So to do that, navigate to your CallManager and in Cisco Unified CM Administration configuration menu select Device > Gateway > Add new. Select your voice gateway model from the drop down list and click Next. For Protocol select MGCP and click Next. Once there, configure Domain name (please note that this field needs to be in following format: gatewayhostname.domainname, for example CCIEVoiceLab.localnetwork.lab) and other required options (add cards and preform complete gateway configuration). Once you are done with voice gateway configuration you are required to configure dial plan which will include this gateway into configuration. That goes beyond the scope of this blog post and I will write about it in some of following blog posts.
4. Once done with CallManager configuration we need to instruct voice gateway about the TFTP address where CallManager stores configuration, and that is typically IP address of the CallManager it self:
Router(config)#ccm-manager config server 192.168.1.95
Router(config)#
5. Once we are done with that we can instruct our gateway to download and apply configuration by issuing following command:
Router(config)#ccm-manager config
Router(config)#
Wait several seconds and you can verify your downloaded and applied configuration with following command:
Router#show running-config
Router(config)#
At that point your voice gateway will be controlled by call agent, in this case CallManager. To verify your configuration please give a check to Troubleshooting commands.
MGCP Troubleshooting
Once you are done with MGCP gateway configuration, you can verify your configuration by issuing following commands:
Router#show mgcp
MGCP Admin State ACTIVE, Oper State ACTIVE – Cause Code NONE
MGCP call-agent: 192.168.1.95 Initial protocol service is MGCP 0.1
MGCP validate call-agent source-ipaddr DISABLED
MGCP validate domain name DISABLED
MGCP block-newcalls DISABLED
MGCP send SGCP RSIP: forced/restart/graceful/disconnected DISABLED
…
This command will show all MGCP settings, timers and so on.
Router#show ccm-manager
MGCP Domain Name: Router
Priority Status Host
======================================
Primary Registering with CM 192.168.1.95
First Backup Down 192.168.1.100
Second Backup NoneCurrent active Call Manager: None
Backhaul/Redundant link port: 2428
…
This command will show registration status and other statistics.
Beside above commands, we can use:
Router#show mgcp endpoint
Router#show voice port summary
That would be all for this post. I hope that this blog post is helpful and if you do have some questions in regards to MGCP please let me know and we can try to find solution. In next several posts I will write about MGCP fallback, backhaul and DTMF configurations.
Posted in IT, cisco, education, networks, voip |
No Comments »





Please fill all required fields (fields indicated with *). Also, make sure to put COP file in root directory of your FTP server, so that CallManager is able to find it as valid upgrade option. You will need to provide Directory (put / for root on your FTP server), Server (IP address of your FTP server), Username and Password (valid user information) and Transfer protocol which can be SFTP and FTP.
Once done with filling up required field, press Next and Call Manager will attempt to contact FTP server. If there is valid COP file (valid upgrade option), and if we are working with proper user information and running FTP server, Call Manager will list valid upgrade options as per following screenshot:
Please note that valid COP file for Nokia S60 phone type is called cmterm-nokia_s60_001-sccp.cop.sgn. If that is what you have listed, press Next and importing process will start (downloading):
Once it is downloaded you will be presented with MD5 hash value which you can compare with one provided by Nokia from security reasons:
Once you press Next, import process will start and you will be presented with progress as follows:




Now, assuming that you have installed Call Connect client (.sis) on your Nokia Eseries device and that it works fine, we can continue with configuration. In this section, we will add new phone with phone type device Nokia S60 as listed above. Please notice that product type is now listed as Nokia S60 and that Device protocol is Skinny:
We will needed to select Phone Button Template and Commong Phone Profile fields since they are required. Also, that includes Presence Groups and Device Security Profile fields as shown on following screenshot:
Once done with basic configuration, we need to save changes by hiting Save button. Then, we need to configure associated information which includes configuration of directory numbers as per following:
Once done with directory number configuration, click on Save and you will have your new Nokia S60 phone configured and listed on phone list, as follows:
Once we are done with configuring Cisco Unified Communications Manager side which includes importing COP file and configuring new phone, we can start configuring Call Connect client which we installed on Nokia Eseries phone.













Although I was never working with Juniper Networks stuff directly I need to admit that I always wanted to. Since I am working with Cisco related stuff mostly I didn’t needed to, or it is better to say that I just didn’t have opportunity or need to work that much with other competitors networking hardware. Definitely, this is not a time or place to talk about Cisco’s market share .) Good friend of mine was working with Juniper for like almost a decade and he was always speaking how they do have some nice procedures for solving some nightmare networking scenarios related to security, QoS, and things like that. What I really like about Juniper is their operating system JunOS, which is working at the top of BSD (and for those guys that are coming from the FOSS community is always something nice to know about). Also, as far as i know their configuration file is stored in really nice and organized manner so that you can see dependant part of configurations (for example VPN part of configuration starts with { and ends with }).






