Search code examples
cross-platformsip

SIP(Session Initiation Protocol) Vs. MGCP(Media Gateway Control Protocol)


I am developing a push to talk app and I searched for possible protocols I can use. Those were H.323, MGCP and SIP. Also I came to know that the SIP is dominant over H.323 when it comes to the scalability but, I could not find anything that compares SIP and MGCP such that we can decide a clear winner. Since this is a mobile app, the scalability should be there as well as the security. Can you help me providing your valuable thoughts?

  1. Implementation of channel concepts.
  2. Notification generation to the user about channel activity.
  3. Implementing the push button activity(Walkie-Talkie style communication).
  4. Containerized server deployment.

are the main requirements of this App. Thank you!


Solution

  • MGCP is all about a controlling media gateways, hence - Media Gateway Control Protocol.

    If you're transcoding a large volume of calls, or moving media traffic from one medium to another, MGCP is the perfect protocol, it's very basic call control + SDP for defining the media attributes.

    MGCP has 3 "verbs" in IETF speak (actions it can perform):

    SIP is all about setting up and tearing down sessions, in your context, this means phone calls, it too uses SDP for defining the media attributes.

    SIP has a plethora of "METHODS" - same as Verbs in MGCP - actions it can perform:

    • INVITE
    • CANCEL
    • UPDATE
    • REFER
    • NOTIFY
    • MESSAGE
    • SUBSCRIBE
    • REGISTER
    • PUSH
    • OPTIONS

    and a pile more that can be added through extensions to the protocol, these methods open up features like call transfer, call hold, failure management, presence, SIP Registration, etc. You'll find these features in SIP but not MGCP.

    On the specifics:

    1. Implementation of channel concepts. - SIP will be far easier to do this with, lots of open source options.
    2. Notification generation to the user about channel activity. - Again SIP has the NOTIFY method for this
    3. Implementing the push button activity(Walkie-Talkie style communication). - SIP UPDATE will allow you to start and stop media stream.
    4. Containerized server deployment. - All depends on what stacks you use.

    I'd suggest you take a look at 3GPP's Mission Critical Push to Talk protocol as a reference of how do to this over SIP - That's essentially what MCPPT is.