Internet Engineering Task Force B. Foster Internet Draft F. Andreasen Document: Cisco Systems Category: Informational April 2003 MGCP Redirect and Reset Package Status of this Document This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as work in progress. The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract The base MGCP specification (RFC 3435) allows endpoints to be re- directed one endpoint at a time. This document provides extensions in the form of a new MGCP package that provides mechanisms for redirecting and resetting a group of endpoints. It also includes the ability to more accurately re-direct endpoints by allowing a list of Call Agents to be specified in a preferred order. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119. B. Foster, F. Andreasen Informational [Page 1] MGCP Redirect and Reset Package April 2003 Table of Contents Table of Contents.....................................................2 1. Introduction.......................................................2 2.0. Redirect and Reset Package.......................................3 2.1. NotifiedEntityList Extension Parameter..........................3 2.2. Endpoint Specifier..............................................4 2.2.1. EndpointList and EndpointMap Extension Parameters...........4 2.2.2. Application to Out-of-Service Endpoints.....................5 2.3. Redirect........................................................6 2.4. Reset Extension Parameter.......................................7 2.5. Return Codes....................................................7 3.0. IANA Considerations..............................................8 4.0. Security Considerations..........................................8 5.0. References.......................................................8 6.0. Authors' Addresses...............................................8 7.0. Full Copyright Statement.........................................9 1. Introduction The Base MGCP specification [3] allows a Call Agent to specify a new NotifiedEntity parameter in order to re-direct one or more endpoints to a new Call Agent. This must be done in a NotificationRequest or a connection handling command. However, because these commands affect endpoint or connection state, such a request cannot typically be sent to a group of endpoints with a single command. This means that in a case where a new Call Agent takes over for a failed one, the new Call Agent must re-direct endpoints one at a time. If there is a large number of endpoints (e.g., within a large trunking gateway) this could take a considerable amount of time. This document defines a new redirect and reset package for MGCP that allows the Call Agent to re-direct a group of endpoints without affecting endpoint or connection state. Also included is a new NotifiedEntityList parameter, which is similar to the NotifiedEntity parameter but allows for multiple domain names to be provided. This allows the Call Agent to more accurately direct endpoints to a preferred ordered list of alternate Call Agents. A third capability contained within this package is the ability to efficiently reset and re-initialize one or more groups of endpoints. Such a capability is useful during Call Agent failover situations. B. Foster, F. Andreasen Informational [Page 2] MGCP Redirect and Reset Package April 2003 2.0. Redirect and Reset Package Package Name: RED Version: 0 The purpose of this package is to: * Define a new NotifiedEntityList extension parameter. This works the same as the NotifiedEntity parameter in [3] but allows more than one domain name to be specified. * Allow a Call Agent to pass a new NotifiedEntity or NotifiedEntityList to a collection of endpoints specified by an "all of" wild card. This is useful in the case where a new Call Agent takes over from a previous one and wants to re-direct endpoint(s) to send "Notifies" etc. to it from now on. * Allow a Call Agent to request one or more groups of endpoints to do a reset, which can be useful following certain types of failures. 2.1. NotifiedEntityList Extension Parameter The NotifiedEntityList parameter is encoded as "NL" and is followed by a colon and a comma-separated list of NotifiedEntity values as defined in the MGCP specification [3], e.g.: RED/NL: ca1@myca.whatever.net, ca2@mybackupca.whatever.net The NotifiedEntityList works in a similar way to the NotifiedEntity parameter, except that it allows multiple domain names to be listed. The NotifiedEntityList thus specifies a new "notified entity" for the endpoint. The NotifiedEntityList parameter is optional in any command or response where the NotifiedEntity parameter is allowed. Following a restart, the NotifiedEntityList is initially empty, unless provisioned otherwise. In subsequent commands, it retains its current value until explicitly changed. If both a NotifiedEntity parameter and a non-empty NotifiedEntityList parameter have been set (not necessarily at the same time), the NotifiedEntity parameter value will be viewed as implicitly added to the beginning of the NotifiedEntityList parameter. The NotifiedEntity parameter thus always defines the first domain name to contact, unless it has explicitly been set to empty. In that case, the NotifiedEntityList defines the "notified entity". If the NotifiedEntityList is also empty, then the normal MGCP handling of having an empty "notified entity" applies. We will refer to the list of domain names that result from the above rules as the "notified entity list". When the "notified entity list" is non-empty, transmission is first attempted with the first domain name in the list as in the normal MGCP retransmission procedures described in [3]. Each of the IP- addresses for this domain name MUST first be tried as specified in [3], and if this is unsuccessful, each of the IP-addresses for the second domain name MUST then be attempted, etc. following the normal B. Foster, F. Andreasen Informational [Page 3] MGCP Redirect and Reset Package April 2003 MGCP retransmission procedures, with "N" (the number of retransmissions) set to zero for each domain name (see Section 4.3 in [3]). Whenever retransmission to a new domain name is initiated, the default retransmission timer value (RTO) etc. SHOULD be used - the estimator (T-DELAY) and measurements (AAD and ADEV) used for the transmission to the previous domain name are considered obsolete. Note however, that the maximum transaction lifetime considerations apply as usual, and hence retransmission to any of the IP-addresses for any of the domain names MUST NOT occur more than T-Max seconds after the initial sending of the command, irrespective of where it was sent. The Max1 DNS query MAY be performed for each of the domain names, or it MAY simply be performed for the first domain name. The Max2 DNS query however MUST NOT be performed for any but the last domain name. Also note, that only the last IP-address for the last domain name can reach Max2 retransmissions, and hence retransmission to all other IP-addresses MUST end after Max1 retransmissions. The current value of the NotifiedEntityList parameter can be audited via AuditEndpoint; the value of the NotifiedEntity parameter will not be included here and hence must be audited separately. Support for the NotifiedEntityList in AuditConnection is permissible, but it is neither required nor recommended. 2.2. Endpoint Specifier 2.2.1. EndpointList and EndpointMap Extension Parameters A simple wild-card as defined in [3] may not be sufficient to accurately specify endpoints of interest. An example of this is a case where a Call Agent fails over, resulting in a state mismatch for endpoints involved with transient calls. In order to re-synchronize, one Call Agent procedure involves using the reset extension parameter described in section 2.4 of this document to ensure that idle endpoints are in fact idle. However, these endpoints may be randomly distributed across the available endpoints in a large trunk gateway. In order to satisfy this requirement, the RED package introduces some additional parameters that MAY be used to further specify the endpoints of interest for the EndpointConfiguration Command. These are the EndpointList and the EndpointMap extension parameters. The EndPointList parameters is a list of the endpoint names which can include one or more lines in the following format: "RED/EL:" 0*WSP RangedLocalName 0*("," 0*WSP RangedLocalName) where RangedLocalName is a LocalEndpointName that may include the ranged wildcard notation described in Appendix E (section E.5) of [3], i.e.: RangeWildcard = "*" / "[" NumericalRange *("," NumericalRange)"]" NumericalRange = 1*(DIGIT) [ "-" 1*(DIGIT) ] B. Foster, F. Andreasen Informational [Page 4] MGCP Redirect and Reset Package April 2003 Example: RED/EL: ds/ds1-1/[1-24], ds/ds1-2/[1-24], ds/ds1-3/[1-24] Including an EndpointMap parameter with the following format can further specify the endpoints: "RED/MP:" 0*WSP TrueOrFalse 0*(TrueOrFalse) TrueOrFalse = "T" / "F" where "T" indicates that the command should be applied to this endpoint and "F" indicates that it should not. This parameter can be used in conjunction with the reset extension parameter described in section 2.4 of this document to force arbitrarily distributed endpoints to an idle state. If the EndpointMap parameter is used it MUST be preceded by an EndPointList parameter to specify the endpoints that the EndpointMap is referring to. Several EndpointList and EndpointMap parameter lines MAY be provided. It is considered to be an error if the EndpointMap parameters extend beyond the endpoints specified in the preceding EndPointList parameter. In that case, return code 800 should be used (see section 2.5). The EndpointList and EndpointMap parameters should only be used with the EndpointConfiguration command. When included they further specify the endpoints of interest beyond what is provided by the endpoint name. If neither parameter is included, the endpoint name completely specifies the endpoints or interest. The EndpointList parameter MAY be provided without an EndpointMap parameter. However, as indicated earlier, an EndpointMap parameter MUST be preceded by an EndpointList parameter. Neither of these parameters is auditable. For an example of EndpointMap parameter usage, refer to section 2.4. 2.2.2. Application to Out-of-Service Endpoints Note that the EndpointConfiguration command is normally only valid for in-service endpoints. If an EndpointConfiguration request is sent to a wild-carded LocalEndpointName [3] and any of the endpoints specified are out of service, the command will fail with return code 501 (endpoint not ready). However, it is possible to specify a virtual endpoint corresponding to the gateway as the LocalEndpointName i.e.: EPCF 1200 MG@gw1.whatever.net MGCP 1.0 where MG is the virtual endpoint name associated with the gateway. As long as the gateway is in-service and able to respond to MGCP commands, the gateway can apply the endpoint configuration command to endpoints specified by the EndpointList and/or EndpointMap parameters B. Foster, F. Andreasen Informational [Page 5] MGCP Redirect and Reset Package April 2003 (regardless of whether those endpoints are in-service or not). The endpoint configuration information of course will not be maintained over gateway restarts (i.e. the Call Agent would have to re-apply the endpoint configuration after it receives an RSIP with restart method "restart"). EndpointList and/or EndpointMap parameters MUST only be used with either a virtual endpoint name corresponding to the gateway (as indicated above) or with a wild-carded endpoint name. If used with a wild-carded endpoint name, the EndpointList and/or EndpointMap parameters MUST be within the range specified by the endpoint name. If they extend beyond the range specified by the endpoint name, then error code 801 (section 2.5) SHOULD be returned. 2.3. Redirect A new extension parameter for use with the EndpointConfiguration command is defined. A new NotifiedEntity parameter can be included with a "RED/N" parameter as follows: EPCF 1200 *@gw1.whatever.net MGCP 1.0 RED/N: ca1@ca1234.whatever.net This changes the "notified entity" for the endpoint(s) to the value specified. If the "all of" wildcard convention is used, the NotifiedEntity value replaces all of the existing "notified entities" for those endpoints. If NotifiedEntity is omitted in a subsequent EndpointConfiguration command, the "notified entity" remains unchanged. In the case where the "notified entity" is a domain name that resolves to multiple IP addresses one of the resolved addresses MUST be selected. If one of those IP addresses is the IP address of the Call Agent sending the request, that IP address SHOULD be selected first. The NotifiedEntityList parameter can also be specified in an endpoint configuration command, e.g.: EPCF 1200 *@gw1.whatever.net MGCP 1.0 RED/NL: ca1@myca.whatever.net, ca2@mybackupca.whatever.net As indicated in section 2.2, it can also apply this to the gateway virtual endpoint e.g.: EPCF 1200 MG@gw1.whatever.net MGCP 1.0 RED/EL: * RED/NL: ca1@myca.whatever.net, ca2@mybackupca.whatever.net As indicated in section 2.1, the NotifiedEntityList ("RED/NL") parameter MAY be used with any command for which a NotifiedEntity parameter is allowed. However, the "RED/N" parameter SHOULD only be used with the endpoint configuration command. B. Foster, F. Andreasen Informational [Page 6] MGCP Redirect and Reset Package April 2003 The auditing behavior for auditing the "NotifiedEntity" is unchanged from that specified in [3], regardless of how the "NotifiedEntity" was set (i.e. there is no specific audit associated with the "RED/N" parameter). 2.4. Reset Extension Parameter Another EndpointConfiguration parameter ("RED/R"), allows the Call Agent to reset one or more endpoints. The ABNF syntax for the parameter line is as follows: "RED/R:" 0*WSP "reset" This has the effect of re-setting and re-initializing the specified endpoints (i.e. any connections on the endpoint will be deleted, and the endpoint will be returned to its clean default state without any active signals, etc.). Example: EPCF 1200 *@gw1.whatever.net MGCP 1.0 RED/EL: ds/e1-3/[1-30] RED/MP: TFTTTTTFFFTTTTTFFFFTFFTTFTTTFF RED/EL: ds/e1-5/[1-30] RED/MP: TFFFFFTFFFTTFTTFFFFTFFFTFTTTTT RED/R: reset In this case, the particular endpoints specified by "T" by the EndpointMap parameter in the E1 spans ds/e1-3 and ds/e1-5 are reset. The "RED/R" parameter MUST NOT be used with any command other than the endpoint configuration parameter. If no value is provided for the parameter it SHOULD be ignored. There is no specific audit behavior associated with this parameter. 2.5. Return Codes The following package specific return codes are defined for the "RED" package: Code Text Explanation 800 EndpointMap Either the EndpointMap parameters Out of Range are outside the range specified by the EndpointList parameter or the EndpointList Parameter was not included when the EndpointMap was. 801 Inconsistent Inconsistency in endpoint Endpoint Specifier Specification e.g. EndpointList not within the range specified by the endpoint identifier B. Foster, F. Andreasen Informational [Page 7] MGCP Redirect and Reset Package April 2003 3.0. IANA Considerations The MGCP package title "Redirect and Reset" with the name "RED" and version number 0 should be registered with IANA as indicated in Appendix C.1 in [3]. 4.0. Security Considerations The MGCP extensions defined in this document do not require any further security considerations beyond those indicated in the base MGCP specification [3]. As stated in [3], the use of IPsec with MGCP is recommended. 5.0. References [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [3] F. Andreasen, B. Foster "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 3435, January 2003 6.0. Authors' Addresses Flemming Andreasen Cisco Systems 499 Thornall Street, 8th Floor Edison, NJ 08837 EMail: fandreas@cisco.com Bill Foster Cisco Systems EMail: bfoster@cisco.com B. Foster, F. Andreasen Informational [Page 8] MGCP Redirect and Reset Package April 2003 7.0. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. B. Foster, F. Andreasen Informational [Page 9]