tech-invite   World Map     

3GPP     Specs     Glossaries     Architecture     IMS     UICC       IETF     RFCs     Groups     SIP     ABNFs       Search

RFC 3435

 Errata 
Informational
Pages: 210
Top     in Index     Prev     Next
in Group Index     Prev in Group     Next in Group     Group: ~mgcp

Media Gateway Control Protocol (MGCP) Version 1.0

Part 1 of 8, p. 1 to 9
None       Next RFC Part

Obsoletes:    2705
Updated by:    3661


Top       ToC       Page 1 
Network Working Group                                       F. Andreasen
Request for Comments: 3435                                     B. Foster
Obsoletes: 2705                                            Cisco Systems
Category: Informational                                     January 2003


                 Media Gateway Control Protocol (MGCP)
                              Version 1.0

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

IESG Note

   This document is being published for the information of the
   community.  It describes a protocol that is currently being deployed
   in a number of products.  Implementers should be aware of RFC 3015,
   which was developed in the IETF Megaco Working Group and the ITU-T
   SG16 and which is considered by the IETF and ITU-T to be the
   standards-based (including reviewed security considerations) way to
   meet the needs that MGCP was designed to address.

Abstract

   This document describes an application programming interface and a
   corresponding protocol (MGCP) which is used between elements of a
   decomposed multimedia gateway.  The decomposed multimedia gateway
   consists of a Call Agent, which contains the call control
   "intelligence", and a media gateway which contains the media
   functions, e.g., conversion from TDM voice to Voice over IP.

   Media gateways contain endpoints on which the Call Agent can create,
   modify and delete connections in order to establish and control media
   sessions with other multimedia endpoints.  Also, the Call Agent can
   instruct the endpoints to detect certain events and generate signals.
   The endpoints automatically communicate changes in service state to
   the Call Agent.  Furthermore, the Call Agent can audit endpoints as
   well as the connections on endpoints.

Page 2 
   The basic and general MGCP protocol is defined in this document,
   however most media gateways will need to implement one or more MGCP
   packages, which define extensions to the protocol suitable for use
   with specific types of media gateways.  Such packages are defined in
   separate documents.

Table of Contents

   1.     Introduction.................................................5
   1.1    Relation with the H.323 Standards............................7
   1.2    Relation with the IETF Standards.............................8
   1.3    Definitions..................................................9
   1.4    Conventions used in this Document............................9
   2.     Media Gateway Control Interface.............................10
   2.1    Model and Naming Conventions................................10
   2.1.1  Types of Endpoints..........................................10
   2.1.2  Endpoint Identifiers........................................14
   2.1.3  Calls and Connections.......................................16
   2.1.4  Names of Call Agents and Other Entities.....................22
   2.1.5  Digit Maps..................................................23
   2.1.6  Packages....................................................26
   2.1.7  Events and Signals..........................................28
   2.2    Usage of SDP................................................33
   2.3    Gateway Control Commands....................................33
   2.3.1  Overview of Commands........................................33
   2.3.2  EndpointConfiguration.......................................36
   2.3.3  NotificationRequest.........................................37
   2.3.4  Notify......................................................44
   2.3.5  CreateConnection............................................46
   2.3.6  ModifyConnection............................................52
   2.3.7  DeleteConnection (from the Call Agent)......................54
   2.3.8  DeleteConnection (from the gateway).........................58
   2.3.9  DeleteConnection (multiple connections from the Call Agent) 59
   2.3.10 AuditEndpoint...............................................60
   2.3.11 AuditConnection.............................................65
   2.3.12 RestartInProgress...........................................66
   2.4    Return Codes and Error Codes................................69
   2.5    Reason Codes................................................74
   2.6    Use of Local Connection Options and Connection Descriptors..75
   2.7    Resource Reservations.......................................77
   3.     Media Gateway Control Protocol..............................77
   3.1    General Description.........................................78
   3.2    Command Header..............................................79
   3.2.1  Command Line................................................79
   3.2.2  Parameter Lines.............................................82
   3.3    Format of response headers.................................101
   3.3.1  CreateConnection Response..................................104
   3.3.2  ModifyConnection Response..................................105

