|
Table Of Contents
XML Provisioning Guide for Cisco CME/SRST
Transaction to get Device Status
Transaction to get Extension Event
XML Provisioning Guide for Cisco CME/SRST
Revised 08/08/2003
This document describes the XML interface to the Cisco CallManager Express (CME) and the Cisco Survivable Remote Site Telephony (SRST).
This document is divided into the following sections:
• Examples
• Glossary
Target Audience
This guide assumes the developer has knowledge of a high-level programming language, such as C++, Java, or an equivalent language. The developer must also have knowledge or experience in the following areas:
•TCP/IP Protocol
•Hypertext Transport Protocol
•Socket programming
•XML
In addition, users of this programming guide must have a firm grasp of XML Schema, which was used to define the AXL requests, responses, and errors. For more information on XML Schema, please refer to http://www.w3.org/TR/xmlschema-0/.
XML Implementation
The AVVID XML Layer (AXL) Application Programming Interface (API) provides a mechanism for inserting, retrieving, updating, and removing data from the database using an eXtensible Markup Language (XML) Simple Object Access Protocol (SOAP) interface. This allows a programmer to access data using XML and receive the data in XML form, instead of using a binary library or DLL.
The AXL API methods, known as requests, are performed using a combination of HTTP and SOAP. A SOAP is an XML remote procedure call protocol. Users perform requests by sending XML data to the server. The server then returns the AXL response; which is also a SOAP message.
Request Messages
Request methods are XML structures that are passed to the AXL API server. The server receives the XML structures and executes the request. If the request completes successfully, then the appropriate AXL response is returned.
HTTP Format
Requests can be sent through the HTTP POST method. The URL directory after POST should be /ISApi/AXL/V1/soapisapi.is. Two additional headers should also be present in the request:
POST/ISApi/AXL/V1/soapisapi.is
Content-type: text/xml
Authorization: Basic <some Basic 64 encoded string>
SOAP Format
SOAP messages consist of SOAP-Envelope and SOAP-Body. The format of a SOAP/XML request is:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="request"
xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
http://gkar.cisco.com/shema/axlsoap.xsd">
// request content
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The following XML request methods are supported:
complexType ISgetGlobal
complexType ISgetDevice
element ISgetDevice/ISDevID
namespacehttp://www.cisco.com/AXL/1.0
annotationGet device status by device ID.
typexsd:nonNegativeInteger
source<xsd:element name="ISDevID" type="xsd:nonNegativeInteger" nullable="false"/>
element ISgetDevice/ISDevName
namespacehttp://www.cisco.com/AXL/1.0
annotationGet device status by device name.
typexsd:string
source<xsd:element name="ISDevName" type="xsd:string" nullable="false">
complexType ISgetExtension
namespacehttp://www.cisco.com/AXL/1.0
childrenelement ISgetExtension/ISextID, element ISgetExtension/ISextNumber
annotationGet Extension Status Request.
typeextension of axlapi:APIRequest
source<xsd:complexType name="ISgetExtension">
<xsd:annotation>
<xsd:documentation>Get Extension Status Request.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="APIRequest">
<xsd:sequence>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Get Extension Status by Extension ID, or
Extension Name or all.
</xsd:documentation>
</xsd:annotation>
<xsd:element name="ISextID" type="xsd:nonNegativeInteger"
nullable="false" />
<xsd:element name="ISextNumber" type="axl:String255">
<xsd:annotation>
<xsd:documentation>Special case for ISextNumber:
"All" for all Extensions,
"AllUp" for all extensions that are "Up"
"AllDown" for all extensions that are "Down"
</xsd:documentation>
</xsd:annotation>
</xsd:choice>
<xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
element ISgetExtension/ISextID
element ISgetExtension/ISextNumber
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension status by extension number.
typeaxl:String255
source<xsd:element name="ISextNumber" type="axl:String255">
complexType ISgetEvtCounts
complexType ISgetDevEvts
namespacehttp://www.cisco.com/AXL/1.0
childrenelement ISgetDevEvts/ISDevEvtID, element ISgetDevEvts/ISDevID, element ISgetDevEvts/ISDevName
annotationGet device event request.
typeextension of axlapi:APIRequest
source<xsd:complexType name="ISgetDevEvts" final="#all">
<xsd:annotation>
<xsd:documentation>Get Device Event Request.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="axlapi:APIRequest">
<xsd:sequence>
<xsd:annotation>
<xsd:documentation>Get Device Event by Event ID, or Device ID or
Device Name.
</xsd:documentation>
</xsd:annotation>
<choice>
<xsd:element name="ISDevEvtID" type="axl:nonNegativeInteger"/>
<xsd:element name="ISDevID" type="axl:nonNegativeInteger" />
<xsd:element name="ISDevName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Get Device Event by name. Special
case: "All" for all device events.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</choice>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
element ISgetDevEvts/ISDevEvtID
namespacehttp://www.cisco.com/AXL/1.0
annotationGet device event by event ID.
typeaxl:nonNegativeInteger
source<xsd:element name="ISDevEvtID" type="axl:nonNegativeInteger"/>
element ISgetDevEvts/ISDevID
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension status by device ID.
typeaxl:nonNegativeInteger
source<xsd:element name="ISDevID" type="axl:nonNegativeInteger" />
element ISgetDevEvts/ISDevName
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension status by device name.
typexsd:string
source<xsd:element name="ISDevName" type="xsd:string">
complexType ISgetExtEvts
element ISgetExtEvts/ISExtEvtID
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension event by event ID.
typeaxl:nonNegativeInteger
source<xsd:element name="ISExtEvtID" type="axl:nonNegativeInteger"/>
element ISgetExtEvts/ISExtID
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension event by extension ID.
typeaxl:nonNegativeInteger
source<xsd:element name="ISExtID" type="axl:nonNegativeInteger" />
element ISgetExtEvts/ISExtNumber
namespacehttp://www.cisco.com/AXL/1.0
annotationGet extension event by extension number.
typeaxl:String255
source<xsd:element name="ISExtNumber" type="axl:String255">
complexType ISsetKeyPhones
element ISgetKeyPhones/ISPhoneName
namespacehttp://www.cisco.com/AXL/1.0
annotationGet list of phone names.
typeaxl:string
source<xsd:element name="ISPhoneName" type="axl:string" minOccurs="0" maxOccurs="unbound">
complexType ISexecCLI
element ISexecCLI/CLI
namespacehttp://www.cisco.com/AXL/1.0
annotationGet list of CLIs.
typeaxl:String64
facetsmaxLength 64
source<xsd:element name="CLI" type="axl:String64" />
Response Messages
All responses are named identically to the associated requests, except that the word "Response" has been appended. For example, the XML response returned from an ISgetGlobal request is called ISgetGlobalResponse.
If an error occurs, then an XML error structure is returned wrapped inside of a SOAP Fault structure.
HTTP Format
A Cisco CME or Cisco SRST sends responses using a standard HTTP response format. If a request is successfully processed, a status code 200 is sent.
SOAP Format
A SOAP /AXL response format is similar to a SOAP/AXL request, except the body is as follows:
<axl xsi:type="response"
xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
// response content
</axl>
complexType ISgetGlobalResponse
element ISgetGlobalResponse/ISGlobal
namespacehttp://www.cisco.com/AXL/1.0
annotationResponse for CME/SRST Global Status.
typeISStatusItem
source<xsd:element name="ISGlobal" type="ISStatusItem"/>
complexType ISgetDeviceResponse
element ISgetDeviceResponse/ISDevice
complexType ISgetExtensionResponse
element ISgetExtensionResponse/ISExtension
complexType ISgetEvtCountsResponse
element ISgetEvtCountsResponse/ISDevEvtCount
namespacehttp://www.cisco.com/AXL/1.0
annotationDevice event count.
typeaxl:nonNegativeInteger
source<xsd:element name="ISDevEvtCount" type="axl:nonNegativeInteger"/>
element ISgetEvtCountsResponse/ISExtEvtCount
namespacehttp://www.cisco.com/AXL/1.0
annotationExtension event count.
typeaxl:nonNegativeInteger
source<xsd:element name="ISExtEvtCount" type="axl:nonNegativeInteger"/>
complexType ISgetDevEvtsResponse
element ISgetDevEvtsResponse/ISDevEvent
namespacehttp://www.cisco.com/AXL/1.0
annotationList of device events.
typeaxl:ISDevEventItem
source<xsd:element name="ISDevEvent" type="axl:ISDevEventItem" minOccurs="0" maxOccurs="unbound" />
complexType ISgetExtEvtsResponse
element ISgetExtEvtsResponse/ISExtEvent
complexType ISsetKeyPhonesResponse
element ISsetKeyPhonesResponse/ISsetResult
namespacehttp://www.cisco.com/AXL/1.0
annotationBoolean to indicate if the set if successful or not.
typeaxl:boolean
source<xsd:element name="ISsetResult" type="axl:boolean"/>
complexType ISexecCLIResponse
element ISexecCLIResponse/ISexecResult
Examples
Transaction to get Device Status
Request (Server ‡ CME/SRST)
POST /ISApi/AXL/V1/soapisapi.is
Host: server-w2k:80
Accept: text/xml
Authorization: Basic Q2lzY287VHJpdmVauQ==
Content-type: text/xml
Content-length: 0
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2000/101999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="request"
xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
http://gkar.cisco.com/xml/xmlschema/axlsoapxsd">
<request xsi:type="ISgetDevice">
<ISDevName>SEP003094C2F4D8</ISDevName>
</request>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response (CME/SRST ‡ Server)
Report a 7960 phone with two lines configured; both lines are idle. It is registered to the CME/SRST 2 minutes after system restart. TAPI client register to CME/SRST 0.5 minute later.
HTTP 1.1/ 200 OK
Mime-version: 1.0
Pragma: no-cache
Content-type: text/xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2000/101999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="response"
xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
<response xsi:type="ISgetDeviceResponse">
<ISDevice>
<ISDevID>1</ISDevID>
<ISDevName> SEP003094C2F4D8</ISDevPhysicalAdd>
<ISDevVlanId>125</ISDevVlanId>
<ISDevType>7960</ISDevType>
<ISDevDesc>IP Phone in Cube I2-11, building 22, 2nd floor.</ISDevDesc>
<ISDevUsername>yuanca</ISDevUsername>
<ISDevAddr>
<Xipv4Address>1.5.49.80</Xipv4Address>
</ISDevAddr>
<ISPhoneLineList>
<ExtMapStatus>
<LineId> 1</LineId>
<ExtId>1</ExtId>
<ExtNumber>1234</ExtNumber>
<ExtStatus>true</ExtStatus>
<LineState>Idle</LineState>
</ExtMapStatus>
<ExtMapStatus>
<LineId>3</LineId>
<ExtId>5</ExtId>
<ExtNumber>5678</ExtNumber>
<ExtStatus>true</ExtStatus>
</ExtMapStatus>
</ISPhoneLineList>
<ISKeyPhone>False</ISKeyPhone>
<ISTapiClientAddr>
<Xipv4Address>172.19.153.129</Xipv4Address>
</ISTapiClientAddr>
<ISDevStatus>Registered</ISDevStatus>
<ISDevLastStatus>New</ISDevLastStatus>
<ISDevChangeTime>12000</ISDevChangeTime>
<ISDevKeepAlives>10</ISDevKeepAlives>
<ISTapiCStatus>Registered</ISTapiCSStatus>
<ISTapiCLastStatus>New</ISTapiCLastStatus>
<ISTapiCChangeTime>18000</ISTapiCChangeTime>
<ISTapiCKeepAlives>8</ISTapiCKeepAlives>
</ISDevice>
</response>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Transaction to get Extension Event
Request (Server ‡ CME/SRST)
POST /ISApi/AXL/V1/soapisapi.is
Host: server-w2k:80
Accept: text/xml
Authorization: Basic Q2lzY287VHJpdmVauQ==
Content-type: text/xml
Content-length: 0
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/19992000/10/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="request"
xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
<request xsi:type="ISgetExtEvts">
<ISExtNumber>1234</ISExtNumber>
</request>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response (CME/SRST ‡ Server)
Twenty minutes after system restart, extension one with number 1234 goes up.
HTTP 1.1/ 200 OK
Mime-version: 1.0
Pragma: no-cache
Content-type: text/xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/19992000/10/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="response" xmlns="http://www.cisco.com/AXL/1.0"
xsi:schemaLocation="http://www.cisco.com/AXL/1.0
<response xsi:type="ISgetExtEvtsResponse">
<ISExtEvent>
<ISExtID>1</ISExtID>
<ISExtNumber>1234</ISExtNumber>
<ISExtEventTime>120000</ISExtEventTime>
<ISExtEvent>
<ISExtStatusChangeEvent>Up</ISExtStatusChangeEvent>
</ISExtEvent>
</ISExtEvent>
</response>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Transaction to Execute CLI
Request (Server ‡ CME/SRST)
Add a Cisco 7940 phone with line 1 to extension 11; line 2 to extension 12.
POST /ISApi/AXL/V1/soapisapi.is
Host: server-w2k:80
Accept: text/xml
Authorization: Basis Q21zY287VHJpdmVauQ==
Content-type: text/xml
Content-length: 0
<SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="request" xmlns="http://www.cisco.com/AXL/1.0
http://gkar.cisco.com/schema/axlsoap.xsd">
<request xsi:type="ISexecCLI">
<ISCLIList>
<CLI>ephone 2</CLI>
<CLI>mac-address 1234.5678.9012</CLI>
<CLI>type 7940</CLI>
<CLI>button 1:10 2:11</CLI>
</ISCLIList>
</request>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response (CME/SRST -> Server)
CLI executed successfully.
HTTP 1.1/200 OK
Mime-version: 1.0
Pragma: no-cache
Content-type: text/xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://wwww.w3.org/2000/10/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<axl xsi:type="response" xmlns="http://www.cisco.com/AXL/1.0
http://gkar.cisco.com/schema/axlsoap.xsd">
<response xsi:type="ISexecCliResponse">
<ISexecResult>0</ISExecResult>
</response>
</axl>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Related Documentation
For more information about TAPI specifications, creating an application to use TAPI, or TAPI administration see:
•Microsoft TAPI 2.1 Features:
http://www.microsoft.com/NTServer/commserv/exec/feature/tapi21.asp
•Getting Started with Windows Telephony
http://www.microsoft.com/NTServer/commserv/deployment/planguides/getstartedtele.asp
•Windows Telephony API (TAPI)
http://www.microsoft.com/NTServer/commserv/exec/overview/tapiabout.asp
•Creating Next Generation Telephony Applications:
http://www.microsoft.com/NTServer/commserv/techdetails/prodarch/tapi21wp.asp
•The Microsoft Telephony Application Programming Interface (TAPI) Programmer's Reference
Glossary
API—Application Programming Interface
AXL—AVVID XML Layer
CME—Cisco CallManager Express.
SRST—Survivable Remote Site Telephony.
Note For a list of other internetworking terms, see Internetworking Terms and Acronyms document that is available on the Documentation CD-ROM and on the Cisco Connection Online (CCO) at the following URL: http://www.cisco.com/univercd/cc/td/doc/cisintwk/ita/index.htm.
Cisco Connection Online
Cisco Connection Online (CCO) is Cisco Systems' primary, real-time support channel. Maintenance customers and partners can self-register on CCO to obtain additional information and services.
Available 24 hours a day, 7 days a week, CCO provides a wealth of standard and value-added services to Cisco's customers and business partners. CCO services include product information, product documentation, software updates, release notes, technical tips, the Bug Navigator, configuration notes, brochures, descriptions of service offerings, and download access to public and authorized files.
CCO serves a wide variety of users through two interfaces that are updated and enhanced simultaneously: a character-based version and a multimedia version that resides on the World Wide Web (WWW). The character-based CCO supports Zmodem, Kermit, Xmodem, FTP, and Internet e-mail, and it is excellent for quick access to information over lower bandwidths. The WWW version of CCO provides richly formatted documents with photographs, figures, graphics, and video, as well as hyperlinks to related information.
You can access CCO in the following ways:
•WWW: http://www.cisco.com
•WWW: http://www-europe.cisco.com
•WWW: http://www-china.cisco.com
•Telnet: cco.cisco.com
•Modem: From North America, 408 526-8070; from Europe, 33 1 64 46 40 82. Use the following terminal settings: VT100 emulation; databits: 8; parity: none; stop bits: 1; and connection rates up to 28.8 kbps.
For a copy of CCO's Frequently Asked Questions (FAQ), contact cco-help@cisco.com. For additional information, contact cco-team@cisco.com.
Note If you are a network administrator and need personal technical assistance with a Cisco product that is under warranty or covered by a maintenance contract, contact Cisco's Technical Assistance Center (TAC) at 800 553-2447, 408 526-7209, or tac@cisco.com. To obtain general information about Cisco Systems, Cisco products, or upgrades, contact 800 553-6387, 408 526-7208, or cs-rep@cisco.com.
Documentation CD-ROM
Cisco documentation and additional literature are available in a CD-ROM package, which ships with your product. The Documentation CD-ROM, a member of the Cisco Connection Family, is updated monthly. Therefore, it might be more current than printed documentation. To order additional copies of the Documentation CD-ROM, contact your local sales representative or call customer service. The CD-ROM package is available as a single package or as an annual subscription. You can also access Cisco documentation on the World Wide Web at http://www.cisco.com, http://www-china.cisco.com, or http://www-europe.cisco.com.
If you are reading Cisco product documentation on the World Wide Web, you can submit comments electronically. Click Feedback in the toolbar and select Documentation. After you complete the form, click Submit to send it to Cisco. We appreciate your comments.
Posted: Sun May 22 11:45:24 PDT 2005
All contents are Copyright © 1992--2005 Cisco Systems, Inc. All rights reserved.
Important Notices and Privacy Statement.