Table Of Contents
Serviceability XML Programming
Overview
New and Changed Information
New Information for Cisco Unified Communications Manager 7.1(2)
New Information for Cisco Unified Communications Manager 7.0(1)
New Information for Cisco Unified Communications Manager 7.0
New Information for Cisco Unified Communications Manager 6.1
New Information for Cisco Unified Communications Manager 6.0
New Information for Cisco Unified Communications Manager 5.0
New Information for Cisco Unified Communications Manager 4.3
New Information for Cisco Unified Communications Manager 4.0
Data Model
SOAP Binding
Character Encoding
Binding Style
Transport Protocols
Encoding Rule
Request Message
SOAP Action Header
Port
SOAP Header
Response Message
Fault Message
Namespaces
Downloading Serviceability SOAP WSDL Files
Monitoring SOAP Activity
RisPort SOAP Service
RisPort Service: selectCmDevice Operation
Request Format
Response Format
Example Request
Example Response
RisPort Service: SelectCmDevice Operation (Includes IPv6 Devices)
Request Format
Response Format
Example Request
Example Response
Faults
RisPort Service: selectCtiItem Operation
Request Format
Response Format
RisPort Service: SelectCtiDevice Operation (Includes IPv6 Devices)
Request Format
Response Format
Request Example
Response Example
Fault
RisPort Service: getServerInfo Operation
Request Format
Response Format
Faults
Example
RisPort Service: SelectCmDeviceSIP Operation
Request Format
Response Format
Interface to Get Server Names and Cluster Name
PerfmonPort SOAP Service
PerfmonPort Service: perfmonOpenSession Operation
Request Format
Response Format
PerfmonPort Service: perfmonAddCounter Operation
Request Format
Response Format
PerfmonPort Service: perfmonRemoveCounter Operation
Request Format
Response Format
PerfmonPort Service: perfmonCollectSessionData Operation
Request Format
Response Format
PerfmonPort Service: perfmonCloseSession Operation
Request Format
Response Format
PerfmonPort Service: perfmonListInstance Operation
Request Format
Response Format
PerfmonPort Service: perfmonQueryCounterDescription Operation
Request Format
Response Format
PerfmonPort Service: perfmonListCounter Operation
Request Format
Response Format
PerfmonPort Service: perfmonCollectCounterData Operation
Request Format
Response Format
ControlCenterServicesPort SOAP Service
ControlCenterServicesPort service: soapGetStaticServiceList Operation
Request Format
Response Format
Fault
Request Example
Response Example
ControlCenterServicesPort service: soapGetServiceStatus Operation
Request Format
Response Format
Fault
Request Example Cisco Tftp Service Status
Response Example for Cisco Tftp Service Status
Request Example for Empty Array of Service Names
Response Example for Empty Array of Service Names
ControlCenterServicesPort service: soapDoServiceDeployment Operation
Request Format
Response Format
Fault
Request Example
Response Example
ControlCenterServicesPort service: soapDoControlServices Operation
Request Format
Response Format
Fault
Request Example
Response Example
ControlCenterServicesPort service: getProductInformationList Operation
Request Format
Response Format
Fault
Request Example
Response Example
LogCollectionPort SOAP Service
LogCollectionPort service: listNodeServiceLogs Operation
Request Format
Response Format
Fault
Example
LogCollectionPort service: selectLogFiles Operation
Request Format
Response Format
Fault
Example
CDRonDemand SOAP Service
WSDL Definition
Security Considerations for CDRonDemand Service
CDRonDemand Service: get_file_list Operation
Parameters
Request
Response
CDRonDemand Service: get_file Operation
Parameters
Request
Response
Fault
DimeGetFileService SOAP Service
DimeGetFileService SOAP Service: getOneFile Operation
Request Format
Response Format
Fault
Example
Authentication
Basic
Secure
Authorization
Developer Tools
View Deployed Web Services
View <Web Service> WSDL
SOAP Monitor
Password Expiration and Lockout
Application Customization for Cisco Unity Connection Servers
SOAP Service Tracing
AXL Serviceability API Authentication Security
Rate Control Mechanism
SOAP Fault Error Codes
Fault Strings
Sample SOAP Fault or AXIS Fault
AXL Serviceability Application Design Guidelines and Best Practices
Maintain HTTPs sessions and Connection Timeouts
Send Perfmon Close Session
Device Query Support for Large Clusters
Respond and React to SOAP Faults
Limit Request and Response Size in the Application Design
Number of Nodes in the Cluster
SOAP Monitor Usage
Serviceability XML Programming
This chapter describes the implementation of AXL-Serviceability APIs. Cisco Unified Communications Manager Real-Time information, Performance Counters, and Database information exposure occurs through an AXL-Serviceability interface that conforms to the World Wide Web Consortium (W3C) standard. The Web Service Description Language (WSDL) files provide interface definitions.
To access all AXL Configuration API downloads and AXL requests and responses that are found in this document, refer to http://www.developer.cisco.com. You must have a Cisco.com account and password to access this URL.
This chapter contains the following sections:
•
Overview
•
New and Changed Information
•
Data Model
•
RisPort SOAP Service
•
PerfmonPort SOAP Service
•
ControlCenterServicesPort SOAP Service
•
LogCollectionPort SOAP Service
•
CDRonDemand SOAP Service
•
DimeGetFileService SOAP Service
•
Authentication
•
Developer Tools
•
Password Expiration and Lockout
•
Application Customization for Cisco Unity Connection Servers
•
SOAP Service Tracing
•
AXL Serviceability API Authentication Security
•
Rate Control Mechanism
•
SOAP Fault Error Codes
•
AXL Serviceability Application Design Guidelines and Best Practices
Overview
By exposing Cisco Unified Communications Manager (Unified CM) real-time information, performance counter, and database information, customers can write customized applications. AXL-Serviceability APIs, extensible SOAP-based XML Web Services, conform to the Simple Object Access Protocol (SOAP) Specification 1.1 and the Web Services Description Language (WSDL) Specification 1.1. AXL-Serviceability APIs represent one server component of the Cisco Unified Communications Manager Serviceability product.
SOAP provides an XML-based communication protocol and encoding format for interapplication communication. SOAP can serve as the backbone to a new generation of cross-platform, cross-language distributed-computing applications, termed Web Services.
AXL-Serviceability APIs provide remote procedure call (RPC) style operations for clients. Clients
of AXL-Serviceability APIs can run in different OS platforms and can communicate through the standard SOAP protocol. AXL-Serviceability APIs provide access to core Cisco Unified Communications Manager Serviceability functionality through an open and standard transport protocol and data model.
The AXL-Serviceability interface uses the AXIS 1.4 SOAP server with the AXIS-2250 patch.
New and Changed Information
The following sections describe the major changes in the AXL-Serviceability APIs for various releases:
•
New Information for Cisco Unified Communications Manager 7.1(2)
•
New Information for Cisco Unified Communications Manager 7.0(1)
•
New Information for Cisco Unified Communications Manager 7.0
•
New Information for Cisco Unified Communications Manager 6.1
•
New Information for Cisco Unified Communications Manager 6.0
•
New Information for Cisco Unified Communications Manager 5.0
•
New Information for Cisco Unified Communications Manager 4.3
•
New Information for Cisco Unified Communications Manager 4.0
For information about new, changed, or deprecated Serviceability SOAP API methods from the interface library, see Chapter 5, "Serviceability XML Operations by Release"
New Information for Cisco Unified Communications Manager 7.1(2)
The following information applies to Cisco Unified Communications Manager 7.1(2):
•
Added new service URL that contains the version of Unified CM.
•
Added a new API, SelectCmDevice, to show IPv6 details of Unified CM node or server, phone devices, SIP devices, and media devices.
•
Added a new API, SelectCtiDevice, to support IPv6 address search for CTI controlled application and devices.
•
The following perfmon counters have been added to show the IPv6 network statistics:
–
In Receives
–
In HdrErrors
–
In UnknownProtos
–
In Discards
–
In Delivers
–
Out Requests
–
Out Discards
–
Reasm Reads
–
Reasm OKs
–
Reasm Fails
–
Frag OKs
–
Frag Fails
–
Frag Creates
–
InOut Requests
•
Introduced new phone seamless upgrade information:
–
Phone Active Load ID
–
Phone InActive Load ID
–
Phone Down Load Status
–
Phone Down Load Failure Reason
–
Phone Firmware Down Loaded Server
•
CISCO-CCM-MIB has been enhanced to show IPv6 details of Unified CM node, phone devices, SIP devices, and media devices.
The SOAP service APIs supported by Unified CM Release 7.1(2) is listed in Table 4-1
Table 4-1 Serviceability XML Methods supported by Cisco Unified Communications Manager Release 7.1(2)
SOAP Service
|
API
|
Service URL with Version
|
RisPort (Real Time Information Port)
|
selectCmDevice (IPv4 devices)
|
https://<server>:8443/realtimeservice/services/RisPort
|
SelectCmDevice (includes IPv6 devices)
|
https://<server>:8443/realtimeservice/services/RisPort70
|
selectCtiItem (IPv4 devices)
|
https://<server>:8443/realtimeservice/services/RisPort
|
SelectCtiItem (includes IPv6 devices)
|
https://<server>:8443/realtimeservice/services/RisPort70
|
getServerInfo
|
https://<server>:8443/realtimeservice/services/RisPort
|
PerfmonPort (Performance Information Port)
|
perfmonOpenSession
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonAddCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonRemoveCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCollectSessionData
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCloseSession
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonListInstance
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonQueryCounterDescription
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonListCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCollectCounterData
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
ControlCenterServicesPort (All Service Control APIs)
|
soapGetStaticServiceList
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapGetServiceStatus
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapDoServiceDeployment
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapDoControlServices
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
getProductInformationList
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
LogCollectionPort (All Log Collection APIs)
|
listNodeServiceLogs
|
https://<server>:8443/logcollectionservice/services/ LogCollectionPort
|
selectLogFiles
|
https://<server>:8443/logcollectionservice/services/ LogCollectionPort
|
CDRonDemand (All CDR APIs)
|
get_file_list
|
https://<server>:8443/CDRonDemandService/services/ CDRonDemand
|
get_file
|
https://<server>:8443/CDRonDemandService/services/ CDRonDemand
|
DimeGetFileService (Geting Single File)
|
GetOneFile
|
https://<server>:8443/logcollectionservice/services/ DimeGetFileService
|
.
New Information for Cisco Unified Communications Manager 7.0(1)
The following information applies to Unified CM Release 7.0(1):
•
The following disk partition counters have been obsolesced starting with Unified CM, release 7.0(1):
–
Await Read Time—Average time measured in milliseconds, for read requests issued to the device to be served. The counter is no longer valid with a counter value as -1.
–
Await Write Time—Average time measured in milliseconds, for write requests issued to the device to be served. The counter is no longer valid with a counter value as -1.
–
Await Time—Average time measured in milliseconds, for input/output (I/O) requests issued to the device to be served. Includes time spent by the requests in queue and the time spent servicing them. The counter is no longer valid with a counter value as -1.
–
% CPU Time—Percentage of CPU time that is dedicated to handling IO requests that were issued to the disk. The counter is no longer valid with a counter value as -1.
–
Queue Length—Average queue length for the requests that were issued to the disk. The counter is no longer valid with a counter value as -1.
•
The following counters have been added to memory perfmon object:
–
Pages Input Per Sec—Total number of kilobytes paged in from disk per second.
–
Pages Output Per Sec—Total number of kilobytes paged out to disk per second.
–
Faults Per Sec—Number of page faults (major + minor) made by the system per second (post 2.5 kernels only).
This is not the number of page faults that generate I/O, because some page faults can be resolved without I/O.
–
Major Faults Per Sec—Number of major faults the system has made per second, those which have required loading a memory page from disk (post 2.5 kernels only).
–
Low Total—Total low (non-paged) memory for kernel.
–
Low Free—Free low (non-paged) memory for kernel.
•
Added Cisco SOAPMessage tracing service (SOAP Service Tracing).
New Information for Cisco Unified Communications Manager 7.0
The following information applies to Cisco Unified Communications Manager 7.0:
•
There are no AXL-Serviceability API changes in this release.
•
When trace compression is enabled, trace files are compressed.
•
Cisco Cisco Unified Communications Manager 7.0 supports version in the service URL as described in Table 4-2.
Note
The service URL for all the AXL serviceability Cisco Unified Communications Manager 4.x and below is http://ASTSERVERNAME/soap/astsvc.dll.
Table 4-2 Serviceability XML Methods by Cisco Unified Communications Manager Release
SOAP Service
|
API
|
Service URL with Version
|
RisPort (Real Time Information Port)
|
selectCmDevice
|
https://<server>:8443/realtimeservice/services/RisPort
|
selectCtiItem
|
https://<server>:8443/realtimeservice/services/RisPort
|
getServerInfo
|
https://<server>:8443/realtimeservice/services/RisPort
|
PerfmonPort (Performance Information Port)
|
perfmonOpenSession
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonAddCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonRemoveCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCollectSessionData
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCloseSession
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonListInstance
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonQueryCounterDescription
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonListCounter
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
perfmonCollectCounterData
|
https://<server>:8443/perfmonservice/services/PerfmonPort
|
ControlCenterServicesPort (All Service Control APIs)
|
soapGetStaticServiceList
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapGetServiceStatus
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapDoServiceDeployment
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
soapDoControlServices
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
getProductInformationList
|
https://<server>:8443/controlcenterservice/services/ ControlCenterServicesPort
|
LogCollectionPort (All Log Collection APIs)
|
listNodeServiceLogs
|
https://<server>:8443/logcollectionservice/services/ LogCollectionPort
|
selectLogFiles
|
https://<server>:8443/logcollectionservice/services/ LogCollectionPort
|
CDRonDemand (All CDR APIs)
|
get_file_list
|
https://<server>:8443/CDRonDemandService/services/ CDRonDemand
|
get_file
|
https://<server>:8443/CDRonDemandService/services/ CDRonDemand
|
DimeGetFileService (Geting Single File)
|
GetOneFile
|
https://<server>:8443/logcollectionservice/services/ DimeGetFileService
|
New Information for Cisco Unified Communications Manager 6.1
There are no AXL-Serviceability API changes for Cisco Unified Communications Manager 6.1.
New Information for Cisco Unified Communications Manager 6.0
The following updates apply to Cisco Unified Communications Manager 6.0:
•
The GetProductInformationList API has been added. This API provides information about the products that are installed on a given server.
•
The standard SOAP fault is issued if a failure occurs. For related information, see the "SOAP Fault Error Codes" section.
New Information for Cisco Unified Communications Manager 5.0
The following APIS have been added for Cisco Unified Communications Manager 5.0:
•
getServerInfo—Exports information from the Server Information SOAP interface
•
soapGetStaticServiceList—Allows clients to perform a query for all services static specifications in Cisco Unified Communications Manager.
•
soapGetServiceStatus—Allows clients to perform a list of deployable and undeployable services status query
•
soapDoServiceDeployment—Allows clients to deploy or undeploy a list of services
•
soapDoControlServices—Allows clients to start or stop a list of service
•
listNodeServiceLogs—Returns the location of their log files for each service.
•
selectLogFiles—Takes FileSelectionCriteria object as an input parameter and returns the file names and location for that object.
•
get_file_list—Allows an application to query the CDR Repository Node for a list of all the files that match a specified time interval
•
GetOneFile—Takes as an input parameter the absolute file name of the file that you want to collect from the server
New Information for Cisco Unified Communications Manager 4.3
There are no AXL-Serviceability API changes for Cisco Unified Communications Manager 4.3.
New Information for Cisco Unified Communications Manager 4.0
The following APIs have been added for Cisco Unified Communications Manager 4.0:
•
selectCmDevice—Allows clients to perform Cisco Unified Communications Manager device-related queries
•
selectCtiItem—Allows clients to perform a CTI manager-related query
•
SelectCmDeviceSIP—Allows clients to perform Cisco Unified Communications Manager SIP device related queries
Data Model
AXL-Serviceability APIs are based on SOAP with XML request and response messages. APIs must conform to the structure of a SOAP Envelope element. Although SOAP is a standard protocol, many of its data model aspects remain open for flexibility reasons. For example, it permits different transport protocols, such as SMTP, FTP, or HTTP, to carry SOAP messages. The implementation of a SOAP service must specify the bindings of the data model to constitute a concrete wire protocol specification.
The Web Services Description Language (WSDL) Specification 1.1 provides the mechanism to describe the complete SOAP bindings that AXL-Serviceability APIs use.
SOAP Binding
The binding section of the Serviceability SOAP WSDL files specifies AXL-Serviceability API SOAP binding information. Binding specifications apply to both request and response messages. SOAP Binding covers the aspects that are explained in the following sections.
Character Encoding
AXL-Serviceability APIs use UTF-8 to encode the data stream in both request and response SOAP messages. The encoding attribute of the XML declaration specifies UTF-8 encoding. AXL-Serviceability APIs also set "text/xml; charset='utf-8'" as the value of the Content-Type response header field. Internally, AXL-Serviceability APIs processes the data by using UCS-2 Unicode code page.
Binding Style
AXL-Serviceability APIs uses remote procedure call (RPC) binding style. In SOAP, the word operation refers to method or function. Each AXL-Serviceability API operation call gets modeled as an RPC that is encapsulated in SOAP messages. The HTTP request carries RPC calls while the HTTP response carries the call returns. The call information is modeled as a structure. The member elements of the body entry represent the accessor elements that represent the input parameters. The response data is also modeled as a structure with accessors that correspond to output parameters. Parameters that are both input and output must appear in both the request and response message.
Transport Protocols
SOAP allows different transport protocols to carry SOAP messages. AXL-Serviceability APIs use the standard HTTP as its transport. Clients use the POST verb to send requests to AXL-Serviceability APIs.
Note
AXL-Serviceability APIs do not use the M-POST method as defined in the HTTP Extension Framework.
Encoding Rule
AXL-Serviceability APIs follow the recommended data model and serialization/encoding rules as defined in Section 5.1 of SOAP Specification 1.1 for both the request and response messages. SOAP simple types are based on the built-in data types that are defined in XML Schema Part 2.
AXL-Serviceability APIs define their own data types, which are derived from the built-in types. The schemas element of the AXL-Serviceability APIs WSDL file specifies AXL-Serviceability APIs that are derived data types. AXL-Serviceability APIs use both simple and compound data types, such as arrays and structures. All operations in AXL-Serviceability APIs pass parameters by value.
For performance reasons, AXL-Serviceability APIs do not specify the size of the array elements in the response message. It leaves the size as [], which means that no particular size is specified, but the clients can determine the size by enumerating the actual number of elements that are inside the array. Point 8 of Section 5.1 of SOAP Specification 1.1 specifies this.
The target namespace URL for AXL-Serviceability API data types schema follows:
http://schemas.xmlsoap.org/soap/envelope/
AXL-Serviceability APIs qualify the first body entry in the response, which represents the call-return, with this target namespace. Similarly, clients of AXL-Serviceability APIs also need to qualify the first body entry in the request, which represents the call, with this namespace.
Request Message
With RPC-style SOAP binding, the request message contains operation call information that is encoded as a struct. The call struct, which appears as the first body entry in the request message, contains the name of the operation and the input parameters. The name of the top-level element represents the operation name. The struct contains accessor element members that represent input parameters. Operations with no parameters have no members in the struct. The names of the accessor elements match the names of the input parameters. The values of the accessor elements represent the values of the input parameters. The order of the accessor elements must match the order of the input parameters as specified in the signature of the operation.
SOAP Action Header
AXL-Serviceability APIs require SOAP clients to include the SOAP Action HTTP header field in the request message. The SOAP 1.1 specification does not place any restrictions on the format of this header. For AXL-Serviceability APIs, the soapAction attribute of the SOAP element, which is defined under the binding section of the Serviceability SOAP API WSDL files, specifies the format of the SOAP Action HTTP header. All AXL-Serviceability APIs operations use the following URI format:
http://schemas.cisco.com/ast/soap/action/#PortName#OperationName
Note
Because the enclosing double-quote characters (" ") are part of the URI, the header must include them.
PortName acts as a placeholder that refers to the name of the port. AXL-Serviceability APIs must support the port. OperationName represents a placeholder that refers to the name of the intended operation within the specified port. This name must match the operation name in the request body, which is specified as the name of the first body entry element. The SOAP Action header indicates the intent of the SOAP request without having to parse the body of the request. A SOAP server can check the value of this header and determine whether to fail the operation before it proceeds with parsing the XML body. This provides some efficiency on the server side and allows non-SOAP-aware intermediary HTTP servers or proxies to determine the intent of the payload.
Port
A SoapPort basically represents an instantiation of a SoapBinding with a specific network address. Because AXL-Serviceability APIs use HTTP as the transport protocol, the network address in this case specifies an HTTP request URL. SoapPortType, with specific binding rules added to it, provides a basis for the definition of SoapBinding.
The service section of the WSDL file defines the request URL for all AXL-Serviceability API operations. Every request for the AXL-Serviceability APIs operations must use this URL.
SOAP Header
As previously explained, the SOAP header provides a general way to add features to SOAP messages in a decentralized fashion with no prior contract between the sender and recipient. AXL-Serviceability APIs do not use this feature, so no Header element is expected in the envelope and gets ignored. If the Header element gets included with the mustUnderstand attribute set to 1, AXL-Serviceability APIs reply with a fault and a fault code value that is set to the mustUnderstand value.
The following example shows an AXL-Serviceability API SOAP request message with the HTTP header information:
Example
POST /perfmonservice/services/PerfmonPort HTTP/1.1
Accept: application/soap+xml, application/dime, multipart/related, text/*
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://schemas.cisco.com/ast/soap/action/#PerfmonPort#PerfmonOpenSession"
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:PerfmonOpenSession xmlns:q1="http://schemas.cisco.com/ast/soap/" />
Response Message
For a successful operation call, the call-return gets encoded as a structure. The structure appears as the first body entry of the response. The call-return basically contains the output parameters or return values of the call. The name of the structure top-level element has no significance, and the SOAP 1.1 specification does not place any restriction on the name. The structure contains accessor member elements, which represent the output parameters of the call. The names of the accessor elements match the names of the output parameters. The contents of the accessor elements represent the values of the output parameters. The order of the accessor elements must match the order of output parameters as specified in the operation signatures. Operation, which does not return any value, contains no member elements in the call-return struct.
AXL-Serviceability APIs use the following naming conventions for the call-return top-level element:
SOAPAction: "http://schemas.cisco.com/ast/soap/action/#PortName #OperationName"
where OperationName represents a placeholder that refers to the name of the operation that is specified in the request message. This format specifically applies only for the AXL-Serviceability APIs implementation.
The target namespace that is described in the "Encoding Rule" section, qualifies the call-return. AXL-Serviceability APIs return HTTP status 200 when the operation succeeds.
For a failed operation call, AXL-Serviceability APIs include the SOAP fault element in the response body. Similar to call-return, the fault element also appears as the first body entry. AXL-Serviceability APIs set HTTP 500 status when sending fault messages.
Fault Message
When an AXL-Serviceability API processes a request and detects that an error occurred, it replies with a SOAP fault element in the response. The fault element appears as the first response body entry. The fault element comprises the following four subelements:
•
Fault Code Values
•
FaultString
•
FaultActor
•
Detail
Fault Code Values
AXL-Serviceability APIs use the following standard fault code values as defined in Section 4.4.1 of the SOAP 1.1 specification.
VersionMismatch
This fault code gets set when the namespace URL of the request envelope does not match.
MustUnderstand
This fault code gets set when the clients include the Header element in the envelope along with the mustUnderstand attribute set to 1. AXL-Serviceability APIs do not use the Header element. See the "SOAP Header" section for details.
Client
This fault code gets set when AXL-Serviceability APIs encounters errors that are related to the clients.
Server
This fault code gets set when AXL-Serviceability APIs encounter errors that are related to the service itself. This subelement always exists in the fault element as specified in the SOAP 1.1 specification. This represents a general classification of errors.
FaultString
AXL-Serviceability APIs set a short error description in the faultstring element that is intended for human reading. Similar to faultcode, this subelement is always present as the SOAP 1.1 specification requires. The string value of the FaultString specifically applies only to the AXL-Serviceability APIs.
FaultActor
AXL-Serviceability APIs do not set this subelement. Note that a proxy or intermediary server must include this subelement if it generates a fault message.
Detail
If an AXL-Serviceability API parses and processes the request body and determines that an error occurs afterward, it includes the detailed error information in the detail subelement.
If AXL-Serviceability APIs do not include the detail subelement in the fault element, the error does not relate to the request body. Data types that are defined in the AXL-Serviceability APIs WSDL files specify the encoding rule for the detail subelement.
The following fragments of the file describe the data types:
<complexType name='CallInfoType'>
<element name='FileName' type='xsd:string'/>
<element name='LineNo' type='xsd:int'/>
<element name='ErrorCode' type='xsd:unsignedInt'/>
<element name='Function' type='xsd:string'/>
<element name='Params' type='xsd:string'/>
<complexType name='ErrorInfoType'>
<element name='Version' type='xsd:string'/>
<element name='Time' type='xsd:time'/>
<element name='ProcId' type='xsd:unsignedInt'/>
<element name='ThreadId' type='xsd:unsignedInt'/>
<element name='ArrayOfCallInfo' type='tns:ArrayOfCallInfoType'/>
<complexType name='ArrayOfCallInfoType'>
<restriction base='SOAP-ENC:Array'>
type='tns:CallInfoType' minOccurs='1' maxOccurs='unbounded'/>
AXL-Serviceability APIs name the detail entry element as ErrorInfo and the type as ErrorInfoType. This type provides a structure with several accessor elements. The Version accessor contains the build version. The Time accessor denotes the time when the error occurs. The ProcId accessor contains the process ID of the AXL-Serviceability APIs. The ThreadId accessor contains the thread ID that generates the fault. The ArrayOfCallInfo accessor contains an array of CallInfo elements.
The type for CallInfo specifies CallInfoType and also represents a structure. CallInfoType contains detailed information that describes where the error occurs in the code. It also includes the returned error code of the function, and the parameter data. The CallInfoType design allows capturing as much information as needed, so it is easy and fast to track down and investigate a problem. Depending on the implementation of the operation, several CallInfo elements can exist in the array.
The following example shows a successful AXL-Serviceability API SOAP response message with HTTP headers:
Example
Content-Type: text/xml; charset=utf-8
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<m:PerfmonOpenSessionResponse xmlns:m="http://schemas.cisco.com/ast/soap/">
<SessionHandle>{01944B7E-183F-44C5-977A-F31E3AE59C4C}</SessionHandle>
</m:PerfmonOpenSessionResponse>
The following example shows a failed AXL-Serviceability API SOAP response message with HTTP headers:
Example
Content-Type: text/xml; charset=utf-8
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Perfmon error occurs</faultstring>
<m:ErrorInfo xmlns:m="http://schemas.cisco.com/ast/soap/">
<Version>3.2.0.2</Version>
<Time>07/16/2001 - 00:00:24</Time>
<ArrayOfCallInfo SOAP-ENC:arrayType="m:CallInfoType[]">
<FileName>perfmon.cpp</FileName>
<ErrorCode>3221228473</ErrorCode>
<Function>AddCounter</Function>
<Params>\\nozomi\tcp\Bad Counter Name</Params>
Namespaces
AXL-Serviceability APIs use the following XML namespaces:
•
http://schemas.xmlsoap.org/soap/envelope/
The namespace URI for the SOAP envelope
•
http://schemas.xmlsoap.org/soap/encoding/
The namespace for the SOAP-recommended encoding rule that is based on XML Schema
•
http://schemas.cisco.com/ast/soap/
The namespace URL for AXL-Serviceability API data types as defined in the WSDL file
Downloading Serviceability SOAP WSDL Files
You can download the Cisco Unified Communications Manager serviceability SOAP WSDL files from the Cisco Unified Communications Manager server directly by entering a URL on the web browser. Table 4-3 lists these URLs. In each URL, servername must be replaced by an appropriate server IP address.
Table 4-3 URLs for SOAP Requests Service Definitions
SOAP Request Type
|
URL for SOAP Requests Service Definition
|
RisPort RisPort70
|
https://servername:8443/realtimeservice/services/RisPort?wsdl https://servername:8443/realtimeservice/services/RisPort70?wsdl
|
PerfmonPort
|
https://servername:8443/perfmonservice/services/PerfmonPort?wsd
|
ControlCenterServices
|
https://servername:8443/controlcenterservice/services/ControlCenterServicesPort?wsdl
|
LogCollectionService
|
https://servername:8443/logcollectionservice/services/LogCollectionPort?wsdl
|
CDRonDemand
|
https://servername:8443/CDRonDemandService/services/CDRonDemand?wsdl
|
DimeGetFile
|
https://servername:8443/logcollectionservice/services/DimeGetFileService?wsdl
|
SOAPMonitorService1
|
https://servername:8443/realtimeservice/services/SOAPMonitorService?wsdl
|
PClients of AXL-Serviceability APIs must download these files to know what services are available, how to form the request message, and how to interpret the response message properly. Basically, the WSDL file has what you need to know about AXL-Serviceability APIs.
Monitoring SOAP Activity
You can use AXIS SOAPMonitor to monitor SOAP activities. Point your browser to
https://servername:8443/realtimeservice/SOAPMonitor
where servername is an appropriate server IP address.
RisPort SOAP Service
The RisPort (Real-Time Information Port) service comprises several operations that allow clients to do the following tasks related to real-time information:
Table 4-4 provides a summary of the SOAP RisPort service operations.
RisPort Service: selectCmDevice Operation
The selectCMDevice operation allows clients to perform Cisco Unified Communications Manager device-related queries.
Request Format
Note
For information about obtaining all device information in a large system, refer to the "Device Query Support for Large Clusters" section
SOAP Action and Envelope Information
HTTP header should have following SOAP action for these queries.
SOAPAction: "http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDevice"
Query information includes an Envelope as follows:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://schemas.cisco.com/ast/soap/"
xmlns:types="http://schemas.cisco.com/ast/soap/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Session ID
This SOAP header will have session ID that is a unique session ID from client.
<SessionId xsi:type="xsd:string">SessionId</SessionId>
Selection Criteria
Selection criteria type, which is a Cisco Unified Communications Manager Selection criteria, follows the SOAP header. Selection criteria should not include "unknown." If you specify "unknown," it is treated as "any." The "Unknown" state can be present in a response.
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
If the same information is queried over and over again, send Stateinfo from the previous request for each repetitive query by client.
<StateInfo xsi:type="xsd:string" />
<CmSelectionCriteria href="#id1"/>
</tns:SelectCmDevice><tns:CmSelectionCriteria id="id1" xsi:type="tns:CmSelectionCriteria">
Maximum Devices Specification
This example specifies how many maximum devices can be returned for search criteria.
<MaxReturnedDevices xsi:type="xsd:unsignedInt">10</MaxReturnedDevices>
Search Device Classes
This example specifies the device class type to query for real-time status. Device classes include 'Any', 'Phone', 'Gateway', 'H323', 'Cti', 'VoiceMail', 'MediaResources', 'HuntList', 'SIPTrunk', and 'unknown'.
<Class xsi:type="tns:DeviceClass">Any</Class>
This example specifies the Model of the device—255 specifies all models.
<Model xsi:type="xsd:unsignedInt">255</Model>
Device Status in Search Criteria
Specify registered/unregistered status devices. The following example shows status 'Any', 'Registered', 'UnRegistered', 'Rejected', and 'Unknown.'
<Status xsi:type="tns:CmDevRegStat">Registered</Status>
The following example specifies the server name where the search needs to be performed. If no name is specified, a search in all servers in a cluster results.
<NodeName xsi:type="xsd:string" />
Specify Selection type whether it is IP Address/Name
<SelectBy xsi:type="tns:CmSelectBy">Name</SelectBy>
Array of Items for Which Search Criteria Are Specified
The following example specifies an array that contains the IP Address or Device Name of the items for which a real-time status is required.
<SelectItems href="#id2" />Name or IP</tns:CmSelectionCriteria
<soapenc:Array id="id2" soapenc:arrayType="tns:SelectItem[2]">
<Item href="#id3"/><Item xsi:null="1"/>
<tns:SelectItem id="id3" xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string"/></tns:SelectItem>
Response Format
The Response follows the following schema and contains information for one to many servers for each server and contains a sequence of search information that is found on the search criteria.
<complexType name='SelectCmDeviceResult'>
<element name='TotalDevicesFound' type='xsd:unsignedInt'/>
<element name='CmNodes' type='tns:CmNodes'/>
CMNodes provides a list of Unified CMNodes that are given in search criteria.
<complexType name='CmNodes'>
<restriction base='SOAP-ENC:Array'>
<element name='CmNode' type='tns:CmNode' minOccurs='0 maxOccurs='unbounded'/>
Each Unified CMNode contains a sequence of devices and their registration status.
<complexType name='CmNode'>
<element name='ReturnCode' type='tns:RisReturnCode'/>
<element name='Name' type='xsd:string'/>
<element name='NoChange' type='xsd:boolean'/>
<element name='CmDevices' type='tns:CmDevices'/>
<complexType name='CmDevices'>
<restriction base='SOAP-ENC:Array'>
<element name='CmDevice' type='tns:CmDevice' minOccurs='0' maxOccurs='200'/>
The Unified CM Device information contains the following information.
<complexType name='CmDevice'>
<element name='Name' type='xsd:string'/>
<element name='IpAddress' type='xsd:string'/>
<element name='DirNumber' type='xsd:string'/>
<element name='Class' type='tns:DeviceClass'/>
<element name='Model' type='xsd:unsignedInt'/>
<element name='Product' type='xsd:unsignedInt'/>
<element name='BoxProduct'type='xsd:unsignedInt'/>
<element name='Httpd' type='tns:CmDevHttpd'/>
<element name='RegistrationAttempts' type='xsd:unsignedInt'/>
<element name='IsCtiControllable' type='xsd:boolean'/>
<element name='LoginUserId' type='xsd:string'/>
<element name='Status' type='tns:CmDevRegStat'/>
<element name='StatusReason' type='xsd:unsignedInt'/>
<element name='PerfMonObject' type='xsd:unsignedInt'/>
<element name='DChannel' type='xsd:unsignedInt'/>
<element name='Description' type='xsd:string'/>
<element name='H323Trunk' type='tns:H323Trunk'/>
<element name='TimeStamp' type='xsd:unsignedInt'/>
Example Request
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDevice soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<StateInfo xsi:type="xsd:string"/>
<CmSelectionCriteria href="#id0"/>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:CmSelectionCriteria"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://schemas.cisco.com/ast/soap/">
<MaxReturnedDevices xsi:type="xsd:unsignedInt">200</MaxReturnedDevices>
<Class xsi:type="xsd:string">Any</Class>
<Model xsi:type="xsd:unsignedInt">255</Model>
<Status xsi:type="xsd:string">Registered</Status>
<NodeName xsi:type="xsd:string" xsi:nil="true"/>
<SelectBy xsi:type="xsd:string">Name</SelectBy>
<SelectItems soapenc:arrayType="ns2:SelectItem[1]" xsi:type="soapenc:Array">
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:SelectItem" xmlns:ns3="http://schemas.cisco.com/ast/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<Item xsi:type="xsd:string">*</Item>
Example Response
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDeviceResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SelectCmDeviceResult xsi:type="ns1:SelectCmDeviceResult">
<TotalDevicesFound xsi:type="xsd:unsignedInt">4</TotalDevicesFound>
<CmNodes soapenc:arrayType="ns1:CmNode[1]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CmNode">
<ReturnCode xsi:type="ns1:RisReturnCode">Ok</ReturnCode>
<Name xsi:type="xsd:string">CISCART15</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
<CmDevices soapenc:arrayType="ns1:CmDevice[4]" xsi:type="soapenc:Array">
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">ANN_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">126</Model>
<Product xsi:type="xsd:unsignedInt">89</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">608</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">ANN_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">CFB_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">50</Model>
<Product xsi:type="xsd:unsignedInt">28</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">15</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">CFB_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679736</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">MOH_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">70</Model>
<Product xsi:type="xsd:unsignedInt">51</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">6</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">MOH_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">MTP_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">110</Model>
<Product xsi:type="xsd:unsignedInt">30</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">13</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">MTP_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<StateInfo xsi:type="xsd:string"><StateInfo ClusterWide="1"><Node
Name="CISCART15" SubsystemStartTime="1204679712" StateId="4"
TotalItemsFound="4"
TotalItemsReturned="4"/></StateInfo></StateInfo>
</ns1:SelectCmDeviceResponse>
RisPort Service: SelectCmDevice Operation (Includes IPv6 Devices)
The SelectCMDevice API allows clients to query Cisco Unified Communications Manager (Unified CM) for device-related information. This API supports searching for IPv6 device address (Unified CM node/server, phone devices, SIP devices, and media devices) and provides IPv6 information in the response. This API also supports searching by download-status for new generation phones with seamless upgrade capability and provides information on the download-status of the firmware.
The operation name for invoking the API is SelectCmDevice and the service URL is:
https://<server name>/realtimeservice/services/RisPort70.
Note
The service URL for release 7.1(2) is different from the earlier releases. The service URL of this release includes the version information.
The SelectCmDevice operation comprises the SelectCmDeviceInput and SelectCmDeviceOutput messages:
<message name="SelectCmDeviceInput">
<part name="StateInfo" type="xsd:string"/>
<part name="CmSelectionCriteria" type="tns:CmSelectionCriteria"/>
<message name="SelectCmDeviceOutput">
<part name="SelectCmDeviceResult" type="tns:SelectCmDeviceResult"/>
<part name="StateInfo" type="xsd:string"/>
<portType name="RisPortType">
<operation name="SelectCmDevice">
<input message="tns:SelectCmDeviceInput"/>
<output message="tns:SelectCmDeviceOutput"/>
Request Format
Note
For information about obtaining all device information in a large system, refer to the "Device Query Support for Large Clusters" section
SOAP Action
HTTP header should have following SOAP action for these queries.
SOAPAction: http://schemas.cisco.com/ast/soap/action/#RisPort70#SelectCmDevice
Envelope and Session ID
Query information includes the envelope and session ID information as follows:
<?xml version="1.0" encoding="utf-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap="http://schemas.cisco.com/ast/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<AstHeader xsi:type="soap:AstHeader">
<SessionId xsi:type="xsd:string"/>
The SOAP header has the session ID that is a unique ID.
SelectDmDevice Operation
The SelectDevice operation is first defined in the SOAP body element.
<SOAP-ENV:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
Stateinfo
If same Information is queried repetitively, then Stateinfo is sent from the previous request. Stateinfo is the string that is returned by the server and it represents the state of the real-time database.
<StateInfo xsi:type="xsd:string" />
Selection Criteria
The CmSelectionCriteria element defines the selection criteria for RISDC search. The selection criteria type follows the SOAP header. Selection criteria should not be "unknown." If you specify "unknown," it is treated as "any." The "Unknown" state can be present in a response.
<complexType name="CmSelectionCriteria">
<element name="MaxReturnedDevices" nillable="true" type="xsd:unsignedInt"/>
<element name="Class" nillable="true" type="xsd:string"/>
<element name="Model" nillable="true" type="xsd:unsignedInt"/>
<element name="Status" nillable="true" type="xsd:string"/>
<element name="NodeName" nillable="true" type="xsd:string"/>
<element name="SelectBy" type="tns:CmSelectBy"/>
<element name="SelectItems" nillable="true" type="tns:SelectItems"/>
<element name="Protocol" nillable="true" type="tns:ProtocolType"/>
<element name="DownloadStatus" nillable="true" type="tns:DeviceDownloadStatus"/>
CmSelectionCriteria contains the following information:
•
MaxReturnedDevices
•
Class
•
Model
•
Status
•
NodeName
•
SelectBy
•
SelectItems
•
Protocol
•
DownloadStatus
MaxReturnedDevices
Specifies the maximum number of devices that can be returned in a search. The maximum value is 200.
Format:
<element name="MaxReturnedDevices" nillable="true" type="xsd:unsignedInt"/>
Example:
<MaxReturnedDevices xsi:type="xsd:unsignedInt">10</MaxReturnedDevices>
Class
Specifies the device class type that needs to be queried for the real-time status. The following options are available:
•
Any
•
Phone
•
Gateway
•
H323
•
Cti
•
VoiceMail
•
MediaResources
•
SIP Trunk
•
HuntLis
•
Unknown
Format:
<element name="Class" nillable="true" type="xsd:string"/>
<simpleType name="DeviceClass">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Phone"/>
<enumeration value="Gateway"/>
<enumeration value="H323"/>
<enumeration value="Cti"/>
<enumeration value="VoiceMail"/>
<enumeration value="MediaResources"/>
<enumeration value="SIP Trunk"/>
<enumeration value="HuntList"/>
<enumeration value="Unknown"/>
Example:
<Class xsi:type="tns:DeviceClass">Any</Class>
Model
Specifies the model of the device. 255 means all models.
Format:
<element name="Model" nillable="true" type="xsd:unsignedInt"/>
Example:
<Model xsi:type="xsd:unsignedInt">255</Model>
Status
Specifies the status of the device. The following options are available:
•
Any
•
Registered
•
UnRegistered
•
Rejected
•
PartiallyRegistered
•
Unknown
Format:
<element name="Status" nillable="true" type="xsd:string"/>
Example:
<Status xsi:type="tns:CmDevRegStat">Registered</Status>
NodeName
Specifies the server name where search is performed. If no name is specified, then all the servers within the cluster will be searched.
Format:
<element name="NodeName" nillable="true" type="xsd:string"/>
Example:
<NodeName xsi:type="xsd:string" xsi:nil="true"/>
SelectItems
Specifies the array of items for which you can specify the search criteria.
Format:
<complexType name="SelectItems">
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectItem[]"/>
Example that contains IP address or name of the device of the items for which you need the real time status:
<SelectItems href="#id2" />Name or IP</tns:CmSelectionCriteria
<soapenc:Array id="id2" soapenc:arrayType="tns:SelectItem[2]">
<Item href="#id3"/><Item xsi:null="1"/>
<tns:SelectItem id="id3" xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string"/></tns:SelectItem>
SelectBy
Specifies the Unified CM selection types during the search to RISDC. The following options are available:
•
Name
•
IPV4Address
•
IPV6Address
•
DirNumber
•
Description
Format:
<element name="SelectBy" type="tns:CmSelectBy"/>
<simpleType name="CmSelectBy">
<restriction base="string">
<enumeration value="Name"/>
<enumeration value="IPV4Address"/>
<enumeration value="IPV6Address"/>
<enumeration value="DirNumber"/>
<enumeration value="Description"/>
Example:
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:CmSelectBy"
xmlns:ns3="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">IPV6Address</multiRef>
Protocol
Specifies the protocol name in the search criteria. The following options are available:
•
Any
•
SCCP
•
SIP
•
Unknown
Format:
<element name="Protocol" type="tns:ProtocolType"/>
<simpleType name="ProtocolType">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="SCCP"/>
<enumeration value="SIP"/>
<enumeration value="Unknown"/>
Example:
<multiRef id="id3" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns5:ProtocolType"
xmlns:ns5="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Any</multiRef>
DownloadStatus
Specifies the download status of the application. The following options are available:
•
Any
•
Upgrading
•
Successful
•
Failed
•
Unknown
Format:
<element name="DownloadStatus" nillable="true" type="tns:DeviceDownloadStatus"/>
<simpleType name="DeviceDownloadStatus">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Upgrading"/>
<enumeration value="Successful"/>
<enumeration value="Failed"/>
<enumeration value="Unknown"/>
Example:
<DownloadStatus href="#id4"/>
<multiRef id="id4" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:DeviceDownloadStatus"
xmlns:ns6="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Any</multiRef>
Response Format
The response has the following schema and contains information for a single server or many servers. The response contains a sequence of search information that is specified in the search criteria.
<complexType name='SelectCmDeviceResult'>
<element name='TotalDevicesFound' type='xsd:unsignedInt'/>
<element name='CmNodes' type='tns:CmNodes'/>
Total Devices Found
This element displays the total number of device that are found.
Format:
<element name="TotalDevicesFound" type="xsd:unsignedInt"/>
Example:
<TotalDevicesFound xsi:type="xsd:unsignedInt">4</TotalDevicesFound>
Call Manager Node Information
CMNodes provides a list of Call Manager nodes that are specified in the search criteria.
Format:
<complexType name="CmNodes">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmNode[]"/>
Each CMNode contains a sequence of devices and their registration status. The CmNode element displays the following information:
•
Return Code
•
Name
•
NoChange
•
CmDevice
Format:
<complexType name='CmNode'>
<element name='ReturnCode' type='tns:RisReturnCode'/>
<element name='Name' type='xsd:string'/>
<element name='NoChange' type='xsd:boolean'/>
<element name='CmDevices' type='tns:CmDevices'/>
Return Code
Displays the RIS return codes. The following options are available:
•
Ok
•
NotFound
•
InvalidRequest
•
InternalRequest
•
InternalError
•
NodeNotResponding
•
InvalidNodeName
Format:
<element name='ReturnCode' type='tns:RisReturnCode'/>
<simpleType name="RisReturnCode">
<restriction base="string">
<enumeration value="Ok"/>
<enumeration value="NotFound"/>
<enumeration value="InvalidRequest"/>
<enumeration value="InternalError"/>
<enumeration value="NodeNotResponding"/>
<enumeration value="InvalidNodeName"/>
Name
Displays the name of the node.
Example:
Name xsi:type="xsd:string">172.27.203.17</Name>
NoChange
Example:
<NoChange xsi:type="xsd:boolean">false</NoChange>
CmDevice
Displays the device information. See Call Manager Device Information.
Call Manager Device Information
The CmDevice displays the following information:
Format:
<complexType name="CmDevice">
<element name="Name" type="xsd:string"/>
<element name="DirNumber" nillable="true" type="xsd:string"/>
<element name="Class" nillable="true" type="tns:DeviceClass"/>
<element name="Model" nillable="true" type="xsd:unsignedInt"/>
<element name="Product" nillable="true" type="xsd:unsignedInt"/>
<element name="BoxProduct" nillable="true" type="xsd:unsignedInt"/>
<element name="Httpd" nillable="true" type="tns:CmDevHttpd"/>
<element name="RegistrationAttempts" type="xsd:unsignedInt"/>
<element name="IsCtiControllable" type="xsd:boolean"/>
<element name="LoginUserId" nillable="true" type="xsd:string"/>
<element name="Status" type="tns:CmDevRegStat"/>
<element name="StatusReason" nillable="true" type="xsd:unsignedInt"/>
<element name="PerfMonObject" nillable="true" type="xsd:unsignedInt"/>
<element name="DChannel" nillable="true" type="xsd:unsignedInt"/>
<element name="Description" nillable="true" type="xsd:string"/>
<element name="H323Trunk" nillable="true" type="tns:H323Trunk"/>
<element name="TimeStamp" nillable="true" type="xsd:unsignedInt"/>
<element name="Protocol" type="tns:ProtocolType"/>
<element name="NumOfLines" type="xsd:unsignedInt"/>
<element name="LinesStatus" type="tns:CmDevLinesStatus"/>
<element name="ActiveLoadID" nillable="true" type="xsd:string"/>
<element name="InactiveLoadID" nillable="true" type="xsd:string"/>
<element name="DownloadStatus" nillable="true" type="tns:DeviceDownloadStatus"/>
<element name="DownloadFailureReason" nillable="true" type="xsd:string"/>
<element name="DownloadServer" nillable="true" type="xsd:string"/>
<element name="IPAddress" type="tns:IPAddressArray"/>
Name
Displays the name of the device.
Example:
<Name xsi:type="xsd:string">CTIRP</Name>
DirNumber
Displays the directory number.
Example:
<DirNumber xsi:type="xsd:string">9999</DirNumber>
Class
Defines the device class types. The following options are available:
•
Any
•
Phone
•
Gateway
•
H323
•
Cti
•
VoiceMail
•
MediaResources
•
SIP Trunk
•
HuntLis
•
Unknown
Format:
<element name="Class" nillable="true" type="xsd:string"/>
<simpleType name="DeviceClass">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Phone"/>
<enumeration value="Gateway"/>
<enumeration value="H323"/>
<enumeration value="Cti"/>
<enumeration value="VoiceMail"/>
<enumeration value="MediaResources"/>
<enumeration value="SIP Trunk"/>
<enumeration value="HuntList"/>
<enumeration value="Unknown"/>
Example:
<Class xsi:type="ns1:DeviceClass">Cti</Class>
Model
Specifies the model of the device.
Example:
<Model xsi:type="xsd:unsignedInt">73</Model>
Product
Displays the product type.
Example:
<Product xsi:type="xsd:unsignedInt">48</Product>
BoxProduct
Displays the integer value (0 or 1) for box products.
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
Httpd
Displays the devices support HTTP. The following otpions are available:
•
Yes
•
No
•
Unknown
Format:
<simpleType name="CmDevHttpd">
<restriction base="string">
<enumeration value="Yes"/>
<enumeration value="No"/>
<enumeration value="Unknown"/>
Example:
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
RegistrationAttempts
Displays the number of registration attempts.
Example:
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
IsCtiControllable
Displays either yes or no.
Example:
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
LoginUserId
Displays the login user ID.
Format:
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
Status
Displays the device registration status type. The following options are available:
•
Any
•
Registered
•
Unregistered
•
Rejected
•
PartiallyRegistered
•
Unknown
Format:
<simpleType name="CmDevRegStat">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Registered"/>
<enumeration value="UnRegistered"/>
<enumeration value="Rejected"/>
<enumeration value="PartiallyRegistered"/>
<enumeration value="Unknown"/>
Example:
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
StatusReason
Example:
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
PerfMonObject
Displays the PerfMonObject ID.
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
DChannel
Displays the number of D channels supported for PRI devices.
Example:
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
Description
Example:
<Description xsi:type="xsd:string">CTIRP1</Description>
H323Trunk
Displays the H323 trunk details.
Format:
<complexType name="H323Trunk">
<element name="ConfigName" nillable="true" type="xsd:string"/>
<element name="TechPrefix" nillable="true" type="xsd:string"/>
<element name="Zone" nillable="true" type="xsd:string"/>
<element name="RemoteCmServer1" nillable="true" type="xsd:string"/>
<element name="RemoteCmServer2" nillable="true" type="xsd:string"/>
<element name="RemoteCmServer3" nillable="true" type="xsd:string"/>
<element name="AltGkList" nillable="true" type="xsd:string"/>
<element name="ActiveGk" nillable="true" type="xsd:string"/>
<element name="CallSignalAddr" nillable="true" type="xsd:string"/>
<element name="RasAddr" nillable="true" type="xsd:string"/>
TimeStamp
Displays the UTC format timestamp.
Example:
<TimeStamp xsi:type="xsd:unsignedInt">1222331666</TimeStamp>
Protocol
Displays the device protocol types. The following options are available:
•
Any
•
SCCP
•
SIP
•
Unknown
Example:
<Protocol xsi:type="ns1:ProtocolType">Any</Protocol>
NumOfLines
Displays the number of lines.
Example:
<NumOfLines xsi:type="xsd:unsignedInt">0</NumOfLines>
LinesStatus
Displays the single line status types for SIP devices. The following options are available:
•
Any
•
Registered
•
UnRegistered
•
Rejected
•
Unknown
Format:
<simpleType name="CmSingleLineStatus">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Registered"/>
<enumeration value="UnRegistered"/>
<enumeration value="Rejected"/>
<enumeration value="Unknown"/>
ActiveLoadID
Displays the currently active firmware on the phone.
Format:
<element name="ActiveLoadID" nillable="true" type="xsd:string"/>
InactiveLoadID
Displays the inactive phone partition load of the phone (if phone supports dual partition).
Format:
<element name="InactiveLoadID" nillable="true" type="xsd:string"/>
DownloadStatus
Displays the inactive partition phone download status.
Format:
<element name="DownloadStatus" nillable="true" type="tns:DeviceDownloadStatus"/>
DownloadFailureReason
Displays the inactive partition download failure, if any.
Format:
<element name="DownloadFailureReason" nillable="true" type="xsd:string"/>
DownloadServer
Displays the inactive partition downloading server.
Format:
<element name="DownloadServer" nillable="true" type="xsd:string"/>
IPAddress
Displays the IP address type, the IP address, and the attribute type.
Format:
<complexType name="IPAddressArray">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType"
wsdl:arrayType="tns:IPAddressArrayType[]"/>
<complexType name="IPAddressArrayType">
<element name="IP" type="xsd:string"/>
<element name="IPAddrType" type="tns:IPAddrType"/>
<element name="Attribute" type="tns:AttributeType"/>
<simpleType name="AttributeType">
<restriction base="string">
<enumeration value="Unknown"/>
<enumeration value="Adminstrative"/>
<enumeration value="Signaling"/>
<enumeration value="AdministrativeAndSignaling"/>
<simpleType name="IPAddrType">
<restriction base="string">
<enumeration value="ipv4"/>
<enumeration value="ipv6"/>
Example Request
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDevice soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<StateInfo xsi:type="xsd:string"/>
<CmSelectionCriteria href="#id0"/>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:CmSelectionCriteria"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns2="http://schemas.cisco.com/ast/soap/">
<MaxReturnedDevices xsi:type="xsd:unsignedInt">200</MaxReturnedDevices>
<Class xsi:type="xsd:string">Any</Class>
<Model xsi:type="xsd:unsignedInt">255</Model>
<Status xsi:type="xsd:string">Registered</Status>
<NodeName xsi:type="xsd:string" xsi:nil="true"/>
<SelectBy xsi:type="xsd:string">Name</SelectBy>
<SelectItems soapenc:arrayType="ns2:SelectItem[1]" xsi:type="soapenc:Array">
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns3:SelectItem" xmlns:ns3="http://schemas.cisco.com/ast/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<Item xsi:type="xsd:string">*</Item>
Example Response
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDeviceResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SelectCmDeviceResult xsi:type="ns1:SelectCmDeviceResult">
<TotalDevicesFound xsi:type="xsd:unsignedInt">4</TotalDevicesFound>
<CmNodes soapenc:arrayType="ns1:CmNode[1]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CmNode">
<ReturnCode xsi:type="ns1:RisReturnCode">Ok</ReturnCode>
<Name xsi:type="xsd:string">CISCART15</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
<CmDevices soapenc:arrayType="ns1:CmDevice[4]" xsi:type="soapenc:Array">
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">ANN_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">126</Model>
<Product xsi:type="xsd:unsignedInt">89</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">608</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">ANN_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">CFB_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">50</Model>
<Product xsi:type="xsd:unsignedInt">28</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">15</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">CFB_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679736</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">MOH_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">70</Model>
<Product xsi:type="xsd:unsignedInt">51</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">6</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">MOH_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<item xsi:type="ns1:CmDevice">
<Name xsi:type="xsd:string">MTP_2</Name>
<IpAddress xsi:type="xsd:string">10.77.31.15</IpAddress>
<DirNumber xsi:type="xsd:string" xsi:nil="true"/>
<Class xsi:type="ns1:DeviceClass">MediaResources</Class>
<Model xsi:type="xsd:unsignedInt">110</Model>
<Product xsi:type="xsd:unsignedInt">30</Product>
<BoxProduct xsi:type="xsd:unsignedInt">0</BoxProduct>
<Httpd xsi:type="ns1:CmDevHttpd">No</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">false</IsCtiControllable>
<LoginUserId xsi:type="xsd:string" xsi:nil="true"/>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">13</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">MTP_CISCART15</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
<StateInfo xsi:type="xsd:string"><StateInfo ClusterWide="1"><Node
Name="CISCART15" SubsystemStartTime="1204679712" StateId="4"
TotalItemsFound="4"
TotalItemsReturned="4"/></StateInfo></StateInfo>
</ns1:SelectCmDeviceResponse>
</soapenv:Envelope>
Faults
For details about all the possible faults for SelectCmDevice operation, see SOAP Fault Error Codes.
RisPort Service: selectCtiItem Operation
The selectCtiItem operation allows clients to perform a CTI manager-related query.
Request Format
SOAP Action
The HTTP header should have following SOAP action:
SOAPAction: http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCtiItems
Envelope Information
The query information should have an Envelope as follows:
?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://schemas.cisco.com/ast/soap/"
xmlns:types="http://schemas.cisco.com/ast/soap/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
Session ID
The following example shows a SOAP header that contains a session ID. The client sets a unique session ID.
<SessionId xsi:type="xsd:string">jSessionId</SessionId>
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:SelectCtiItem><StateInfo xsi:type="xsd:string" /><CtiSelectionCriteria href="#id1"
/></tns:SelectCtiItem>
<tns:CtiSelectionCriteria id="id1" xsi:type="tns:CtiSelectionCriteria">
Maximum Device Information
The following example specifies the maximum number of devices that this search needs to return:
<MaxReturnedItems xsi:type="xsd:unsignedInt">10</MaxReturnedItems>
CTI Application/Device/Line Specification
The following example specifies on which CTI manager class Line/Device/Provider a search is provided:
<CtiMgrClass xsi:type="tns:CtiMgrClass">Line</CtiMgrClass>
Status of CTI Item Search
The following example specifies the Status of class on which to search:
<Status xsi:type="tns:CtiStatus">Any</Status>
Server Name for Search
The following example specifies the server name on which the search is performed:
<NodeName xsi:type="xsd:string" />
Type of Search
The following example specifies the type of selection:
<SelectAppBy xsi:type="tns:CtiSelectAppBy">AppIpAddress</SelectAppBy>
List of Items That Needs to be Searched
The following example specifies an array for items for which the real-time status is required:
<AppItems href="#id2" />Name /IP</tns:CtiSelectionCriteria>
<soapenc:Array id="id2" soapenc:arrayType="tns:SelectAppItem[2]">
<Item href="#id3" /><Item xsi:null="1" /></soapenc:Array>
<tns:SelectAppItem id="id3" xsi:type="tns:SelectAppItem">
<AppItem xsi:type="xsd:string"/>
Response Format
The Response includes a sequence of Unified CM Nodes with sequences of CTI devices and lines real-time information:
<complexType name='CtiItem'>
<element name='AppId' type='xsd:string'/>
<element name='ProviderName' type='xsd:string'/>
<element name='UserId' type='xsd:string'/>
<element name='AppIpAddr' type='xsd:string'/>
<element name='AppStatus' type='tns:CtiStatus'/>
<element name='AppStatusReason' type='xsd:unsignedInt'/>
<element name='AppTimeStamp' type='xsd:unsignedInt'/>
<element name='CtiDevice' type='tns:CtiDevice'/>
<element name='CtiLine' type='tns:CtiLine'/>
CTI Device real-time information contains the following sequence of information:
<complexType name='CtiDevice'>
<element name='AppControlsMedia' type='xsd:boolean'/>
<element name='DeviceName' type='xsd:string'/>
<element name='DeviceStatus' type='tns:CtiStatus'/>
<element name='DeviceStatusReason' type='xsd:unsignedInt'/>
<element name='DeviceTimeStamp' type='xsd:unsignedInt'/>
CTI Line contains the following sequence of information:
<complexType name='CtiLine'>
<element name='DirNumber' type='xsd:string'/>
<element name='LineStatus' type='tns:CtiStatus'/>
<element name='LineStatusReason' type='xsd:unsignedInt'/>
<element name='LineTimeStamp' type='xsd:unsignedInt'/>
RisPort Service: SelectCtiDevice Operation (Includes IPv6 Devices)
SelectCtiDevice API is used for querying CTI information on CTI application or device or line published from Cisco CTI Manager. The SOAP API supports Call Manager device search for both CTI device with IPv4 and IPv6 addresses. The device search criteria can be either CTI device IPv4 or IPv6 address but not both.
The operation name for invoking the API is SelectCtiDevice and the service URL is https://<server>:8443/realtimeservice/services/RisPort70
Note
The service URL for release 7.1(2) is different from the earlier releases. The service URL of this release includes the version information.
The SelectCtiDevice operation comprises the SelectCtiItemInput and SelectCtiItemOutput messages:
<message name="SelectCtiItemInput">
<part name="StateInfo" type="xsd:string"/>
<part name="CtiSelectionCriteria" type="tns:CtiSelectionCriteria"/>
<message name="SelectCtiItemOutput">
<part name="StateInfo" type="xsd:string"/>
<part name="SelectCtiItemResult" type="tns:SelectCtiItemResult"/>
<portType name="RisPortType">
<operation name="SelectCtiItem">
<input message="tns:SelectCtiItemInput"/>
<output message="tns:SelectCtiItemOutput"/>
Request Format
SOAP Action
HTTP header should have following SOAP action for these queries.
SOAPAction: http://schemas.cisco.com/ast/soap/action/#RisPort70#SelectCtiDevice
Envelope and Session ID
Query information includes an envelope and session ID information as follows:
<?xml version="1.0" encoding="utf-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap="http://schemas.cisco.com/ast/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<AstHeader xsi:type="soap:AstHeader">
<SessionId xsi:type="xsd:string"/>
The SOAP header has the session ID that is a unique ID from the client.
SelectCtiItem Operation
The SelectCtiItem operation is first defined in the SOAP body element.
<ns1:SelectCtiItem soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
Stateinfo
If same Information is queried repetitively, then Stateinfo is sent from the previous request. Stateinfo is the string that is returned by the server and it represents the state of the real-time database.
<StateInfo xsi:type="xsd:string" />
Selection Criteria
CtiSelectionCriteria is the selection criteria element. You can specify the following:
•
MaxReturnedItems
•
CtiMgrClass
•
Status
•
NodeName
•
SelectAppBy
•
AppItems
•
DevNames
•
DirNumbers
The format is as follows:
<complexType name="CtiSelectionCriteria">
<element name="MaxReturnedItems" nillable="true" type="xsd:unsignedInt"/>
<element name="CtiMgrClass" nillable="true" type="tns:CtiMgrClass"/>
<element name="Status" nillable="true" type="tns:CtiStatus"/>
<element name="NodeName" nillable="true" type="xsd:string"/>
<element name="SelectAppBy" nillable="true" type="tns:CtiSelectAppBy"/>
<element name="AppItems" nillable="true" type="tns:SelectAppItems"/>
<element name="DevNames" nillable="true" type="tns:SelectDevNames"/>
<element name="DirNumbers" nillable="true" type="tns:SelectDirNumbers"/>
MaxReturnedItems
Specifies the maximum numnber of items to be returned.
Format:
<element name="MaxReturnedItems" nillable="true" type="xsd:unsignedInt"/>
CtiMgrClass
Specifies on which CTI manager class line or device, or provider the search is provided. The following values are available:
•
Provider
•
Device
•
Line
Format:
<simpleType name="CtiMgrClass">
<restriction base="string">
<enumeration value="Provider"/>
<enumeration value="Device"/>
<enumeration value="Line"/>
Status
Specifies the status of class on which to search. The following values are available:
•
Any
•
Open
•
Closed
•
OpenFailed
•
Unknown
Format:
<simpleType name="CtiStatus">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Open"/>
<enumeration value="Closed"/>
<enumeration value="OpenFailed"/>
<enumeration value="Unknown"/>
NodeName
Specifies the server name on which the search is performed.
Format:
<element name="NodeName" nillable="true" type="xsd:string"/>
SelectAppBy
Specifies the type of selection. The following options are available:
•
AppId
•
AppIPV4Address
•
AppIPV6Address
•
UserId
Format:
<simpleType name="CtiSelectAppBy">
<restriction base="string">
<enumeration value="AppId"/>
<enumeration value="AppIPV4Address"/>
<enumeration value="AppIPV6Address"/>
<enumeration value="UserId"/>
Example:
<SelectAppBy xsi:type="ns2:CtiSelectAppBy" href="#id2"/>
<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:CtiSelectAppBy"
xmlns:ns5="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">AppId</multiRef>
AppItems
Specifies an array for items for which the real-time status is required.
Format:
<complexType name="SelectAppItems">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectAppItem[]"/>
<complexType name="SelectAppItem">
<element name="AppItem" type="xsd:string"/>
Example:
<AppItems soapenc:arrayType="ns2:SelectAppItem[1]" xsi:type="soapenc:Array">
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:SelectAppItem"
xmlns:ns4="http://ccm.cisco.com/serviceability/soap/risport70/">
<AppItem xsi:type="xsd:string">Quality Report Tool</AppItem>
DevNames
Format:
<complexType name="SelectDevNames">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectDevName[]"/>
<complexType name="SelectDevName">
<element name="DevName" type="xsd:string"/>
Example:
<DevNames xsi:type="ris:SelectDevNames" soapenc:arrayType="ris:SelectDevName[]">
<Item xsi:type="ris:DevName"> dev1 </Item>
DirNumbers
Specifies the directory number.
Format:
<complexType name="SelectDirNumbers">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectDirNumber[]"/>
<complexType name="SelectDirNumber">
<element name="DirNumber" type="xsd:string"/>
Example:
<DirNumbers xsi:type="ns2:SelectDirNumber" xsi:nil="true"/>
As part of CtiSelectionCriteria object, the element CtiSelectAppBy can have IPv4 or IPv6 addresses as search criteria. In the request, we can specify multiple AppItems, DevNames and DirNumbers. The format of the array elements with such a request is as follows:
<AppItems xsi:type= "ris:SelectAppItem" soapenc:arrayType="ris:SelectAppItems[]">
<item xsi:type="ris:AppItem">A Cisco DB</item>
<item xsi:type="ris:AppItem">Cisco</item>
<DevNames xsi:type="ris:SelectDevNames" soapenc:arrayType="ris:SelectDevName[]">
<Item xsi:type="ris:DevName"> dev1 </Item>
<Item xsi:type="ris:DevName"> dev2 </Item>
<DirNumbers xsi:type="ris:SelectDirNumbers" soapenc:arrayType="ris:SelectDirNumber[]">
<Item xsi:type="ris:DirNumber"> dir1 </Item>
<Item xsi:type="ris:DirNumber"> dir2 </Item>
In the sample request, the ReturnCode is a string:
<simpleType name="ReturnCode">
<restriction base="xsd:string"/>
SelectCtiItem API can be used to search the CtiLine items. In order to do that, the query needs to be modified by having <CtiMgrClass xsi:type="ris:CtiMgrClass">Line </CtiMgrClass> in the request.
Response Format
The response follows the following schema:
<complexType name="SelectCtiItemResult">
<element name="TotalItemsFound" type="xsd:unsignedInt"/>
<element name="CtiNodes" nillable="true" type="tns:CtiNodes"/>
TotalItemsFound
Displays the total items found.
Format:
<element name="TotalItemsFound" type="xsd:unsignedInt"/>
Example:
<TotalItemsFound xsi:type="xsd:unsignedInt">1</TotalItemsFound>
Node Information
The following node information are displayed:
•
ReturnCode
•
Name
•
NoChange
•
CtiItems
Format:
<complexType name="CtiNodes">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CtiNode[]"/>
<complexType name="CtiNode">
<element name="ReturnCode" type="tns:RisReturnCode"/>
<element name="Name" type="xsd:string"/>
<element name="NoChange" type="xsd:boolean"/>
<element name="CtiItems" nillable="true" type="tns:CtiItems"/>
ReturnCode
Displays the the RIS return codes. The following options are available:
•
Ok
•
NotFound
•
InvalidRequest
•
InternalRequest
•
InternalError
•
NodeNotResponding
•
InvalidNodeName
Format:
<element name='ReturnCode' type='tns:RisReturnCode'/>
<simpleType name="RisReturnCode">
<restriction base="string">
<enumeration value="Ok"/>
<enumeration value="NotFound"/>
<enumeration value="InvalidRequest"/>
<enumeration value="InternalError"/>
<enumeration value="NodeNotResponding"/>
<enumeration value="InvalidNodeName"/>
Name
Displays the name of the node.
Example:
Name xsi:type="xsd:string">172.27.203.17</Name>
NoChange
Example:
<NoChange xsi:type="xsd:boolean">false</NoChange>
CtiItems
Displays the following informations:
•
AppId
•
UserId
•
AppIpAddr
•
AppIpv6Addr
•
AppStatus
•
AppStatusReason
•
AppTimeStamp
•
CtiDevice
•
CtiLine
Format:
<complexType name="CtiItem">
<element name="AppId" nillable="true" type="xsd:string"/>
<element name="UserId" nillable="true" type="xsd:string"/>
<element name="AppIpAddr" nillable="true" type="xsd:string"/>
<element name="AppIpv6Addr" nillable="true" type="xsd:string"/>
<element name="AppStatus" nillable="true" type="tns:CtiStatus"/>
<element name="AppStatusReason" nillable="true" type="xsd:unsignedInt"/>
<element name="AppTimeStamp" nillable="true" type="xsd:unsignedInt"/>
<element name="CtiDevice" nillable="true" type="tns:CtiDevice"/>
<element name="CtiLine" nillable="true" type="tns:CtiLine"/>
AppId
Displays the application ID.
Example:
<AppId xsi:type="xsd:string">Quality Report Tool</AppId>
UserId
Displays the user ID.
Example:
<UserId xsi:type="xsd:string">XXXSysUser</UserId>
AppIpAddr
Displays the IPv4 address.
Example:
<AppIpAddr xsi:type="xsd:string">xxx.x.x.x</AppIpAddr>
AppIpv6Addr
Displays the IPv6 address.
AppStatus
Example:
<AppStatus xsi:type="ns2:CtiStatus">Open</AppStatus>
AppStatusReason
Example:
<AppStatusReason xsi:type="xsd:unsignedInt">0</AppStatusReason>
AppTimeStamp
Example:
<AppTimeStamp xsi:type="xsd:unsignedInt">1221380548</AppTimeStamp>
CtiDevice
Displays the following information realted to CTI device:
•
AppControlsMedia
•
DeviceName
•
DeviceStatus
•
DeviceStatusReason
•
DeviceTimeStamp
Format:
<complexType name="CtiDevice">
<element name="AppControlsMedia" nillable="true" type="xsd:boolean"/>
<element name="DeviceName" nillable="true" type="xsd:string"/>
<element name="DeviceStatus" nillable="true" type="tns:CtiStatus"/>
<element name="DeviceStatusReason" nillable="true" type="xsd:unsignedInt"/>
<element name="DeviceTimeStamp" nillable="true" type="xsd:unsignedInt"/>
CtiLine
Displays the following information related to CTI line:
•
DirNumber
•
LineStatus
•
LineStatusReason
•
LineTimeStamp
Format:
<complexType name="CtiLine">
<element name="DirNumber" type="xsd:string"/>
<element name="LineStatus" type="tns:CtiStatus"/>
<element name="LineStatusReason" type="xsd:unsignedInt"/>
<element name="LineTimeStamp" type="xsd:unsignedInt"/>
Request Example
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ris="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ns1:SelectCtiItem soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<StateInfo xsi:type="xsd:string" xsi:nil="true"/>
<CtiSelectionCriteria href="#id0"/>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns2:CtiSelectionCriteria" xmlns:ns2="http://schemas.cisco.com/ast/soap/">
<MaxReturnedItems xsi:type="xsd:unsignedInt">20</MaxReturnedItems>
<CtiMgrClass xsi:type="ris:CtiMgrClass">Provider</CtiMgrClass>
<Status xsi:type="ris:CtiStatus">Any</Status>
<NodeName xsi:type="xsd:string">172.27.203.17</NodeName>
<SelectAppBy xsi:type="ns2:CtiSelectAppBy" href="#id2"/>
<AppItems soapenc:arrayType="ns2:SelectAppItem[1]" xsi:type="soapenc:Array">
<DevNames xsi:type="ns2:SelectDevName" xsi:nil="true"/>
<DirNumbers xsi:type="ns2:SelectDirNumber" xsi:nil="true"/>
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns4:SelectAppItem"
xmlns:ns4="http://ccm.cisco.com/serviceability/soap/risport70/">
<AppItem xsi:type="xsd:string">Quality Report Tool</AppItem>
<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns6:CtiSelectAppBy"
xmlns:ns5="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">AppId</multiRef>
Response Example
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCtiItemResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SelectCtiItemResult xsi:type="ns2:SelectCtiItemResult"
xmlns:ns2="http://schemas.cisco.com/ast/soap/risport70/">
<TotalItemsFound xsi:type="xsd:unsignedInt">1</TotalItemsFound>
<CtiNodes soapenc:arrayType="ns3:CtiNode[1]" xsi:type="soapenc:Array"
xmlns:ns3="http://ccm.cisco.com/serviceability/soap/risport70/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns2:CtiNode">
<ReturnCode xsi:type="ns3:RisReturnCode">Ok</ReturnCode>
<Name xsi:type="xsd:string">172.27.203.17</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
<CtiItems soapenc:arrayType="ns3:CtiItem[1]" xsi:type="soapenc:Array">
<item xsi:type="ns2:CtiItem">
<AppId xsi:type="xsd:string">Quality Report Tool</AppId>
<UserId xsi:type="xsd:string">CCMQRTSysUser</UserId>
<AppIpAddr xsi:type="xsd:string">127.0.0.1</AppIpAddr>
<AppIpv6Addr xsi:type="xsd:string" xsi:nil="true"/>
<AppStatus xsi:type="ns2:CtiStatus">Open</AppStatus>
<AppStatusReason xsi:type="xsd:unsignedInt">0</AppStatusReason>
<AppTimeStamp xsi:type="xsd:unsignedInt">1221380548</AppTimeStamp>
<CtiDevice xsi:type="ns3:CtiDevice" xsi:nil="true"/>
<CtiLine xsi:type="ns3:CtiLine" xsi:nil="true"/>
<StateInfo xsi:type="xsd:string"><StateInfo><Node Name="172.27.203.17"
SubsystemStartTime="1221380428" StateId="134" TotalItemsFound="1"
TotalItemsReturned="1"/></StateInfo></StateInfo>
</ns1:SelectCtiItemResponse>
Fault
For details about all the possible faults for SelectCmDevice operation, see SOAP Fault Error Codes.
RisPort Service: getServerInfo Operation
The getServerInfo operation exports the following information from the Server Information SOAP interface:
•
Host Name =MCS-SD4
•
OS Name =Linux
•
OS Arch =i386
•
OS Version =2.4.21-15.ELsmp
•
Java Runtime Version =1.4.2_05-b04
•
Java Virtual Machine vendor =Sun Microsystems Inc.
•
CallManager Version =7.0.1
The getServerInfo operation comprises the getServerInfoRequest and getServerInfoResponse:
<wsdl:operation name="getServerInfo">
<wsdlsoap:operation
soapAction="http://schemas.cisco.com/ast/soap/action/#PerfmonPort#GetServerInfo" />
<wsdl:input name="getServerInfoRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" />
<wsdl:output name="getServerInfoResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" />
Request Format
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soap="http://schemas.cisco.com/ast/soap/">
<AstHeader xsi:type="soap:AstHeader">
<SessionId xsi:type="xsd:string">999</SessionId>
<soap:GetServerInfo
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<Hosts xsi:type="soap:ArrayOfHosts">
<!--Zero or more repetitions:-->
<item xsi:type="xsd:string">UCM-HostNameorIP</item>
In the request, an ArrayOfHosts definition gets specified, and the response provides the server information for the list of hostnames that are specified in the array.
<wsdl:message name="getServerInfoRequest">
<wsdl:part name="Hosts" type="impl:ArrayOfHosts" />
Response Format
The response comprises an ArrayOfServerInfo:
<wsdl:message name="getServerInfoResponse">
<wsdl:part name="ServerInfo" type="impl:ArrayOfServerInfo" />
<complexType name="ArrayOfServerInfo">
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="impl:ServerInformation[]" />
ServerInformation consists of the following sequence of elements:
<complexType name="ServerInformation">
<element name="HostName" nillable="true" type="xsd:string" />
<element name="os-name" nillable="true" type="xsd:string" />
<element name="os-version" nillable="true" type="xsd:string" />
<element name="os-arch" nillable="true" type="xsd:string" />
<element name="java-runtime-version" nillable="true" type="xsd:string" />
<element name="java-vm-vendor" nillable="true" type="xsd:string" />
<element name="call-manager-version" nillable="true" type="xsd:string" />
<element name="Active-versions" nillable="true" type="xsd:string" />
<element name="InActive-versions" nillable="true" type="xsd:string" />
Faults
The Server sends a fault for "Error message context is NULL." This error does not appear in normal operation.
The following fault is sent if an HTTPS connection fails to a remote server — "Error initiating https connection to <URL>."
Example
Request example
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServerInfo soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<Hosts soapenc:arrayType="soapenc:string[1]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="soapenc:string">10.77.31.15</item>
Response example
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServerInfoResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ServerInfo soapenc:arrayType="ns1:ServerInformation[1]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:ServerInformation">
<HostName xsi:type="xsd:string">CISCART15</HostName>
<os-name xsi:type="xsd:string">VOS</os-name>
<os-version xsi:type="xsd:string">2.6.9-42.ELsmp</os-version>
<os-arch xsi:type="xsd:string">i386</os-arch>
<java-runtime-version xsi:type="xsd:string">1.5.0_14-b03</java-runtime-version>
<java-vm-vendor xsi:type="xsd:string">Sun Microsystems Inc.</java-vm-vendor>
<call-manager-version xsi:type="xsd:string">7.0.0.39700-8</call-manager-version>
<Active_Versions xsi:type="xsd:string">hwdata-0.146.23.EL-1 : os-ver-4.0.0.0-7 :
redhat-logos-1.1.26-1 : setup-2.5.37-1.3 : basesystem-8.0-4 : tzdata-2007k-1.el4 :
glibc-2.3.4-2.25 : beecrypt-3.1.0-6 : chkconfig-1.3.13.4-1 :
compat-libstdc++-296-2.96-132.7.2 : dos2unix-3.1-21.2 : e2fsprogs-1.35-12.4.EL4 :
elfutils-libelf-0.97.1-3 : ethtool-1.8-4 : gdbm-1.8.0-24 : glib2-2.4.7-1 :
iputils-20020927-18.EL4.3 : attr-2.4.16-3 : acl-2.2.23-5 : libgpg-error-1.0-1 :
libselinux-1.19.1-7.2 : device-mapper-1.02.07-4.0.RHEL4 : db4-4.2.52-7.1 :
libtermcap-2.0.8-39 : mingetty-1.07-3 : bash-3.0-19.3 : bzip2-1.0.2-13.EL4.3 :
fior-0.99.1-2.el4 : iproute-2.6.9-3 : mt-st-0.8-1 : ncurses-5.4-13 :
net-tools-1.60-37.EL4.8 : openssl096b-0.9.6b-22.46 : pcre-4.5-3.2.RHEL4 :
perl-Filter-1.30-6 : logrotate-3.7.1-5.RHEL4 : redhat-release-4AS-5.5 : schedutils-1.4.0-2
: setserial-2.17-17 : slang-1.4.9-8 : snmp-mon-0.0.0.19-9 : strace-4.5.14-0.EL4.1 :
expect-5.42.1-1 : tmpwatch-2.9.1-1 : unzip-5.51-7 : vim-minimal-6.3.046-0.40E.7 :
zip-2.3-27 : file-4.10-2.EL4.4 : binutils-2.15.92.0.2-21 : diffutils-2.8.1-12 :
gawk-3.1.3-10.1 : grep-2.5.1-32.2 : ash-0.3.8-20 : gzip-1.3.3-16.rhel4 :
krb5-libs-1.3.4-27 : libidn-0.5.6-1 : libxslt-1.1.11-1 : mgetty-1.1.31-2 :
openssl-0.9.7a-43.14 : bind-utils-9.2.4-24.EL4 : net-snmp-libs-5.1.2-11.EL4.7 :
pdksh-5.2.14-30.3 : readline-4.3-13 : lvm2-2.02.06-6.0.RHEL4 : libxml2-python-2.6.16-6 :
rpm-libs-4.3.3-18_nonptl : shadow-utils-4.0.3-60.RHEL4 : dbus-glib-0.22-12.EL.8 :
nscd-2.3.4-2.25 : rpm-4.3.3-18_nonptl : sysklogd-1.4.1-26_EL : sysreport-1.3.15-8 :
tftp-0.39-1 : tomcat-5.5.17-0 : cactus-12.1.5-3 : elixir-4.2-3 : log4j-1.2.8-3 :
pgjdbc-7.3.3-3 : saaj-1.3-3 : unixODBC-2.2.11-1.RHEL4.1 : vim-common-6.3.046-0.40E.7 :
xerces-2.6.2-3 : cracklib-2.7-29 : pam-0.77-66.17 : authconfig-4.6.10-rhel4.3 :
policycoreutils-1.18.1-4.9 : sudo-1.6.7p5-30.1.3 : util-linux-2.12a-16.EL4.20 :
udev-039-10.15.EL4 : initscripts-7.93.25.EL-1 : cyrus-sasl-2.1.19-5.EL4 :
dhclient-3.0.1-58.EL4 : kbd-1.12-2 : kernel-utils-2.4-13.1.83 : mkinitrd-4.2.1.8-1 :
kernel-smp-2.6.9-42.EL : iptables-1.2.11-3.1.RHEL4 : libpcap-0.8.3-10.RHEL4 :
net-snmp-utils-5.1.2-11.EL4.7 : gnupg-1.2.6-9 : nss_ldap-226-17 :
openssh-clients-3.9p1-8.RHEL4.17.1 : openssh-server-3.9p1-8.RHEL4.17.1 : passwd-0.68-10.1
: tcpdump-3.8.2-10.RHEL4 : sysstat-5.0.5-11.rhel4 : master-7.0.0.39700-8 :
platform-script-2.0.0.1-1 : platform-common-2.0.0.1-1 : platform-drf-2.0.0.2-2 :
platform-servM-2.0.0.1-1 : platform-ipsec-1.0.0.0-1 : platform-api-3.0.0.0-6 :
platform-util-2.0.0.1-1 : cm-script-5.0.1.0-1 : cm-lib-1.0.0.0-1 : cm-dbms-1.0.0.0-1 :
cm-ccmadmin-1.1.0.0-1 : cm-bps-1.1.0.0-1 : cm-alarm-0.0.0.1-0 : cm-ccmmib-0.0.0.1-0 :
cm-cdp-0.0.0.1-0 : cm-svc-web-0.0.0.1-1 : cm-RIS-0.0.0.1-0 : cm-reporter-0.0.0.1-0 :
cm-rtmt-client-plugin-0.0.0.2-0 : cm-soap-cdrondemandservice-0.0.0.1-0 :
cm-soap-perfmonservice-0.0.0.1-0 : cm-car-1.0.0.0-1 : cm-security-1.0.0.0-1 :
cm-ctlp-1.0.0.0-1 : cm-dna-5.0.0.2-1 : cm-authentication-1.0.0.1-0 : cm-dirsync-1.0.0.1-0
: cm-ac-2.0.0.1-0 : cm-locale-english_united_states-7.1.0.1-1 : cm-axl-1.1.0.0-1 :
cm-ccmuser-1.1.0.0-1 : cm-ipvms-7.0.0.0-1 : cm-tsp-plugin-7.0.0.2-0 :
cm-app-services-0.0.0.1-0 : cm-webdialer-0.0.0.1-0 : cm-jtapi-plugin-7.0.0.9700-2 :
cm-licensing-2.0.0.0-0 : cm-devicepack-1.0.0.0-0 : cm-ccmhelp-1.1.0.0-2 :
cm-srstctlclient-0.0.0.1-0 : cm-cmtomcat-1.1.0.0-1 : cm-grt-1.1.0.0-1 : msg-2007.10-1 :
IIF-10.00.UC7X1-1 : glsclient-4.00.UC7-1 : hpasm-7.8.0-88.rhel4 : cmanic-7.8.0-3.rhel4 :
hpadu-7.80-6 : comps-4AS-0.20060803 : libgcc-3.4.6-3.1 : preferences-1.0.1-6 :
rootfiles-8-1 : filesystem-2.3.0-1 : termcap-5.4-3 : glibc-common-2.3.4-2.25 :
audit-libs-1.0.14-1.EL4 : bzip2-libs-1.0.2-13.EL4.3 : compat-db-4.1.25-9 :
compat-libstdc++-33-3.2.3-47.3 : dosfstools-2.8-15 : eject-2.0.13-11 : elfutils-0.97.1-3 :
expat-1.95.7-4 : glib-1.2.10-15 : hdparm-5.7-2 : libattr-2.4.16-3 : libacl-2.2.23-5 :
libcap-1.10-20 : libgcrypt-1.2.0-3 : libsepol-1.1.1-2 : libstdc++-3.4.6-3.1 : gmp-4.1.4-3
: lsof-4.72-1.4 : mktemp-1.5-20 : audit-1.0.14-1.EL4 : crontabs-1.10-7 : fiostats-0.99.1-9
: java-provides-1.0.0.2-0 : nc-1.10-22 : less-382-4 : OpenIPMI-libs-1.4.14-1.4E.13 :
patch-2.5.4-20 : perl-5.8.5-36.RHEL4 : popt-1.9.1-18_nonptl : psmisc-21.4-4.1 :
rsync-2.6.3-1 : setarch-1.6-1 : sg3_utils-1.06-3 : newt-0.51.6-9.rhel4 : star-1.5a25-6 :
tcl-8.4.7-2 : tcp_wrappers-7.6-37.2 : traceroute-1.4a12-24 : usbutils-0.11-6.1 :
words-3.0-3 : zlib-1.2.1.2-1.2 : info-4.7-5.el4.2 : cpio-2.5-9.RHEL4 :
findutils-4.1.20-7.el4.1 : gdb-6.3.0.0-1.132.EL4 : coreutils-5.2.1-31.4 : grub-0.95-3.5 :
jdk-1.5.0_14-fcs : krb5-workstation-1.3.4-27 : libxml2-2.6.16-6 : make-3.80-6.EL4 :
module-init-tools-3.1-0.pre5.3.2 : bind-libs-9.2.4-24.EL4 : curl-7.12.1-8.rhel4 :
OpenIPMI-1.4.14-1.4E.13 : procps-3.2.3-8.4 : bc-1.06-17.1 : python-2.3.4-14.3 :
PyXML-0.8.3-6 : sed-4.1.2-5.EL4 : dbus-0.22-12.EL.8 : MAKEDEV-3.15.2-3 :
ntp-4.2.0.a.20040617-4.EL4.1 : stunnel-4.05-3 : tar-1.14-12.RHEL4 : tcsh-6.13-9 :
time-1.7-25 : activation-1.0.0-3 : ecs-1.4.2-3 : jaxm-1.1.2-3 : mail-1.0.0-3 :
regexp-1.3-3 : struts-1.1-3 : utempter-0.5.5-5 : xalan-2.7.0-3 : xmlstarlet-1.0.1-1 :
cracklib-dicts-2.7-29 : at-3.1.8-80_EL4 : pam_krb5-2.1.8-1 : screen-4.0.2-5 :
SysVinit-2.85-34.3 : hotplug-2004_04_01-7.7 : hal-0.4.2-4.EL4 : acpid-1.0.3-2 :
cyrus-sasl-md5-2.1.19-5.EL4 : ipsec-tools-0.3.3-6.rhel4.1 : kudzu-1.1.95.15-1 :
lm_sensors-2.8.7-2.40.3 : kernel-2.6.9-42.EL : dhcp-3.0.1-58.EL4 :
iptables-ipv6-1.2.11-3.1.RHEL4 : net-snmp-5.1.2-11.EL4.7 : openldap-2.2.13-6.4E :
libuser-0.52.5-1.el4.1 : openssh-3.9p1-8.RHEL4.17.1 : netdump-0.7.16-2 :
netdump-server-0.7.16-2 : pciutils-2.1.99.test8-3.2 : vixie-cron-4.1-44.EL4 : which-2.16-4
: platform-ver-2.0.0.1-1 : platform-ui-2.0.0.1-1 : platform-licensing-2.0.0.0-1 :
platform-remotesupport-2.0.0.1-3 : platform-cm-1.0.0.0-1 : platform-csa-5.2.0-245.1 :
platform-clm-2.0.0.1-1 : os-services-1.1-1 : cm-ver-7.0.0.39700-8 : cm-pi-0.0.0.1-0 :
cm-dbl-1.0.0.0-1 : cm-cmplatform-1.1.0.0-1 : cm-taps-plugin-7.0.2.0-1 :
cm-syslog-0.0.0.1-0 : cm-sysapp-1.0.0.0-1 : cm-lpm-0.0.0.1-0 :
cm-reporter-servlet-0.0.0.1-0 : cm-amc-0.0.0.1-0 : cm-rtmt-servlet-0.0.0.1-0 :
cm-log4jinit-servlet-0.0.0.1-0 : cm-soap-logcollectionservice-0.0.0.1-0 :
cm-soap-realtimeservice-0.0.0.1-0 : cm-cef-0.0.0.1-0 : cm-cdrdlv-1.0.0.0-1 :
cm-capf-1.0.0.0-1 : cm-ccm-5.0.1.0-0 : cm-encryption-1.0.0.1-0 : cm-scheduler-1.0.0.1-0 :
cm-CTIManager-1.0.0.1-0 : cm-tftp-1.0.0.1-0 : cm-axlsqltoolkit-plugin-1.1.0.0-1 :
cm-pd-1.0.0.0-1 : cm-ccmcip-1.0.0.1-0 : cm-ipvmsd-6.0.0.1-1 : cm-ctlc-plugin-6.0.0.1-1 :
cm-em-0.0.0.1-0 : cm-ipma-0.0.0.1-0 : cm-cmi-1.0.0.1-0 : cm-tct-svc-0.0.0.1-1 :
cm-tomcatstats-0.0.0.1-0 : cm-dhcp-1.0.0.1-0 : cm-cfrt-0.0.0.1-0 : cm-ccmivr-6.0.0.1-1 :
cm-cucreports-1.1.0.0-1 : gls-4.00.UC10-1 : msgclient-2004.3-1 : csdk-2.90.UC4XD-1 :
hprsm-7.8.0-custom : hpsmh-2.1.8-177 : hponcfg-1.6.0-1 :</Active_Versions>
<In_Active_Versions xsi:type="xsd:string">no packages :</In_Active_Versions>
</ns1:GetServerInfoResponse>
RisPort Service: SelectCmDeviceSIP Operation
The SelectCmDeviceSIP operation allows clients to perform Cisco Unified Communications Manager SIP device related queries.
Request Format
SOAP Action
The HTTP header contains the following SOAP action for these queries:
SOAPAction: "http://schemas.cisco.com/ast/soap/action/#RisPort#SelectCmDeviceSIP"
Envelope Information
Query information should have an Envelope as follows:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDeviceSIP
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
State Info
If the same information is queried over and over again then Stateinfo needs to be sent from the previous request for each repetitive query by a client.
<StateInfo xsi:type="xsd:string"/>
The selection criteria type CmSelectionCriteriaSIP follows the optional State Info:
<CmSelectionCriteriaSIP href="#id0"/>
CmSelectionCriteriaSIP comprises the following items:
•
MaxReturnedDevices—Specifies how many maximum devices that can be returned for search criteria
<MaxReturnedDevices xsi:type="xsd:unsignedInt">200</MaxReturnedDevices>
•
Class—Specifies the device class type that needs to be queried for Real-time status. Device classes are Any, Phone, Gateway, H323, Cti, VoiceMail, MediaResources and Unknown.
<Class xsi:type="xsd:string">Any</Class>
•
Model—Specifies the model of the device. 255 applies for all models.
<Model xsi:type="xsd:unsignedInt">255</Model>
•
Status—Specifies the device status in search criteria, which is one of Any, Registered, UnRegistered, Rejected, PartiallyRegistered or Unknown.
<Status xsi:type="xsd:string">Registered</Status>
•
NodeName—Specifies the server name where the search needs to be performed. If you do not specify a name, the system will search in all servers in cluster.
<NodeName xsi:type="xsd:string" xsi:nil="true"/>
•
SelectBy—Specifies the selection type for whether it is IP Address/Name.
<SelectBy xsi:type="xsd:string">Name</SelectBy>
•
SelectItems—Specifies the array of items for which search criteria is specified. The following specifies an array that contains the IP Address or Device Name of the items for which the real-time status is needed.
<SelectItems xsi:type="ns2:SelectItem" xsi:nil="true"/>
•
Protocol—Specifies the protocol name in the search criteria, which is one of Any, SCCP, SIP, or Unknown.
<Protocol xsi:type="ns3:Protocol" xsi:nil="true"/>
Response Format
Response follows this schema and contains one to many node information, plus the stateInfo that the SOAP server returns. Each node includes a sequence of search information that was found based on the search criteria.
<complexType name='SelectCmDeviceResultSIP'>
<element name='TotalDevicesFound' type='xsd:unsignedInt'/>
<element name='CmNodes' type='tns:CmNodesSIP'/>
CmNodesSIP is list of CmNodeSIP that are given in the search criteria.
<complexType name="CmNodesSIP">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmNodeSIP[]"/>
Each CmNodesSIP has a sequence of devices and their registration status.
<complexType name='CmNodeSIP'>
<element name='ReturnCode' type='tns:RisReturnCode'/>
<element name='Name' type='xsd:string'/>
<element name='NoChange' type='xsd:boolean'/>
<element name='CmDevices' type='tns:CmDevicesSIP'/>
<complexType name="CmDevicesSIP">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmDeviceSIP[]"/>
CmDeviceSIP information will contain the following information:
<complexType name="CmDeviceSIP">
<element name="Name" type="xsd:string"/>
<element name="IpAddress" type="xsd:string"/>
<element name="DirNumber" type="xsd:string"/>
<element name="Class" type="tns:DeviceClass"/>
<element name="Model" type="xsd:unsignedInt"/>
<element name="Product" type="xsd:unsignedInt"/>
<element name="BoxProduct" type="xsd:unsignedInt"/>
<element name="Httpd" type="tns:CmDevHttpd"/>
<element name="RegistrationAttempts" type="xsd:unsignedInt"/>
<element name="IsCtiControllable" type="xsd:boolean"/>
<element name="LoginUserId" type="xsd:string"/>
<element name="Status" type="tns:CmDevRegStat"/>
<element name="StatusReason" type="xsd:unsignedInt"/>
<element name="PerfMonObject" type="xsd:unsignedInt"/>
<element name="DChannel" type="xsd:unsignedInt"/>
<element name="Description" type="xsd:string"/>
<element name="H323Trunk" type="tns:H323Trunk"/>
<element name="TimeStamp" type="xsd:unsignedInt"/>
<element name="Protocol" type="tns:ProtocolType"/>
<element name="NumOfLines" type="xsd:unsignedInt"/>
<element name="LinesStatus" type="tns:CmDevLinesStatus"/>
Protocol defines the following enumerated protocol types:
<simpleType name="ProtocolType">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="SCCP"/>
<enumeration value="SIP"/>
<enumeration value="Unknown"/>
CmDevLinesStatus is a list of CmDevSingleLineStatus:
<complexType name="CmDevLinesStatus">
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType"
wsdl:arrayType="tns:CmDevSingleLineStatus[]"/>
CmSingleLineStatus is a sequence of DN and DN status:
<complexType name="CmDevSingleLineStatus">
<element name="DirectoryNumber" type="xsd:string"/>
<element name="Status" type="tns:CmSingleLineStatus"/>
CmSingleLineStatus defines the enumerated DN status as follows:
<simpleType name="CmSingleLineStatus">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Registered"/>
<enumeration value="UnRegistered"/>
<enumeration value="Rejected"/>
<enumeration value="Unknown"/>
Example
The following example shows a SelectCmDeviceSIP response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:SelectCmDeviceSIPResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SelectCmDeviceResultSIP xsi:type="ns1:SelectCmDeviceResultSIP">
<TotalDevicesFound xsi:type="xsd:unsignedInt">4</TotalDevicesFound>
<CmNodes xsi:type="soapenc:Array" soapenc:arrayType="ns1:CmNodeSIP[2]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ReturnCode xsi:type="ns1:RisReturnCode">Ok</ReturnCode>
<Name xsi:type="xsd:string">node70</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
<CmDevices xsi:type="soapenc:Array" soapenc:arrayType="ns1:CmDeviceSIP[4]">
<Name xsi:type="xsd:string">SEP003094C25B01</Name>
<IpAddress xsi:type="xsd:string">192.20.0.1</IpAddress>
<DirNumber xsi:type="xsd:string">5001-Registered</DirNumber>
<Class xsi:type="ns1:DeviceClass">Phone</Class>
<Model xsi:type="xsd:unsignedInt">7</Model>
<Product xsi:type="xsd:unsignedInt">35</Product>
<BoxProduct xsi:type="xsd:unsignedInt" xsi:nil="true"/>
<Httpd xsi:type="ns1:CmDevHttpd">Yes</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
<LoginUserId xsi:type="xsd:string">jdas0</LoginUserId>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">Fake data</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1110841855</TimeStamp>
<Protocol xsi:type="ns1:ProtocolType">SIP</Protocol>
<NumOfLines xsi:type="xsd:unsignedInt">1</NumOfLines>
<LinesStatus xsi:type="soapenc:Array"
soapenc:arrayType="ns1:CmDevSingleLineStatus[1]">
<DirectoryNumber xsi:type="xsd:string">5001</DirectoryNumber>
<Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
<Name xsi:type="xsd:string">SEP003094C25B02</Name>
<IpAddress xsi:type="xsd:string">192.20.0.2</IpAddress>
<DirNumber xsi:type="xsd:string">5002-Registered</DirNumber>
<Class xsi:type="ns1:DeviceClass">Phone</Class>
<Model xsi:type="xsd:unsignedInt">7</Model>
<Product xsi:type="xsd:unsignedInt">35</Product>
<BoxProduct xsi:type="xsd:unsignedInt" xsi:nil="true"/>
<Httpd xsi:type="ns1:CmDevHttpd">Yes</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
<LoginUserId xsi:type="xsd:string">jdas1</LoginUserId>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">Fake data</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1110841855</TimeStamp>
<Protocol xsi:type="ns1:ProtocolType">SIP</Protocol>
<NumOfLines xsi:type="xsd:unsignedInt">1</NumOfLines>
<LinesStatus xsi:type="soapenc:Array"
soapenc:arrayType="ns1:CmDevSingleLineStatus[1]">
<DirectoryNumber xsi:type="xsd:string">5002</DirectoryNumber>
<Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
<Name xsi:type="xsd:string">SEP003094C25B03</Name>
<IpAddress xsi:type="xsd:string">192.20.0.3</IpAddress>
<DirNumber xsi:type="xsd:string">5003-Registered</DirNumber>
<Class xsi:type="ns1:DeviceClass">Phone</Class>
<Model xsi:type="xsd:unsignedInt">7</Model>
<Product xsi:type="xsd:unsignedInt">35</Product>
<BoxProduct xsi:type="xsd:unsignedInt" xsi:nil="true"/>
<Httpd xsi:type="ns1:CmDevHttpd">Yes</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
<LoginUserId xsi:type="xsd:string">jdas2</LoginUserId>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">Fake data</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1110841855</TimeStamp>
<Protocol xsi:type="ns1:ProtocolType">SIP</Protocol>
<NumOfLines xsi:type="xsd:unsignedInt">1</NumOfLines>
<LinesStatus xsi:type="soapenc:Array"
soapenc:arrayType="ns1:CmDevSingleLineStatus[1]">
<DirectoryNumber xsi:type="xsd:string">5003</DirectoryNumber>
<Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
<Name xsi:type="xsd:string">SEP003094C25B04</Name>
<IpAddress xsi:type="xsd:string">192.20.0.4</IpAddress>
<DirNumber xsi:type="xsd:string">5004-Registered</DirNumber>
<Class xsi:type="ns1:DeviceClass">Phone</Class>
<Model xsi:type="xsd:unsignedInt">7</Model>
<Product xsi:type="xsd:unsignedInt">35</Product>
<BoxProduct xsi:type="xsd:unsignedInt" xsi:nil="true"/>
<Httpd xsi:type="ns1:CmDevHttpd">Yes</Httpd>
<RegistrationAttempts xsi:type="xsd:unsignedInt">0</RegistrationAttempts>
<IsCtiControllable xsi:type="xsd:boolean">true</IsCtiControllable>
<LoginUserId xsi:type="xsd:string">jdas3</LoginUserId>
<Status xsi:type="ns1:CmDevRegStat">Registered</Status>
<StatusReason xsi:type="xsd:unsignedInt">0</StatusReason>
<PerfMonObject xsi:type="xsd:unsignedInt">2</PerfMonObject>
<DChannel xsi:type="xsd:unsignedInt">0</DChannel>
<Description xsi:type="xsd:string">Fake data</Description>
<H323Trunk xsi:type="ns1:H323Trunk">
<ConfigName xsi:type="xsd:string" xsi:nil="true"/>
<TechPrefix xsi:type="xsd:string" xsi:nil="true"/>
<Zone xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer1 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer2 xsi:type="xsd:string" xsi:nil="true"/>
<RemoteCmServer3 xsi:type="xsd:string" xsi:nil="true"/>
<AltGkList xsi:type="xsd:string" xsi:nil="true"/>
<ActiveGk xsi:type="xsd:string" xsi:nil="true"/>
<CallSignalAddr xsi:type="xsd:string" xsi:nil="true"/>
<RasAddr xsi:type="xsd:string" xsi:nil="true"/>
<TimeStamp xsi:type="xsd:unsignedInt">1110841855</TimeStamp>
<Protocol xsi:type="ns1:ProtocolType">SIP</Protocol>
<NumOfLines xsi:type="xsd:unsignedInt">1</NumOfLines>
<LinesStatus xsi:type="soapenc:Array"
soapenc:arrayType="ns1:CmDevSingleLineStatus[1]">
<DirectoryNumber xsi:type="xsd:string">5004</DirectoryNumber>
<Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
<ReturnCode xsi:type="ns1:RisReturnCode">NotFound</ReturnCode>
<Name xsi:type="xsd:string">node71</Name>
<NoChange xsi:type="xsd:boolean">false</NoChange>
<CmDevices xsi:type="soapenc:Array" soapenc:arrayType="ns1:CmDeviceSIP[0]"/>
</SelectCmDeviceResultSIP>
<StateInfo xsi:type="xsd:string"><StateInfo><Node Name="node70"
SubsystemStartTime="1110841841" StateId="8"
TotalItemsFound="4" TotalItemsReturned="4"/><Node
Name="node71" SubsystemStartTime="1110688669" StateId="5772"
TotalItemsFound="0"
TotalItemsReturned="0"/></StateInfo></StateInfo>
</ns1:SelectCmDeviceSIPResponse>
Interface to Get Server Names and Cluster Name
The interface to get cluster name getServiceParameter, interface to get configured servers in cluster listProcessNodeByService, and interface to get configured devices in cluster listDeviceByNameAndClass are defined as part of the AXL Configuration API WSDL file. Send your queries to API question mailer on these interfaces.
PerfmonPort SOAP Service
The PerfmonPort (Performance Information Port) service comprises several operations that allow clients to do the following perfmon-related tasks:
•
Collect perfmon counter data.
AXL-Serviceability APIs provide two ways to collect perfmon data:
session-based and single-transaction.
•
Get a list of all perfmon objects and counter names that are installed in a particular host.
•
Get a list of the current instances of a perfmon object.
•
Get textual description of a perfmon counter.
Table 4-5 provides a summary of the SOAP PerfmonPort service operations.
For a description for Perfmon error codes, see the "SOAP Fault Error Codes" section.
PerfmonPort Service: perfmonOpenSession Operation
Client programs submit the perfmonOpenSession operation to get a session handle from the AXL-Serviceability APIs. The client needs a session handle to do the session-based perfmon counter data collection. The session handle represents a universally unique identifier that is used once, which guarantees that no duplicate handles exist. AXL-Serviceability APIs keep the opened handles in cache. If no activity occurs on a handle for 25 hours, the AXL-Serviceability API removes the handle and renders it invalid.
Percentage counters require two samples to determine the average between the sample.
In a session-based perfmon data collection, use the following related operations:
•
perfmonOpenSession
•
perfmonAddCounter
•
perfmonRemoveCounter
•
perfmonCollectSessionData
•
PerfmonCloseSession
After a client gets a session handle, it normally proceeds to submit the PerfmonAddCounter operation and then follows with the PerfmonCollectSessionData operation. PerfmonCollectSessionData specifies the main operation that collects perfmon data for the clients. When the client no longer needs the session handle, it should submit PerfmonCloseSession, so the AXL-Serviceability APIs can remove the handle from cache. Clients can dynamically add new counters to the session handle and remove counters from it by using the perfmonRemoveCounter operation while the session handle is still open.
Request Format
The PerfmonOpenSession operation takes no parameter.
The following example shows the PerfmonOpenSession request:
Example
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonOpenSession
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
Response Format
PerfmonOpenSession returns a single element that is named SessionHandle. Its type specifies SessionHandleType, which is derived from xsd:string, and it contains the guide for the session handle.
The following example shows the PerfmonOpenSession response:
Example
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonOpenSessionResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SessionHandle
xsi:type="ns1:SessionHandleType">378273ba-ea59-11dc-8000-000000000000</SessionHandle>
</ns1:PerfmonOpenSessionResponse>
PerfmonPort Service: perfmonAddCounter Operation
The perfmonAddCounter operation adds an array of counters to a session handle.
Request Format
The perfmonAddCounter operation takes the following parameters:
•
SessionHandle—The type is SessionHandleType, which is derived from xsd:string. It contains the session handle that the previous perfmonOpenSession operation previously opened.
•
ArrayOfCounter—The type for this element is ArrayOfCounterType, which is an array of counter elements. Each Counter element contains the name of a counter to be added to the session handle.
The following fragments from AXL-Serviceability APIs describe the types that this request uses:
<complexType name='ArrayOfCounterType'>
<restriction base='SOAP-ENC:Array'>
type='tns:CounterType' minOccurs='1' maxOccurs='unbounded'/>
Note
ArrayOfCounterType expects at least one Counter element in the array.
<complexType name='CounterType'>
<element name='Name' type='tns:CounterNameType'/>
CounterType represents a structure, and it has a single element member: Name.
<simpleType name='CounterNameType'>
<restriction base='string'/>
The Name element that is of string-derived type contains the name of the counter.
The following example shows the perfmonAddCounter request with two counters. This example uses a single-reference accessor.
Example
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://tempuri.org/"
xmlns:types="http://tempuri.org/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:PerfmonAddCounter xmlns:q1="http://schemas.cisco.com/ast/soap/">
<SessionHandle xsi:type="xsd:string">
{1A490F1E-D82C-403F-9CF0-C4D4ABD6FF3E}
<ArrayOfCounter soapenc:arrayType="q1:CounterType[2]">
<Name>\\nozomi\process(inetinfo)\handle count</Name>
<Name>\\nozomi\process(csrss)\handle count</Name>
The following shows an example of the perfmonAddCounter request with three counters in the ArrayOfCounter parameter. This example uses multireference accessors.
Example
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonAddCounter
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SessionHandle
xsi:type="ns1:SessionHandleType">38d47c54-ea59-11dc-8000-000000000000</SessionHandle>
<ArrayOfCounter soapenc:arrayType="ns1:CounterType[2]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CounterType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\Nice</Name>
<item xsi:type="ns1:CounterType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\PID</Name>
Response Format
The following example shows that the perfmonAddCounter returns no output:
Example
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonAddCounterResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
If pefmonAddCounter fails to add one or more counters that are specified in the request, AXL-Serviceability APIs reply with a fault response. Some counters that are specified in the request may get successfully added, while others failed to be added.
In this case, AXL-Serviceability APIs reply with a fault. The Params element of CallInfo element specifies each failed counter name. Client programs can conclude that counter names, which are specified in the request but do not appear in the fault message, actually get added successfully to the query handle.
PerfmonPort Service: perfmonRemoveCounter Operation
The perfmonRemoveCounter operation removes an array of counters from a session handle.
Request Format
The perfmonRemoveCounter operation takes the following parameters:
•
SessionHandle—The type is SessionHandleType which is derived from xsd:string. It contains the session handle that the PerfmonOpenSession operation opened previously.
•
ArrayOfCounter—The type for this element is ArrayOfCounterType, which is an array of Counter elements. Each Counter element contain the name of a counter to be added to the session handle.
The following example shows a perfmonRemoveCounter request with three counters in the ArrayOfCounter parameter. This example uses single-reference accessor style.
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://tempuri.org/"
xmlns:types="http://tempuri.org/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:PerfmonRemoveCounter xmlns:q1="http://schemas.cisco.com/ast/soap/">
<SessionHandle xsi:type="xsd:string">
{1A490F1E-D82C-403F-9CF0-C4D4ABD6FF3E}
<ArrayOfCounter soapenc:arrayType="q1:CounterType[2]">
<Name>\\nozomi\process(inetinfo)\handle count</Name>
<Name>\\nozomi\process(csrss)\handle count</Name>
<Name>\\nozomi\process(regsvc)\handle count</Name>
</q1:PerfmonRemoveCounter">
The following example shows a perfmonRemoveCounter that uses multireference accessors.
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonRemoveCounter
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SessionHandle
xsi:type="ns1:SessionHandleType">38d47c54-ea59-11dc-8000-000000000000</SessionHandle>
<ArrayOfCounter soapenc:arrayType="ns1:CounterType[2]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CounterType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\Nice</Name>
<item xsi:type="ns1:CounterType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\PID</Name>
</ns1:PerfmonRemoveCounter>
Response Format
The perfmonRemoveCounter operation returns no data in the response as shown by the following example:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonRemoveCounterResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
If the PefmonRemoveCounter operation fails to remove one or more counters that the request specifies, the AXL-Serviceability API replies with a fault response with semantics similar to PerfmonAddCounter. If some of the counters that are specified in the request get removed successfully, while others failed to be removed, the AXL-Serviceability API replies with a fault. The Params element of CallInfo element specifies each failed counter name. Client programs can conclude that counter names, which are specified in the request but do not appear in the fault message, actually get removed successfully from the query handle.
PerfmonPort Service: perfmonCollectSessionData Operation
The perfmonCollectSessionData operation collects the perfmon data for all counters that have been added to the query handle.
Request Format
The perfmonCollectSessionData operation takes the SessionHandle parameter. The type is SessionHandleType, which is derived from xsd:string. It contains the session handle that the perfmonOpenSession operation opened previously.
The following example shows a perfmonCollectSessionData request:
Example
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCollectSessionData
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SessionHandle
xsi:type="ns1:SessionHandleType">3accd2f4-ea59-11dc-8000-000000000000</SessionHandle>
</ns1:PerfmonCollectSessionData>
Response Format
The perfmonCollectSessionData operation returns the ArrayOfCounterInfo element that contains the value and status of all counters that were previously added to the session handle. The type for ArrayOfCounterInfo element specifies ArrayOfCounterInfoType, which is an array of CounterInfo elements.
The following fragments from AXL-Serviceability APIs .WSDL show the types that this response uses:
<complexType name='ArrayOfCounterInfoType'>
<restriction base='SOAP-ENC:Array'>
<element name='CounterInfo'
type='tns:CounterInfoType' minOccurs='1' maxOccurs='unbounded'/>
ArrayOfCounterInfoType has one or more CounterInfo elements in the array. The CounterInfo element includes the following type:
<complexType name='CounterInfoType'>
<element name='Name' type='tns:CounterNameType'/>
<element name='Value' type='xsd:long'/>
<element name='CStatus' type='xsd:unsignedInt'/>
<simpleType name='CounterNameType'>
<restriction base='string'/>
CounterInfoType specifies a structure with the following element members.
•
Name—A CounterNameType, derived from xsd:string, that contains the name of the counter that was previously added to the session handle.
•
Value—A 64-bit signed integer (xsd:long) that contains the value of the counter.
•
CStatus—Indicates whether the value of the counter was successfully retrieved. The type specifies a 32-bit unsigned integer (xsd:unsignedInt). First, check for the value of CStatus element before reading the Value element. If the value of CStatus equals 0 or 1, the Value element contains a good counter value. Otherwise, it indicates a failure in retrieving the counter value; ignore the Value element.
The following example shows a perfmonCollectSessionData response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCollectSessionDataResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ArrayOfCounterInfo soapenc:arrayType="ns1:CounterInfoType[6]"
xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(0)\Nice
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(0)\System
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(0)\User
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(_Total)\Nice
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(_Total)\System
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Processor(_Total)\User
Percentage</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">0</CStatus>
</ns1:PerfmonCollectSessionDataResponse>
PerfmonPort Service: perfmonCloseSession Operation
The perfmonCloseSession operation closes the session handle that the PerfmonOpenSession previously retrieved.
Request Format
The perfmonCloseSession operation takes the SessionHandle parameter. The type is SessionHandleType, which is derived from xsd:string. It contains the session handle that the perfmonOpenSession operation previously opened.
The following example shows a perfmonCloseSession request:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCloseSession
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<SessionHandle
xsi:type="ns1:SessionHandleType">378273ba-ea59-11dc-8000-000000000000</SessionHandle>
</ns1:PerfmonCloseSession>
Response Format
The following example shows that the perfmonCloseSession does not return data in the response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCloseSessionResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
PerfmonPort Service: perfmonListInstance Operation
The perfmonListInstance operation returns a list of instances of a perfmon object in a particular host. Instances of an object can dynamically come and go, and this operation returns the most recent list.
Request Format
The perfmonListIntance operation takes the following parameters:
•
Host—The type is xsd:string. The Host parameter contains the name or address of the target server on which the object resides.
•
Object—The type is xsd:string. The Object parameter contains the name of the object.
The following example shows a perfmonListInstance request with "nozomi" as the host and "Process" as the object parameter.
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonListInstance
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<Host xsi:type="xsd:string">10.77.31.15</Host>
<Object xsi:type="ns1:ObjectNameType">Process</Object>
</ns1:PerfmonListInstance>
Response Format
The perfmonListInstance returns an element that named ArrayOfInstance. The type for this element specifies ArrayOfInstanceType, which is an array of Instance elements. The following fragments from AXL-Serviceability APIs .WSDL file explain the types that this response uses:
<complexType name='ArrayOfInstanceType'>
<restriction base='SOAP-ENC:Array'>
type='tns:InstanceType' minOccurs='0' maxOccurs='unbounded'/>
Note
ArrayOfInstanceType can have 0 (zero) Instance elements, in which case the requested object is not of a multi-instance object.
<complexType name='InstanceType'>
<element name='Name' type='tns:InstanceNameType'/>
The type for Instance element specifies InstanceType. It represents a structure with a single-element member: Name.
<simpleType name='InstanceNameType'>
<restriction base='string'/>
The Name element, whose type is InstanceNameType, which is derived from xsd:string, contains the name of the instance of the requested object.
The following example shows the response to the request in the previous example:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonListInstanceResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ArrayOfInstance soapenc:arrayType="ns1:InstanceType[133]" xsi:type="soapenc:Array"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">init</Name>
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">migration_0</Name>
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">ksoftirqd_0</Name>
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">CTLProvider</Name>
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">capf</Name>
<item xsi:type="ns1:InstanceType">
<Name xsi:type="ns1:InstanceNameType">CCMDirSync</Name>
</ns1:PerfmonListInstanceResponse>
PerfmonPort Service: perfmonQueryCounterDescription Operation
The perfmonQueryCounterDescription operation returns the help text of a particular counter.
Request Format
The perfmonQueryCounterDescription operation takes the Counter parameter. The name of the counter. Type is CounterNameType, which is derived from xsd:string.
The following example shows the perfmonQueryCounterDescription request:
Example
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:PerfmonQueryCounterDescription
xmlns:q1="http://schemas.cisco.com/ast/soap/">
<Counter xsi:type="xsd:string">\\nozomi\Server\Files Open</Counter>
</q1:PerfmonQueryCounterDescription>
Response Format
The perfmonQueryCounterDescription operation returns an element that is named HelpText that is of the xsd:string type. It contains the help text of the requested counter.
The following example shows the response to the request in the previous example.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<m:PerfmonQueryCounterDescriptionResponse
xmlns:m="http://schemas.cisco.com/ast/soap/">
<HelpText>The number of files currently opened in the server. Indicates
current server
</m:PerfmonQueryCounterDescriptionResponse>
PerfmonPort Service: perfmonListCounter Operation
The perfmonListCounter operation returns the list of Perfmon objects and counters in a particular host.
Request Format
The perfmonListCounter operation takes the Host parameter. The type is xsd:string. The Host parameter contains the name or address of the target server from which the client wants to get the counter information.
The following example shows a perfmonListCounter request:
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:PerfmonListCounter xmlns:q1="http://schemas.cisco.com/ast/soap/">
<Host xsi:type="xsd:string">nozomi</Host>
Response Format
The perfmonListCounter operation returns information that describes the hierarchical structure of Perfmon objects and counters. The body entry includes an ArrayOfObjectInfo element. The following fragments from the AXL-Serviceability APIs WSDL file describe the types that this response uses:
<complexType name='ArrayOfObjectInfoType'>
<restriction base='SOAP-ENC:Array'>
<element name='ObjectInfo'
type='tns:ObjectInfoType' minOccurs='1' maxOccurs='unbounded'/>
The ArrayOfObjectInfo element comprises an array of ObjectInfo elements that have the following type:
<complexType name='ObjectInfoType'>
<element name='Name' type='tns:ObjectNameType'/>
<element name='MultiInstance' type='xsd:boolean'/>
<element name='ArrayOfCounter' type='tns:ArrayOfCounterType'/>
<simpleType name='ObjectNameType'>
<restriction base='string'/>
The Name element, whose type is derived from string, describes the name of the object. MultiInstance element indicates whether the object has more than one instance. The ArrayOfCounter element acts as a container for an array of Counter elements that have the following types:
<complexType name='CounterType'>
<element name='Name' type='tns:CounterNameType'/>
<simpleType name='CounterNameType'>
<restriction base='string'/>
The Name element, whose type is derived from xsd:string, describes the name of the counter.
Example
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<m:PerfmonListCounterResponse xmlns:m="http://schemas.cisco.com/ast/soap/">
<ArrayOfObjectInfo SOAP-ENC:arrayType="m:ObjectInfoType[]">
<Name>.NET CLR Memory</Name>
<MultiInstance>true</MultiInstance>
<ArrayOfCounter SOAP-ENC:arrayType="m:CounterType[]">
<Name># Gen 0 Collections</Name>
<Name># Gen 1 Collections</Name>
<Name>.NET CLR LocksAndThreads</Name>
<MultiInstance>true</MultiInstance>
<ArrayOfCounter SOAP-ENC:arrayType="m:CounterType[]">
<Name>Total # of Contentions</Name>
<Name>Contention Rate / sec</Name>
<Name>Current Queue Length</Name>
</m:PerfmonListCounterResponse>
PerfmonPort Service: perfmonCollectCounterData Operation
The perfmonCollectCounterData operation returns the perfmon data for all counters that belong to an object in a particular host. Unlike the session-based perfmon data collection, this operation collects all data in a single request/response transaction. If the object represents multiple-instance object, this operation always returns the most current instances of the object.
Request Format
The perfmonCollectCounterData operation takes the following parameters:
•
Host—The type is xsd:string. It contains the address of the target server from which the client wants to get the counter information.
•
Object—The type is ObjectNameType, which is derived from xsd:string. It contains the name of the perfmon object.
The following example shows a perfmonCollectCounterData request:
Example
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCollectCounterData
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<Host xsi:type="xsd:string">10.77.31.15</Host>
<Object xsi:type="ns1:ObjectNameType"></Object>
</ns1:PerfmonCollectCounterData>
Response Format
The perfmonCollectCounterData operation returns an ArrayOfCounterInfo element, which is an array of CounterInfo elements. CounterInfoType specifies a structure with the following three element members.
•
Name—A CounterNameType, derived from xsd:string, that contains the name of the counter that was previously added to the session handle.
•
Value—A 64-bit signed integer (xsd:long) that contains the value of the counter.
•
CStatus—Indicates whether the value of the counter was successfully retrieved. The type specifies a 32-bit unsigned integer (xsd:unsignedInt). First, check for the value of CStatus element before reading the Value element. If the value of CStatus equals to 0 or 1, the Value element contains a good counter value. Otherwise, it indicates a failure in retrieving the counter value; ignore the Value element.
The following example shows a perfmonCollectCounterData response:
Example
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:PerfmonCollectCounterDataResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ArrayOfCounterInfo soapenc:arrayType="ns1:CounterInfoType[1995]"
xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\% CPU
Time</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\% Memory
Usage</Name>
<Value xsi:type="xsd:long">2</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\Data
Stack Size</Name>
<Value xsi:type="xsd:long">344019</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name
xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\Nice</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name
xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\PID</Name>
<Value xsi:type="xsd:long">9389</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(CCMDirSync)\Page
Fault Count</Name>
<Value xsi:type="xsd:long">1</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(udevd)\Total CPU Time
Used</Name>
<Value xsi:type="xsd:long">4</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(udevd)\UTime</Name>
<Value xsi:type="xsd:long">0</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(udevd)\VmData</Name>
<Value xsi:type="xsd:long">240</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(udevd)\VmRSS</Name>
<Value xsi:type="xsd:long">692</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process(udevd)\VmSize</Name>
<Value xsi:type="xsd:long">3020</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
</ns1:PerfmonCollectCounterDataResponse>
ControlCenterServicesPort SOAP Service
The ControlCenterServicesPort service allows you to do Service Deploy, Service UnDeploy, Get Service List, and perform service starts and stops.
All ControlCenterServicesPort operations work only on the local node, which is specified by the NodeName element.
Table 4-6 provides a summary of the SOAP ControlCenterServicesPort service operations.
ControlCenterServicesPort service: soapGetStaticServiceList Operation
The soapGetStaticServiceList operation allows clients to perform a query for all services static specifications in Cisco Unified Communications Manager. It returns the array of service static specification, which is composed of service name, type (servlet or service), deployable or undeployable service, group name, and dependent services.
Request Format
The HTTP header should have following SOAP action and envelop information:
<operation name="soapGetStaticServiceList">
<soap:operation
soapAction="http://schemas.cisco.com/ast/soap/action/#ControlCenterServices#soapGetService
List"/>
<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
The soapGetStaticServiceList operation takes only one dummy string typed parameter.
Response Format
The response contains the ArrayOfServiceSpecification information that is defined as follows:
<complexType name="StaticServiceList">
<element name="Services" type="tns:ArrayOfServiceSpecification"/>
ArrayOfServiceSpecification is an array of ServiceSpecification defined as follows:
<complexType name="ArrayOfServiceSpecification">
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType"
wsdl:arrayType="tns:ServiceSpecification[]"/>
ServiceSpecification contains information defined as follows:
<complexType name="ServiceSpecification">
<element name="ServiceName" type="xsd:string"/>
<element name="ServiceType" type="tns:ServiceTypes"/>
<element name="Deployable" type="boolean"/>
<element name="GroupName" type="xsd:string"/>
<element name="DependentServices" type="tns:ArrayOfServices"/>
where ServiceTypes defines the type of service, defined as follows:
<simpleType name="ServiceTypes">
<restriction base="xsd:string">
<enumeration value="Service"/>
<enumeration value="Servlet"/>
ArrayOfServices defines the dependent services for the service, defined as an array:
<complexType name="ArrayOfServices">
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
Fault
Invalid Service Configuration Files
Static service specification comes from two service configuration xml files:
•
/usr/local/cm/conf/ccmservice/ActivateConf.xml
•
/usr/local/cm/conf/ccmservice/ServicesConf.xml
If one of the files does not exist or has an invalid format, an empty list of static service specification will appear in the response. For example:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetStaticServiceListResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<StaticServiceList xsi:type="ns2:StaticServiceList"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
<Services xsi:type="soapenc:Array" soapenc:arrayType="ns2:ServiceSpecification[0]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
</ns1:GetStaticServiceListResponse>
Request Example
The following example shows a request for getting a static service specification list:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:soapGetStaticServiceList
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ServiceInformationResponse xsi:type="xsd:string">test</ServiceInformationResponse>
</ns1:soapGetStaticServiceList>
Response Example
The following example shows a response for getting a static service specification list:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:soapGetStaticServiceListResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<StaticServiceList xsi:type="ns2:StaticServiceList"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
<Services soapenc:arrayType="ns2:ServiceSpecification[58]"
xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns2:ServiceSpecification">
<ServiceName xsi:type="xsd:string">Cisco AXL Web Service</ServiceName>
<ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
<Deployable xsi:type="xsd:boolean">true</Deployable>
<GroupName xsi:type="xsd:string">Database and Admin Services</GroupName>
<DependentServices xsi:type="xsd:string" xsi:nil="true"/>
<item xsi:type="ns2:ServiceSpecification">
<ServiceName xsi:type="xsd:string">Cisco Serviceability Reporter</ServiceName>
<ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
<Deployable xsi:type="xsd:boolean">true</Deployable>
<GroupName xsi:type="xsd:string">Performance and Monitoring
Services</GroupName>
<DependentServices xsi:type="xsd:string" xsi:nil="true"/>
</ns1:soapGetStaticServiceListResponse>
ControlCenterServicesPort service: soapGetServiceStatus Operation
The soapGetServiceStatus operation allows clients to perform a list of deployable and undeployable services status query. It returns the service status response information for the services that have been queried. It also allows getting all of the services current status by providing an empty list of services.
Request Format
The HTTP header should have following SOAP action and envelop information:
<operation name="soapGetServiceStatus">
<soap:operation
soapAction="http://schemas.cisco.com/ast/soap/action/#ControlCenterServices#soapGetService
Status"/>
<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
The soapGetServiceStatus operation takes one array of service names for which their statuses are queried.
<GetServiceStatusList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item>service name</item>
If the array of service names is empty in the request, the response will contain service status information for all services in the system.
Response Format
The response contains the performed query information that is defined as follows:
<complexType name="ServiceInformationResponse">
<element name="ReturnCode" type="tns:ReturnCode"/>
<element name="ReasonCode" type="xsd:integer"/>
<element name="ReasonString" type="xsd:string"/>
<element name="ServiceInfoList" type="tns:ArrayOfServiceInformation"/>
where ReturnCode is a string format of return code:
<simpleType name="ReturnCode">
<restriction base="xsd:string"/>
ArrayOfServiceInformation is an array of ServiceInformation that defines service name, service status, reason code, reason string, service start time, and service up time.
<complexType name="ArrayOfServiceInformation">
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:ServiceInformation[ ]"/>
<complexType name="ServiceInformation">
<element name="ServiceName" type="xsd:string"/>
<element name="ServiceStatus" type="tns:ServiceStatus"/>
<element name="ReasonCode" type="xsd:integer"/>
<element name="ReasonCodeString" type="xsd:string"/>
<element name="StartTime" type="xsd:string"/>
<element name="UpTime" type="xsd:integer"/>
ServiceStatus defines the enumerated status for the service, as follows:
<simpleType name="ServiceStatus">
<restriction base="xsd:string">
<enumeration value="Started"/>
<enumeration value="Stopped"/>
<enumeration value="Starting"/>
<enumeration value="Stopping"/>
<enumeration value="Unknown"/>
The following details apply about ServiceStatus, ReasonCode, and ReasonCodeString.
•
ServiceStatus is either Started or Stopped. If Started, StartTime gives the time that the service is started in a time string format; UpTime gives the time in seconds since the service was started.
•
The ReasonCode and ReasonCodeString explain the reason that the service is Stopped:
–
If a deployable service is activated and stopped by an administrator, its status is Stopped, the ReasonCode equals -1019, and the corresponding ReasonCodeString specifies "Component is not running".
–
If a deployable service is deactivated, its status is Stopped, the ReasonCode equals -1068, and the corresponding ReasonCodeString specifies "Service Not Activated".
–
If a nondeployable item is stopped by an administrator, its status could be Stopped with ReasonCode -1019, and the corresponding ReasonCodeString "Component is not running."
The complete listing of ReasonCode and ReasonCodeString follows:
-1000: "Component already initialized"
-1002: "Component not initialized"
-1003: "Component is running"
-1005: "Unable to process event"
-1006: "Registration already present"
-1007: "Unsuccessful completion"
-1008: "Registration not found"
-1009: "Missing or invalid environment variable"
-1011: "Component is reserved for platform"
-1014: "Entry was already present"
-1015: "Error opening IPC"
-1016: "No license available"
-1017: "Error opening file"
-1018: "Error reading file"
-1019: "Component is not running"
-1021: "Notification ignored"
-1023: "Cannot parse record or entry"
-1026: "Component already exists"
-1027: "Message was truncated"
-1028: "Component is empty"
-1029: "Operation is pending"
-1030: "Transaction does not exist"
-1031: "Operation timed-out"
-1033: "Feature is not implemented yet"
-1034: "Alarm was already set"
-1035: "Alarm was already clear"
-1036: "Dependency is in active state"
-1037: "Dependency is not in active state"
-1038: "Circular dependencies detected"
-1039: "Component already started"
-1040: "Component already stopped"
-1041: "Dependencies still pending"
-1042: "Requested process state transition not allowed"
-1044: "Boundary violation for data structure"
-1045: "Operation not supported"
-1046: "Process recovery in progress"
-1047: "Operation pending on scheduled restart"
-1048: "Operation pending on active dependencies"
-1049: "Operation pending on active dependents"
-1050: "Shutdown is in progress"
-1051: "Invalid Table Handle"
-1052: "Data Base not initialized"
-1057: "Component already in specified state"
-1059: "Cannot create object"
-1060: "MSO refused, standby system not ready."
-1061: "MSO refused, standby state update still in progress. Try again later."
-1062: "MSO refused, standby state update failed.
Verify configuration on standby."
-1063: "MSO refused, Warm start-up in progress."
-1064: "MSO refused, Warm start-up Failed."
-1065: "MSO refused, System is not in active state"
-1066: "MSO refused, Detected standalone Flag"
-1067: "Invalid Token presented in reques"
-1068: "Service Not Activated"
-1069: "Commanded Out of Service"
-1070: "Multiple Modules have error"
-1071: "Encountered exception"
-1072: "Invalid context path was specified"
-1073: "No context exists"
-1074: "No context path was specified"
-1075: "Application already exists"
Fault
Invalid Service: Non-existing Service
If the request for getting the service status is for an invalid service name, such as a nonexistent service name, the ReasonCode -1010 and the ReasonCodeString "No such service" will appear in the response. The following request and response example applies for getting service status for "Cisco WrongService."
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatus soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<GetServiceStatusList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item>Cisco WrongService</item>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatusResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ServiceInformationResponse xsi:type="ns2:ServiceInformationResponse"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
<ReturnCode xsi:type="ns2:ReturnCode">0</ReturnCode>
<ReasonCode xsi:type="xsd:integer">-1010</ReasonCode>
<ReasonString xsi:type="xsd:string">No such service</ReasonString>
<ServiceInfoList xsi:type="ns2:ServiceInformation" xsi:nil="true"/>
</ServiceInformationResponse>
</ns1:GetServiceStatusResponse>
Request Example Cisco Tftp Service Status
The following request example for getting "Cisco Tftp" service status applies:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatus
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<GetServiceStatusList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
Response Example for Cisco Tftp Service Status
The following response example for getting "Cisco Tftp" service status applies:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatusResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ServiceInformationResponse xsi:type="ns2:ServiceInformationResponse"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
<ReturnCode xsi:type="ns2:ReturnCode">0</ReturnCode>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonString xsi:type="xsd:string" xsi:nil="true"/>
<ServiceInfoList xsi:type="soapenc:Array"
soapenc:arrayType="ns2:ServiceInformation[1]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ServiceName xsi:type="xsd:string">Cisco Tftp</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string">
<StartTime xsi:type="xsd:string">Tue Sep 14 14:29:43 2004</StartTime>
<UpTime xsi:type="xsd:integer">11800</UpTime>
</ServiceInformationResponse>
</ns1:GetServiceStatusResponse>
Request Example for Empty Array of Service Names
The following request example for getting service status when providing an empty array of service names applies:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatus soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<GetServiceStatusList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[0]"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
Response Example for Empty Array of Service Names
The response for the preceding request gets the current status for all services as follows:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns1:GetServiceStatusResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ServiceInformationResponse xsi:type="ns2:ServiceInformationResponse"
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
<ReturnCode xsi:type="ns2:ReturnCode">0</ReturnCode>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonString xsi:type="xsd:string" xsi:nil="true"/>
<ServiceInfoList xsi:type="soapenc:Array"
soapenc:arrayType="ns2:ServiceInformation[43]"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<ServiceName xsi:type="xsd:string">A Red Hat DB</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string"> </ReasonCodeString>
<StartTime xsi:type="xsd:string">Mon Dec 6 10:49:14 2004</StartTime>
<UpTime xsi:type="xsd:integer">186704</UpTime>
<ServiceName xsi:type="xsd:string">Cisco AMC Service</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string"> </ReasonCodeString>
<StartTime xsi:type="xsd:string">Mon Dec 6 17:51:26 2004</StartTime>
<UpTime xsi:type="xsd:integer">161372</UpTime>
<ServiceName xsi:type="xsd:string">Cisco AXL Web Service</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string"> </ReasonCodeString>
<StartTime xsi:type="xsd:string">Tue Dec 7 18:13:04 2004</StartTime>
<UpTime xsi:type="xsd:integer">73674</UpTime>
<ServiceName xsi:type="xsd:string">CiscoUnified CM SNMP Service</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string"> </ReasonCodeString>
<StartTime xsi:type="xsd:string">Mon Dec 6 10:49:19 2004</StartTime>
<UpTime xsi:type="xsd:integer">186699</UpTime>
<ServiceName xsi:type="xsd:string">Cisco CDP</ServiceName>
<ServiceStatus xsi:type="ns2:ServiceStatus">Started</ServiceStatus>
<ReasonCode xsi:type="xsd:integer">-1</ReasonCode>
<ReasonCodeString xsi:type="xsd:string"> </ReasonCodeString>
<StartTime xsi:type="xsd:string">Mon Dec 6 10:49:19 2004</StartTime>