Top      ToC       Page 3 
   3.3.3  DeleteConnection Response..................................106
   3.3.4  NotificationRequest Response...............................106
   3.3.5  Notify Response............................................106
   3.3.6  AuditEndpoint Response.....................................106
   3.3.7  AuditConnection Response...................................107
   3.3.8  RestartInProgress Response.................................108
   3.4    Encoding of the Session Description (SDP)..................108
   3.4.1  Usage of SDP for an Audio Service..........................110
   3.4.2  Usage of SDP for LOCAL Connections.........................110
   3.5    Transmission over UDP......................................111
   3.5.1  Providing the At-Most-Once Functionality...................112
   3.5.2  Transaction Identifiers and Three Ways Handshake...........113
   3.5.3  Computing Retransmission Timers............................114
   3.5.4  Maximum Datagram Size, Fragmentation and Reassembly........115
   3.5.5  Piggybacking...............................................116
   3.5.6  Provisional Responses......................................117
   4.     States, Failover and Race Conditions.......................119
   4.1    Failover Assumptions and Highlights........................119
   4.2    Communicating with Gateways................................121
   4.3    Retransmission, and Detection of Lost Associations:........122
   4.4    Race Conditions............................................126
   4.4.1  Quarantine List............................................127
   4.4.2  Explicit Detection.........................................133
   4.4.3  Transactional Semantics....................................134
   4.4.4  Ordering of Commands, and Treatment of Misorder............135
   4.4.5  Endpoint Service States....................................137
   4.4.6  Fighting the Restart Avalanche.............................140
   4.4.7  Disconnected Endpoints.....................................143
   4.4.8  Load Control in General....................................146
   5.     Security Requirements......................................147
   5.1    Protection of Media Connections............................148
   6.     Packages...................................................148
   6.1    Actions....................................................150
   6.2    BearerInformation..........................................150
   6.3    ConnectionModes............................................151
   6.4    ConnectionParameters.......................................151
   6.5    DigitMapLetters............................................151
   6.6    Events and Signals.........................................152
   6.6.1  Default and Reserved Events................................155
   6.7    ExtensionParameters........................................156
   6.8    LocalConnectionOptions.....................................157
   6.9    Reason Codes...............................................157
   6.10   RestartMethods.............................................158
   6.11   Return Codes...............................................158
   7.     Versions and Compatibility.................................158
   7.1    Changes from RFC 2705......................................158
   8.     Security Considerations....................................164
   9.     Acknowledgments............................................164

Top      ToC       Page 4 
   10.    References.................................................164
   Appendix A: Formal Syntax Description of the Protocol.............167
   Appendix B: Base Package..........................................175
   B.1    Events.....................................................175
   B.2    Extension Parameters.......................................176
   B.2.1  PersistentEvents...........................................176
   B.2.2  NotificationState..........................................177
   B.3    Verbs......................................................177
   Appendix C: IANA Considerations...................................179
   C.1    New MGCP Package Sub-Registry..............................179
   C.2    New MGCP Package...........................................179
   C.3    New MGCP LocalConnectionOptions Sub-Registry...............179
   Appendix D: Mode Interactions.....................................180
   Appendix E: Endpoint Naming Conventions...........................182
   E.1    Analog Access Line Endpoints...............................182
   E.2    Digital Trunks.............................................182
   E.3    Virtual Endpoints..........................................183
   E.4    Media Gateway..............................................184
   E.5    Range Wildcards............................................184
   Appendix F: Example Command Encodings.............................185
   F.1    NotificationRequest........................................185
   F.2    Notify.....................................................186
   F.3    CreateConnection...........................................186
   F.4    ModifyConnection...........................................189
   F.5    DeleteConnection (from the Call Agent).....................189
   F.6    DeleteConnection (from the gateway)........................190
   F.7    DeleteConnection (multiple connections
          from the Call Agent).......................................190
   F.8    AuditEndpoint..............................................191
   F.9    AuditConnection............................................192
   F.10   RestartInProgress..........................................193
   Appendix G: Example Call Flows....................................194
   G.1    Restart....................................................195
   G.1.1  Residential Gateway Restart................................195
   G.1.2  Call Agent Restart.........................................198
   G.2    Connection Creation........................................200
   G.2.1  Residential Gateway to Residential Gateway.................200
   G.3    Connection Deletion........................................206
   G.3.1  Residential Gateway to Residential Gateway.................206
   Authors' Addresses................................................209
   Full Copyright Statement..........................................210

