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?
are the main requirements of this App. Thank you!
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:
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:
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.