Isdn 120
Isdn 120
Communications Class
Subclass Specification for
ISDN Devices
Revision 1.2
February 9, 2007
CDC ISDN Subclass Revision 1.2
Revision History
Rev Date Filename Comments
ii February 9, 2007
Revision 1.2 CDC ISDN Subclass
USB-IF AND THE AUTHORS OF THIS SPECIFICATION EXPRESSLY DISCLAIM ALL LIABILITY FOR
INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS, RELATING TO IMPLEMENTATION OF
INFORMATION IN THIS SPECIFICATION. USB-IF AND THE AUTHORS OF THIS SPECIFICATION
ALSO DO NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL NOT
INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF OTHERS.
THIS SPECIFICATION IS PROVIDED "AS IS” AND WITH NO WARRANTIES, EXPRESS OR IMPLIED,
STATUTORY OR OTHERWISE. ALL WARRANTIES ARE EXPRESSLY DISCLAIMED. NO
WARRANTY OF MERCHANTABILITY, NO WARRANTY OF NON-INFRINGEMENT, NO
WARRANTY OF FITNESS FOR ANY PARTICULAR PURPOSE, AND NO WARRANTY ARISING OUT
OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE.
IN NO EVENT WILL USB-IF OR USB-IF MEMBERS BE LIABLE TO ANOTHER FOR THE COST OF
PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS OF USE, LOSS OF DATA OR
ANY INCIDENTAL, CONSEQUENTIAL, INDIRECT, OR SPECIAL DAMAGES, WHETHER UNDER
CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF
THIS SPECIFICATION, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF THE
POSSIBILITY OF SUCH DAMAGES.
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Contributors, v1.1
Paul E. Berg Moore Computer Consultants, Inc.
Chuck Brabenac Intel Corporation
Shelagh Callahan Intel Corporation
Paul Chehowski Mitel Corporation
Joe Decuir Microsoft Corporation
Stefan Eder Siemens Semiconductors
Ed Endejan 3Com Corporation
Randy Fehr Northern Telecom
Diego Friedel AVM
John Howard Intel Corporation
Ken Lauffenburger Efficient Networks, Inc.
Ron Lewis Rockwell Semiconductors
Dan Moore Diamond Multimedia Systems
Terry Moore Moore Computer Consultants, Inc.
Andy Nicholson Microsoft Corporation
Nathan Peacock Northern Telecom
Dave Perry Mitel Corporation
Kenny Richards Microsoft Corporation
Charlie Tai Intel Corporation
Mats Webjörn Universal Access
Contributors, V1.2
Bruce Balden Belcarra
Diego Friedel AVM
Jun Guo Broadcom
CC Hung Mentor Graphics
Dale Self Symbian
Janne Rand Nokia
Joe Decuir MCCI
Joel Silverman K-Micro
John Turner Symbian
Ken Taylor Motorola
Morten Christiansen Ericsson AB
Peter FitzRandolph MCCI
Richard Petrie Nokia
Saleem Mohammed Synopsys
Tero Soukko Nokia
iv February 9, 2007
Revision 1.2 CDC ISDN Subclass
Table of Contents
1 Introduction ................................................................................................................ 1
1.1 Purpose ....................................................................................................................... 1
1.2 Scope ........................................................................................................................... 1
1.3 Related Documents ..................................................................................................... 1
1.4 Terms and Abbreviations ............................................................................................. 2
2 Management Overview .............................................................................................. 4
3 Functional Overview ................................................................................................. 5
3.1 Function Models .......................................................................................................... 5
3.2 USB ISDN Device Models ........................................................................................... 5
3.3 Multi-Channel Model .................................................................................................... 5
3.4 Multi Channel Model Topology .................................................................................... 6
3.5 USB CAPI Model ......................................................................................................... 7
3.6 CAPI Control Model ..................................................................................................... 8
4 Class-Specific Codes ................................................................................................ 9
4.1 Communications Class Code ...................................................................................... 9
4.2 Communications Class Subclass Codes ..................................................................... 9
4.3 Communications Class Protocol Codes ...................................................................... 9
4.4 Data Interface Class and Subclass Codes .................................................................. 9
4.5 Data Class Interface Protocol Codes ........................................................................ 10
5 Descriptors ............................................................................................................... 11
5.1 Standard USB Descriptor Definitions ........................................................................ 11
5.2 Class-Specific Descriptors ......................................................................................... 11
5.3 Functional Descriptors ............................................................................................... 11
5.3.1 USB Terminal Functional Descriptor ......................................................................... 11
5.3.2 Network Channel Terminal Functional Descriptor ..................................................... 12
5.3.3 Protocol Unit Functional Descriptor ........................................................................... 13
5.3.4 Extension Unit Functional Descriptor ........................................................................ 13
5.3.5 Multi-Channel Management Functional Descriptor ................................................... 14
5.3.6 CAPI Control Management Functional Descriptor .................................................... 14
6 Communications Class Specific Messages .......................................................... 16
6.1 Overview .................................................................................................................... 16
6.2 Management Element Requests ............................................................................... 16
6.2.1 SetUnitParameter..................................................................................................... 17
6.2.2 GetUnitParameter .................................................................................................... 17
6.2.3 ClearUnitParameter ................................................................................................. 17
6.2.4 GetProfile.................................................................................................................. 18
6.3 Management Element Notifications ........................................................................... 18
Appendix A: Sample Configurations ................................................................................... 19
A.1 CAPI Device Configuration ........................................................................................ 19
Appendix B: Multi-channel ISDN B-Channel setup ............................................................ 20
February 9, 2007 v
CDC ISDN Subclass Revision 1.2
List of Tables
Table 1 Class Subclass Code ............................................................................................................................................................ 9
Table 2 Class Protocol Code ............................................................................................................................................................. 9
Table 3 Data Interface Class Protocol Codes .................................................................................................................................. 10
Table 4: USB Terminal Functional Descriptor ............................................................................................................................... 11
Table 5: Network Channel Terminal Functional Descriptor ........................................................................................................... 12
Table 6: Protocol Unit Functional Descriptor ................................................................................................................................. 13
Table 7: Extension Unit Functional Descriptor............................................................................................................................... 13
Table 8: Multi-Channel Management Functional Descriptor.......................................................................................................... 14
Table 9: CAPI Control Management Functional Descriptor ........................................................................................................... 14
Table 10: Requests ⎯ Multi-Channel Model* ............................................................................................................................... 16
Table 11: Requests ⎯ CAPI Control Model* ................................................................................................................................ 16
Table 12: Class-Specific Request Codes for ISDN subclasses ....................................................................................................... 17
Table 13: Unit Parameter Structure ................................................................................................................................................ 17
Table 14: Example CAPI Device Configurations ........................................................................................................................... 19
Table 15: Command Type Encoding .............................................................................................................................................. 23
Table 16: I.430 Configuration Parameter List ................................................................................................................................ 23
Table 17: I.430 Command Message Format ................................................................................................................................... 24
Table 18: I.430 Commands ............................................................................................................................................................. 24
Table 19: I.430 Activate, Deactivate Command Wrapper .............................................................................................................. 24
Table 20: I.430 PhActivateBReq Command Wrapper .................................................................................................................... 25
Table 21: I.430 PhDeactivateBReq Command Wrapper ................................................................................................................ 25
Table 22: I.430 PhDataReq Command Wrapper............................................................................................................................. 25
vi February 9, 2007
Revision 1.2 CDC ISDN Subclass
List of Figures
Figure 1: Multi Line Control Model for a Basic-Rate Configuration ............................................................................................... 6
Figure 2: CAPI Control Model for a Basic-Rate Configuration ....................................................................................................... 8
Figure 3: I.430 Layer 1 and Layer 2 ............................................................................................................................................... 26
Figure 4: Layer 1 - Management Network Side ............................................................................................................................. 27
Figure 5: Layer 1 - Management User Side ................................................................................................................................... 27
Figure 6: State Transition Diagram for Q.921 ................................................................................................................................ 36
Figure 7: Q.931 Handling of Null State .......................................................................................................................................... 40
Figure 8: Q.931 Handling of Outgoing-Call States......................................................................................................................... 41
Figure 9: Q.931 Handling of Incoming Call-Setup States .............................................................................................................. 42
Figure 10: Q.931 Handling of Specific States................................................................................................................................. 43
Figure 11: Q.931 Handling of Generic States ................................................................................................................................. 44
1 Introduction
1.1 Purpose
The USB Communications Device Class Specification 1.1 contains general Communications Class
specifications and details for seven device subclasses. That specification has been editorially reorganized
into a common USB CDC 1.2 specification [USBCDC1.2] and a set of subclass specifications. This should
help implementers understand what is necessary for each device subclass, and facilitate specification
maintenance by the USB Device Working Group.
This document is one of those subclass specifications. It contains material technically identical to that
contained in USB CDC 1.1. It is intended to guide implementers of USB-connected devices of the types
listed in the following section.
1.2 Scope
This document specifies two device subclass intended for use with Communications devices, based on
the Universal Serial Bus Class Definitions for Communications Devices specification [USBCDC1.2].
These device subclasses are:
The intention of this specification is that all material presented here is technically compatible with the
previous version of the USB CDC 1.1 Specification, from which it is derived. Numeric codes are defined
for subclass codes, protocol codes, management elements, and notification elements.
In some cases material from [USBCDC1.2] is repeated for clarity. In such cases, [USBCDC1.2] shall be
treated as the controlling document.
In this specification, the word ‘shall’ or ‘must’ is used for mandatory requirements, the word ‘should’ is
used to express recommendations and the word ‘may’ is used for options.
Reference Description
[USB2.0] Universal Serial Bus Specification, revision 2.0 (also referred to as the USB Specification).
http://www.usb.org
[USBCCS1.0] Universal Serial Bus Common Class Specification, revision 1.0. http://www.usb.org
[USBCDC1.2] Universal Serial Bus Class Definitions for Communications Devices, Version 1.2.
http://www.usb.org.
[USBWMC1.1] Universal Serial Bus Subclass Specification for Wireless Mobile Communications, Version
1.1.http://www.usb.org
Bellcore NI-1 Support network terminating services for ISDN service - available at http://www.bellcore.com.
(National ISDN 1)
February 9, 2007 1
CDC ISDN Subclass Revision 1.2
Term Description
BRI ISDN Basic Rate Interface, consisting of one D channel and two B channels.
BYTE For the purposes of this document, the definition of a byte is 8 bits.
CALL MANAGEMENT Refers to a process that is responsible for the setting up and tearing down of calls. This same
process also controls the operational parameters of the call. The term “call,” and therefore “call
management,” describes processes which refer to a higher level of call control, rather than those
processes responsible for the physical connection.
CAPI COMMON-ISDN-API
COMMUNICATIONS Refers to a USB interface that identifies itself as using the Communications Class definition.
INTERFACE
DATA INTERFACE Refers to a USB interface that identifies itself as using the Data Class definition.
DCE Data Circuit Terminating Equipment; for example, a modem or ISDN TA.
DEVICE MANAGEMENT Refers to requests and responses that control and configure the operational state of the device.
Device management requires the use of a Communications Class interface.
DEVICE A logical or physical entity that performs a function. The actual entity described depends on the
context of the reference. At the lowest level, device may refer to a single hardware component, as in
a memory device. At a higher level, it may refer to a collection of hardware components that perform
a particular function, such as a USB interface device. At an even higher level, device may refer to the
function performed by an entity attached to the USB; for example, a data/FAX modem device.
Devices may be physical, electrical, addressable, and logical. When used as a non-specific
reference, a USB device is either a hub or a function.
2 February 9, 2007
Revision 1.2 CDC ISDN Subclass
I.430 ISDN BRI physical interface standard. See ITU-T I.430 above
I.431 ISDN PRI physical interface standard. See ITU-T I.431 above
MANAGEMENT Refers to a type of USB pipe that manages the communications device and its interfaces. Currently,
only the Default Pipe is used for this purpose.
ELEMENT
MASTER INTERFACE A Communications Class interface, which has been designated the master of zero or more interfaces
that implement a complete function in a USB Communications device. This interface will accept
management requests for the union.
MULTIFUNCTION A device of peripheral that exposes one or more functions or services to an end user. Exposed
services can but do have to be exposed as USB functions.
DEVICE
NI-1 National ISDN 1 is intended to be a set of standards, which every manufacture can conform to for
building switch independent ISDN devices. Future standards, denoted as NI-2 and NI-3, are
currently being developed.
NOTIFICATION Refers to a type of USB pipe. Although a notification element is not required to be an interrupt pipe, a
notification element is typically defined in this way.
ELEMENT
NOTIFICATION Refers to a type of USB pipe. Although a notification element is not required to be an interrupt pipe, a
notification element is typically defined in this way.
ELEMENT
PDU Protocol Data Unit - A combination of the SDU and the current protocol layer's header and/or trailer.
PRI Primary Rate Interface, which consists of one or two D channels and up to 30 B channels.
SDU Service Data Unit – User data and control information created at the upper protocol layers that is
transferred transparently through a primitive by layer (N+1) to layer (N) and subsequently to (N-1).
TA Terminal Adaptor
UNION A relationship between a collection of one or more interfaces that can be considered to form a
functional unit.
UNIT Entity that provides the basic building blocks to describe a protocol stack.
VIDEO PHONE A device which simultaneously sends voice and video with optional data. For example: ITU-T H.324
February 9, 2007 3
CDC ISDN Subclass Revision 1.2
2 Management Overview
This subclass specification includes specifications for three kinds of devices that connect to the Integrated
Services Digital Network (ISDN):
• Telephones
• Device Framework
4 February 9, 2007
Revision 1.2 CDC ISDN Subclass
3 Functional Overview
[USB2.0] defines “function” as a “USB device that provides a capability to the host, such as an ISDN
connection, a digital microphone, or speakers”. Further, in section 5.2.3, it says “Multiple functions may
be packaged into what appears to be a single physical device…. A device that has multiple interfaces
controlled independently of each other is referred to as a composite device.” We therefore adopt the term
“function” to describe a set of one or more interfaces which taken together provide a capability to the
host.
Functions defined in this specification may be used as part of multifunction devices or as single-function
devices.
An ISDN network provides several channels that an USB ISDN device may present to a host. They
consist of a call control channel (D-Channel) and some data channels (B-Channels). Depending on
functional requirements on the device, these channels may be presented to the host on separate Data
Class interfaces using the Multi-Channel Model, or multiplexed onto one Data Class interface using the
CAPI Model. Common for the two models are that the Communications Class interface is only used for
device management.
The prime characteristic of a Multi-Channel device is its ability to multiplex several channels on a
physical network interface using a MUX protocol stack. Assuming there are n channels (x .. z) on the
physical interface, where n is network and device specific, physical channels are mapped to a standard
set of channels (0 .. n-1) by the protocol stack. The standard channels carrying data with unspecified
format are then explicitly mapped to some USB interface (See Section 5.3.2for more details). The protocol
stack may also expose an USB interface for protocol management.
Before a channel is presented to USB it is assigned a Class interface. A Data Class interface has to run a
protocol stack on the channel in order to define what data the channel carries. Note: A single protocol is
considered a protocol stack and framing is considered a protocol. A Protocol Data Wrapper should be used
if access to any protocols in the protocol stack is needed. The Multi-Channel model is based on the Open
Systems Interconnection (OSI) model which is a layered architecture to structure data communication.
The OSI construct is implemented for example in ISDN communication and TCP/IP protocols (for
Internet access), as well as local area networks.
February 9, 2007 5
CDC ISDN Subclass Revision 1.2
Device control
Data Class
Interface
USB
Data Class
Protocol stack
Interface
Ch 0
MUX Protocol
Ch x
stack
Ch y
Data Class Ch 1
Protocol stack
Interface
Ch z
Ch n-1
Data Class
Protocol stack
Interface
The basic idea of the OSI model is a hierarchical structure of functions necessary for communication. The
OSI model defines 7 layers for handling communication procedures. These layers communicate on a
peer-to-peer basis by using a fixed protocol. A communication layer n uses the services of layer n-1 to
transfer data and information to a peer entity. Interlayer service access points and connection endpoints
provide the means for the transfer of protocol primitives (data, commands and notifications) between the
layers.
Though in theory, the OSI model strictly separates the different layers and assigned functions, in practice
functional units may not be exactly assigned to a definite layer and partly span one or two layers.
To be able to manipulate the properties of a protocol stacks, its functionality must be divided into
addressable Entities. Two types of such generic Entities are identified and are called Units and Terminals.
Protocol stacks are built by connecting together several of these Entities to form the required topology.
These Entities may be connected in a many to one or one to many fashion in order to “bond” channels or
share a channel among many interfaces.
• Units:
Units are Entities that provide the basic building blocks to describe different protocol stacks. There
are two kinds of Units: Protocol and Extension. Protocol Units identify instances of protocols defined
6 February 9, 2007
Revision 1.2 CDC ISDN Subclass
in this document. Extension Units are vendor specific extensions to this set. Each Unit has one or
more Child pins used to connect to its immediate neighboring Unit or Terminal below it on the stack.
• Terminals:
Terminals are Entities that represents a starting/ending point for a protocol stack. It is used to
interface between the ‘outside world’ and Units in the protocol stack and serves as a receptacle for
data flowing in and out. There are two kinds of Terminals: USB and Network Channel Terminals.
USB Terminals are those on the top of the protocol stack. Network Channel Terminals are those on
the bottom end of the stack. The USB Terminal has one or more Child pins used to connect to its
immediate neighboring Unit or Terminal below it on the stack. The Network Channel Terminal,
having no Unit or Terminal below it, has no Child pins.
Each Unit and Terminal within a Configuration is assigned a unique identification number, the EntityID,
contained in the bEntityID field of the Unit and Terminal descriptor. The value 0x00 is reserved for
undefined ID’s, effectively restricting the total number of addressable Entities (both Units and Terminals)
to 255.
Besides uniquely identifying all addressable Entities, the ID’s are also used to describe the topology of the
protocol stack(s); i.e. the bChild of a Unit or USB Terminal descriptor indicates to which other lower Unit
or Terminal this one is connected.
A protocol stack can be thought of as some number of Units and Terminals connected together, with the
upper most unit exposed as a USB interface and the lower most unit connected to the actual device
hardware. By selecting an interface, either during configuration or by setting an alternate interface, you
enable the protocol stack. Taking this concept further, if you defined an optional alternate interface with
no endpoints (must be number zero), this can be used to relinquish bandwidth (for Isochronous
endpoints) and at the same time move a stack into a deactivated state. By moving from a configured
protocol stack interface to an alternate interface, with no endpoints, you deactivate the protocol stack.
If the default alternate interface zero is used, with no endpoints, the stack will start from a deactivated
state and will need to be activated when needed. When the Unit is activated, its state is reset. When a
unit is deactivated it will not respond to any message sent to it from Entities above or below.
A USB CAPI device has a single type of Communications Class interface that will be presented to the host
and it will have the SubClass code of a CAPI Control Model. A USB CAPI device will present a Data
Class interface, which is used to exchange CAPI messages. The CAPI Control Model does not use a
notification element. CAPI provides an abstraction of services, which is independent from the underlying
network. Multiple lines, if provided by the underlying network, will be presented through one single
interface and controlled and managed via CAPI messages.
The definition of CAPI covers all network relevant details such as call-management and protocol-relevant
issues where appropriate. The management and data information are part of the CAPI messages, which
are by definition operating system independent. The USB CAPI Model supports both intelligent and
simple CAPI device designs.
February 9, 2007 7
CDC ISDN Subclass Revision 1.2
With a CAPI Control Model, the USB device understands CAPI commands and CAPI messages. The
device will make use of both a Data Class Interface and a Communications Class interface, see Figure 2.
Command
CAPI
and
Control
USB Device
CAPI
D B1 B2
The CAPI functionality is divided into two parts as shown in the diagram above. Dividing CAPI into two
parts allows for different CAPI device designs. Intelligent CAPI devices handle the call management
according to the underlying network, for example Q.931 or NI-1 for ISDN, as well as a full set of protocols
within the data channels, for example X.75, V.120, V.110, V.42bis, T.30 etc. on the USB device itself. For
these devices the CAPI part within the USB device is powerful and is usually loaded as firmware on
startup on the device. A firmware download to a device is done through manufacturer specific
operations. Simple CAPI devices implement some low layer functionality, usually the direct network
interface only. These devices enable the creation of low-cost solutions and require the host to do the bulk
of the protocol processing. These simple USB devices are also managed and controlled by CAPI
messages.
All messages exchanged between the host and CAPI consist of a fixed-length header and a parameter
area of variable length. The message length is stored at the beginning of the fixed-length header thus
enabling adaptive drivers to forward CAPI messages without further knowledge of the internal CAPI
message format. The messages carry all management and data information for the CAPI device. These
messages are exchanged via the Data Interface of the device. The CAPI message stream encapsulates all
types of data a connection of the underlying network can carry. If conversions to other data formats are
necessary these can be accomplished within the host and done in software. In such a way the support of
an audio interface is included. This approach enables a integration into the framework of abstract host
interfaces as well as the support of existing CAPI applications.
The CAPI device reports its implemented functionality using a Communications Class specific request, in
order to allow the host to choose an appropriate upper part of the CAPI to run within the host. The
request is transported via the Communications Class interface for the device and presented in Table 11.
The only class specific request which is valid for a Communications Class interface with a
Communications Class SubClass code of the CAPI Control Model is listed in Table 11 below. The other
class specific requests not listed in the above table, such as SendEncapsulatedCommand, are inappropriate
for a CAPI Control Model and shall generate a STALL condition if sent to such an interface.
8 February 9, 2007
Revision 1.2 CDC ISDN Subclass
4 Class-Specific Codes
This section lists the codes for the Communications Device Class, Communications Interface Class and
Data Interface Class, including subclasses and protocols. These values are used in the DeviceClass,
bInterfaceClass, bInterfaceSubClass, and bInterfaceProtocol fields of the standard device descriptors as
defined in chapter 9 of [USB2.0].
Code Subclass
The following table lists the Protocol codes used in this subclass specification:
Code Protocol
If a Communications Class interface appears with multiple alternate settings, all alternate settings for that
interface shall have the same bInterfaceClass, bInterfaceSubclass and bInterfaceProtocol codes.
[USBCDC1.2] specifes that the Data Interface Subclass field is unused, and should be set to 00h.
February 9, 2007 9
CDC ISDN Subclass Revision 1.2
The following table lists the Protocol codes used in this subclass specification:
Code Protocol
In certain types of USB communications devices, no protocol will need to be specified in the Data Class
interface descriptor. In these cases the value of 00h should be used.
10 February 9, 2007
Revision 1.2 CDC ISDN Subclass
5 Descriptors
Devices that conform to this subclass specification need to implement the standard USB descriptors for
the Communications Device Class, Communications Interface Class and Data Interface Class. These are
defined in [USBCDC1.2].
Devices that conform to this subclass specification may need to implement class-specific descriptors for
the Communications Interface Class and Data Interface Class. These are defined in [USBCDC1.2].
Functional descriptors describe the content of the class-specific information within an Interface
descriptor. Functional descriptors all start with a common header descriptor, which allows host software
to easily parse the contents of class-specific descriptors. Each class-specific descriptor consists of one or
more functional descriptors. Although the Communications Class currently defines class specific
descriptor information, the Data Class does not.
[USBCDC1.2] describes functional descriptors that may be used in all Communications Subclasses. These
include:
The USB Terminal Functional Descriptor provides a means to indicate a relationship between a Unit and an
USB Interface. It also defines parameters specific to the interface between the device and the host. It can
only occur within the class-specific portion of an Interface descriptor.
February 9, 2007 11
CDC ISDN Subclass Revision 1.2
The Network Channel Terminal Functional descriptor provides a means to indicate a relationship
between a Unit and a Network Channel. It can only occur within the class-specific portion of an Interface
descriptor.
A zero-based value identifying the index in the array of concurrent channels multiplexed on the physical
interface. For an ISDN physical interface the bChannelIndex starts with zero for the D-channel, one for B1
and so forth.
12 February 9, 2007
Revision 1.2 CDC ISDN Subclass
A Protocol Unit Functional Descriptor identifies with bEntityId a specific protocol instance of bProtocol in a
stack. It can only occur within the class-specific portion of an Interface descriptor.
… … … …
4+N bChildIdN-1 1 Constant Nth ID of lower Terminal or Unit to which this
Terminal is connected.
The Extension Unit Functional Descriptor provides minimal information about the Extension Unit for a
generic driver at least to notice the presence of vendor-specific components within the protocol stack. The
bExtensionCode field may contain a vendor-specific code that further identifies the Extension Unit. If it is
not used, it should be set to zero. The Unit may have a set of vendor specific parameters to configure it
for proper operation in the actual environment and the parameters may be retrieved and/or modified.
The Unit state is initially reset. Set Section 6.2.1 “SetUnitParameter”, Section 6.2.2 “GetUnitParameter”,
and Section 6.2.3 “ClearUnitParameter” for details.
The descriptor can only occur within the class-specific portion of an Interface descriptor.
February 9, 2007 13
CDC ISDN Subclass Revision 1.2
… … … …
5+N bChildIdN-1 1 Constant Nth ID of lower Terminal or Unit to which this
Terminal is connected.
The Multi-Channel Management functional descriptor describes the commands supported by the
Communications Class interface, as defined in CDC , with the SubClass code of Multi-Channel. It can
only occur within the class-specific portion of an Interface descriptor.
The CAPI control management functional descriptor describes the commands supported by the CAPI
Control Model over the Data Class interface with the protocol code of CAPI control. It can only occur
within the class specific portion of Communications Class Interface descriptor.
14 February 9, 2007
Revision 1.2 CDC ISDN Subclass
February 9, 2007 15
CDC ISDN Subclass Revision 1.2
6.1 Overview
The Communications Interface Class supports the standard requests defined in chapter 9 of [USB2.0]. In
addition, the Communications Interface Class has some class-specific requests and notifications. These
are used for device and call management.
Requests for controlling the interface between the USB ATM device are presented in Section 6.2. There
are also some additional signals that shall go back to the host as notifications, which are represented in
section 6.3. These requests and notifications are transported via the Communications Class interface for
the device.
Devices conforming to this subclass specification use the following requests. The only class-specific
request codes that are valid for a Communications Class interface with a Communications Class SubClass
codes of MCM or CAPI are listed in the following tables.
A Multi-Channel communication device uses a Communications Class interface for device management with
a Communications Class SubClass code of Multi-Channel. The only class-specific request codes that are
valid for this SubClass code are listed in Table 10. All other class-specific requests not listed in the table
are inappropriate for a Multi-Channel Model and would generate a STALL condition if sent to such an
interface.
ClearUnitParameter Used to set a Unit specific parameter to its default state. Optional 6.2.3
* These requests are specific to the Communications Class.
A CAPI Control Model device uses a Communications Class interface for device management with a
Communications Class SubClass code of CAPI. The only class specific request which is valid for a
Communications Class interface with a Communications Class SubClass code of the CAPI Control Model
is listed in Table 11 below. The other class specific requests not listed in the above table, such as
SendEncapsulatedCommand, are inappropriate for a CAPI Control Model and shall generate a STALL
condition if sent to such an interface.
16 February 9, 2007
Revision 1.2 CDC ISDN Subclass
The following table describes the requests that are specific to the Communications Interface Class ISDN
Subclass.
Request Value
SET_UNIT_PARAMETER 37h
GET_UNIT_PARAMETER 38h
CLEAR_UNIT_PARAMETER 39h
GET_PROFILE 3Ah
RESERVED (future use) 3Bh-3Fh
6.2.1 SetUnitParameter
This request sets the value of a parameter belonging to a Unit identified by Unit Parameter Structure, see
Table 13. The timing of when the new parameter takes effect depends on the protocol or vendor specific
function.
6.2.2 GetUnitParameter
This request returns the current value of a parameter belonging to a Unit pointed out by Unit Parameter
Structure, see Table 13.
6.2.3 ClearUnitParameter
This request restores the default value of a parameter belonging to a Unit identified by Unit Parameter
Structure, see Table 13. The timing of when the new parameter takes effect depends on the protocol or
vendor specific function.
February 9, 2007 17
CDC ISDN Subclass Revision 1.2
6.2.4 GetProfile
This request returns the profile information as defined by CAPI 2.0. The profile describes the
implemented capabilities of the device.
[USBCDC1.2] defines the common Communications Interface Class notifications that the device uses to
notify the host of interface, or endpoint events. There are no Notification Elements that are specific to the
ISDN subclasses.
18 February 9, 2007
Revision 1.2 CDC ISDN Subclass
This section describes two examples of configurations of CAPI Devices. The first configuration covers the
intelligent CAPI Device which implements the whole CAPI functionality on the device including call
management (Q.931, NI-1, 5ESS, GSM, etc.) and the variety of the supported B channel protocols such as
X.75, X.25, T.30, V.42bis, X.31, V.110, V.120 etc. The second configuration covers the simple CAPI Device
which implements CAPI conform access to the Layer 1.
Communications Class Interfaces and Data Class Interfaces are defined in [USBCDC1.2].
February 9, 2007 19
CDC ISDN Subclass Revision 1.2
B.1 General
The basic idea is that call control to/from the host is performed through some sort of protocol state
machine. This state machine will be specific for each protocol due to the problems in finding one generic
that will suit all possible protocol derivatives that are in use, i.e. for ISDN layer 3 there are for example
Q.931 (ITU), DSS1 (Europe), 1TR6 (Germany), VN4 (France), DMS100 Custom (USA), 5ESS Custom
(USA), NI-1 (USA), NTT (Japan) and NS2 (USA). The call control protocol is accessed through a Data
Class Interface. This is to enable a flexible interface with as few restrictions as possible on the protocol.
Each channel (2B+D) on the physical interface is represented by an interface with appropriate Interface
Descriptors and Terminal/Unit Functional Descriptors if needed. The interface connected to the D-
channel may then run a call control protocol stack starting with I.430 and some Framing, Data link and
Network protocols (HDLC,Q.921 and Q.931).
For each interface there exists a number of alternate settings. By incorporating an alternate setting with
bNumEndpoints = 00h for each interface involved in data transfer, a device offers to the host the option to
temporarily relinquish USB bandwidth. If such setting is implemented, it must be as a default alternate
setting (alternate setting zero).
20 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Isoch Ifc 6:
One EP Audio class
AudioStreaming
Isoch Ifc 8:
One EP Audio class
AudioStreaming
February 9, 2007 21
CDC ISDN Subclass Revision 1.2
Ifc 0: Device
Management Comm class management
EP
Ifc 1:
Device
Audio class
management Protocol Protocol Network
AudioControl
Shared Unit Unit Terminal
int EP HDLC I.430 D-ch
Network
Terminal
B2-ch
Isoch Ifc 7:
One EP Audio class
AudioStreaming
Isoch Ifc 9:
One EP Audio class
AudioStreaming
22 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Definitions
REQ XXXXXX00b
CON XXXXXX11b
IND XXXXXX01b
RES XXXXXX10b
Description: This is a protocol running on an ISDN BRI device with an S0-interface. It provides de-
multiplexing of two B-channels and a D-channel. The protocol covers both user and
network side of a connection.
February 9, 2007 23
CDC ISDN Subclass Revision 1.2
I430_PH_DATA_xxx 000000NNb X - - -
I430_PH_ACTIVATE_xxx 000001NNb X X - -
I430_PH_DEACTIVATE_xxx 000010NNb - X - -
I430_PH_ACTIVATE_B_xxx 000011NNb X - - -
I430_PH_DEACTIVATE_B_xxx 000100NNb X - - -
I430_MPH_ERROR_xxx 000101NNb - X - -
I430_MPH_ACTIVATE_xxx 000110NNb - X - -
I430_MPH_DEACTIVATE_xxx 000111NNb X X - -
I430_MPH_INFORMATION_xxx 001000NNb - X - -
NOTE 1: ‘NN’ in Value encoded according to Table 15.
NOTE 2: X : Exists
- : Does not exist
24 February 9, 2007
Revision 1.2 CDC ISDN Subclass
February 9, 2007 25
CDC ISDN Subclass Revision 1.2
I430_PH_DEACTIVATE_IND
I430_PH_ACTIVATE_REQ
Information
Activation
transfer not
requested
available
I430_PH_DEACTIVATE_IND
I430_PH_ACTIVATE_IND
I430_PH_ACTIVATE_IND
Information I430_PH_DEACTIVATE_IND
transfer
available
(Note)
I430_PH_ACTIVATE_IND,
I430_PH_ACTIVATE_B_REQ,
I430_PH_DEACTIVATE_B_REQ,
I430_PH_DATA_REQ
Note: Layer 2 is not aware if the information transfer capability is temporariliy interrupted
26 February 9, 2007
Revision 1.2 CDC ISDN Subclass
I430_MPH_DEACTIVATE_REQ
Information Information
transfer transfer not
interrupted I430_MPH_ERROR_IND available
I430_MPH_ACTIVATE_IND
I430_MPH_DEACTIVATE_IND
Information I430_MPH_DEACTIVATE_REQ
I430_MPH_ACTIVATE_IND
transfer
available
(Note)
I430_MPH_ACTIVATE_IND
I430_MPH_ACTIVATE_IND,
I430_MPH_DEACTIVATE_IND,
Any state
I430_MPH_INFO_IND,
I430_MPH_ERROR_IND
Description: The HDLC framing protocol provides functions for creating and extracting HDLC frames
on a serial synchronous data stream. See ISO/IEC 3309-1993 for further details.
February 9, 2007 27
CDC ISDN Subclass Revision 1.2
… … … …
28 February 9, 2007
Revision 1.2 CDC ISDN Subclass
HDLC_CONTROL_xxx 000000NNb X - - X
HDLC_STATUS_xxx 000001NNb X X - X
HDLC_DATA_xxx 000010NNb X X - -
NOTE 1: ‘NN’ in Value encoded according to Table 15.
NOTE 2: X : Exists
- : Does not exist
February 9, 2007 29
CDC ISDN Subclass Revision 1.2
Note: The HDLC_STATUS_IND should immediately precede the HDLC_DATA_IND to which it applies.
It is optional to send a HDLC_STATUS_IND if received data is without errors.
0+N bProtocolDataN-1 1 Number Nth byte with protocol data. FCS excluded.
30 February 9, 2007
Revision 1.2 CDC ISDN Subclass
TRANS_CONTROL_xxx 000000NNb X - - X
TRANS_STATUS_xxx 000001NNb X X - X
TRANS_DATA_xxx 000010NNb X X - -
NOTE 1: ‘NN’ in Value encoded according to Table 15.
NOTE 2: X : Exists
- : Does not exist
February 9, 2007 31
CDC ISDN Subclass Revision 1.2
Description: Management procedure defined by Q.921 handles TEI negotiation and distribution of
received messages. This protocol will reside below all Q.921 data link procedures, as
opposed to the definition by ITU-T where the management entity resides above all data
link procedures (ref FIGURE 9/Q.921). All command-names (Q921M_DL_xxx) are
therefore reversed in order to maintain the definition of Request, Indication, Response
and Confirm, but are in all other aspects identical to ITU-T specification. The protocol
covers both user and network side of a connection.
32 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Q921M_DL_ASSIGN_xxx 000000NNb X X - -
Q921M_DL_REMOVE_xxx 000001NNb - X - -
Q921M_DL_ERROR_xxx 000010NNb X - - X
Q921M_DL_DATA_xxx 000011NNb X X - -
Q921M_DL_UNIT_DATA_xxx 000100NNb X X - -
February 9, 2007 33
CDC ISDN Subclass Revision 1.2
Description: Q.921 is the link access procedure used by Q.931.. The protocol covers both user and
network side of a connection.
34 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Q921_DL_ESTABLISH_xx 000000NNb X X - X
Q921_DL_RELEASE_xxx 000001NNb X X - X
Q921_DL_DATA_xxx 000010NNb X X - -
Q921_DL_UNIT DATA_xxx 000011NNb X X - -
NOTE 1: ‘NN’ in Value encoded according to Table 15.
NOTE 2: X : Exists
- : Does not exist
February 9, 2007 35
CDC ISDN Subclass Revision 1.2
Q921_DL_RELEASE_IND,
Q921_DL_UNIT_DATA_REQ/IND
Data link
connection Q921_DL_RELEASE_CON
Q921_DL_RELEASE_IND
released
Q921_DL_ESTABLISH_REQ
Q921_DL_ESTABLISH_IND/CON,
Q921_DL_ESTABLISH_IND/CON
Q921_DL_UNIT_DATA_REQ/IND
Q921_DL_UNIT_DATA_REQ/IND
Q921_DL_ESTABLISH_IND,
Q921_DL_RELEASE_IND,
Q921_DL_RELEASE_IND
Awaiting Waiting
establish release
Q921_DL_ESTABLISH_CON
Link
Q921_DL_ESTABLISH_REQ connection Q921_DL_RELEASE_REQ
established
Q921_DL_ESTABLISH_IND/CON,
Q921_DL_UNIT_DATA_REQ/IND
Q921_DL_DATA_REQ/IND
36 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Description: Call control protocol of the Q.931/Euro-ISDN user side is the ISDN connection. The
protocol implements the interface described by Primitives to/from call control in Q.931
Annex A “User side and network side SDL diagrams”.
Most commands use a general command structure as defined in Table 51 that corresponds to the
message format defined in Q.931 chapter 4.1. The ones that don’t are explicitly defined within this
document.
February 9, 2007 37
CDC ISDN Subclass Revision 1.2
38 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Q931_ALERT_xxx 000000NNb X X - -
Q931_COMPLETE_xxx 000001NNb - X - -
Q931_DISC_xxx 000010NNb X X - -
Q931_ERROR_xxx 000011NNb - X - -
Q931_INFO_xxx 000100NNb X X - -
Q931_LINK_FAIL_xxx 000101NNb - X - -
Q931_MORE_xxx 000110NNb X X - -
Q931_NOTIFY_xxx 000111NNb X X - -
Q931_PROCEED_xxx 001000NNb X X - -
Q931_PROGRESS_xxx 001001NNb X X - -
Q931_REJECT_xxx 001010NNb X X - -
Q931_RELEASE_xxx 001011NNb X X X -
Q931_RESUME_xxx 001100NNb X - X -
Q931_SETUP_xxx 001101NNb X X X X
Q931_SUSPEND_xxx 001110NNb X - X -
Q931_STATUS_xxx 001111NNb - X - -
Q931_TIMEOUT_xxx 010000NNb - X - -
Q931_USERINFO_xxx 010001NNb X X - -
Note 1: ‘NN’ in Value encoded according to Table 15.
Note 2: X : Exists
- : Does not exist
Q931_RESTART_xxx 100000NNb X - X -
Note 1: ‘NN’ in Value encoded according to Table 15.
Note 2: X: Exists
- : Does not exist
February 9, 2007 39
CDC ISDN Subclass Revision 1.2
6 1
Call present 0 Call initiated
Q931_SETUP_IND Q931_SETUP_REQ
Null
Q931_RESUME_REQ
17
Resume
request
40 February 9, 2007
Revision 1.2 CDC ISDN Subclass
0
Null
11 11
Disconnect Disconnect
request request
Q931_SETUP_CON
Q931_REJECT_IND
(error)
Q931_SETUP_CON 1 Q931_SETUP_CON
(timeout error) Call initiated (error)
Q931_MORE_IND Q931_PROCEED_IND
Q931_INFO_REQ, 2 3
Q931_PROGRESS_IND, Overlap Q931_PROCEED_IND Outgoing call Q931_PROGRESS_IND
Q931_ERROR_IND sending proceeding
Q931_ALERT_IND Q931_ALERT_IND
Q931_RELEASE_REQ Q931_RELEASE_REQ
4 Q931_USERINFO_REQ
19 19
Call delivered Q931_USERINFO_IND
Release Release
request request
Q931_SETUP_CON
Q931_SETUP_CON Q931_SETUP_CON
10
Active
February 9, 2007 41
CDC ISDN Subclass Revision 1.2
25
0
6 Overlap
Null Q931_REJECT_REQ Q931_MORE_REQ
Call present receiving
12
Q931_PROCEED_REQ Disconnect
Q931_ALERT_REQ indication
Q931_SETUP_RES
9
Q931_PROGRESS_REQ Incoming call Q931_COMPLETE_IN
proceeding D
(error)
Q931_ALERT_REQ Q931_SETUP_RES
8
7
Q931_SETUP_RES Connect
Call received
request
Q931_ALERT_REQ Q931_PROCEED_REQ 9
7 Q931_SETUP_RES Incoming call
Call received
proceeding
8
Connect
request
42 February 9, 2007
Revision 1.2 CDC ISDN Subclass
15
Q931_NOTIFY_REQ 10 Suspend
Q931_SUSPEND_REQ request
Q931_NOTIFY_IND Active
19
12 Release
Disc Q931_RELEASE_REQ request
indication
12
15 10
Disconnect Q931_SUSPEND_CON
Q931_DISC_IND Suspend Active
indication (error)
request
Q931_RELEASE_IND,
Q931_SUSPEND_CON
0
Null
19
17 0
Release Q931_RESUME_CON Q931_RESUME_CON
Resume Null
request (timeout error) (error)
request
Q931_RESUME_CON
10
Active
19 Q931_RELEASE_CON, 0
Release Q931_RELEASE_CON (error), Null
request Q931_STATUS_IND (error)
February 9, 2007 43
CDC ISDN Subclass Revision 1.2
0
Q931_LINK_FAIL_IND, Null
Any state
Q931_RELEASE_IND
11
Any state Disconnect
except request
Q931_DISC_REQ
0,11,12,
17,19 12
Q931_DISC_IND Disc
indication
11
Any state Disconnect
Q931_STATUS_IND request
except
(error)
0,19
0
Q931_STATUS_IND
Null
Any state
Any state
except
Q931_INFO_REQ except Q931_INFO_IND
0,1,6,17,19,
0,1,6,17,19
25
Q931_USERINFO_REQ
Any state
Q931_USERINFO_IND
D.4.2 V.42bis: Data compression procedures for DCE using error correction
procedures
44 February 9, 2007
Revision 1.2 CDC ISDN Subclass
Description: V.120 is a Rate adaptation protocol. The protocol has no configurable parameters
February 9, 2007 45