Internet DRAFT - draft-foster-mgcp-nas
draft-foster-mgcp-nas
Internet Engineering Task Force B. Foster
Internet Draft R. Subramaniam
Document: <draft-foster-mgcp-nas-03.txt> 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(<destination-number>) where <destination-number> is a string
representing the number to be called.
B. Foster, R. Subramaniam Informational [Page 2]
NAS Packages for MGCP February 2002
cgn(<calling-number>) where <calling-number> is a string representing
the number to be called.
bw(<bandwidth>) where the <bandwidth> is one of the two values "56"
or "64".
bt (<bearer-type>) where <bearer-type> 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(<destination-number>) where <destination-number> is a string
representing the number to be called.
duh(<data-user-handle>) where <data-user-handle> 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]