Media Gateway Control Protocol (MGCP) est un protocole permettant de contrôler les passerelles multimédia (Media Gateways) qui assurent la conversion de la voix et de la vidéo entre les réseaux IP et le Réseau Téléphonique Commuté (RTC).
L'architecture de base et l'interface de programmation sont décrites dans la RFC 2805[1] et le protocole lui-même est défini dans la RFC 3435[2], qui a remplacé la RFC 2705[3]. MGCP succède à Simple Gateway Control Protocol (SGCP). Il est concurrencé par le protocole Megaco, issu de la collaboration de l'IETF (RFC 3525[4]) et de l'UIT (recommandation H.248.1), et qui est incompatible avec MGCP.
MGCP est un protocole de signalisation et de contrôle d'appel utilisé par les systèmes de Voix sur IP (VoIP) qui sont reliés au Réseau Téléphonique Commuté (RTC). Les passerelles multimédia qui permettent de passer d'un réseau à l'autre sont contrôlées par un centre de contrôle des appels, couramment appelé softswitch, qui rappelle le standard du réseau commuté. Les passerelles peuvent être des équipements « peu intelligents », qui la plupart du temps ne font qu'exécuter les commandes envoyées par le softswitch. Dans d'autres modèles de voix sur IP, comme H.323, les passerelles multimédia sont plus intelligentes et mettent en place un traitement de la signalisation plus complexe.
MGCP s'appuie sur le protocole Session Description Protocol (SDP) pour indiquer et négocier les flux audio et vidéo à transmettre durant l'appel.
MGCP est un système centralisé composé :
Le contrôleur (MGC) utilise MGCP pour dire à la passerelle multimédia (MG) :
MGCP permet également au standard d'interroger l'état actuel des terminaux sur la passerelle multimédia.
La passerelle multimédia utilise MGCP pour signaler des évènements comme le raccrochage ou les numéros composés au standard.
La passerelle de signalisation se trouve souvent sur le même équipement physique que la passerelle multimédia, mais ce n'est pas une obligation. Le contrôleur n'utilise pas MGCP pour contrôler la passerelle de signalisation ; on utilise plutôt les protocoles SIGTRAN pour transporter la signalisation entre la passerelle de signalisation et le contrôleur.
La passerelle multimédia possède une liste des contrôleurs qui ont le droit de la programmer. Cette liste ne comporte normalement qu'un ou deux contrôleurs.
En principe, les évènements peuvent être notifiés à différents contrôleurs pour chaque terminal connecté à la passerelle. Néanmoins, en pratique, il est généralement souhaitable qu'à tout moment tous les terminaux sur une passerelle soient sous le contrôle d'un même contrôleur, les autres contrôleurs n'étant mis en place que pour fournir de la redondance dans le cas où le contrôleur principal tombe en panne ou perd contact avec la passerelle multimédia. Dans de tels cas, le contrôleur de secours reprogramme la passerelle multimédia pour qu'elle passe sous son contrôle. Cette situation est délicate, car deux contrôleurs peuvent avoir perdu contact l'un avec l'autre tandis qu'ils essaient tous deux de contrôler la même passerelle multimédia. La possibilité d'interroger la passerelle pour savoir quel contrôleur en a actuellement la charge peut être utilisée pour résoudre de tels conflits.
MGCP suppose que les contrôleurs multiples se tiennent mutuellement au courant de l'état de la passerelle (sans pour autant préciser le protocole à utiliser pour cela), et qu'ils sont capables de le reconstruire si nécessaire (en cas de panne catastrophique). Il faut tenir compte à la fois des indisponibilités prévues et de celles qui n'étaient pas prévues.
Les données MGCP sont d'ordinaire contenues dans des segments UDP, sur le port 2427. Ils utilisent un format texte dont le séparateur est l'espace.
Un PDU MGCP est soit une commande, soit une réponse. Chaque commande MGCP possède un identifiant de transaction et reçoit une réponse. Les commandes commencent par un verbe de quatre lettres. Les réponses commencent pas un code réponse de trois chiffres.
Les neuf (9) verbes de commande sont :
AUEP, AUCX, CRCX, DLCX, EPCF, MDCX, NTFY, RQNT, RSIP
Deux verbes sont utilisés par le contrôleur pour consulter l'état de la passerelle multimédia :
AUEP - Audit Endpoint AUCX - Audit Connection
Trois verbes sont utilisés par le contrôleur pour gérer une connexion RTP sur la passerelle :
CRCX - Create Connection DLCX - Delete Connection MDCX - Modify Connection
La passerelle peut également envoyer un DLCX quand elle a besoin de mettre fin à une connexion de son propre chef.
Un verbe est utilisé par le contrôleur pour demander à être prévenu lorsque des évènements surviennent sur la passerelle et pour demander à la passerelle d'appliquer certains signaux :
RQNT - Request for Notification
Un verbe est utilisé par le contrôleur pour modifier l'encodage du côté « téléphonie classique » sur la passerelle :
EPCF - Endpoint Configuration
Un verbe est utilisé par la passerelle pour faire remonter au contrôleur un évènement, le contrôleur ayant demandé auparavant à en être averti au moyen de RQNT :
NTFY - Notify
Un verbe est utilisé par la passerelle pour indiquer au contrôleur qu'elle est en train de redémarrer :
RSIP - Restart In Progress
(en) Cet article contient des extraits de la Free On-line Dictionary of Computing qui autorise l'utilisation de son contenu sous licence GFDL.