MGCP
原理的には、イベント通知はゲートウェイの個々の端点ごとに異なるコールエージェントに送ることができる(コールエージェントのプログラムで、NotifiedEntity パラメータで設定できる)。 しかし実際には、ゲートウェイ上の全端点が同じコールエージェントで制御されるのが望ましい。 他のコールエージェントは冗長性を確保するためにあり、主コールエージェントが故障したりゲートウェイとの接続が切れたときに働く。 そのような障害が発生したとき、バックアップのコールエージェントがMGを再プログラムし、そのバックアップのコールエージェントの制御で動作するように変更しなければならない。 このときスプリットブレインシンドロームと似たような現象が発生しうるため、ゲートウェイを現在どのコールエージェントが制御しているかを判断するのに監査機能を使うことができる。
MGCPは、コールエージェント群が互いをなんらかの方法(おそらく不特定のプロトコル)で知っており、重大故障など必要に応じて関係を再構築できると仮定している。 そのフェイルオーバー機能は計画停止と予期しない停止の両方を考慮している。
MGCPのパケットは他の多くのプロトコルのパケットとは似ていない。 TCPではなくUDPのポート2427を使い、データグラムのフォーマットには空白文字を区切りとして使っている。 MGCPパケットにはコマンドと応答がある。
コマンドは4文字のコマンド名で始まり、応答は3桁の数字による応答コードで始まる。
コマンドは以下のような9種類がある。
次の2つのコマンドは、コールエージェントがメディアゲートウェイに(状態を)問い合わせる。
次の3つのコマンドは、コールエージェントがメディアゲートウェイ上のRTPコネクションを管理する(メディアゲートウェイも自身の判断でコネクションを削除する場合にDLCXを送ることができる)。
次の1つのコマンドは、コールエージェントがメディアゲートウェイに対してイベント通知を要求する。
次の1つのコマンドは、コールエージェントがメディアゲートウェイの符号化設定を変更する。
次の1つのコマンドは、メディアゲートウェイがコールエージェントに対して、RQNTコマンドで以前にコールエージェントが要求したイベントを検出したことを知らせる。
次の1つのコマンドは、メディアゲートウェイがコールエージェントに対して再起動中であることを知らせる。