Vous êtes sur la page 1sur 21

Le protocole MEGACO/H.

248
EFORT
http://www.efort.com

1 MEGACO

MEGACO (Media Gateway Control Protocol) spcifi par lIETF dans le RFC 3525 prsente
de nombreuses similarits avec son prdcesseur, le protocole MGCP aussi dfini par l'IETF
dans le RFC 2705. Il sagit dun protocole de contrle entre les entits MGC (Media Gateway
Controller) et MGW (Media Gateway) de l'architecture NGN (Next Generation Network).
Le MGC contrle les activits des MGWs. Le MGC prend en charge le contrle et la
signalisation de lappel alors que les MGWs reoivent des instructions des MGCs leur
indiquant les actions quils doivent entreprendre. Ces actions concernent ltablissement et la
libration de connexions ; une connexion reprsente une association entre une terminaison
en entre et une terminaison en sortie du MGW. Par exemple, la terminaison en entre peut
correspondre une terminaison dun circuit de parole alors que la terminaison en sortie peut
tre assimile un port de communication IP/GE ou ATM. Les MGWs ont diffrentes
appellations selon quils s'interfacent des quipements dusager (RGW, Residential
Gateway), des rseaux daccs (AGW, Access Gateway), ou des commutateurs
tlphoniques daccs ou de transit (TGW, Trunking Gateway).
MEGACO sappelle H.248 lITU-T et est donc dfini conjointement par lIETF et lITU-T.
Le protocole MEGACO permet ces deux entits MGC et MGW de schanger des
transactions. Chaque transaction sexprime par lenvoi dune transactionRequest par lune
des entits et lenvoi dune transactionReply par lautre entit.
Une transactionRequest consiste en une suite de commandes alors quune transactionReply
contient une suite de rponses correspondantes.
Le paragraphe 2 introduit les concepts de terminaison et contexte permettant de modliser
une connexion avec MEGACO. Le paragraphe 3 liste les commandes MEGACO utilises
entre le MGC et le MGW. Le paragraphe 4 dcrit les descripteurs qui correspondent des
paramtres prsents dans les commandes MEGACO. Les commandes MEGACO sont
passes dans des transactions MEGACO, prsentes au paragraphe 5. Des scnarios
d tablissement et de libration de communications avec MEGACO sont dcrits au
paragraphe 6.

2 Terminaison et contexte

Le modle de connexion du protocole MEGACO est un modle orient objet. Il dcrit les
entits logiques ou objets au sein du MGW qui peuvent tre contrls par le MGC. Les
principales abstractions utilises dans ce modle de connexion sont les terminaisons
(termination) et les contextes (context).
Le protocole MEGACO permet ltablissement dappels multiparties la diffrence du
protocole MGCP qui ne permet que des appels entre deux parties. Une terminaison
MEGACO commence ou termine un ou plusieurs flux. Une terminaison est dcrite par un
ensemble de proprits regroupes dans un ensemble de descripteurs inclus dans des
commandes. Une terminaison a une identit unique (TerminationId) affecte sa cration
par le MGW.

Certaines terminaisons qui reprsentent des entits physiques sont semi-permanentes. Un


circuit de parole raccord un MGW est un exemple de terminaison semi-permanente.

Copyright EFORT 2011 1


Dautres terminaisons reprsentant des flux temporaires tels que les flux RTP nexistent que
pendant la dure de lappel correspondant. Il sagit de terminaisons temporaires.

Un contexte est une association entre terminaisons. Il existe un type spcial de contexte, le
contexte null , qui contient toutes les terminaisons non associes une autre terminaison.
Par exemple, dans un Trunking Gateway, toutes les lignes au repos sont reprsentes par
des terminaisons du contexte null .

Les terminaisons temporaires sont cres par la commande Add dont la fonctionnalit est
similaire CreateConnection du protocole MGCP. Elles sont supprimes par la commande
Subtract correspondant DeleteConnection avec MGCP.
Une terminaison physique est rajoute un contexte par la commande Add en tant retire
du contexte null dans lequel elle se trouve par dfaut. Elle est retire dun contexte
donn par la commande Subtract en tant dplace au contexte null .

Les terminaisons sont dsignes par un identificateur de terminaison qui est une squence
arbitraire, choisie par le MGW.
Les identificateurs de terminaisons physiques peuvent tre dtermins par le MGW. Ils
peuvent tre choisis de faon possder une structure. Par exemple, un identificateur de
terminaison peut se composer d'un faisceau de circuits (Trunk) et d'une jonction locale dans
ce faisceau.
Un mcanisme de remplacement par des caractres gnriques, utilisant deux types de
caractre gnrique, peut tre utilis avec les identificateurs de terminaison. Ces deux
caractres sont ALL (*) et ANY ou CHOOSE ($). Le premier sert dsigner simultanment
plusieurs terminaisons tandis que le second sert indiquer un MGW qu'il doit slectionner
une terminaison correspondant l'identificateur de terminaison partiellement spcifi. Cela
permet un MGC de demander au MGW de choisir par exemple un circuit dans un faisceau
de circuits.
Si le caractre ALL est utilis dans l'identificateur de terminaison d'une commande, l'effet est
identique une rptition de la commande avec chacun des identificateurs de terminaison
rels qui correspondent. Etant donn que chacune de ces commandes peut gnrer une
rponse, la taille de la rponse complte peut tre importante. Si des rponses individuelles
ne sont pas requises, une rponse gnrique peut tre demande. Dans ce cas, une seule
rponse est gnre et elle contient l'UNION de toutes les rponses individuelles qui
auraient t autrement gnres, les valeurs rptes tant supprimes. Par exemple, tant
donn une terminaison Ta dont les proprits seraient p1=a, p2=b et une terminaison Tb
dont les proprits seraient p2=c, p3=d, une rponse UNION contiendrait un identificateur de
terminaison remplac par un caractre gnrique et la squence de proprits p1=a, p2=b,c
et p3=d. La rponse gnrique peut tre particulirement utile dans les commandes d'Audit.

La figure 1 dcrit les concepts de contexte et terminaison. L'astrisque encadr de chaque


contexte reprsente l'association logique des terminaisons appartenant au contexte.
Le premier contexte actif dans le MGW reprsente un appel avec trois participants. Le
second contexte est le contexte null . Le troisime contexte correspond un appel
classique entre deux participants.

