Network Working Group M. Arango Request for Comments: 2705 RSL COM Category: Informational A. Dugan I. Elliott Level3 Communications C. Huitema Telcordia S. Pickett Vertical Networks October 1999 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 (1999). 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 developments in the IETF Megaco Working Group and ITF-T SG16 who are currently working on a potential successor to this protocol. Abstract This document describes an application programming interface and a corresponding protocol (MGCP) for controlling Voice over IP (VoIP) Gateways from external call control elements. MGCP assumes a call control architecture where the call control "intelligence" is outside the gateways and handled by external call control elements. The document is structured in 6 main sections: * The introduction presents the basic assumptions and the relation to other protocols such as H.323, RTSP, SAP or SIP. Arango, et al. Informational [Page 1] RFC 2705 Media Gateway Control Protocol (MGCP) October 1999 * The interface section presents a conceptual overview of the MGCP, presenting the naming conventions, the usage of the session description protocol SDP, and the procedures that compose MGCP: Notifications Request, Notification, Create Connection, Modify Connection, Delete Connection, AuditEndpoint, AuditConnection and RestartInProgress. * The protocol description section presents the MGCP encodings, which are based on simple text formats, and the transmission procedure over UDP. * The security section presents the security requirement of MGCP, and its usage of IP security services (IPSEC). * The event packages section provides an initial definition of packages and event names. * The description of the changes made in combining SGCP 1.1 and IPDC to create MGCP 1.0. 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 2. Media Gateway Control Interface ........................... 9 2.1. Model and naming conventions. ........................ 10 2.1.1. Types of endpoints .............................. 10 2.1.1.1. Digital channel (DS0) ...................... 11 2.1.1.2. Analog line ................................ 11 2.1.1.3. Annoucement server access point ............ 12 2.1.1.4. Interactive Voice Response access point .... 12 2.1.1.5. Conference bridge access point ............. 13 2.1.1.6. Packet relay ............................... 13 2.1.1.7. Wiretap access point ....................... 14 2.1.1.8. ATM "trunk side" interface. ................ 14 2.1.2. Endpoint identifiers ............................ 15 2.1.3. Calls and connections ........................... 17 2.1.3.1. Names of calls ............................. 20 2.1.3.2. Names of connections ....................... 20 2.1.3.3. Management of resources, attributes of ..... 20 2.1.3.4. Special case of local connections .......... 23 2.1.4. Names of Call Agents and other entities ......... 23 2.1.5. Digit maps ...................................... 24 2.1.6. Names of events ................................. 26 2.2. Usage of SDP ......................................... 29 2.3. Gateway Control Commands ............................. 30 Arango, et al. Informational [Page 2] RFC 2705 Media Gateway Control Protocol (MGCP) October 1999 2.3.1. EndpointConfiguration ........................... 32 2.3.2. NotificationRequest ............................. 33 2.3.3. CreateConnection ................................ 38 2.3.4. ModifyConnection ................................ 44 2.3.5. DeleteConnection (from the Call Agent) .......... 46 2.3.6. DeleteConnection (from the VoIP gateway) ........ 51 2.3.7. DeleteConnection (multiple connections, from the 51 2.3.8. Audit Endpoint .................................. 52 2.3.9. Audit Connection ................................ 55 2.3.10. Restart in progress ............................ 56 2.4. Return codes and error codes. ........................ 58 2.5. Reason Codes ......................................... 61 3. Media Gateway Control Protocol ............................ 61 3.1. General description .................................. 62 3.2. Command Header ....................................... 62 3.2.1. Command line .................................... 62 3.2.1.1. Coding of the requested verb ............... 63 3.2.1.2. Transaction Identifiers .................... 63 3.2.1.3. Coding of the endpoint identifiers and ..... 64 3.2.1.4. Coding of the protocol version ............. 65 3.2.2. Parameter lines ................................. 65 3.2.2.1. Response Acknowledgement ................... 68 3.2.2.2. Local connection options ................... 68 3.2.2.3. Capabilities ............................... 70 3.2.2.4. Connection parameters ...................... 71 3.2.2.5. Reason Codes ............................... 72 3.2.2.6. Connection mode ............................ 73 3.2.2.7. Coding of event names ...................... 73 3.2.2.8. RequestedEvents ............................ 74 3.2.2.9. SignalRequests ............................. 76 3.2.2.10. ObservedEvent ............................. 76 3.2.2.11. RequestedInfo ............................. 76 3.2.2.12. QuarantineHandling ........................ 77 3.2.2.13. DetectEvents .............................. 77 3.2.2.14. EventStates ............................... 77 3.2.2.15. RestartMethod ............................. 78 3.2.2.16. Bearer Information ........................ 78 3.3. Format of response headers ........................... 78 3.4. Formal syntax description of the protocol ............ 81 3.5. Encoding of the session description .................. 86 3.5.1. Usage of SDP for an audio service ............... 86 3.5.2. Usage of SDP in a network access service ........ 87 3.5.3. Usage of SDP for ATM connections ................ 90 3.5.4. Usage of SDP for local connections .............. 91 3.6. Transmission over UDP ................................ 91 3.6.1. Providing the At-Most-Once functionality ........ 91 3.6.2. Transaction identifiers and three ways handshake. 92 3.6.3. Computing retransmission timers ................. 93 Arango, et al. Informational [Page 3] RFC 2705 Media Gateway Control Protocol (MGCP) October 1999 3.6.4. Piggy backing ................................... 94 3.6.5. Provisional responses ........................... 94 4. States, failover and race conditions. ..................... 95 4.1. Basic Asumptions ..................................... 95 4.2. Security, Retransmission, and Detection of Lost ...... 96 4.3. Race conditions ...................................... 99 4.3.1. Quarantine list ................................. 99 4.3.2. Explicit detection ..............................103 4.3.3. Ordering of commands, and treatment of disorder .104 4.3.4. Fighting the restart avalanche ..................105 4.3.5. Disconnected Endpoints ..........................107 1. A "disconnected" timer is initialized to a random value, .107 2. The gateway then waits for either the end of this timer, .107 3. When the "disconnected" timer elapses, when a command is .107 4. If the "disconnected" procedure still left the endpoint ..107 5. Security requirements .....................................108 5.1. Protection of media connections ......................109 6. Event packages and end point types ........................109 6.1. Basic packages .......................................110 6.1.1. Generic Media Package ...........................110 6.1.2. DTMF package ....................................112 6.1.3. MF Package ......................................113 6.1.4. Trunk Package ...................................114 6.1.5. Line Package ....................................116 6.1.6. Handset emulation package .......................119 6.1.7. RTP Package .....................................120 6.1.8. Network Access Server Package ...................121 6.1.9. Announcement Server Package .....................122 6.1.10. Script Package .................................122 6.2. Basic endpoint types and profiles ....................123 7. Versions and compatibility ................................124 7.1. Differences between version 1.0 and draft 0.5 ........124 7.2. Differences between draft-04 and draft-05 ............125 7.3. Differences between draft-03 and draft-04 ............125 7.4. Differences between draft-02 and draft-03 ............125 7.5. Differences between draft-01 and draft-02 ............126 7.6. The making of MGCP from IPDC and SGCP ................126 7.7. Changes between MGCP and initial versions of SGCP ....126 8. Security Considerations ...................................128 9. Acknowledgements ..........................................128 10. References ................................................129 11. Authors' Addresses ........................................130 12. Appendix A: Proposed "MoveConnection" command .............132 12.1. Proposed syntax modification ........................133 13. Full Copyright Statement ..................................134 Arango, et al. Informational [Page 4] RFC 2705 Media Gateway Control Protocol (MGCP) October 1999 1. Introduction This document describes an abstract application programming interface and a corresponding protocol (MGCP) for controlling Telephony Gateways from external call control elements called media gateway controllers or call agents. A telephony gateway is 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. Example of 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, 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. The MGCP assumes that these call control elements, or Call Agents, will synchronize with each other to send coherent commands to the gateways under their control. 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 detail the expected behavior of the gateways, but Arango, et al. Informational [Page 5] RFC 2705 Media Gateway Control Protocol (MGCP) October 1999 only specify 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 or sinks of data and could 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 trunk 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: * Transmission of audio packets using RTP and UDP over a TCP/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 c