H.323 and SIP are both referred to as "call control" protocols. They allow a device, such as a desk phone, softphone, or videoconferencing system to place a call to another person over IP. H.323 was created by the ITU-T and was primarily focused on videoconferencing. SIP was developed by the IETF and was primarily focused on serving as a replacement for the desktop desk phone. While the initial focus of each protocol was slightly different, they are both used for voice phones and videoconferencing today. SIP is now extensively used in carrier networks today as a replacement of legacy PSTN ("Public Switched Telephone Network", i.e., "the old phone system") protocols.
MGCP refers to Media Gateway Control Protocol. It was adoped by Cable Labs as a standards in PacketCable and published as an informational RFC in the IETF. What MGCP does is allow a "Call Agent" to interface with "Media Gateways", allowing a PSTN gateway to effectively be decomposed into a control function (the Call Agent) and more or more media functions (the Media Gateways). The idea was to make it simple to scale out the number of PSTN gateway ports a call agent could support. Cisco's Communications Manager can act as the "Call Agent" and control the MGCP gateways directly. Another protocol like MGCP is called H.248 (or "Megaco"). This is a standard created jointly by the IETF and ITU and is a superset of the functionality found in MGCP, though the signaling protocol is quite different. Today, continued development of H.248 takes place exclusively in the ITU, I believe, and it is extensively used in carrier networks. (Both SIP and H.248 are core protocols in the 3GPP IP Multimedia Subsystem (IMS) used by legacy carriers to replace PSTN protocols.)
SCCP (sometimes referred to as "Skinny") is a Cisco proprietary protocol used for line-side control of phones connected to Communications Manager. SCCP was created because it was important to be able to control various buttons on the phone (e.g., hold, transfer, park, pick-up) and the standard call control protocols (H.323 and SIP) do not have a means of controlling buttons on phones. Cisco has been moving to replace SCCP with SIP in most instances for actual call establishment, while physical keys, soft keys, and UI elements are managed through other proprietary mechanisms.
I hope that helps.
Paul, I arrived here because I was researching the current state of MGCP development.
Currently, MGCP does not support caller-id on fxo ports, and this to me is one of the greatest drawbacks of an otherwise feature rich protocol.
SIP and H323 do not provide as much reporting information as MGCP from a Call detail Record standpoint as they are both "peer" protocols, while MGCP is a client server protocol.
So the question is, is there any further work being done on MGCP, and if so, is support for caller-id on fxo ports likely in a future release? Who do we need to speak to to get this deficiency in the protocol addressed?
Looking forward to your response. Thanks much.
Presently, I'm not working on gateways and so I might not be the best person to ask. However, I'm unaware of any development happening on MGCP at the moment. Any discussion on progressing MGCP would take place on the IETF's "megaco" mailing list (https://www.ietf.org/mailman/listinfo/megaco).
However, with respect to caller ID or other signaling information that is outside of bearer control, this should be backhauled to the Call Agent. See https://tools.ietf.org/html/rfc3435#section-18.104.22.168. That talks about backhauling signaling information and the work done in SIGTRAN (https://datatracker.ietf.org/wg/sigtran/documents/). Depending on the PSTN signaling protocol, it might be SS7 or ISDN signaling that is backhauled to a Call Agent. The caller identification information would be in that backhauled signaling. It puts burden on the Call Agent to digest the Q.921 or MTP2/3 and higher layer stack information.
This design is rather deliberate, since there is a lot of information in SS7 and ISDN, some of which overlaps and some does not. It's best not to pollute the simple gateway control protocol with all of the legacy signaling information. Additionally, there are some use cases where that signaling simply is not needed (e.g., connecting two IP legs through a media processing function controlled via MGCP where call control for either side is via H.323 or SIP, or in other words a distributed session border controller).
I personally like to avoid SCCP and MGCP. SCCP because it is proprietary, MGCP because it lacks granularity and is not easy to trouble shoot. PLus if you want SRST on an MGCP controlled gateway, there is a big change that you need to rely on H323 as fallback anyway
Dennis, please elaborate on your comment that MGCP lacks granularity. From my (focused) perspective, looking at the CDR (call detail record) information provided by a MGCP gateway vs a SIP gateway, the MGCP provides more granularity. For example if you have a PRI terminated on both a (CUCM controlled) MCGP gateway and on a SIP gateway and outgoing calls to the PSTN were hunting from channel 23 up to channel 1, the cdr (call detail records) from the MGCP gateway would show exactly which channel on the PRI the call originated on, whereas with the SIP gateway the CDR would just say that a call was made on the PRI trunk. Same applies to an H232 gateway, you wouldnt be able to tell from the CDR which channel the call originated from.
So from the perspective of CDR, MGCp provides more granular info.
I believe you are referring to other areas of operation but from your post I cannot tell.