Top      ToC       Page 5 
1. Introduction

   This document describes an abstract application programming interface
   (MGCI) and a corresponding protocol (MGCP) for controlling media
   gateways from external call control elements called media gateway
   controllers or Call Agents.  A media gateway is typically a network
   element that provides conversion between the audio signals carried on
   telephone circuits and data packets carried over the Internet or over
   other packet networks.  Examples of media gateways are:

   * Trunking gateways, that interface between the telephone network and
     a Voice over IP network.  Such gateways typically manage a large
     number of digital circuits.

   * Voice over ATM gateways, which operate much the same way as voice
     over IP trunking gateways, except that they interface to an ATM
     network.

   * Residential gateways, that provide a traditional analog (RJ11)
     interface to a Voice over IP network.  Examples of residential
     gateways include cable modem/cable set-top boxes, xDSL devices, and
     broad-band wireless devices.

   * Access gateways, that provide a traditional analog (RJ11) or
     digital PBX interface to a Voice over IP network.  Examples of
     access gateways include small-scale voice over IP gateways.

   * Business gateways, that provide a traditional digital PBX interface
     or an integrated "soft PBX" interface to a Voice over IP network.

   * Network Access Servers, that can attach a "modem" to a telephone
     circuit and provide data access to the Internet.  We expect that in
     the future, the same gateways will combine Voice over IP services
     and Network Access services.

   * Circuit switches, or packet switches, which can offer a control
     interface to an external call control element.

   MGCP assumes a call control architecture where the call control
   "intelligence" is outside the gateways and handled by external call
   control elements known as Call Agents.  The MGCP assumes that these
   call control elements, or Call Agents, will synchronize with each
   other to send coherent commands and responses to the gateways under
   their control.  If this assumption is violated, inconsistent behavior
   should be expected.  MGCP does not define a mechanism for
   synchronizing Call Agents.  MGCP is, in essence, a master/slave
   protocol, where the gateways are expected to execute commands sent by
   the Call Agents.  In consequence, this document specifies in great

Top      ToC       Page 6 
   detail the expected behavior of the gateways, but only specifies
   those parts of a Call Agent implementation, such as timer management,
   that are mandated for proper operation of the protocol.

   MGCP assumes a connection model where the basic constructs are
   endpoints and connections.  Endpoints are sources and/or sinks of
   data and can be physical or virtual.  Examples of physical endpoints
   are:

   * An interface on a gateway that terminates a trunk connected to a
     PSTN switch (e.g., Class 5, Class 4, etc.).  A gateway that
     terminates trunks is called a trunking gateway.

   * An interface on a gateway that terminates an analog POTS connection
     to a phone, key system, PBX, etc.  A gateway that terminates
     residential POTS lines (to phones) is called a residential gateway.

   An example of a virtual endpoint is an audio source in an audio-
   content server.  Creation of physical endpoints requires hardware
   installation, while creation of virtual endpoints can be done by
   software.

   Connections may be either point to point or multipoint.  A point to
   point connection is an association between two endpoints with the
   purpose of transmitting data between these endpoints.  Once this
   association is established for both endpoints, data transfer between
   these endpoints can take place.  A multipoint connection is
   established by connecting the endpoint to a multipoint session.

   Connections can be established over several types of bearer networks,
   for example:

   * Transmission of audio packets using RTP and UDP over an IP network.

   * Transmission of audio packets using AAL2, or another adaptation
     layer, over an ATM network.

   * Transmission of packets over an internal connection, for example
     the TDM backplane or the interconnection bus of a gateway.  This is
     used, in particular, for "hairpin" connections, connections that
     terminate in a gateway but are immediately rerouted over the
     telephone network.

   For point-to-point connections the endpoints of a connection could be
   in separate gateways or in the same gateway.

