Cisco Unified IP Phone Services Application Development Notes Release 9.1(1) and Later
Device Capability Query via CTI Feature
Downloads: This chapterpdf (PDF - 1.17MB) The complete bookPDF (PDF - 3.56MB) | The complete bookePub (ePub - 834.0KB) | The complete bookMobi (Mobi - 1.53MB) | Feedback

Device Capability Query via CTI Feature

Device Capability Query via CTI Feature

Feature Description

The Device Capability Query via CTI feature was added for Cisco Unified Communications Manager Release 8.0(1).

A backend CTI application that communicates with the phone using the UserData tunnel cannot retrieve information on device capabilities such as XSI feature support on a phone. Due to this lack of information, and to ensure compatibility, only a minimum set of features were generally configured.

The Device Capability Query via CTI feature overcomes this limitation. This feature allows a CTI-based application or a Cisco Unified Communications Manager application to query a registered phone for device capabilities using the UserData tunnel interface of the phone (over SCCP or SIP and RemoteCC).

Applications that have an HTTP interface with a phone do not have this limitation. The HTTP request from such phones include XSI capabilities header, and the DeviceInformationX servlet of such phones can be accessed to retrieve other device information.

Although designed to work using CTI over the UserData tunnel, this feature can also work over HTTP using the POST method.

Supported IP Phones and Codecs

The following table lists the Cisco Unified IP Phone models that support the Device Capability Query via CTI feature:

Table 1 Phone Models that Support the Device Capability Query via CTI Feature
Phone model Supported, Not supported Firmware supported (see note)

Cisco Unified IP Phone 9900 series

9951

Supported

9.0(1) and later

9971

Supported

9.0(1) and later

Cisco Unified IP Phone 8900 Series

8941

8945

8961

Supported

9.0(1) and later

Cisco Unified IP Phone 8800 Series

8831

8841, 8851, 8861

Supported

10.2(1) and later

Cisco Unified IP Phone 7900 Series

7905

Not supported

Not applicable

7906

Supported

8.4(1) and later

7911

Supported

8.4(1) and later

7912

Not supported

Not applicable

7931

Supported

8.4(1) and later

7937

Not supported

Not applicable

7940

Not supported

Not applicable

7941

Supported

8.4(1) and later

7942

Supported

8.4(1) and later

7945

Supported

8.4(1) and later

7960

Not supported

Not applicable

7961

Supported

8.4(1) and later

7962

Supported

8.4(1) and later

7965

Supported

8.4(1) and later

7970

Supported

8.4(1) and later

7971

Supported

8.4(1) and later

7975

Supported

8.4(1) and later

7985

Not supported

Not applicable

Cisco Unified Wireless IP Phone 7900 Series

7920

Not supported

Not applicable

7921G

Supported

1.0(3) and later

7925G

Supported

1.3(1) and later

7925G-EX

Supported

1.4(1) and later

7926G

Supported

1.4(1) and later

Cisco IP Phone 7800 Series

7821

Supported

9.1(1) and later

7841

Supported

9.1(1) and later

7861

Supported

9.1(1) and later

Cisco Unified IP Phone 6900 Series

6921

Supported

9.1(1) and later

6941

Supported

9.1(1) and later

6945

Supported

9.1(1) and later

6961

Supported

9.1(1) and later

Other devices

Cisco IP Phone Communicator

Not supported

Not applicable


Note


Cisco recommends the use of latest firmware. The firmware can be downloaded from the following location (requires login or service contract):


http:/​/​software.cisco.com/​download/​navigator.html?i=!mmd

Although several codecs are listed within the schema, only the codecs G711, G729, and G722 are currently supported.

XML Object Changes

To support this feature, new request and response objects are created. The <getDeviceCaps> is the request object and the <getDeviceCapsResponse> is the response object.

On receiving the <getDeviceCaps> object, the phone returns the <getDeviceCapsResponse> object. All elements in the <getDeviceCapsResponse> object are required and must not be null.

Schema Definition

The getDeviceCapsResponse XML schema is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.example.org/devicecaps" xmlns:tns="http://www.example.org/devicecaps" xmlns="http://www.w3.org/2001/XMLSchema">
	<element name="getDeviceCapsResponse" type="tns:deviceCapType" nillable="true"/>
	<complexType name="deviceCapType">
		<all>
			<element name="physical" type="tns:physicalCapType" nillable="true"/>
			<element name="services" nillable="true">
				<complexType>
					<complexContent>
						<extension base="tns:servicesCapType">
							<attribute name="sdkVersion" type="string" use="required"/>
						</extension>
					</complexContent>
				</complexType>
			</element>
		</all>
	</complexType>
	<complexType name="physicalCapType">
		<all>
			<element name="modelNumber" nillable="false">
				<simpleType>
					<restriction base="string">
						<maxLength value="32"/>
						<minLength value="1"/>
					</restriction>
				</simpleType>
			</element>
			<element name="display" nillable="true">
				<complexType>
					<attribute name="width" type="unsignedShort" use="required"/>
					<attribute name="height" type="unsignedShort" use="required"/>
					<attribute name="bitDepth" type="unsignedShort" use="required"/>
					<attribute name="isColor" type="boolean" use="required"/>
				</complexType>
			</element>
		</all>
	</complexType>
	<complexType name="servicesCapType">
		<all>
			<element name="browser" type="tns:browserCapType" nillable="true"/>
		</all>
	</complexType>
	<complexType name="browserCapType">
		<all>
			<element name="accept" nillable="false"/>
			<element name="acceptLanguage" nillable="false"/>
			<element name="acceptCharset" nillable="false"/>
		</all>
	</complexType>
</schema>

Request and Response Examples for getDeviceCaps

The following are the request and response examples for a getDeviceCaps object:

Request sent to the phone:
<getDeviceCaps/>
Response returned from the phone:
<getDeviceCapsResponse>
  <physical>
    <modelNumber>CP-7970</modelNumber> 
    <display width="298" height="168" bitDepth="12" isColor="true"/>
  </physical>
  	<services sdkVersion="5.0.3">
    <browser>
	</services>
</getDeviceCapsResponse>

Troubleshooting

The following error may occur in this feature:

  • If the getDeviceCaps object is invalid (misspelled), a parsing error is generated and a CiscoIPPhoneError object (with Number="1") is returned as the response.

Error Handling

Standard XML services debugging techniques are applied to this feature.

The root cause for any parsing errors is displayed in the phone console logs. For HTTP requests and responses, sniffer traces and web server debug can be used to examine the getDeviceCaps object to ensure that it conforms to the schema.