Internet Engineering Task Force B. Foster Internet Draft R. Subramaniam Document: Cisco systems Category: Informational February 2002 Expires: August 2002 NAS packages for MGCP 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. 1. Abstract This document contains two MGCP packages that define the signaling interface for data calls between a Call Agent and a Network Access Server (NAS). 2. 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. 3. Introduction This document contains two packages: * A basic NAS package that provides the interface to a Call Agent for handling modem calls that terminate on the NAS and originate from the public switched telephone network (PSTN). This includes the ability to handle callback requests. * A data out package that is used for the case when a packet arrives at the NAS for some network that is accessible via dial- out. B. Foster, R. Subramaniam Informational [Page 1] NAS Packages for MGCP February 2002 4. Basic NAS Package Package Name: NAS 4.1. Package Description The NAS typically performs call admission control based on a request it sends out to an AAA server. Results of the authorization are passed as notifications to the Call Agent. The basic NAS package provides: * The necessary events (section 4.2) to indicate if the authorization succeeded or was denied, an event to handle callback requests, and an (operation fail) event for handling pre-authentication failure cases. * A new connection mode (section 4.3) to handle the one-sided data connection that is associated with connecting to a NAS. * New Local Connection Options (section 4.4.) associated with making a data connection to the NAS * Package specific error codes (section 4.5) and * Package specific reason codes (section 4.6) 4.2. Events and Signals The following events are part of this package ----------------------------------------------------------- | Symbol | Definition | R | S Duration| |-----------------------------------------------------------| | au | Authorization succeeded | x | | | ax | Authorization denied | x | | | crq | Call Request | x | | | of | NAS failure | x | | ----------------------------------------------------------- 4.2.1. Authorization Succeeded (au): Event indicating that authorization succeeded. 4.2.2. Authorization Failed (ax): Event indicating that authorization failed. 4.2.3. Call Request Event (crq): This event is used to indicate a request by the endpoint to make an outgoing call (call-back request). For outgoing data calls as a result of a packet arrival, refer to the NAO package in section 5. The "crq" event may be parameterized with one or more of the following parameters: cdn() where is a string representing the number to be called. B. Foster, R. Subramaniam Informational [Page 2] NAS Packages for MGCP February 2002 cgn() where is a string representing the number to be called. bw() where the is one of the two values "56" or "64". bt () where can be one of either "modem" or "digital" If there is more than one parameter, parameters are separated by commas. 4.2.4 Operation Fail (of): This event may occur as a result of any failure prior to successful initiation of service. Once service has begun, it indicates that the NAS was unable to communicate with the AAA server. 1: NAS internal error 2: modems failed to train 3: no response from AAA server 4: general pre-authentication failure Example operation fail observed event indicating a NAS internal error: O: nas/of(1) 4.3. Connection Mode The basic NAS package includes the "data" connection mode. This should be encoded with the package prefix so in this case: M: nas/data 4.4. Local Connection options The following local connection options are associated with the NAS package. They are specified with the create connection (CRCX) command to pass additional parameters to enable call admission control. They are: * Called party number encoded as "nas/cdn" followed by colon, followed by a string indicating the called party number * calling party number encoded as "nas/cgn" followed by colon followed by the calling party number * type of bearer encoded as "nas/bt" followed by a colon followed by one of either "modem" or "digital" B. Foster, R. Subramaniam Informational [Page 3] NAS Packages for MGCP February 2002 Example usage in a NAS environment: CRCX 3001 ds/ds1-1/1@nas123.whatever.net MGCP 1.0 C: 463793 M: nas/data L: nas/cdn:2374899,nas/cgn:2371234,nas/bt:modem 4.5. Error Codes The following package specific error codes are included as part of the NAS package: Code Text Explanation 800 ISP Port Limit The call cannot be connected Overrun because allocation of a modem would cause the configured port limit for the ISP to be exceeded. 801 No Modems Available NAS has no more modems available to use for this call. 802 Calling Number The calling number is being Unacceptable blocked or is not allowed to call this service. 803 Called Number The called number supplied is Unacceptable unknown or blocked by this gateway. Note that package specific error codes should include the package name following the error code. For example, if error code 801 occurs in response to a request with a transaction ID of 1001 it would be sent as: 801 1001 /NAS B. Foster, R. Subramaniam Informational [Page 4] NAS Packages for MGCP February 2002 4.6. Reason Codes In cases where the NAS session has terminated at a point in time subsequent to registration of the first accounting record for the service, a delete connection would be sent with one of the reason codes below. The reason codes are as defined for the RADIUS Acct-Terminate-Cause event (see RFC 2866). The list of values is reproduced here for information. See RFC 2866 for detailed definitions. 801 User Request 802 Lost Carrier 803 Lost Service 804 Idle Timeout 805 Session Timeout 806 Admin Reset 807 Admin Reboot 808 Port Error 809 NAS Error 810 NAS Request 811 NAS Reboot 812 Port Unneeded 813 Port Preempted 814 Port Suspended 815 Service Unavailable 816 Callback 817 User Error 818 Host Request Note that package specific reason codes should have package name as a suffix (e.g. E: 801 /NAS). 5. NAS Data Out Package Package Name: NAO 5.1. Package Description: The purpose of this package is to support outgoing calls by a data network user. The package contains a new event (section 5.2) and a new local connection option (section 5.3). 5.2. Events and Signals The following event is part of this package ----------------------------------------------------------- | Symbol | Definition | R | S Duration| |-----------------------------------------------------------| | rq | Outgoing Call request | P | | ----------------------------------------------------------- B. Foster, R. Subramaniam Informational [Page 5] NAS Packages for MGCP February 2002 This is a persistent event (i.e. does not have to be requested by the Call Agent). It will be generated from a virtual endpoint when a data packet arrives from the data network and a call out is requested. The endpoint corresponding to a particular ds0 need not be specified. The Call Agent responds by doing a create connection on an available (real) endpoint. The "rq" event is parameterized with the following parameters: cdn() where is a string representing the number to be called. duh() where is a string representing a handle to an existing user data network connection which is to be provided outgoing service. This value is generated by and is of local significance to the gateway. It is supplied later as a local connection option as part of the subsequent create connection request. Each of the parameters is separated by a comma e.g. O: nao/rq(cdn(19193922345),duh(39848)) 5.3. Local Connection Option This package adds a new local connection option to be used by the Call Agent when it does a create connection subsequent to receiving the "rq" event. This is the "data user handle" local connection option. This parameter is encoded with the letters "duh" followed by a colon, followed by the value of the data user handle from the previously received "rq" event. Example: Notify (from a virtual endpoint) occurs as a result of a packet arrival at the NAS: NTFY 3001 vt/21@gw1.whatever.net MGCP 1.0 X: 0 O: nao/orq(cdn(5903333),nao/duh(3478)) The resulting connection request from the Call Agent to the gateway might look as follows: CRCX 2002 ds/ds1-3/6@gw1.whatever.net MGCP 1.0 C: A7453949499 L: nas/cdn:5903333,nao/duh:3478 M: nas/data B. Foster, R. Subramaniam Informational [Page 6] NAS Packages for MGCP February 2002 6. Call flows 6.1. Incoming Call (Modem) ========================== 1. Call Agent receives SS7 IAM message (SS7 is assumed in the following call flows although other signaling interfaces are also possible (e.g. PRI, CAS) 2. Call Agent sends a create connection to the NAS CRCX 1001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 X: 012389 C: 847384 M: nas/data L: nas/cdn:123455,nas/cgn:2345,nas/bt:digital,b:64 R: nas/of, nas/au, nas/ax * The First line is command line for create connection. * The second line includes the request identifier for the notification request (associated with the R: line) * The third line contains the call ID * The fourth line specifies connection mode = data (required for NAS) * The fifth line specifies the local connection options which provides the cgn, cdn, bandwidth and the bearer type. * The sixth line is a request to be notified if there is an operation failure ("of" event) or authorization success ("au") or failure ("ax" event). 3. The Media Gateway does some pre-authentication checks. a) If successful it will return the following to the Call Agent 200 1001 OK I: 234567 Line 1 specifies response code 200 with the transaction ID Line 2 specifies the connection Id b) If these pre-authentication checks fail, then the NAS responds with an error indication such as 801 1001 /NAS where 801 is a new return code to denote that there were no modems available. 4. Suppose the CRCX in 3 a) was successful. Then one of the following could happen: a) Suppose the authorization was successful. In that case, the Call Agent would receive a notification to that affect: B. Foster, R. Subramaniam Informational [Page 7] NAS Packages for MGCP February 2002 NTFY 3001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 X: 012389 O: nas/au The Call Agent would then respond with 200 3001 OK b) Suppose instead there was a Modem failure after the CRCX but prior to the AAA sequence. In that case, the MG would send an operation fail event to Call Agent as follows NTFY 3001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 X: 012389 O: nas/of(2) Where the parameter "2" indicates " modems failed to train" The Call Agent might then respond with 200 3001 OK and follow that with a delete connection DLCX 1002 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 C: 847384 I: 234567 MG responds 200 1002 OK Note: either 200 or 250 are possible return codes for successful delete connection. c) There could have also been an authorization failure: NTFY 3001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 X: 012389 O: nas/ax The Call Agent might then respond with 200 3001 OK and follow that with a delete connection DLCX 1002 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 C: 847384 I: 234567 MG responds 200 1002 OK B. Foster, R. Subramaniam Informational [Page 8] NAS Packages for MGCP February 2002 Note: either 200 or 250 are possible return codes for successful delete connection. 5. If there is an error that the NAS detects later on such that it is unable to sustain the data connection, the NAS can send a delete connection to the Call Agent. For example, suppose the idle timer expires on the NAS. The NAS may then send a DLCX to the Call Agent DLCX 3001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 C: 847384 I: 234567 E: 804 /NAS Idle Timeout Call Agent responds with 200 3001 OK 6.2. Call Back Request ====================== In some cases, support for call back may be required. In that case, the CRCX in step 1 in the previous section would include the additional requested event i.e. R: nas/of, nas/au, nas/ax, nas/crq If the call-back request occurs, the Call Agent would receive the corresponding notification e.g. NTFY 3001 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 X: 012389 O: nas/crq(cdn(19193922345),cgn(19193922356),bt(modem)) The Call Agent would then release the existing call and send a new IAM message for the destination number supplied. 6.3. Call Release from NAS ========================== 1. The NAS does this by sending a DLCX to the Call Agent. DLCX 1002 ds/ds1-3/6@nas1.dept234.net MGCP 1.0 C: 847384 I: 234567 E: 801 /NAS User request 2. Call Agent responds with 200 1002 OK B. Foster, R. Subramaniam Informational [Page 9] NAS Packages for MGCP February 2002 6.4. Outgoing data call from the NAS ==================================== This is the case where there is a packet arrives at the NAS for a next-hop address that is available via dial-out. 1. NAS sends NTFY 3001 vt/23@nas1.dept234.net MGCP 1.0 X:0 O: nao/rq(cdn(19193922345),duh(39848)) Notes: * Notice that the request identifier is 0. This is because this is a persistent event, and there was no notification request to this endpoint (with a request identifier value) prior to this notification. * The endpoint ID is a virtual endpoint selected by the gateway. It has no relationship to any physical endpoint. 2. Call Agent sends the IAM message and makes the appropriate connection request for an available DS0 e.g.: CRCX 1001 ds/ds1-4/12@nas1.dept234.net MGCP 1.0 C: 47583 M: nas/data L: nas/cdn:919392345,nas/bt:data,nao/duh:39848 3. The NAS returns 200 1001 OK I: 384730 7. Change from previous Changes from draft-foster-mgcp-nas-02.txt: * Correction of error in reason code syntax, section 6.3. 8. References [1] Arango, R et al, Media Gateway Control Protocol (MGCP) Version 1.0bis, Internet draft, draft-andreasen-mgcp-rfc2705bis-00.txt 9. Acknowledgements The NAS package was updated from the original NAS package in [1] with an attempt to align with the H.248 equivalent. Thanks also for input from Chip Sharp and Dana Blair of Cisco Systems. B. Foster, R. Subramaniam Informational [Page 10] NAS Packages for MGCP February 2002 10. Author's Addresses Bill Foster Cisco Systems Email: bfoster@cisco.com Ravi Subramaniam Cisco Systems 7025 Kit Creek Road PO Box 14987 Research Triangle Park, NC, 27709-4987 Phone: +1 919 392-6159 Email: ravis@cisco.com 11. Full Copyright Statement Copyright (C) The Internet Society (2001). 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, R. Subramaniam Informational [Page 11]