Copyright EFORT 2011 2


Context Termination T2
Termination T1 SCN Bearer Channel
RTP Stream *
Termination T3
SCN Bearer Channel

Context
Media Gateway Termination T4
(MGW) * SCN Bearer Channel

Context
Termination T5 Termination T6
RTP Stream * SCN Bearer Channel

Figure 1 : Contextes et terminaisons MEGACO

Lexemple ci-dessous (Figure 2) reprsente un scnario dappel en attente o il sagit de


dplacer une terminaison dun contexte un autre. Les terminaisons T1 et T2 appartiennent
au contexte C1 pour un appel audio. Un second appel audio reprsente une terminaison T3
en attente de communication avec T1. T3 est la seule terminaison du contexte C2. T1
accepte lappel de T3, mettant T2 en garde.

Context C1
Termination T2 Termination T1
RTP Stream * SCN Bearer Channel

Context C2
Media Gateway Termination T3
(MGW) * SCN Bearer Channel

Figure 2 : Configuration du scnario appel en attente

Cette action conduit dplacer T1 du contexte C1 au contexte C2 (Figure 3).

Context C1
Termination T2 Termination T1
RTP Stream * SCN Bearer Channel

Context C2
Termination T3
* SCN Bearer Channel

Figure 3 : Configuration de lappel aprs excution du service

Copyright EFORT 2011 3


2.1 Commandes MEGACO
Le protocole MEGACO dfinit huit commandes permettant la manipulation des entits
logiques du modle de connexion, savoir les contextes et les terminaisons (Tableau 1).
La majorit des commandes est mise par un MGC un MGW. Il sagit des commandes
Add (ajout dune terminaison un contexte), Modify (Modification dune terminaison dans un
contexte), Subtract (Retrait dune terminaison dun contexte), Move (Dplacement dune
terminaison de son contexte un autre contexte), AuditValue et AuditCapabilities (lecture
des valeurs courantes et possibles des proprits dune terminaison), Notify (notification de
loccurrence dun vnement sur une terminaison) ServiceChange (suspension ou reprise
dune terminaison).
Deux commandes peuvent tre mises dun MGW un MGC : Notify (notification
dvnements survenus dans le MGW) et ServiceChange (notification de la suspension ou
reprise dune terminaison).

VERBE DIRECTION
Add MGCMGW
Modify MGCMGW
Subtract MGCMGW
Move MGCMGW
AuditValue MGCMGW
AuditCapabilities MGCMGW
Notify MGWMGC
ServiceChange MGCMGW ou MGWMGC
Tableau 1 : Les commandes MEGACO

2.2 Add
La commande Add (MGC MGW) ajoute une terminaison un contexte. Si la commande
ne spcifie pas le contexte dans lequel ajouter la terminaison, un nouveau contexte est alors
cr. Si la commande ne spcifie pas un identificateur de terminaison (terminationId) mais le
caractre spcial ($), le MGW cre une terminaison temporaire, lui associe un identificateur
et lajoute au contexte. Add correspond la commande MGCP CreateConnection.
Une terminaison semi-permanente est connue du MGC et une commande Add sur ce type
de terminaison prcise lidentifiant de la terminaison. Par contre, une terminaison temporaire
est cre par le MGW qui lui affecte un identifiant.

2.3 Modify
La commande Modify (MGC MGW) permet de modifier les valeurs des proprits dune
terminaison.
Modify est similaire la commande ModifyConnection du protocole MGCP.

2.4 Subtract
La commande Subtract (MGC MGW) soustrait une terminaison dun contexte et retourne
des statistiques relatives lactivit de la terminaison dans ce contexte. La commande
correspondante du protocole MGCP est DeleteConnection.
La commande Subtract applique la dernire terminaison dans un contexte supprime le
contexte. Une commande Subtract applique une terminaison semi-permanente dplace
cette terminaison dans le contexte null . Cette mme commande applique une
terminaison temporaire supprime la terminaison.

Copyright EFORT 2011 4


2.5 Move
La commande Move (MGC MGW) dplace une terminaison de son contexte un autre
contexte. Move ne peut pas tre utilise afin de dplacer une terminaison du ou au contexte
null ; en effet, ce sont les commandes Add et Subtract respectivement qui ralisent ces
oprations.

2.6 AuditValue
La commande AuditValue (MGC MGW) retourne la valeur courante des proprits,
vnements, signaux et statistiques dune ou plusieurs terminaisons.

2.7 AuditCapabilities
La commade AuditCapabilities (MGC MGW) retourne les valeurs des proprits, des
signaux et vnements associs une ou plusieurs terminaisons. A la diffrence de la
commande AuditValue, AuditCapabilities retourne lensemble des valeurs possibles.

2.8 Notify
La commande Notify permet un MGW dinformer un MGC de loccurrence dvnements
sur une terminaison du MGW. Les vnements rapporter ont t spcifis par le MGC
dans les commandes Add ou Modify. Cette commande est identique la commande Notify
du protocole MGCP.
Par contre, la diffrence du protocole MGCP, il nexiste pas de commande
NotificationRequest permettant au MGC de demander au MGW de dtecter des vnements
particuliers et de notifier leur occurrence au MGC. En effet, lorsquun MGC ajoute une
terminaison un contexte, cette terminaison qui est un objet, inclut dans ses proprits les
vnements qui doivent tre dtects.

2.9 ServiceChange
Le MGW utilise la commande ServiceChange afin dinformer un MGC qu'une terminaison ou
un groupe de terminaisons est sur le point d'tre mis hors service ou vient d'tre remis en
service. Cette commande est aussi mise par un MGC pour informer un MGW que ce
dernier est pass sous le contrle dun autre MGC. A la rception de ce message, le MGW
met une commande ServiceChange vers le nouveau MGC pour formaliser ltablissement
dune association. Le MGC peut galement utiliser cette commande pour demander un
MGW de mettre en service ou hors service une terminaison ou un groupe de terminaisons.

