Network Working Group R. Kumar Request for Comments: 3108 M. Mostafa Category: Standards Track Cisco Systems May 2001 Conventions for the use of the Session Description Protocol (SDP) for ATM Bearer Connections Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2001). All Rights Reserved.Abstract
This document describes conventions for using the Session Description Protocol (SDP) described in RFC 2327 for controlling ATM Bearer Connections, and any associated ATM Adaptation Layer (AAL). The AALs addressed are Type 1, Type 2 and Type 5. This list of conventions is meant to be exhaustive. Individual applications can use subsets of these conventions. Further, these conventions are meant to comply strictly with the SDP syntax as defined in RFC 2327.Table of Contents
1. Introduction................................................... 3 1.1 Key words to indicate Requirement Levels..................... 5 2. Representation of Certain Fields within SDP description lines.. 5 2.1 Representation of Extension Attributes....................... 5 2.2 Representation of Parameter Values........................... 5 2.3 Directionality Convention.................................... 6 2.4 Case convention............................................... 7 2.5 Use of special characters in SDP parameter values............. 8 3. Capabilities Provided by SDP conventions....................... 8 4. Format of the ATM Session Description.......................... 9 5. Structure of the Session Description Lines.................... 11 5.1 The Origin Line.............................................. 11 5.2 The Session Name Line........................................ 12 5.3 The Connection Information Line.............................. 13 5.4 The Timestamp Line........................................... 15
5.5 Media Information Line for ATM connections................... 16 5.5.1 The Virtual Connection ID.................................. 16 5.5.2 The Transport Parameter.................................... 19 5.5.3 The Format List for AAL1 and AAL5 applications............. 21 5.5.4 The Format List for AAL2 applications...................... 21 5.5.5 Media information line construction........................ 22 5.6 The Media Attribute Lines.................................... 27 5.6.1 ATM bearer connection attributes........................... 28 5.6.1.1 The 'eecid' attribute.................................... 30 5.6.1.2 The 'aalType' attribute.................................. 31 5.6.1.3 The 'capability' attribute............................... 32 5.6.1.4 The 'qosClass' attribute................................. 33 5.6.1.5 The 'bcob' attribute..................................... 34 5.6.1.6 The 'stc' attribute...................................... 34 5.6.1.7 The 'upcc' attribute..................................... 35 5.6.1.8 The 'atmQOSparms' attribute.............................. 35 5.6.1.9 The 'atmTrfcDesc' attribute............................. 37 5.6.1.10 The 'abrParms' attribute................................. 39 5.6.1.11 The 'abrSetup' attribute................................. 40 5.6.1.12 The 'bearerType' attribute............................... 41 5.6.1.13 The 'lij' attribute...................................... 42 5.6.1.14 The 'anycast' attribute.................................. 43 5.6.1.15 The 'cache' attribute.................................... 43 5.6.1.16 The 'bearerSigIE' attribute.............................. 44 5.6.2 ATM Adaptation Layer (AAL) attributes...................... 45 5.6.2.1 The 'aalApp' attribute................................... 46 5.6.2.2 The 'cbrRate' attribute.................................. 48 5.6.2.3 The 'sbc' attribute...................................... 49 5.6.2.4 The 'clkrec' attribute................................... 51 5.6.2.5 The 'fec' attribute...................................... 51 5.6.2.6 The 'prtfl' attribute.................................... 51 5.6.2.7 The 'structure' attribute................................ 52 5.6.2.8 The 'cpsSDUsize' attribute............................... 53 5.6.2.9 The 'aal2CPS' attribute.................................. 53 5.6.2.10 The 'aal2CPSSDUrate' attribute........................... 54 5.6.2.11 The 'aal2sscs3661unassured' attribute.................... 54 5.6.2.12 The 'aal2sscs3661assured' attribute...................... 55 5.6.2.13 The 'aal2sscs3662' attribute............................. 56 5.6.2.14 The 'aal5sscop' attribute................................ 58 5.6.3 Service attributes......................................... 58 5.6.3.1 The 'atmmap' attribute................................... 60 5.6.3.2 The 'silenceSupp' attribute.............................. 63 5.6.3.3 The 'ecan' attribute..................................... 65 5.6.3.4 The 'gc' attributes...................................... 66 5.6.3.5 The 'profileDesc' attribute.............................. 67 5.6.3.6 The 'vsel' attribute..................................... 68 5.6.3.7 The 'dsel' attribute..................................... 70 5.6.3.8 The 'fsel' attribute..................................... 72
5.6.3.9 The 'onewaySel' attribute................................ 73 5.6.3.10 The 'codecconfig' attribute.............................. 75 5.6.3.11 The 'isup_usi' attribute................................. 76 5.6.3.12 The 'uiLayer1_Prot' attribute............................ 76 5.6.4 Miscellaneous media attributes............................. 77 5.6.4.1 The 'chain' attribute..................................... 77 5.6.5 Use of the second media-level part in H.323 Annex C applications............................................... 78 5.6.6 Use of the eecid media attribute in call establishment procedures................................................. 78 6. List of Parameters with Representations....................... 83 7. Examples of ATM session descriptions using SDP................. 93 8. Security Considerations........................................ 94 8.1 Bearer Security.............................................. 94 8.2 Security of the SDP description.............................. 95 9. ATM SDP Grammar................................................ 95 References........................................................104 Acknowledgements..................................................109 Authors' Addresses................................................109 Full Copyright Statement..........................................1101. Introduction
SDP will be used in conjunction with a connection handling /device control protocol such as Megaco (H.248) [26], SIP [18] or MGCP [25] to communicate the information needed to set up ATM and AAL2 bearer connections. These connections include voice connections, voiceband data connections, clear channel circuit emulation connections, video connections and baseband data connections (such as fax relay, modem relay, SSCOP, frame relay etc.). These conventions use standard SDP syntax as defined in RFC 2327 [1] to describe the ATM-level and AAL-level connections, addresses and other parameters. In general, parameters associated with layers higher than the ATM adaptation layer are included only if they are tightly coupled to the ATM or AAL layers. Since the syntax conforms to RFC 2327, standard SDP parsers should react in a well-defined and safe manner on receiving session descriptions based on the SDP conventions in this document. This is done by extending the values of fields defined in RFC 2327 rather than by defining new fields. This is true for all SDP lines except the of the media attribute lines, in which case new attributes are defined. The SDP protocol allows the definition of new attributes in the media attribute lines which are free-form. For the remaining lines, the fact that the <networkType> field in an SDP descriptor is set to "ATM" should preclude the misinterpretation of extended parameter values by RFC 2327-compliant SDP parsers.
These conventions are meant to address the following ATM applications: 1. Applications in which a new SVC is set-up for each service connection. These SVCs could be AAL1 or AAL5 SVCs or single- CID AAL2 SVCs. 2. Applications in which existing path resources are assigned to service connections. These resources could be: * AAL1/AAL5 PVCs, SPVCs or cached SVCs, * AAL2 single-CID PVCs, SPVCs or cached SVCs, * CIDs within AAL2 SVCs/PVCs/SPVCs that multiplex multiple CIDs. * Subchannels (identified by CIDs) within AAL1 [8] or AAL2 [11] SVCs/PVCs/SPVCs. Note that the difference between PVCs and SPVCs is in the way the bearer virtual circuit connection is set up. SPVCs are a class of PVCs that use bearer signaling, as opposed to node-by-node provisioning, for connection establishment. This document is limited to the case when the network type is ATM. This includes raw RTP encapsulation [45] or voice sample encapsulation [46] over AAL5 with no intervening IP layer. It does not address SDP usage for IP, with or without ATM as a lower layer. In some cases, IP connection set-up is independent of lower layers, which are configured prior to it. For example, AAL5 PVCs that connect IP routers can be used for VoIP calls. In other cases, VoIP call set-up is closely tied to ATM-level connection set-up. This might require a chaining of IP and ATM descriptors, as described in section 5.6.4.1. This document makes no assumptions on who constructs the session descriptions (media gateway, intermediate ATM/AAL2 switch, media gateway controller etc.). This will be different in different applications. Further, it allows the use of one session description for both directions of a connection (as in SIP and MGCP applications) or the use of separate session descriptions for different directions. It also addresses the ATM multicast and anycast capabilities. This document makes no assumptions about how the SDP description will be coded. Although the descriptions shown here are encoded as text, alternate codings are possible: - Binary encoding such as ASN.1. This is an option (in addition to text encoding) in the Megaco context.
- Use of extended ISUP parameters [36] to encode the information in SDP descriptors, with conversion to/from binary/text-based SDP encoding when needed.1.1 Key words to indicate Requirement Levels
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 [62].2. Representation of Certain Fields within SDP description lines
This document conforms to the syntactic conventions of standard SDP as defined in RFC 2327 [1].2.1 Representation of Extension Attributes
The SDP protocol [1] requires that non-standard attributes and codec names use an "X-" prefix. In this internet document, the "X-" prefix is used consistently for codec names (Table 2) that have not been registered with the IANA. The IANA-registered codec names listed in [31] do not use this prefix, regardless of whether they are statically or dynamically assigned payload types. However, this prefix is not used for the extension SDP attributes defined in this document. This has been done to enhance legibility. This document suggests that parsers be flexible in the use of the "X-" prefix convention. They should accept codec names and attribute names with or without the "X-" prefix.2.2 Representation of Parameter Values
Depending on the format of their representation in SDP, the parameters defined in this document fall into the following classes: (1) Parameters always represented in a decimal format. (2) Parameters always represented in a hexadecimal format. (3) Parameters always represented as character strings. (4) Parameters that can be represented in either decimal or hexadecimal format. No prefixes are needed for classes 1 - 3, since the format is fixed. For class 4, a "0x" prefix shall always be used to differentiate the hexadecimal from the decimal format.
For both decimal and hex representations, if the underlying bit field is smaller or larger than the binary equivalent of the SDP representation, then leading 0 bits should be added or removed as needed. Thus, 3 and 0x3 translate into the following five-bit pattern: 0 0011. The SDP representations 0x12 and 18 translate into the following five-bit pattern: 1 0010. Leading 0 digits shall not be used in decimal representations. Generally, these are also not used in hexadecimal representations. Exceptions are when an exact number of hex digits is expected, as in the case of NSAP addresses. Parsers shall not reject leading zeros in hex values. Both single-character and multi-character string values are enclosed in double quotes (i.e., "). By contrast, single quotes (i.e., ') are used for emphasizing keywords rather than to refer to characters or strings. In the text representation of decimal and hex numbers, digits to the left are more significant than digits to the right.2.3 Directionality Convention
This section defined the meaning of the terms 'forward' and 'backward' as used in this document. This is specially applicable to parameters that have a specific direction associated with them. In this document, 'forward' refers to the direction away from the ATM node under consideration, while 'backward' refers to the direction towards the ATM node. This convention must be used in all SDP-based session descriptions regardless of whether underlying bearer is an SVC, a dynamically allocated PVC/SPVC or a dynamically allocated CID. This is regardless of which side originates the service connection. If ATM SVC or AAL2 Q.2630.1 signaling is used, the directionality convention is independent of which side originates the SVC or AAL2 connection. This provides a simple way of identifying the direction in which a parameter is applicable, in a manner that is independent of the underlying ATM or AAL2 bearer. This simplicity comes at a price, described below. The convention used by all ATM/AAL2 signaling specifications (e.g., Q.2931 Section 1.3.3 and Q.2630.1) mandates that forward direction is from the end initiating setup/establishment via bearer signaling towards the end receiving the setup/establishment request. The backward direction is in the opposite direction. In some cases, the 'forward' and 'backward' directions of the ATM signaling convention
might be the exact opposite of the SDP convention described above, requiring the media gateway to perform the necessary translation. An example case in which this is needed is described below. Consider an SDP description sent by a media gateway controller to the gateway originating a service-level call. In the backward SVC call set-up model, this gateway terminates (rather than originates) an SVC call. The media gateway refers to the traffic descriptor (and hence the PCR) in the direction away from this gateway as the forward traffic descriptor and forward PCR. Clearly, this is at odds with ATM SVC signaling which refers to this very PCR as the backward PCR. The gateway needs to be able to perform the required swap of directions. In this example, the media gateway terminating the service level call (and hence originating the SVC call) does not need to perform this swap. Certain parameters within attributes are defined exclusively for the forward or backward directions. Examples for the forward direction are the <fsssar> subparameter within the 'aal2sscs3661unassured' media attribute line, the <fsssar>, <fsscopsdu> and <fsscopuu> subparameters within the 'aal2sscs3661assured' media attribute line, the <fsscopsdu> and <fsscopuu> subparameters within the 'aal5sscop' media attribute line, and the <fmaxFrame> parameter within the 'aal2sscs3662' media attribute line. Examples for the backward direction are the <bsssar> subparameter within the 'aal2sscs3661unassured' media attribute line, the <bsssar>, <bsscopsdu> and <bsscopuu> subparameters within the 'aal2sscs3661assured' media attribute line, the <bsscopsdu> and <bsscopuu> subparameters within the 'aal5sscop' media attribute line, and the <bmaxFrame> parameter within the 'aal2sscs3662' media attribute line.2.4 Case convention
As defined in RFC 2327 [1], SDP syntax is case-sensitive. Since these ATM conventions conform strictly with SDP syntax, they are case-sensitive. SDP line types (e.g., "c", "m", "o", "a") and fields in the SDP lines should be built according to the case conventions in [1] and in this document. It is suggested, but not required, that SDP parsers for ATM applications be case-tolerant where ignoring case does not result in ambiguity. Encoding names, which are defined outside the SDP protocol, are case-insensitive.
2.5 Use of special characters in SDP parameter values
In general, RFC 2327-conformant string values of SDP parameters [1] do not include special characters that are neither alphabets nor digits. An exception is the "/" character used in the value "RTP/AVP" of transport sub-field of the 'm' line. String values used in SDP descriptions of ATM connections retain this convention, while allowing the use of the special character "/" in a manner commensurate with [1]. In addition, the special characters "$" and "-" are used in the following manner. A "$" value is a wildcard that allows the recipient of the SDP description to select any permitted value of the parameter. A "-" value indicates that it is not necessary to specify the value of the parameter in the SDP description because this parameter is irrelevant for this application, or because its value can be known from another source such as provisioning, defaults, another protocol, another SDP descriptor or another part of the same SDP descriptor. If the use of these special characters is construed as a violation of RFC 2327 [1] syntax, then reserved string values can be used. The string "CHOOSE" can be used in lieu of "$". The string "OMIT" can be used in lieu of "-" for an omitted parameter.3. Capabilities Provided by SDP conventions
To support the applications listed in section 1, the SDP conventions in this document provide the following session control capabilities: * Identification of the underlying bearer network type as ATM. * Identification by an ATM network element of its own address, in one of several possible formats. A connection peer can initiate SVC set-up to this address. A call agent or connection peer can select an pre-established bearer path to this address. * Identification of the ATM bearer connection that is to be bound to the service-level connection. Depending on the application, this is either a VCC or a subchannel (identified by a CID) within a VCC. * Identification of media type: audio, video, data. * In AAL1/AAL5 applications, declaration of a set of payload types that can be bound to the ATM bearer connection. The encoding names and payload types defined for use in the RTP context [31] are re-used for AAL1 and AAL5, if applicable.
* In AAL2 applications, declaration of a set of profiles that can be bound to the ATM bearer connection. A mechanism for dynamically defining custom profiles within the SDP session description is included. This allows the use of custom profiles for connections that span multi-network interfaces. * A means of correlating service-level connections with underlying ATM bearer connections. The backbone network connection identifier or bnc-id specified in ITU Q.1901 [36] standardization work is used for this purpose. In order to provide a common SDP base for applications based on Q.1901 and SIP/SIP+, the neutral term 'eecid' is used in lieu of 'bnc-id' in the SDP session descriptor. * A means of mapping codec types and packetization periods into service types (voice, voiceband data and facsimile). This is useful in determining the encoding to use when the connection is upspeeded in response to modem or facsimile tones. * A means of describing the adaptation type, QoS class, ATM transfer capability/service category, broadband bearer class, traffic parameters, CPS parameters and SSCS parameters related the underlying bearer connection. * Means for enabling or describing special functions such as leaf- initiated-join, anycast and SVC caching. * For H.323 Annex C applications, a means of specifying the IP address and port number on which the node will receive RTCP messages. * A means of chaining consecutive SDP descriptors so that they refer to different layers of the same connection.4. Format of the ATM Session Description
The sequence of lines in the session descriptions in this document conforms to RFC 2327 [1]. In general, a session description consists of a session-level part followed by zero or more media-level parts. ATM session descriptions consist of a session-level part followed by one or two media-level parts. The only two media applicable are the ATM bearer medium and RTCP control (where applicable). The session level part consists of the following lines: v= (protocol version, zero or one line) o= (origin, zero or one line) s= (session name, zero or one line)
c= (connection information, one line) b= (bandwidth, zero or more lines) t= (timestamp, zero or one line) k= (encryption key, zero or one line) In ATM session descriptions, there are no media attribute lines in the session level part. These are present in the media-level parts. The media-level part for the ATM bearer consists of the following lines: m= (media information and transport address, one line) b= (bandwidth, zero or more lines) k= (encryption key, zero or more lines) a= (media attribute, zero or more lines) The media-level part for RTCP control consists of the following lines: m= (media information and transport address, one line) c= (connection information for control only, one line) In general, the 'v', 'o', 's', and 't' lines are mandatory. However, in the Megaco [26] context, these lines have been made optional. The 'o', 's', and 't' lines are omitted in most MGCP [25] applications. Note that SDP session descriptors for ATM can contain bandwidth (b=) and encryption key (k=) lines. Like all other lines, these lines should strictly conform to the SDP standard [1]. The bandwidth (b=) line is not necessarily redundant in the ATM context since, in some applications, it can be used to convey application-level information which does not map directly into the atmTrfcDesc media attribute line. For instance, the 'b' line can be used in SDP descriptors in RTSP commands to describe content bandwidth. The encryption key line (k=) can be used to indicate an encryption key for the bearer, and a method to obtain the key. At present, the encryption of ATM and AAL2 bearers has not been conventionalized, unlike the encryption of RTP payloads. Nor has the authentication or encryption of ATM or AAL2 bearer signaling. In the ATM and AAL2 contexts, the term 'bearer' can include 'bearer signaling' as well as 'bearer payloads'. The order of lines in an ATM session description is exactly in the RFC 2327-conformant order depicted above. However, there is no order of the media attribute ('a') lines with respect to other 'a' lines.
The SDP protocol version for session descriptions using these conventions is 0. In conformance with standard SDP, it is strongly recommended that the 'v' line be included at the beginning of each SDP session description. In some contexts such as Megaco, the 'v' line is optional and may be omitted unless several session descriptions are provided in sequence, in which case the 'v' line serves as a delimiter. Depending on the application, sequences of session descriptions might refer to: - Different connections or sessions. - Alternate ways of realizing the same connection or session. - Different layers of the same session (section 5.6.4.1). The 'o', 's' and 't' lines are included for strict conformance with RFC 2327. It is possible that these lines might not carry useful information in some ATM-based applications. Therefore, some applications might omit these lines, although it is recommended that they not do so. For maximum interoperability, it is preferable that SDP parsers not reject session descriptions that do not contain these lines.5. Structure of the Session Description Lines
5.1 The Origin Line
The origin line for an ATM-based session is structured as follows: o=<username> <sessionID> <version> <networkType> <addressType> <address> The <username> is set to "-". The <sessionID> can be set to one of the following: * an NTP timestamp referring to the moment when the SDP session descriptor was created. * a Call ID, connection ID or context ID that uniquely identifies the session within the scope of the ATM node. Since calls can comprise multiple connections (sessions), call IDs are generally not suitable for this purpose. NTP time stamps can be represented as decimal or hex integers. The part of the NTP timestamp that refers to an integer number of seconds is sufficient. This is a 32-bit field On the other hand, call IDs, connection IDs and context IDs can be can be 32 hex digits long.
The <sessionID> field is represented as a decimal or hex number of up to 32 digits. A "0x" prefix is used before the hex representation. The <version> refers to the version of the SDP session descriptor (not that of the SDP protocol). This is can be set to one of the following: * 0. * an NTP timestamp referring to the moment when the SDP session descriptor was modified. If the SDP session descriptor has not been modified by an intermediate entity (such as an MGC), then the <version> timestamp will be the same as the <sessionId> timestamp, if any. As with the <sessionId>, only the integer part of the NTP timestamp is used. When equated to the integer part of an NTP timestamp, the <version> field is 10 digits wide. This is more restricted than [1], which allows unlimited size. As in [1], the most significant digit is non-zero when an NTP timestamp is used. The <networkType> in SDP session descriptions for ATM applications should be assigned the string value "ATM" or wildcarded to a "$" or "-". The <addressType> and <address> parameters are identical to those for the connection information ('c') line (Section 5.3). Each of these parameters can be wildcarded per the conventions described for the 'c' line in Section 5.3. These parameters should not me omitted since this would violate SDP syntax [1]. As with the 'c' line, SDP parsers are not expected to check the consistency of <networkType> with <addressType>, <address> pairs. The <addressType> and <address> need to be consistent with each other.5.2 The Session Name Line
In general, the session name line is structured as follows: s=<sessionName> For ATM-based sessions, the <sessionName> parameter is set to a "-". The resulting line is: s=-
5.3 The Connection Information Line
In general, the connection information line [1] is structured as follows: c=<networkType> <addressType> <address> For ATM networks, additional values of <networkType>, <addressType> and <address> are defined, over and above those listed in [1]. The ABNF syntax (Section 9) for ATM SDP does not limit the ways in which <networkType> can be combined with <addressType>, <address> pairs. However, some combinations will not be valid in certain applications, while others will never be valid. Invalid combinations should be rejected by application-specific functions, and not by generic parsers. The ABNF syntax does limit the ways in which <addressType> and <address> can be paired. For ATM networks, the value of <networkType> should be set to "ATM". Further, this may be wildcarded to "$" or "-". If this is done, an node using ATM as the basic transport mechanism will select a value of "ATM". A node that interfaces with multiple network types ("IN", "ATM" etc.) that include ATM can also choose a value of "ATM". When the SDP description is built by a node such as a media gateway, the <address> refers to the address of the node building the SDP description. When this description is forwarded to another node, it still contains the original node's address. When the media gateway controller builds part or all of the SDP description, the local descriptor contains the address of the local node, while the remote descriptor contains the address of the remote node. If the <address> and/or <addressType> are irrelevant or are known by other means, they can be set to a "$" or a "-", as described below. Additionally, in all contexts, the 'm' line can have an ATM address in the <virtualConnectionId> subparameter which, if present, is the remote address if the 'c' line address is local, and vice versa. For ATM networks, the <addressType> can be NSAP, E164 or GWID (ALIAS). For ATM networks, the <address> syntax depends on the syntax of the <addressType>. SDP parsers should check the consistency of <addressType> with <address>. NSAP: If the addressType is NSAP, the address is expressed in the standard dotted hex form. This is a string of 40 hex digits, with dots after the 2nd, 6th, 10th, 14th, 18th, 22nd, 26th, 30th, 34th and 38th digits. The last octet of the NSAP address is the 'selector' field that is available for non-standard use. An example of a line with an NSAP address is:
c=ATM NSAP 47.0091.8100.0000.0060.3e64.fd01.0060.3e64.fd01.00 A "0x" prefix shall not be used in this case since this is always in hexadecimal format. E164: If the addressType is E164, the address is expressed as a decimal number with up to 15 digits. For example: c=ATM E164 9738294382 The use of E.164 numbers in the B-ISDN context is defined in ITU E.191. There is a disparity between the ATM forum and the ITU in the use of E.164 numbers for ATM addressing. The ATM forum (e.g., UNI Signaling 4.0) allows only International Format E.164 numbers, while the ITU (e.g., Q.2931) allows private numbering plans. Since the goal of this SDP specification is to interoperate with all bearer signaling protocols, it allows the use of numbers that do not conform to the E.164 International Format. However, to maximize overall consistency, network administrators can restrict the provisioning of numbers to the E.164 International Format. GWID (ALIAS): If the addressType is GWID, it means that the address is a Gateway Identifier or Node Alias. This may or may not be globally unique. In this format, the address is expressed as an alphanumeric string ("A"-"Z", "a"-"z", "0" - "9",".","-","_"). For example: c=ATM GWID officeABCmgx101vism12 Since these SDP conventions can be used for more than gateways, the string "ALIAS" can be used instead of "GWID" in the 'c' line. Thus, the example above is equivalent to: c=ATM ALIAS officeABCmgx101vism12 An example of a GWID (ALIAS)is the CLLI code used for telecom equipment. For all practical purposes, it should be adequate for the GWID (ALIAS) to be a variable length string with a maximum size of 32 characters. The connection information line is always present in an SDP session descriptor. However, each of the parameters on this line can be wildcarded to a "$" or a "-", independently of whether other parameters on this line are wildcarded or not. Not all syntactically legal wildcard combinations are meaningful in a particular application.
Examples of meaningful wildcard combinations in the ATM context are: c=- - - c=$ $ $ c=ATM - - c=ATM $ $ c=ATM <addressType> - c=ATM <addressType> $ Specifying the ATM address type without specifying the ATM address is useful when the recipient is asked to select an ATM address of a certain type (NSAP, E.164 etc.). Examples of syntactically legal wildcard combinations of dubious utility are: c=- $ - c=- $ $ c=- <addressType> - c=$ <addressType> $ c=- <addressType> <address> c=$ <addressType> <address> Note that <addressType> and/or <address> should not omitted without being set to a "-" or "$" since this would violate basic SDP syntax [1].5.4 The Timestamp Line
The timestamp line for an SDP session descriptor is structured as follows: t= <startTime> <stopTime> Per Ref. [49], NTP time stamps use a 32 bit unsigned representation of seconds, and a 32 bit unsigned representation of fractional seconds. For ATM-based sessions, the <startTime>parameter can be made equal to the NTP timestamp referring to the moment when the SDP session descriptor was created. It can also be set to 0 indicating its irrelevance. If it made equal to the NTP timestamp in seconds, the fractional part of the NTP timestamp is omitted. When equated to the integer part of an NTP timestamp, the <startTime> field is 10 digits wide. This is more restricted than [1], which allows unlimited size. As in [1], the most significant digit is non-zero when an NTP timestamp is used. The <stopTime> parameter is set to 0 for ATM-based SDP descriptors.
5.5 Media Information Line for ATM connections
The general format of the media information line adapted for AAL1 and AAL5 applications is: m=<media> <virtualConnectionId> <transport> <format list> The general format of the media information line adapted for AAL2 applications is: m=<media> <virtualConnectionId> <transport#1> <format list#1> <transport#2> <format list#2> ... <transport#M> <format list#M> Note that <virtualConnectionId> is equivalent to <port> in [1]. The subparameter <media> can take on all the values defined in [1]. These are: "audio", "video", "application", "data" and "control". When the <transport> parameter has more than one value in the 'm' line, the <transport> <format list> pairs can be arranged in preferential order.5.5.1 The Virtual Connection ID
In applications in which the media-level part of a session descriptor is bound to an ATM virtual circuit, the <virtualConnectionId> can be in one of the following formats: * <ex_vcci> * <addressType>-<address>/<ex_vcci> * <address>/<ex_vcci> * <ex_bcg>/<ex_vcci> * <ex_portId>/<ex_vpi>/<ex_vci> * <ex_bcg>/<ex_vpi>/<ex_vci> * <ex_vpci>/<ex_vci> * <addressType>-<address>/<ex_vpci>/<ex_vci> * <address>/<ex_vpci>/<ex_vci> In applications in which the media-level part of a session descriptor is bound to a subchannel within an ATM virtual circuit, the <virtualConnectionId> can be in one of the following formats: * <ex_vcci>/<ex_cid> * <addressType>-<address>/<ex_vcci>/<ex_cid> * <address>/<ex_vcci>/<ex_cid> * <ex_bcg>/<ex_vcci>/<ex_cid> * <ex_portId>/<ex_vpi>/<ex_vci>/<ex_cid> * <ex_bcg>/<ex_vpi>/<ex_vci>/<ex_cid>
* <ex_vpci>/<ex_vci>/<ex_cid> * <addressType>-<address>/<ex_vpci>/<ex_vci>/<ex_cid> * <address>/<ex_vpci>/<ex_vci>/<ex_cid> Here, <ex_vcci> = VCCI-<vcci> <ex_vpci> = VPCI-<vpci> <ex_bcg> = BCG-<bcg> <ex_portId> = PORT-<portId> <ex_vpi> = VPI-<vpi> <ex_vci> = VCI-<vci> <ex_cid> = CID-<cid> The <vcci>, <vpi>, <vci>, <vpci> and <cid> are decimal numbers or hexadecimal numbers. An "0x" prefix is used before their values when they are in the hex format. The <portId> is always a hexadecimal number. An "0x" prefix is not used with it. The <addressType> and <address> are identical to their definitions above for the connection information line with the difference that this address refers to the remote peer in the media information line. Since the <virtualConnectionId>, as defined here, is meant for use in ATM networks, the values of <addressType> and <address> in the <virtualConnectionId> are limited to ATM-specific values. The <vpi>, <vci> and <cid> are the Virtual Path Identifier, Virtual Circuit Identifier and Channel Identifier respectively. The <vpi> is an 8 or 12 bit field. The <vci> is a 16-bit field. The <cid> is an 8-bit field ([8] and [11]). For AAL1 applications, it corresponds to the channel number defined in Annex C of [8]. The <vpci> is a 16-bit field defined in Section 4.5.16 of ITU Q.2931 [Ref. 15]. The <vpci> is similar to the <vpi>, except for its width and the fact that it retains its value across VP crossconnects. In some applications, the size of the <vpci> is the same as the size of the <vpi> (8 or 12 bits). In this case, the most significant 8 or 4 bits are ignored. The <vcci> is a 16-bit field defined in ITU Recommendation Q.2941.2 [32]. The <vcci> is similar to the <vci>, except for the fact that it retains its value across VC crossconnects. In general, <vpci> and <vcci> values are unique between a pair of nodes. When they are unique between a pair of nodes but not unique within a network, they need to be qualified, at any node, by the ATM
address of the remote node. These parameters can be pre-provisioned or signaled. When signaled, the <vpci> is encapsulated in the connection identifier information element of SVC signaling messages. The <vcci> is encapsulated in the Generic Information Transport (GIT) information element of SVC signaling messages. In an ATM node pair, either node can assign <vcci> values and signal it to the other end via SVC signaling. A glare avoidance scheme is defined in [32] and [44]. This mechanism works in SVC applications. A different glare avoidance technique is needed when a pool of existing PVCs/SPVCs is dynamically assigned to calls. One such scheme for glare reduction is the assignment of <vcci> values from different ends of the <vcci> range, using the lowest or highest available value as applicable. When <vpci> and <vcci> values are pre-provisioned, administrations have the option of provisioning them uniquely in a network. In this case, the ATM address of the far end is not needed to qualify these parameters. In the AAL2 context, the definition of a VCC implies that there is no CID-level switching between its ends. If either end can assign <cid> values, then a glare reduction mechanism is needed. One such scheme for glare reduction is the assignment of <cid> values from different ends of the <cid> range, using the lowest or highest available value as applicable. The <portId> parameter is used to identify the physical trunk port on an ATM module. It can be represented as a hexadecimal number of up to 32 hex digits. In some applications, it is meaningful to bundle a set of connections between a pair of ATM nodes into a bearer connection group. The <bcg> subparameter is an eight bit field that allows the bundling of up to 255 VPCs or VCCs. In some applications, it is necessary to wildcard the <virtualConnectionId> parameter, or some elements of this parameter. The "$" wildcard character can be substituted for the entire <virtualConnectionId> parameter, or some of its terms. In the latter case, the constant strings that qualify the terms in the <virtualConnectionId> are retained. The concatenation <addressType>-<address> can be wildcarded in the following ways: * The entire concatenation, <addressType>-<address>, is replaced with a "$". * <address> is replaced with a "$", but <addressType> is not.
Examples of wildcarding the <virtualConnectionId> in the AAL1 and AAL5 contexts are: $, VCCI-$, BCG-100/VPI-20/VCI-$. Examples of wildcarding the <virtualConnectionId> in the AAL2 context are: $, VCCI-40/CID-$, BCG-100/VPI-20/VCI-120/CID-$, NSAP-$/VCCI-$/CID-$, $/VCCI-$/CID-$. It is also permissible to set the entire <virtualConnectionId> parameter to a "-" indicating its irrelevance.5.5.2 The Transport Parameter
The <transport> parameter indicates the method used to encapsulate the service payload. These methods are not defined in this document, which refers to existing ATMF and ITU-T standards, which, in turn, might refer to other standards. For ATM applications, the following <transport> values are defined:
Table 1: List of Transport Parameter values used in SDP in the ATM context +---------------------------------------------------------------------+ | | Controlling Document for | | Transport | Encapsulation of Service Payload | +------------------------+--------------------------------------------+ | AAL1/ATMF | af-vtoa-0078.000 [7] | +------------------------+--------------------------------------------+ | AAL1/ITU | ITU-T H.222.1 [51] | +------------------------+--------------------------------------------+ | AAL5/ATMF | af-vtoa-0083.000 [46] | +------------------------+--------------------------------------------+ | AAL5/ITU | ITU-T H.222.1 [51] | +------------------------+--------------------------------------------+ | AAL2/ATMF | af-vtoa-0113.000 [44] and | | | af-vmoa-0145.000 [52] | +------------------------+--------------------------------------------+ | AAL2/ITU | ITU-T I.366.2 [13] | +------------------------+--------------------------------------------+ | AAL1/custom | Corporate document or | | AAL2/custom | application-specific interoperability | | AAL5/custom | statement. | +------------------------+--------------------------------------------+ | AAL1/<corporateName> | | | AAL2/<corporateName> | | | AAL5/<corporateName> | | | AAL1/IEEE:<oui> | Corporate document | | AAL2/IEEE:<oui> | | | AAL5/IEEE:<oui> | | +------------------------+--------------------------------------------+ | RTP/AVP | Annex C of H.323 [45] | +------------------------+--------------------------------------------+ In H.323 Annex C applications [45], the <transport> parameter has a value of "RTP/AVP". This is because these applications use the RTP protocol [2] and audio/video profile [3]. The fact that RTP is carried directly over AAL5 per [45] can be indicated explicitly via the aalApp media attribute. A value of "AAL1/custom", "AAL2/custom" or "AAL5/custom" for the <transport> parameter can indicate non-standard or semi-standard encapsulation schemes defined by a corporation or a multi-vendor agreement. Since there is no standard administration of this convention, care should be taken to preclude inconsistencies within the scope of a deployment.
The use of <transport> values "AAL1/<corporateName>", "AAL2/<corporateName>", "AAL5/<corporateName>", "AAL1/IEEE:<oui>", "AAL2/IEEE:<oui>" and "AAL5/IEEE:<oui>" is similar. These indicate non-standard transport mechanisms or AAL2 profiles which should be used consistently within the scope of an application or deployment. The parameter <corporateName> is the registered, globally unique name of a corporation (e.g., Cisco, Telcordia etc.). The parameter <oui> is the hex representation of a three-octet field identical to the OUI maintained by the IEEE. Since this is always represented in hex, the "0x" prefix shall not be used. Leading zeros can be omitted. For example, "IEEE:00000C" and "IEEE:C" both refer to Cisco Systems, Inc.5.5.3 The Format List for AAL1 and AAL5 applications
In the AAL1 and AAL5 contexts, the <format list> is a list of payload types: <payloadType#1> <payloadType#2>...<payloadType#n> In most AAL1 and AAL5 applications, the ordering of payload types implies a preference (preferred payload types before less favored ones). The payload type can be statically assigned or dynamically mapped. Although the transport is not the same, SDP in the ATM context leverages the encoding names and payload types registered with IANA [31] for RTP. Encoding names not listed in [31] use a "X-" prefix. Encodings that are not statically mapped to payload types in [31] are to be dynamically mapped at the time of connection establishment to payload types in the decimal range 96-127. The SDP 'atmmap' attribute (similar to 'rtpmap') is used for this purpose. In addition to listing the IANA-registered encoding names and payload types found in [31], Table 2 defines a few non-standard encoding names(with "X-" prefixes).5.5.4 The Format List for AAL2 applications
In the AAL2 context, the <format list> is a list of AAL2 profile types: <profile#1> <profile#2>...<profile#n> In most applications, the ordering of profiles implies a preference (preferred profiles before less favored ones). The <profile> parameter is expressed as a decimal number in the range 1-255.
5.5.5 Media information line construction
Using the parameter definitions above, the 'm' for AAL1-based audio media can be constructed as follows: m=audio <virtualConnectionId> AAL1/ATMF <payloadType#1> <payloadType#2>...<payloadType #n> Note that only those payload types, whether statically mapped or dynamically assigned, that are consistent with af-vtoa-78 [7] can be used in this construction. Backwards compatibility note: The transport value "AAL1/AVP" used in previous versions of this document should be considered equivalent to the value "AAL1/ATMF" defined above. "AAL1/AVP" is unsuitable because the AVP profile is closely tied to RTP. An example 'm' line use for audio media over AAL1 is: m=audio VCCI-27 AAL1/ATMF 0 This indicates the use of an AAL1 VCC with VCCI=24 to carry PCMU audio that is encapsulated according to ATMF's af-vtoa-78 [7]. Another example of the use of the 'm' line use for audio media over AAL1 is: m=audio $ AAL1/ATMF 0 8 This indicates that any AAL1 VCC may be used. If it exists already, then its selection is subject to glare rules. The audio media on this VCC is encapsulated according to ATMF's af-vtoa-78 [7]. The encodings to be used are either PCMU or PCMA, in preferential order. The 'm' for AAL5-based audio media can be constructed as follows: m=audio <virtualConnectionId> AAL5/ATMF <payloadType#1> <payloadType#2>...<payloadType #n> An example 'm' line use for audio media over AAL5 is: m=audio PORT-2/VPI-6/$ AAL5/ITU 9 15 implies that any VCI on VPI= 6 of trunk port #2 may be used. The identities of the terms in the virtual connection ID are implicit in the application context. The audio media on this VCC is encapsulated according to ITU-T H.222.1 [51]. The encodings to be used are either ITU-T G.722 or ITU-T G.728 (LD-CELP), in preferential order.
The 'm' for AAL5-based H.323 Annex C audio [45] can be constructed as follows: m=audio <virtualConnectionId> RTP/AVP <payloadType#1> <payloadType#2>...<payloadType #n> For example: m=audio PORT-9/VPI-3/VCI-$ RTP/AVP 2 96 a=rtpmap:96 X-G727-32 a=aalType:AAL5 a=aalApp:itu_h323c - - implies that any VCI on VPI= 3 of trunk port #9 may be used. This VC encapsulates RTP packets directly on AAL5 per [45]. The 'rtpmap' (rather than the 'atmmap') attribute is used to dynamically map the payload type of 96 into the codec name X-G727-32 (Table 2). This name represents 32 kbps EADPCM. The 'm' line for AAL5-based video media can be constructed as follows: m=video <virtualConnectionId> AAL5/ITU <payloadType#1> <payloadType#2>...<payloadType #n> In this case, the use of AAL5/ITU as the transport points to H.222.1 as the controlling standard [51]. An example 'm' line use for video media is: m=video PORT-9/VPI-3/VCI-$ AAL5/ITU 33 This indicates that any VCI on VPI= 3 of trunk port #9 may be used. The video media on this VCC is encapsulated according to ITU-T H.222.1 [51]. The encoding scheme is an MPEG 2 transport stream ("MP2T" in Table 1). This is statically mapped per [31] to a payload type of 33. Using the parameter definitions in the previous subsections, the media information line for AAL2-based audio media can be constructed as follows: m=<media> <virtualConnectionId> <transport#1> <format list#1> <transport#2> <format list#2> ... <transport#M> <format list#M> where <format list#i> has the form <profile#i_1>...<profile#i_N> Unlike the 'm' line for AAL1 or AAL5 applications, the 'm' line for AAL2 applications can have multiple <transport> parameters, each followed by a <format list>. This is because it is possible to
consider definitions from multiple sources (ATMF, ITU and non- standard documents) when selecting AAL2 profile to be bound to a connection. In most applications, the ordering of profiles implies a preference (preferred profiles before less favored ones). Therefore, there can be multiple instances of the same <transport> value in the same 'm' line. An example 'm' line use for audio media over AAL2 is: m=audio VCCI-27/CID-19 AAL2/ITU 7 AAL2/custom 100 AAL2/ITU 1 This indicates the use of CID #19 on VCCI #27 to carry audio. It provides a preferential list of profiles for this connection: profile AAL2/ITU 7 defined in [13], AAL2/custom 100 defined in an application-specific or interoperability document and profile AAL2/ITU 1 defined in [13]. Another example of the use of the 'm' line use for audio media over AAL2 is: m=audio VCCI-$/CID-$ AAL2/ATMF 6 8 This indicates that any AAL2 CID may be used, subject to any applicable glare avoidance/reduction rules. The profiles that can be bound to this connection are AAL2/ATMF 6 defined in af-vtoa-0113.000 [44] and AAL2/ATMF 8 defined in af-vmoa-0145.000 [52]. These sources use non-overlapping profile number ranges. The profiles they define fall under the <transport> category "AAL2/ATMF". This application does not order profiles preferentially. This rule is known a priori. It is not embedded in the 'm' line. Another example of the use of the 'm' line use for audio media over AAL2 is: m=audio VCCI-20/CID-$ AAL2/xyzCorporation 11 AAL2 VCCs in this application are single-CID VCCs. Therefore, it is possible to wildcard the CID. The single-CID VCC with VCCI=20 is selected. The AAL2 profile to be used is AAL2/xyzCorporation 11 defined by xyzCorporation. In some applications, an "-" can be used in lieu of: - <format list> - <transport> and <format list>
This implies that these parameters are irrelevant or are known by other means (such as defaults). For example: m=audio VCCI-234 - - a=aalType:AAL1 indicates the use of VCCI=234 with AAL1 adaptation and unspecified encoding. In another example application, the 'aal2sscs3662' attribute can indicate <faxDemod> = "on" and any other competing options as "off", and the <aalType> attribute can indicate AAL2. Thus: m=audio VCCI-123/CID-5 - - a=aalType:AAL2 a=aal2sscs3662:audio off off on off on off off off - - - Besides indicating an audio medium, a VCCI of 123 and a CID of 5, the 'm' line indicates an unspecified profile. The media attribute lines indicate an adaptation layer of AAL2, and the use of the audio SAP [13] to carry demodulated facsimile. The media information line for "data" media has one of the following the following formats: m=data <virtualConnectionId> - - m=data - - - The data could be circuit emulation data carried over AAL1 or AAL2, or packet data carried over AAL5. Media attribute lines, rather than the 'm' line, are used to indicate the adaptation type for the data media. Examples of the representation of data media are listed below. m=data PORT-7/VPI-6/VCI-$ - - a=aalApp:AAL5_SSCOP- - implies that any VCI on VPI= 6 of trunk port #7 may be used. This VC uses SSCOP on AAL5 to transport data. m=data PORT-7/VPI-6/VCI-50 - - a=aalType:AAL1_SDT a=sbc:6 implies that VCI 50 on VPI 6 on port 7 uses structured AAL1 to transfer 6 x 64 kbps circuit emulation data. This may be alternately represented as:
m=data PORT-7/VPI-6/VCI-50 - - b=AS:384 a=aalType:AAL1_SDT The following lines: m=data VCCI-123/CID-5 - - a=aalType:AAL2 a=sbc:2 imply that CID 5 of VCCI 123 is used to transfer 2 x 64 kbps circuit emulation data. In the AAL1 context, it is also permissible to represent circuit mode data as an "audio" codec. If this is done, the codec types used are X-CCD or X-CCD-CAS. These encoding names are dynamically mapped into payload types through the 'atmmap' attribute. For example: m=audio VCCI-27 AAL1/AVP 98 a=atmmap:98 X-CCD a=sbc:6 implies that AAL1 VCCI=27 is used for 6 x 64 transmission. In the AAL2 context, the X-CCD codec can be assigned a profile type and number. Even though it is not possible to construct a profile table as described in ITU I.366.2 for this "codec", it is preferable to adopt the common AAL2 profile convention in its case. An example AAL2 profile mapping for the X-CCD codec could be as follows: PROFILE TYPE PROFILE NUMBER "CODEC" (ONLY ONE) "custom" 200 X-CCD The profile does not identify the number of subchannels ('n' in nx64). This is known by other means such as the 'sbc' media attribute line. For example, the media information line: m=audio $ AAL2/custom 200 a=sbc:6 implies 384 kbps circuit emulation using AAL2 adaptation. It is not necessary to define a profile with the X-CCD-CAS codec, since this method of CAS transport [7] is not used in AAL2 applications.