Top      ToC       Page 7 
1.1 Relation with the H.323 Standards

   MGCP is designed as an internal protocol within a distributed system
   that appears to the outside as a single VoIP gateway.  This system is
   composed of a Call Agent, that may or may not be distributed over
   several computer platforms, and of a set of gateways, including at
   least one "media gateway" that perform the conversion of media
   signals between circuits and packets, and at least one "signaling
   gateway" when connecting to an SS7 controlled network.  In a typical
   configuration, this distributed gateway system will interface on one
   side with one or more telephony (i.e., circuit) switches, and on the
   other side with H.323 conformant systems, as indicated in the
   following table:

    ------------------------------------------------------------------
   | Functional|  Phone     |  Terminating    |  H.323 conformant     |
   | Plane     |  switch    |  Entity         |  systems              |
   |-----------|------------|-----------------|-----------------------|
   | Signaling |  Signaling |  Call agent     |  Signaling exchanges  |
   | Plane     |  exchanges |                 |  with the Call Agent  |
   |           |  through   |                 |  through H.225/RAS and|
   |           |  SS7/ISUP  |                 |  H.225/Q.931.         |
   |-----------|------------|-----------------|-----------------------|
   |           |            |                 |  Possible negotiation |
   |           |            |                 |  of logical channels  |
   |           |            |                 |  and transmission     |
   |           |            |                 |  parameters through   |
   |           |            |                 |  H.245 with the call  |
   |           |            |                 |  agent.               |
   |-----------|------------|-----------------|-----------------------|
   |           |            |  Internal       |                       |
   |           |            |  synchronization|                       |
   |           |            |  through MGCP   |                       |
   |-----------|------------|-----------------|-----------------------|
   | Bearer    |  Connection|  Telephony      |  Transmission of VoIP |
   | Data      |  through   |  gateways       |  data using RTP       |
   | Transport |  high speed|                 |  directly between the |
   | Plane     |  trunk     |                 |  H.323 station and the|
   |           |  groups    |                 |  gateway.             |
    ------------------------------------------------------------------

   In the MGCP model, the gateways focus on the audio signal translation
   function, while the Call Agent handles the call signaling and call
   processing functions.  As a consequence, the Call Agent implements
   the "signaling" layers of the H.323 standard, and presents itself as
   an "H.323 Gatekeeper" or as one or more "H.323 Endpoints" to the
   H.323 systems.

Top      ToC       Page 8 
1.2  Relation with the IETF Standards

   While H.323 is the recognized standard for VoIP terminals, the IETF
   has also produced specifications for other types of multi-media
   applications.  These other specifications include:

   * the Session Description Protocol (SDP), RFC 2327

   * the Session Announcement Protocol (SAP), RFC 2974

   * the Session Initiation Protocol (SIP), RFC 3261

   * the Real Time Streaming Protocol (RTSP), RFC 2326.

   The latter three specifications are in fact alternative signaling
   standards that allow for the transmission of a session description to
   an interested party.  SAP is used by multicast session managers to
   distribute a multicast session description to a large group of
   recipients, SIP is used to invite an individual user to take part in
   a point-to-point or unicast session, RTSP is used to interface a
   server that provides real time data.  In all three cases, the session
   description is described according to SDP; when audio is transmitted,
   it is transmitted through the Real-time Transport Protocol, RTP.

Top      ToC       Page 9 
   The distributed gateway systems and MGCP will enable PSTN telephony
   users to access sessions set up using SAP, SIP or RTSP.  The Call
   Agent provides for signaling conversion, according to the following
   table:

    ------------------------------------------------------------------
   | Functional|  Phone     |  Terminating  |  IETF conforming systems|
   | Plane     |  switch    |  Entity       |                         |
   |-----------|------------|---------------|-------------------------|
   | Signaling |  Signaling |  Call agent   |  Signaling exchanges    |
   | Plane     |  exchanges |               |  with the Call Agent    |
   |           |  through   |               |  through SAP, SIP or    |
   |           |  SS7/ISUP  |               |  RTSP.                  |
   |-----------|------------|---------------|-------------------------|
   |           |            |               |  Negotiation of session |
   |           |            |               |  description parameters |
   |           |            |               |  through SDP (telephony |
   |           |            |               |  gateway terminated but |
   |           |            |               |  passed via the call    |
   |           |            |               |  agent to and from the  |
   |           |            |               |  IETF conforming system)|
   |-----------|------------|---------------|-------------------------|
   |           |            | Internal syn- |                         |
   |           |            | chronization  |                         |
   |           |            | through MGCP  |                         |
   |-----------|------------|---------------|-------------------------|
   | Bearer    |  Connection|  Telephony    |  Transmission of VoIP   |
   | Data      |  through   |  gateways     |  data using RTP,        |
   | Transport |  high speed|               |  directly between the   |
   | Plane     |  trunk     |               |  remote IP end system   |
   |           |  groups    |               |  and the gateway.       |
    ------------------------------------------------------------------

   The SDP standard has a pivotal status in this architecture.  We will
   see in the following description that we also use it to carry session
   descriptions in MGCP.

1.3 Definitions

   Trunk:  A communication channel between two switching systems, e.g.,
   a DS0 on a T1 or E1 line.

1.4 Conventions used in this Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED, "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14, RFC 2119 [2].


Next RFC Part