2.10 Paquetage
Diffrents types de MGW peuvent mettre en uvre des terminaisons ayant des
caractristiques trs diffrentes dune terminaison lautre. Par exemple, une terminaison
connecte une ligne tlphonique analogique sera diffrente de celle connecte un
circuit de parole. Il nest donc pas pratique de dfinir au sein du protocole lui-mme toutes
les proprits de terminaison qui pourraient exister, tous les vnements qui pourraient tre
dtects, tous les signaux qui pourraient tre mis et toutes les statistiques qui pourraient
sappliquer.
Afin de prendre en compte les variations entre les diffrents types de terminaison et ainsi
dassurer linteroprabilit entre MGCs et MGWs, MEGACO inclut le concept de paquetage
(package).
Un paquetage est un regroupement de proprits, vnements, signaux et statistiques et
une terminaison met en uvre un ensemble de paquetages. Un MGC peut auditer une
terminaison pour connatre les paquetages quelle supporte.
Plusieurs paquetages de base sont dfinis par MEGACO. Parmi ceux-ci, figurent les
paquetages Tone Detection (dtection de tonalit), Tone Generator (gnrateur de tonalit),

Copyright EFORT 2011 5


DTMF generator (Tonalits DTMF gnres) et Analog Line Supervision (paquetage qui
dfinit les vnements et signaux pour une ligne analogique, tels que On Hook, Off Hook et
Ring).
MEGACO fournit aussi un guide pour la dfinition de nouveaux paquetages qui doivent tre
enregistrs auprs de lIANA.
Les proprits, vnements, signaux et statistiques dfinis dans les paquetages ainsi que
leurs paramtres sont rfrencs par des identificateurs (Ids, Identifiers) uniques.

3 Descripteur

MEGACO dfinit un ensemble de descripteurs pouvant tre utiliss dans les commandes et
les rponses MEGACO (Figure 4). Ces descripteurs constituent les paramtres des
commandes et rponses. En fonction de la commande ou rponse, un descripteur donn
sera obligatoire, optionnel ou non autoris. Il est dailleurs rare quun descripteur soit
obligatoire.

Un descripteur a le format suivant :


DescriptorName = <someID> {parm = value, parm = value_.}.

Les paramtres peuvent tre entirement spcifis, sur-spcifis ou sous-spcifis :


Les paramtres entirement spcifis ont une seule valeur non ambigu, que l'metteur
de commande demande au rcepteur de la commande d'utiliser pour le paramtre spcifi.
Les paramtres sous-spcifis utilisent la valeur "$" afin de permettre au rcepteur de la
commande de choisir toute valeur qu'il peut prendre en charge.
Les paramtres sur-spcifis possdent une liste de valeurs possibles dont l'ordre dans
la liste correspond l'ordre de slection prfr par l'metteur de la commande. Le
rcepteur de la commande choisit une seule valeur dans la liste offerte puis renvoie cette
valeur l'metteur de la commande.

Descripteurs

Modem
Multiplex
Media
Termination State
Stream
Local Control
Local and Remote
Events
Event Buffer
Signals
Audit
Service Change
Digit Map
Statistics
Packages
Observed Events
Topology

Figure 4: Les descripteurs de commandes MEGACO

Modem descriptor : Ce descripteur spcifie le type de modem ainsi que les paramtres
utiliss dans une connexion par modem pour des communications voix, vido et donnes.
Les types de modem suivants sont considrs : V.18, V.22 (1200bit/s), V.22bis (2400 bit/s),

Copyright EFORT 2011 6


V.32 (9600 bit/s), V.23bis (14400 bit/s), V.34 (33600 bits/s), V.90 (56 kbit/s), V.91 (64 kbit/s),
ainsi que RNIS.
Une terminaison ne possde pas de descripteur de modem par dfaut. Ce descripteur
pourra tre rajout la suite dune commande MEGACO Add ou Modify.

Multiplex descriptor : Des flux de diffrents mdias peuvent tre transports dans une ou
plusieurs connexions de rseau. Ce descripteur associe le mdia au support. Les types de
multiplex suivant sont pris en charge: H.221, H.223, H.226, et V.76.

Media descriptor : Ce descripteur spcifie les paramtres pour lensemble des flux media.
Ces paramtres sont structurs en deux descripteurs, Termination State Descriptor qui
spcifie les proprits dune terminaison qui sont indpendant dun flux (stream) et un ou
plusieurs Stream Descriptors, chacun dcrivant un unique flux media (media stream).
Un stream est identifi par un StreamID. Le StreamID est utilis afin de lier les streams qui
appartiennent un contexte donn. Plusieurs streams en sortie dune terminason doivent
tre synchroniss. Un Stream Descriptor contient jusqu trois descripteurs subordonns,
appels Local Control, Local et Remote. La relation entre ces descripteurs est reprsente
par la hirarchie suivante :

Media Descriptor
TerminationStateDescriptor
Stream Descriptor
LocalControl Descriptor
Local Descriptor
Remote Descriptor

Termination State Descriptor : Ce descripteur contient les deux proprits ServiceStates et


EventBufferControl et des proprits dune terminaison qui ne sont pas spcifiques un
stream donn.
La proprit ServiceStates indique si la terminaison peut tre utilise. Trois valeurs sont
possibles : test , out of service et in service . La valeur test indique que la
terminaison est actuellement teste. La valeur in service prcise que la terminaison est
actuellement utilise ou est disponible pour son utilisation ; il sagit de la valeur par dfaut de
la proprit ServiceStates. La valeur out of service indique que la terminaison ne
peut pas tre utilise.
La proprit EventBufferControl spcifie si les vnements dtects par la terminaison
doivent tre mis en mmoire ds leur dtection (LockStep) ou tre traits immdiatement
(Off).

Events Descriptor : Le paramtre EventDescriptor contient un identificateur de requte et


une liste dvnements que le MGW doit dtecter et notifier au MGC tels que Off Hook, On
Hook et des rsultats de tests de continuit. Lidentificateur de requte est utilis par le MGC
afin de corrler la requte mise avec les notifications retournes par le MGW. Les
vnements dtects sont retourns immdiatement au MGC moins que la valeur de la
proprit EventBufferControl (spcifie dans le descripteur TerminationState) nindique quil
faille les mettre en mmoire.

Signals Descriptor : Ce descripteur contient la liste de signaux que le MGW doit appliquer
une terminaison. Les signaux peuvent tre appliqus un unique stream ou tous les
streams dune terminaison. Les signaux sont dfinis dans des paquetages et sont nomms
avec un nom de paquetage (dans lequel ils sont dfinis). Parmi les signaux figurent ring
tone, dial tone. Il existe trois types de signaux :
On/off : Le signal dure jusqu' ce qu'il soit interrompu.
Timeout : Le signal dure jusqu lexpiration dun temporisateur ou jusqu son
positionnement off.

