Tech-invite3GPPspaceIETF RFCsSIP
929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 3435

Media Gateway Control Protocol (MGCP) Version 1.0

Pages: 210
Informational
Errata
Obsoletes:  2705
Updated by:  3661
Part 1 of 8 – Pages 1 to 9
None   None   Next

Top   ToC   RFC3435 - 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.
Top   ToC   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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   RFC3435 - 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 page on part 2)

Next Section