Copyright EFORT 2011 7


Brief : La dure du signal est si courte que le signal sarrtera de lui-mme. Aucun
temporisateur est ncessaire.
Ce descripteur inclut une liste de signaux squentielle. Cette liste consiste en un
identificateur de liste, la liste de signaux qui doivent tre appliqus squentiellement, et un
type de signal.

Audit Descriptor : Ce descripteur spcifie une liste dinformation que le MGW doit retourner
au MGC. Cette information est un ensemble de descripteurs qui doivent tre prsents dans
la rponse. Il sagit des descripteurs Modem, Multiplex, Events, Media, Signals,
ObservedEvents, DigitMap, Statistics, Packages et EventBuffer.

Service Change Descriptor : Ce descripteur est utilis avec la commande MEGACO


ServiceChange et inclut des informations telles que le type de changement de service qui
sest produit (ServiceChangeMethod), la raison du changement de service
(ServiceChangeReason), et la nouvelle adresse utiliser aprs le changement de service
(ServiceChangeAddress).
Le type de changement de service est dfini par le paramtre ServiceChangeMethod dont
les valeurs possibles sont Graceful, Forced, Restart, Disconnected, Handoff ou Failover.
Graceful signifie que les terminaisons spcifies seront mises hors service aprs un dlai
spcifi par un paramtre ServiceChangeDelay exprim en secondes. Les connexions en
cours ne sont pas encore affectes mais le MGC doit donc viter dtablir de nouvelles
connexions et essayer de librer les connexions existantes sur les terminaisons impliques
par la commande ServiceChange. Forced indique que les terminaisons spcifies sont
mises hors service immdiatement. Les connexions tablies sont perdues. Restart
informe que les terminaisons vont tre remises en service aprs un dlai spcifi.
Disconnected sapplique au MGW dans son ensemble et indique que la connexion avec
le MGC a t rtablie aprs une priode de perte de contact.
Handoff est utilis dans le cas dun message ServiceChange mis par le MGC au MGW
pour informer le MGW que le MGC va tre hors service et quune nouvelle association doit
tre tablie avec un MGC de reprise. Handoff est aussi utilis du MGW vers un MGC de
reprise pour linformer de la tentative dtablissement dune association en accord avec un
Handoff reu dun MGC avec lequel il tait associ auparavant.
Failover est mis par le MGW au MGC lorsque le MGW a dtect une faute et quun
autre MGW va le remplacer.
La raison du changement du service est prcise par le paramtre ServiceChangeReason.
Le protocole MEGACO identifie les raisons suivantes :

900 Rtablissement du service (Service Restored)


901 Initialisation froid (Cold Boot)
902 Initialisation chaud (Warm Boot)
903 Changement men par le MGC (MGC Directed Change)
904 Fonctionnement dfectueux de la terminaison (Termination malfunctioning)
905 Mise hors service de la terminaison (Termination taken out of service)
906 Perte de connexit dans les couches infrieures (Loss of lower layer connectivity)
907 Incident de Transmission (Transmission Failure)
908 Dfaillance imminente du MGW (MG Impending Failure)
909 Dfaillance imminente du MGC (MGC Impending Failure)
910 Dfaillance de capacit multimdia (Media Capability Failure)
911 Dfaillance de capacit Modem (Modem Capability Failure)
912 Dfaillance de capacit Multiplex (Mux Capability Failure)
913 Dfaillance de capacit de signal (Signal Capability Failure)
914 Dfaillance de capacit dvnement (Event Capability Failure)
915 Perte dtat (State Loss)

Copyright EFORT 2011 8


DigitMap Descriptor : Ce descripteur dfinit un plan de numrotage stock dans le MGW afin
de permettre au MGW de renvoyer un numro compos par lappelant en blocs et non,
chiffre par chiffre, au MGC. Le tlchargement de la DigitMap (script de numrotation) sur le
MGW peut tre ralis par une action de gestion ou par des commandes MEGACO. Dans le
cas dun transfert par le MGC en utilisant MEGACO, cest le descripteur DigitMap qui est
utilis pour transporter linformation.
La syntaxe de la DigitMap est soit une chane, soit une liste de chanes. Chaque chane
dans la liste comprend un nombre de symboles reprsentant des chiffres de 0 9 et des
lettres de A K. Le caractre x est utilis comme joker , reprsentant nimporte quel
chiffre de 0 9. Le symbole . est utilis afin dindiquer zro ou plusieurs rptitions du
chiffre ou de la chane de chiffre qui prcde. Ce symbole peut aussi tre utilis afin
dindiquer une longueur indtermine dans le plan de numrotage. Les appels internationaux
utilisent gnralement des numros de longueur variable. La chane 00x. peut alors tre
utilise. 00x signifie appel international alors que x. indique un nombre de chiffres,
chacun compris entre 0 et 9.
La chane peut par ailleurs contenir trois symboles indiquant un temporisateur de dbut (T,
Start Timer), un temporisateur court (S, Short Timer) et un temporisateur long (L, Long
Timer).
Afin de comprendre lutilisation de ces temporisateurs, considrons le dcrochage dun
combin tlphonique pour effectuer un appel. Tout dabord, un signal Off Hook est
dtect, le commutateur de rattachement met alors une tonalit dinvitation numroter
Dial Tone et est prt collecter les chiffres composs. Le systme attend un certain
temps que labonn appuie sur une touche du clavier tlphonique. Ce temps correspond au
temporisateur de dbut (T). Ds que labonn commence composer les chiffres de son
numro de destination, un second temporisateur est alors arm. Celui-ci peut reprsenter un
temporisateur court (S) ou long (L) en fonction du plan de numrotage. Si labonn a
compos un certain nombre de chiffres et que le systme requiert dautres chiffres afin de
router lappel, alors un temporisateur court sera utilis en attendant les chiffres suivants. Si
labonn a compos un nombre de chiffres suffisants afin de router lappel mais que dautres
chiffres peuvent encore tre reus et modifier le routage, alors un temporisateur long sera
arm. Le but du temporisateur long est de permettre au systme dtre assur que labonn
a termin de composer son numro. En France, 0 correspond un appel avec une
destination en France, alors que 00 correspond un appel international. Aprs avoir reu
le premier 0 , le systme doit attendre avant de router lappel afin de sassurer que
labonn ne vas pas composer un second 0 pour un appel international.

Statistics Descriptor : Ce descripteur fournit les informations statistiques dcrivant ltat et


lutilisation dune terminaison durant son existence au sein dun contexte donn. Par dfaut,
les statistiques sont retournes lorsque la terminaison est supprime (Commande Subtract)
dun contexte. Les statistiques peuvent aussi tre prsentes dans les rponses aux
commandes AuditValue, Add, Move et Modify en utilisant le descripteur Audit.

Observed Events Descriptor : Ce descripteur est fourni dans la commande Notify mise par
un MGW afin dinformer le MGC des vnements dtects. Utilis avec la commande
AuditValue, ce descripteur retourne les vnements dans le tampon dvnement qui nont
pas t notifis par la commande Notify.

Topology Descriptor : A la diffrence des descripteurs vus prcdemment qui sappliquent


une terminaison dans un contexte, le descripteur Topology sapplique un contexte. Il
spcifie les directions des flux entre les terminaisons dans le contexte. Par dfaut, toutes les
terminaisons dans un contexte peuvent mettre et recevoir des media entre elles. Si une
autre topologie est souhaite, alors le descripteur Topology est utilis.
Un descripteur Topology consiste en une squence de triplets ayant la forme (T1, T2,
association). T1 et T2 spcifient des terminaisons dans le contexte. Ce triplet indique sil y a
zro flux de media, un flux de media unidirectionnel, ou un flux de media bidirectionnel entre

Copyright EFORT 2011 9


les deux terminaisons. Ces trois possibilits correspondent aux valeurs isolate ,
oneway , et bothway de lattribut association .
Le triplet (T1, T2, isolate) indique que T2 ne reoit pas de flux de T1 et que T1 ne reoit
pas de flux de T2.
Le triplet (T1, T2, oneway) signifie que T2 reoit un flux de T1 mais que T1 ne reoit pas
de flux de T2.
Le triplet (T1, T2, bothway) indique que T2 reoit un flux de T1 et que T1 reoit un flux de
T2.
Dans le cas o il existe trois terminaisons dans un contexte, alors il est ncessaire de
spcifier trois triplets, le premier dcrivant lassociation entre T1 et T2, le second exprimant
lassociation entre T1 et T3 et le troisime dfinissant lassociation entre T2 et T3. La figure 5
montre des exemples de topologies entre trois terminaisons dans un contexte.

T2 T2 T2

T1 T3 T1 T3 T1 T3
Aucun Topology
T1, T2, isolate T3, T2, oneway
Descriptor

T2 T2 T2

T1 T3 T1 T3 T1 T3

T2, T3, oneway T2, T3, bothway T1, T2, bothway

Figure 5: Exemples de topologies de contexte

4 Transactions MEGACO

Les commandes MEGACO et leurs rponses sont passes entre le MGC et le MGW dans
des transactions. Une transaction est identifie par un identificateur de transaction
(transactionID). Une transaction consiste en une ou plusieurs actions. Une action est un
ensemble de commandes sappliquant un contexte donn. Chaque action spcifie donc un
identificateur de contexte (contextID) et des commandes appliquer au contexte. Il existe
des cas o un contextID nest pas spcifi, e.g., lorsque le MGC demande au MGW de crer
un contexte. Cest le MGW qui affectera alors un identificateur au contexte.
Une transaction est mise sous la forme dune transactionRequest. La rponse est
encapsule dans une transactionReply. Cette dernire peut tre prcde par une ou
plusieurs transactionPending. Le rcepteur indique travers une transactionPending que la
transaction est en cours de traitement mais non compltement excute ; une
transactionReply suivra. Cela permet lmetteur de ne pas considrer que la
transactionRequest a t perdue.

4.1 TransactionRequest
Une transactionRequest est invoque par lmetteur. Une requte contient une ou plusieurs
actions, chacune identifiant le contexte considr et les commandes MEGACO excuter
sur ce contexte.

Copyright EFORT 2011 10


TransactionRequest(TransactionId {
ContextID {Command , , Command},
...
ContextID {Command, , Command } })

Lidentificateur de transaction (transactionID) indique une valeur identique celle prsente


dans la transactionReply ou transactionPending renvoyes par le rcepteur et associes
cette transactionRequest.

Lidentificateur de contexte (contextID) identifie le contexte prsent dans le MGW sur lequel
appliquer les commandes MEGACO squentiellement dans lordre indiqu.
Les contextes sont identifis par des identificateurs qui sont attribus par le MGW et qui sont
uniques dans son domaine. Le MGC doit utiliser l'identificateur de contexte fourni par le
MGW dans toutes les transactions subsquentes qui se rapportent ce contexte. Le
protocole fait rfrence une valeur distinctive que le MGC peut utiliser pour se rfrer
une terminaison qui n'est pas actuellement associe un contexte, cest--dire
l'identificateur de contexte null .
Le caractre gnrique $ sert demander au MGW de crer un nouveau contexte. Le
MGC ne doit pas utiliser d'identificateurs de contexte partiellement spcifis qui contiennent
le caractre gnrique $ .
Le MGC peut utiliser le caractre gnrique * pour adresser tous les contextes prsents
sur le MGW. Le contexte null n'est pas inclus lorsque le caractre gnrique * est
utilis.

4.2 TransactionReply
Aprs avoir excut lensemble des commandes, le rcepteur retourne une
transactionReply. Cette dernire contient une ou plusieurs actions, chacune identifiant le
contexte considr et une ou plusieurs rponses par contexte.

TransactionReply(TransactionID {
ContextID { Response, , Response },
...
ContextID { Response, , Response } })

Lidentificateur de transaction est identique celui de la transactionRequest correspondante.


Lidentificateur de contexte est suivi par une ou plusieurs rponses aux commandes qui ont
t excutes.
Si lexcution dune des commandes dans la transaction produit une erreur, les commandes
suivantes ne sont pas traites ; aucune rponse pour ces dernires nest alors retourne.
Il existe une exception, lorsquune commande est optionnelle, prfixe par les caractres
o- . Si lexcution dune commande optionnelle produit une erreur, lexcution de la
transaction se poursuit ; la transactionReply indiquera donc des rponses aprs le code
derreur associ la commande optionnelle.

4.3 TransactionPending
Une TransactionPending est une rponse intermdiaire permettant dindiquer lmetteur
que sa transactionRequest a bien t reue et quelle est en cours de traitement. Cette
transactionPending rappelle lidentificateur de transaction de la transactionRequest.

TransactionPending(TransactionID { } )

Copyright EFORT 2011 11


5 Scnario dtablissement et de libration de la
communication avec MEGACO

5.1 Scnario dtablissement de la communication avec


MEGACO
Dans lexemple considr la figure 6, ladresse du MGC est 128.23.31.11, celle du RGW
est 128.23.11.51 et celle du TGW est 128.23.17.18
Dans un but de simplification, le port UDP utilis par ces trois entits pour lapplication
MEGACO est 45678.

Abonn RGW MGC SG TGW Class 5 switch

Modify pour dtecter


Off Hook
Resp. TGW : Trunking Gateway
Off-hook RGW : Residential Gateway
Notify Off Hook MGC : Media Gateway Controller
Resp. SG : Signaling Gateway
Digits
Notify digits
Resp.

Rinkback Add terminaison


Tone perm. et term. temp.
Resp.
Add terminaison permanente
et terminaison temporaire
Resp.
ISUP IAM ISUP IAM (SS7)
(SIGTRAN)
ISUP ACM ISUP ACM (SS7)
(SIGTRAN)
ISUP ANM ISUP ANM (SS7)
Modify term. temp.
(SIGTRAN)
Resp.

Flux RTP

Figure 6 : Scnario dtablissement de lappel avec MEGACO

Le MGC programme une terminaison dans un contexte Null. Cette modification demande
la terminaison de notifier le MGC de loccurrence dun vnement off-hook. Le MGC met un
message TransactionRequest dont lidentificateur a la valeur 1. Le MGC indique son adresse
IP ainsi que le port UDP sur lequel il souhaite recevoir la rponse. La valeur du protocole
MEGACO utilis est 1.
Lidentificateur de terminaison dont les proprits doivent tre modifies par le RGW est T1.
LIdentificateur de requte dans le descripteur dvnement (event descriptor) a la valeur
1111. Lidentificateur de requte est utilis par le MGC afin de corrler la requte mise avec
les notifications retournes par le RGW. Lvnement que le RGW doit dtecter et notifier au
MGC est Off Hook. (of) du package analog line supervision (al). Le mode de cette
terminaison est positionn la valeur Receiveonly.

MEGACO/1 [128.23.31.11]: 45678


Transaction = 1 {

Copyright EFORT 2011 12


Context = - {
Modify = T1 {
Media {
LocalControl {
Mode = Receiveonly}
},
Events = 1111 {al/of}
}
}
}

Le RGW reoit la commande du MGC, laccepte et rpond par une transactionReply dont le
numro de transaction est identique celui de la transactionRequest correspondante afin de
permettre au MGC de corrler la requte et sa rponse.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Reply = 1 {
Context = - {Modify = T1}
}

Lutilisateur A dcroche son combin tlphonique pour effectuer un appel. Cet vnement
est dtect par le RGW qui produit un message Notify envoy au MGC. Le RGW utilise le
mme identificateur de requte (1111) que celui prsent dans la requte initiale du MGC.
Linstant de dtection du signal Off Hook est un paramtre retourn dans le descripteur
observedEventDescriptor en centimes de secondes. Cet vnement sest produit le 03
Fvrier 2001 10h31.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Transaction = 2 {
Context = - {
Notify = T1 {ObservedEvents =1111 {
20010203T10310000:al/of}}
}
}

Cette notification est acquitte par le MGC au RGW.

MGC RGW

MEGACO/1 [128.23.31.11]: 45678


Reply = 2 {
Context = - {Notify = T1}
}

Le MGC modifie la terminaison pour lui demander dmettre un signal dial tone (dt) du
package call progress tones generation (cg) lappelant. Le descripteur DigitMapDescriptor
permet dassocier une DigitMap la terminaison en question. Le nom de la DigitMap dans
lexemple est Dmap1 et sa valeur contient 12|0xxxxxxxxx signifiant que lappelant peut
composer le numro 12 ou tout numro 10 chiffres dbutant par 0 et suivi de 9 chiffres. Le
descripteur dvnement liste les vnements On Hook (on) du package analog line
supervision (al) et Digit map completion event (ce) du package DTMF detection (dd).
Lidentificateur de requte est 1112. Le RGW devra donc notifier au MGC le numro de
destination compos par lappelant et collect par la terminaison ou loccurrence dun
vnement On Hook signifiant que lappelant abandonne lappel.

Copyright EFORT 2011 13


MGC RGW

MEGACO/1 [128.23.31.11]: 45678


Transaction = 3 {
Context = - {
Modify = T1 {
Signals {cg/dt},
DigitMap= Dmap1 {(12| 0xxxxxxxxx)}
Events = 1112 {
al/on, dd/ce {DigitMap=Dmap1}
},
}
}
}

Le RGW la rception et la validation de la commande Modify rpond au MGC et initie le


traitement des descripteurs prsents dans la commande.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Reply = 3 {
Context = - {Modify = T1}
}

Aprs avoir reu le signal Dial Tone, lappelant compose le numro de destination. On
considre le numro valide par rapport la DigitMap, savoir 0143223454. Le RGW notifie
ce numro au MGC travers une commande Notify Lidentificateur de requte dans le
descripteur ObservedEventsDescriptor a la valeur 1112. Lvnement observ est dcrit par
son numro (digit string (ds)), avec un full match (FM). Linstant dobservation est le 3 Fvrier
2001 10h32.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Transaction = 4 {
Context = - {
Notify = T1 {ObservedEvents =1112 {
20010203T10320000:dd/ce {ds="0143223454", Meth=FM}}}
}
}

Le MGC confirme la rception de la commande Notify par une transactionReply.

MGC RGW

MEGACO/1 [128.23.31.11]: 45678


Reply = 4 {
Context = - {Notify = T1}
}

Le MGC demande au RGW de crer un nouveau contexte dont lidentificateur sera choisi par
le RGW. Ce nouveau contexte devra contenir la terminaison T1 qui est semi-permanente et
une nouvelle terminaison temporaire dont lidentificateur sera aussi dsign par le RGW. Le
mode des deux terminaisons est receive only permettant aux terminaisons de recevoir
des flux mais de ne pas en mettre pour linstant. Le MGC suggre au RGW lutilisation du
codec G.723 pour la nouvelle terminaison. Le caractre $ est utilis pour ladresse IP et le

Copyright EFORT 2011 14


port RTP de cette terminaison. Leur valeur sera dfinie par le RGW. La terminaison T1 devra
mettre un signal Ring Tone (rt) du package call progress tones generation (cg) lappelant
pour linformer que ltablissement de la communication est en cours.

MGC RGW:

MEGACO/1 [128.23.31.11]: 45678


Transaction = 5 {
Context = $ {
Add = T1 {
Signals { cg/rt }
Media {
{
LocalControl {
Mode = ReceiveOnly,
},
}
Add = $ {
Media {
{
LocalControl {
Mode = ReceiveOnly,
},
Local {
v=0
c = IN IP4 $
m = audio $ RTP/AVP 4 ; 4 est la valeur du profil RTP pour G.723
}
}
}
}
}

A la rception des deux commandes Add, le RGW cre un contexte dont lidentificateur a la
valeur 1. Il y ajoute la terminaison T1. Une terminaison temporaire dont lidentificateur est T2
est cre et rajoute au contexte 1. Ladresse IP alloue cette terminaison est 128.23.23.45
et le numro de port RTP utilis est 43230. Le RGW rpond au MGC par une rponse
transactionReply.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Reply = 5 {
Context = 1 {
Add = T1,
Add = T2 {
Media {
Local {
v=0
c = IN IP4 128.23.23.45
m = audio 43230 RTP/AVP 4 ; 4 est la valeur du profil RTP pour G723
a = recvonly
}
}
}
}
}
}

Copyright EFORT 2011 15


Le MGC met une transactionRequest au second Gateway, savoir le TGW pour lui
demander de crer un nouveau contexte et dy ajouter une terminaison semi-permanente
choisir par le TGW et une nouvelle terminaison temporaire dont lidentificateur sera choisi
par le TGW. La terminaison semi-permanente correspond un des circuits de parole que le
TGW partage avec un Class 5 Switch sur le faisceau de circuits 1 (Trunk 1). Le mode de la
nouvelle terminaison est ReceiveOnly. Le MGC suggre que la nouvelle terminaison utilise
le codec G.723. Le caractre $ est utilis pour ladresse IP et le port RTP de cette nouvelle
terminaison. Leur valeur sera alloue par le TGW. Le MGC fournit par ailleurs les
informations SDP dcrivant la session au niveau du RGW (remote descriptor). Cela
permettra au TGW de connatre le port UDP et ladresse IP o le TGW devra mettre les
paquets RTP contenant la voix encode avec le codec G.723.

MGC TGW

MEGACO/1 [128.23.31.11]: 45678


Transaction = 1236 {
Context = $ {
Add = Trunk1/$ {Media {
LocalControl {Mode = SendRecv}},
},
Add = $ {Media {
LocalControl {
Mode = Receiveonly,
},
Local {
v=0
c = IN IP4 $
m = audio $ RTP/AVP 4

},
Remote {
v=0
c = IN IP4 128.23.23.45
m = audio 43230 RTP/AVP 4 ; 4 est la valeur du profil RTP pour G723
}
}
}
}
}
}

A la rception de la TransactionRequest, le TGW cre un nouveau contexte dont


lidentificateur est 2. Il y ajoute la terminaison semi-permanente dont lidentification est
Trunk1/line1. Il cre une nouvelle terminaison appele T3 et la rajoute dans le contexte. Une
adresse IP (128.23.28.14) et un port RTP (43300) sont allous pour cette terminaison. Ces
informations sont retournes par le TGW au MGC travers une transactionReply.

TGW MGC

MEGACO/1 [128.23.17.18]: 45678


Reply = 1236 {
Context = 2 {
Add = Trunk1/line1,
Add = T3{
Media {
Local {
v=0
c=IN IP4 128.23.28.14
m=audio 43300 RTP/AVP 4 ; 4 est la valeur du profil RTP pour G723

Copyright EFORT 2011 16


}
}
}
}
}

Le MGC la rception de cette rponse, met un message ISUP IAM transport par
SIGTRAN au SG. Le SG relaye ce message ISUP par son interface SS7, au Class 5 Switch
rattachant le destinataire. Le Class 5 Switch traduit ce message en un message de
signalisation envoy au terminal de labonn (e.g., message SETUP dans le cas dun
terminal RNIS). Le terminal abonn alors alert gnre un message Alerting (sil sagit dun
terminal RNIS) mis au Class 5 Switch qui le traduit en un message ISUP ACM renvoy au
SG. Le SG relaye ce message ISUP ACM reu sur son interface SS7, au MGC en utilisant
son interface SIGTRAN. Lorsque lappel dcroche, un message ISUP ANM est gnr par
le Class 5 Switch relay par le SG au MGC.

A la rception du message ISUP ANM, le MGC envoie une commande Modify au RGW afin
de lui fournir la description de la session tablie par le TGW. Cela permet au RGW de
connatre le port RTP et ladresse IP du TGW ou le RGW doit envoyer la voix paqutise.
Par ailleurs le mode des terminaisons T1 et T2 est positionn la valeur sendAndReceive.

MGC RGW

MEGACO/1 [128.23.31.11]: 45678


Transaction = 1237 {
Context = 1 {
Modify = T1 {
Media {
LocalControl {
Mode = sendrecv}
}
}
Signals { }
},
Modify = T2 {
Media {
LocalControl {
Mode = sendrecv}
Remote {
v=0
c = IN IP4 128.23.28.14
m = audio 43300 RTP/AVP 4
}
};
}
}
}
}

Le RGW rpond par une transactionReply pour informer le MGC des modifications
effectues sur les terminaisons T1 et T2.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Reply = 1237 {
Context = 1 {Modify = T1, Modify = T2}
}

Copyright EFORT 2011 17


Le MGC met par ailleurs une transactionRequest au TGW pour lui demander de positionner
le mode de la terminaison temporaire T3 la valeur SendAndReceive. Ainsi les canaux RTP
unidirectionnels tablis entre les deux terminaisons temporaires muleront un canal de
communication bidirectionnel entre le RGW et le TGW.

MGC TGW

MEGACO/1 [128.23.31.11]: 45678


Transaction = 8 {
Context = 2 {
Modify = Trunk1/line1 {
Media {
LocalControl {
Mode = sendrecv}
}
}
},
Modify = T3 {
Media {
LocalControl {
Mode = sendrecv}
}
}
}
}

Le TGW confirme les modifications au MGC.

TGW MGC

MEGACO/1 [128.23.17.18]: 45678


Reply = 1238 {
Context = 2 {Modify = Trunk1/line1, Modify = T3}
}

La communication peut donc dbuter entre les deux participants, lun reli au RGW et lautre
rattach un Class 5 Switch. La communication entre les deux participants est mise en
uvre par des canaux RTP entre les deux Gateways et par un circuit de parole tabli entre
le TGW et le Class 5 Switch.

5.2 Scnario de libration de la communication avec MEGACO


Le scnario de libration de la communication est illustr la figure 7.
Lorsque lun des participants raccroche (e.g., lappelant), le RGW notifie au MGC
loccurrence de lvnement On Hook (on) du package analog line supervision (al). Cet
vnement sest produit le 3 Fvrier 2001 10h34.

RGW MGC

MEGACO/1 [128.23.11.51]: 45678


Transaction = 2002 {
Context = 1 {
Notify = T1 {ObservedEvents =1112 {
20010302T10340000:al/on}
}
}
}

Copyright EFORT 2011 18


Le MGC acquitte la rception de cette transaction par une rponse transactionReply.

MGC RGW

MEGACO/1 [128.23.31.11]:45678
Reply = 2002 {
Context = 1 {
Notify = T1
}
}

Le MGC met alors des messages Subtract au RGW et au TGW. Le MGC demande au
RGW de lui fournir des statistiques dutilisation de la terminaison temporaire T2.

MGC RGW

MEGACO/1 [128.23.31.11]: 45678


Transaction = 1239 {
Context = 1 {
Subtract = T1 {Audit{ }},
Subtract = T2 {Audit{Statistics}}
}
}

A la rception de la demande le RGW supprime la terminaison temporaire T2 et dplace la


terminaison semi-permanente T1 dans un contexte Null. Le contexte dont lidentificateur est
1 est supprim.
Le RGW retourne au MGC des statistiques sur lutilisation de la terminaison temporaire
notamment le nombre de paquets RTP mis (ps, packets sent), le nombre doctets mis (os,
octets sent), le nombre de paquets RTP reus (pr, packets received), le nombre doctets
reus (or, octets received), le pourcentage de perte de paquets RTP (pl, packets lost), la
gigue dans un flux RTP (jitter), et la latence moyenne qui est le temps de propagation des
paquets RTP (delay, average latency). Il est noter que chaque terminaison possde son
propre paquetage de statistiques recueillies. Les statistiques sont des proprits des
packages network (nt) et RTP (rtp).

RGW MGC
MEGACO/1 [128.23.11.51]: 45678
Reply = 1239 {
Context = 1 {
Subtract = T1
Subtract = T2 {
Statistics {
rtp/ps=1234, ; paquets mis
nt/os=56789, ; octets mis
rtp/pr=987, ; paquets reus
nt/or=65432, ; octets reus
rtp/pl=10, ; % perte de paquets RTP
rtp/jit=30, ; gigue
rtp/delay=30 ; latence moyenne
}
}
}
}

Le MGC gnre une transaction quivalente mise au TGW pour supprimer les terminaisons
et demander des statistiques dutilisation de la terminaison temporaire T3.

Copyright EFORT 2011 19


MGC TGW:

MEGACO/1 [128.23.31.11]: 45678


Transaction = 1240 {
Context = 2 {
Subtract = Trunk1/line1{Audit{ }},
Subtract = T3 {Audit{Statistics}}
}
}

Le TGW rpond la demande en informant le MGC sur les statistiques dutilisation de T3, de
la suppression de T3, de la suppression du contexte dont lidentificateur est 2 et du
positionnement de la terminaison semi-permanente Trunk1/line1 dans un contexte null .

TGW MGC

MEGACO/1 [128.23.17.18]: 45678


Reply = 1240 {
Context = 2 {
Subtract = Trunk1/line1
Subtract = T3 {
Statistics {
rtp/ps=987, ; paquets mis
nt/os=65432, ; octets mis
rtp/pr=1234, ; paquets reus
nt/or=56789, ; octets reus
rtp/pl=10, ; % perte de paquets RTP
rtp/jit=30,; gigue
rtp/delay=30 ; latence moyenne
}
}
}
}

Le MGC envoie par ailleurs un message ISUP REL (Release) au Class 5 Switch travers le
SG pour lui demander de librer le circuit de parole tabli avec le TGW. Le Class 5 Switch
rpond par un message ISUP RLC (Release Complete) pour confirmer la libration du circuit
au MGC.

Abonn RGW MGC SG TGW Class 5 switch

On-hook
Notify On Hook
Resp.

Subtract term. Perm.


et term. Temp. Subtract term. Perm.
Resp. et term. Temp.
Resp.
ISUP REL ISUP REL (SS7)
(SIGTRAN)
ISUP RLC ISUP RLC (SS7)
(SIGTRAN)

TGW : Trunking Gateway


RGW : Residential Gateway
MGC : Media Gateway Controller
SG : Signaling Gateway

Figure 7 : Scnario de libration de lappel avec MEGACO

Copyright EFORT 2011 20


Rfrences

ITU-T Rec. H.248v1, Gateway Control Protocol, July 2000.


ITU-T Rec. H.248v2, Gateway Control Protocol, February 2002.
ITU-T Rec. H.248v3, Gateway Control Protocol, August 2005.
IETF, RFC 2705. M. Arango, A. Dugan, I. Elliott, C. Huitema, S. Pickett, Media Gateway
Control Protocol (MGCP), Version 1.0 , October 1999.
IEFT RFC 3525. C. Groves, M. Pantaleo, LM. Anderson, T. Taylor, Gateway Control
Protocol Version 1, June 2003.

Copyright EFORT 2011 21