Cisco Unified Communications Manager XML Developers Guide, Release 8.6(1)
Serviceability XML API
Downloads: This chapterpdf (PDF - 1.24MB) The complete bookPDF (PDF - 14.22MB) | Feedback

Serviceability XML Programming

Table Of Contents

Serviceability XML Programming

Overview

New and Changed Information

New Information for Unified CM 8.6(1)

New and Changed Information in Previous Releases of Unified CM

New Information forUnified CM 8.5(1)

New Information for Unified CM 8.0(1)

New Information for Unified CM 7.1(2)

New Information for Unified CM 7.0(1)

New Information for Unified CM 7.0

New Information for Unified CM 6.1

New Information for Unified CM 6.0

New Information for Unified CM 5.0

New Information for Unified CM 4.3

New Information for Unified CM 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

Description

Parameters

Request Example

Response Example

Fault

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

Serviceability XML API Authentication Security

Rate Control Mechanism

SOAP Fault Error Codes

Fault Strings

Sample SOAP Fault or AXIS Fault

Serviceability XML 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 Serviceability XML APIs. Unified CM Real-Time information, Performance Counters, and Database information exposure occurs through an Serviceability XML 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://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

Serviceability XML API Authentication Security

Rate Control Mechanism

SOAP Fault Error Codes

Serviceability XML Application Design Guidelines and Best Practices

Overview

By exposing Unified CM (Unified CM) real-time information, performance counter, and database information, customers can write customized applications. Serviceability XML 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. Serviceability XML APIs represent one server component of the Unified CM 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.

Serviceability XML APIs provide remote procedure call (RPC) style operations for clients. Clients
of Serviceability XML APIs can run in different OS platforms and can communicate through the standard SOAP protocol. Serviceability XML APIs provide access to core Unified CM Serviceability functionality through an open and standard transport protocol and data model.

The Serviceability XML interface uses the AXIS 1.4 SOAP server with the AXIS-2250 patch.

New and Changed Information

The following sections provide information on the changes in the Serviceability APIs in Unified CM release 8.6(1) and the previous releases:

New Information for Unified CM 8.6(1)

New and Changed Information in Previous Releases of Unified CM

For information about the new, changed, or deprecated Serviceability SOAP API methods from the interface library, see the Chapter 5 "Serviceability XML Operations by Release".

New Information for Unified CM 8.6(1)

The following change was made to the Serviceability XML API in Unified CM release 8.6(1).

SelectCmDevice API returns device information for a maximum of 1000 devices instead of the earlier 200 devices.
For more information, see the section MaxReturnedDevices.

New and Changed Information in Previous Releases of Unified CM

The following sections provide the new and changed information in the older releases of Unified CM:

New Information forUnified CM 8.5(1)

New Information for Unified CM 8.0(1)

New Information for Unified CM 7.1(2)

New Information for Unified CM 7.0(1)

New Information for Unified CM 7.0

New Information for Unified CM 6.1

New Information for Unified CM 6.0

New Information for Unified CM 5.0

New Information for Unified CM 4.3

New Information for Unified CM 4.0

For information about the new, changed, or deprecated Serviceability SOAP API methods from the interface library, see the Chapter 5 "Serviceability XML Operations by Release".

New Information forUnified CM 8.5(1)

The following are the Serviceability XML API changes in Unified CM release 8.5(1):

The SelectCmDevice API returns SIP trunk status and also returns the IP addresses and status of the peer devices.
For more information, see the sections SIPStatus and SIPRemoteIpAddress.

The SelectCmDevice API returns a new reason code when the phone in Power Save Plus mode unregisters from Unified CM.
For more information, see the section StatusReason.

The following are the changes in Cisco Unified Serviceability in Unified CM release 8.5(1):

The following new alarms are added to support the Single Sign-On and the Smart Card Authentication features:

LDAPServerUnreachable

SSODisabled

SSONullTicket

SSOServerUnreachable

SSOuserNotInDB

The following existing alarms are modified to support the Single Sign-On and the Smart Card Authentication features:

authFail

authSuccess

authLdapInactive

The following new alarms are added to support the OPTIONS Ping feature:

SIPTrunkISV

SIPTrunkOOS

SIPTrunkPartiallyISV

The following new alarms are added to support the SIP Normalization and Transparency feature:

SIPNormalizationAutoResetDisabled

SIPNormalizationResourceWarning

SIPNormalizationScriptClosed

SIPNormalizationScriptError

SIPNormalizationScriptOpened

New perfmon counters added to support the SIP Normalization and Transparency feature.

New calledPartyPatternUsage CDR field added for the hunt list support.

The following reason codes are added for the EndPointTransientConnection alarms:

AddressingModeMismatch

AutoRegisterDBConfigTimeout

autoRegisterDBError

CallManagerReset

CapabilityResponseTimeout

DatabaseTimeout

DBAccessError

DeviceInitiatedReset

DeviceTypeMismatch

DirectoryNumberMismatch

InvalidCapabilities

maxDevRegExceeded

RegistrationSequenceError

SecurityMismatch

The following reason codes are added for the EndPointUnregistered alarms:

CallManagerForcedRestart

DatabaseConfigurationError

DeviceNameUnresolveable

InitializationError

MaxDevRegExceeded

NoEntryInDatabase

PowerSavePlus

SourceIPAddrChanged

SourcePortChanged

RegistrationSequenceError

InvalidCapabilities.

FallbackInitiated

DeviceSwitch

Textual conventions updated for the following MIB objects:

CcmDevRegFailCauseCode

CcmDevUnregCauseCode

For more information on all the modifications in serviceability features, see the following documents:

New and Changed Information for Cisco Unified Communications Manager 8.5(1)

Cisco Unified Serviceability Administration Guide, Release 8.5(1)

New Information for Unified CM 8.0(1)

The following are the updates in the Unified CM 8.0(1):

The following new alarms are added:

Alarm Name
Severity

VAPTLSConnectionFailed

ALERT

VAPOverQuota

ALERT

CMVersionMismatch

ALERT

VAPInvalidCredentials

ALERT

VAPTCPSetupFailed

CRITICAL

InsufficientFallbackIdentifiers

ERROR

SAFInvalideMethodReceived

ERROR

VAPDHTInactive

ERROR

DbInfoCorrupt

ERROR

DbInfoTimeout

ERROR

DbInfoError

ERROR

SAFPublishRevoke

ERROR

EndPointTransientConnection

ERROR

ConflictingDataIE

ERROR

EndPointUnregistered

ERROR

ViPRQualityProblem

ERROR

ErrorParsingDirectiveFromPDP

ERROR

VAPPublishFailedOverQuota

ERROR

ConnectionFailureToPDP

ERROR

CCDRequestingServiceReceivedDuplicationPatterns

ERROR

CCDPSTNFailOverDurationTimeOut

ERROR

FailureResponseFromPDP

ERROR

SAFUnknownSubscription

ERROR

SAFUnknownService

ERROR

CCDAgeOutDurationTimeOut

ERROR

SafFwdError

ERROR

ConnectionToSaffBroke

ERROR

SAFBadFilter

ERROR

SAFResponderError

ERROR

InvalidVAPSubscription

WARNING

DigitAnalysisTimeoutAwaitingResponse

WARNING

FailedToFulfillDirectiveFromPDP

WARNING

VAPRejectedRoutes

WARNING

ErrorParsingResponseFromPDP

WARNING

VAPPublishFailed

WARNING

CallAttemptBlockedByPolicy

WARNING

DbInsertValidatedDIDFailure

NOTICE

EndPointRegistered

NOTICE

CCDLearnedPatternExceededLimits

INFORMATIONAL

VAPPublicationRunCompleted

INFORMATIONAL

EndPointRestartInitiated

INFORMATIONAL

EndPointResetInitiated

INFORMATIONAL

RouteRemoved

INFORMATIONAL

ConnectionToPDPInService

INFORMATIONAL


The following alarms are modified:

Alarm Name
Severity

NoFeatureLicense

EMERGENCY

DBLException

ALERT

CUCMOverallInitTimeExceeded

ALERT

SDLLinkOOS

ALERT

BChannelOOS

CRITICAL

CodeYellowEntry

CRITICAL

MaxCallsReached

CRITICAL

DChannelOOS

CRITICAL

CallManagerFailure

CRITICAL

StationTCPInitError

CRITICAL

CodeRedEntry

CRITICAL

MGCPGatewayLostComm

CRITICAL

TimerThreadSlowed

CRITICAL

NumDevRegExceeded

ERROR

ICTCallThrottlingStart

ERROR

DeviceTypeMismatch

ERROR

DeviceCloseMaxEventsExceeded

ERROR

ConnectionFailure

ERROR

DeviceInitTimeout

ERROR

MultipleSIPTrunksToSamePeerAndLocalPort

ERROR

InvalidIPNetPattern

ERROR

H323Stopped

WARNING

StationEventAlert

WARNING

DevicePartiallyRegistered

WARNING

MaliciousCall

WARNING

UserUserPrecedenceAlarm

WARNING

MediaResourceListExhausted

WARNING

NotEnoughChans

WARNING

SIPStopped

WARNING

DaTimeOut

WARNING

RouteListExhausted

WARNING

DeviceTransientConnection

WARNING

SIPLineRegistrationError

WARNING

DeviceUnregistered

WARNING

BeginThrottlingCallListBLFSubscriptions

WARNING

AnnunciatorNoMoreResourcesAvailable

WARNING

ConferenceNoMoreResourcesAvailable

WARNING

MtpNoMoreResourcesAvailable

WARNING

SIPStarted

NOTICE

SDLLinkISV

NOTICE

H323Started

NOTICE

ICTCallThrottlingEnd

NOTICE

CodeYellowExit

NOTICE

MaxCallDurationTimeout

NOTICE

BChannelISV

NOTICE

DChannelISV

NOTICE

CallManagerOnline

NOTICE

MGCPGatewayGainedComm

NOTICE

DeviceRegistered

INFORMATIONAL

EndThrottlingCallListBLFSubscriptions

INFORMATIONAL

DeviceApplyConfigInitiated

INFORMATIONAL

CUCMTotalInitializationStateTime

INFORMATIONAL

MaxHoldDurationTimeout

INFORMATIONAL

PktCapServiceStarted

INFORMATIONAL

PktCapOnDeviceStarted

INFORMATIONAL

StationConnectionError

INFORMATIONAL

DatabaseDefaultsRead

INFORMATIONAL

PktCapServiceStopped

INFORMATIONAL

DeviceDnInformation

INFORMATIONAL

StationAlarm

INFORMATIONAL

DeviceResetInitiated

INFORMATIONAL

PktCapOnDeviceStopped

INFORMATIONAL

DeviceRestartInitiated

INFORMATIONAL

CUCMInitializationStateTime

INFORMATIONAL


The following new perform classes are added:

CCM_VIPR_SERVICE_OBJECT

EXTERNALCALLCONTROL_OBJ

CCM_SAFCLIENT_OBJECT

ViPR

The following perform classes are modified:

CCM_PRESENCE_OBJECT

CCM_MGCPFXO_OBJECT

CCM_DUAL_MODE_MOBILITY_OBJECT

CCM_VCB_OBJECT

CCM_PHONE_OBJECT

CcmSIPObject

CCM_LOCATIONS_OBJECT

CCM_WSM_CONNECTOR_OBJECT

CcmQSIGFeatureObject

CCM_SIP_STATION_OBJECT

UCB_SW_DEVICE_OBJECT

MGCP_GATEWAY_OBJECT

MOH_DEVICE_OBJECT

CCM_LINES_OBJECT

CCM_MGCPBRI_OBJECT

CCM_MGCPT1CAS_OBJECT

CCM_HUNTLISTS_OBJECT

CcmAnnunciatorObject

CcmSIPStackObject

MTP_DEVICE_OBJECT

CCM_SDL_OBJECT

CCM_SIGNALING_OBJECT

CCM_ANALOGACCESS_OBJECT

UCB_HW_DEVICE_OBJECT

CCM_H323_OBJECT

CISCO_CALL_RESTRICTION

CCM_MGCPFXS_OBJECT

CCM_MGCPPRI_OBJECT

GATEKEEPER_OBJECT

CCM_MOBILITY_OBJECT

CCM_CM_OBJECT

XCODE_DEVICE_OBJECT

PRFOBJ_EMAPP

The following changes are made in the CISCO-CCM-MIB:

ccmDevFailCauseCode is supported in Unified CM 8.0(1), but will be deprecated in future release.

Two new textual conventions are added for Device Registration status that replaces ccmDevFailCauseCode:

ccmDevRegFailCauseCode—Identifies the reasons for a device registration failure.

ccmDevUnregCauseCode—Identifies the reasons a device was unregistered.

ccmGatewayFailed trap is supported in Unified CM 8.0(1), but will be deprecated in future release.

New ccmGatewayFailedReason trap is added to replace ccmGatewayFailed.

The following enhancements are made in Cisco Syslog-MIB:

Cisco Syslog Agent sends the end point alarms to Remote Syslog Server and RTMT

Alarm severity or alarm string configurations done at RTMT are used by Cisco Syslog Agent to compare against the end point alarm severity and string. If they match, the end point alarm is sent to remote syslog server and RTMT.

Cisco Syslog agent uses the Exclude End Point alarms parameter to determine if end point alarms are sent to the Remote Syslog server and RTMT.

The following changes are made in Serviceability API Cipher Support:

Unified CM 8.0(1) Web server (Tomcat) supports the following Ciphers

Most Secure:

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_DHE_DSS_WITH_AES_256_CBC_SHA

More Secure:

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_DHE_RSA_WITH_AES_128_CBC_SHA

Secure:

SSL_RSA_WITH_3DES_EDE_CBC_SHA

SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA

New Information for Unified CM 7.1(2)

The following information applies to Unified CM 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 Unified CM 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 Unified CM 7.0

The following information applies to Unified CM 7.0:

There are no Serviceability XML API changes in this release.

When trace compression is enabled, trace files are compressed.

Cisco Unified CM 7.0 supports version in the service URL as described in Table 4-2.


Note The service URL for all the Serviceability XML Unified CM 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 Unified CM 6.1

There are no Serviceability XML API changes for Unified CM 6.1.

New Information for Unified CM 6.0

The following updates apply to Unified CM 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 Unified CM 5.0

The following APIS have been added for Unified CM 5.0:

getServerInfo—Exports information from the Server Information SOAP interface

soapGetStaticServiceList—Allows clients to perform a query for all services static specifications in Unified CM.

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 Unified CM 4.3

There are no Serviceability XML API changes for Unified CM 4.3.

New Information for Unified CM 4.0

The following APIs have been added for Unified CM 4.0:

selectCmDevice—Allows clients to perform Unified CM device-related queries

selectCtiItem—Allows clients to perform a CTI manager-related query

SelectCmDeviceSIP—Allows clients to perform Unified CM SIP device related queries

Data Model

Serviceability XML 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 Serviceability XML APIs use.

SOAP Binding

The binding section of the Serviceability SOAP WSDL files specifies Serviceability XML 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

Serviceability XML 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. Serviceability XML APIs also set "text/xml; charset='utf-8'" as the value of the Content-Type response header field. Internally, Serviceability XML APIs processes the data by using UCS-2 Unicode code page.

Binding Style

Serviceability XML APIs uses remote procedure call (RPC) binding style. In SOAP, the word operation refers to method or function. Each Serviceability XML 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. Serviceability XML APIs use the standard HTTP as its transport. Clients use the POST verb to send requests to Serviceability XML APIs.


Note Serviceability XML APIs do not use the M-POST method as defined in the HTTP Extension Framework.


Encoding Rule

Serviceability XML 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.

Serviceability XML APIs define their own data types, which are derived from the built-in types. The schemas element of the Serviceability XML APIs WSDL file specifies Serviceability XML APIs that are derived data types. Serviceability XML APIs use both simple and compound data types, such as arrays and structures. All operations in Serviceability XML APIs pass parameters by value.

For performance reasons, Serviceability XML 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 Serviceability XML API data types schema follows:

http://schemas.xmlsoap.org/soap/envelope/

Serviceability XML APIs qualify the first body entry in the response, which represents the call-return, with this target namespace. Similarly, clients of Serviceability XML 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

Serviceability XML 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 Serviceability XML 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 Serviceability XML 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. Serviceability XML 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 Serviceability XML 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 Serviceability XML API operations. Every request for the Serviceability XML 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. Serviceability XML 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, Serviceability XML APIs reply with a fault and a fault code value that is set to the mustUnderstand value.

The following example shows an Serviceability XML API SOAP request message with the HTTP header information:

Example

POST  /perfmonservice/services/PerfmonPort HTTP/1.1
Charset: utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
user-agent: ClientName 
Host: nozomi
Content-Type: text/xml; charset=utf-8
Content-Length: xxx
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/" /> 
		</soap:Body>
</soap:Envelope>

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.

Serviceability XML 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 Serviceability XML APIs implementation.

The target namespace that is described in the "Encoding Rule" section, qualifies the call-return. Serviceability XML APIs return HTTP status 200 when the operation succeeds.

For a failed operation call, Serviceability XML APIs include the SOAP fault element in the response body. Similar to call-return, the fault element also appears as the first body entry. Serviceability XML APIs set HTTP 500 status when sending fault messages.

Fault Message

When an Serviceability XML 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

Serviceability XML 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. Serviceability XML APIs do not use the Header element. See the "SOAP Header" section for details.

Client

This fault code gets set when Serviceability XML APIs encounters errors that are related to the clients.

Server

This fault code gets set when Serviceability XML 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

Serviceability XML 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 Serviceability XML APIs.

FaultActor

Serviceability XML 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 Serviceability XML 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 Serviceability XML 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 Serviceability XML APIs WSDL files specify the encoding rule for the detail subelement.

The following fragments of the file describe the data types:

...
<complexType name='CallInfoType'>
    <sequence>
       <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'/>
    </sequence>
</complexType>
 
   
<complexType name='ErrorInfoType'>
    <sequence>
       <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'/>
    /sequence>
</complexType>
...
<complexType name='ArrayOfCallInfoType'>
    <complexContent>
        <restriction base='SOAP-ENC:Array'>
            <sequence>
                <element name='CallInfo'
                    type='tns:CallInfoType' minOccurs='1' maxOccurs='unbounded'/>
            </sequence>
        </restriction>
    </complexContent>
</complexType>
 
   

Serviceability XML 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 Serviceability XML 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 Serviceability XML API SOAP response message with HTTP headers:

Example

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: xxx
 
   
<?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/">
	<SOAP-ENV:Body>
		<m:PerfmonOpenSessionResponse xmlns:m="http://schemas.cisco.com/ast/soap/">
			<SessionHandle>{01944B7E-183F-44C5-977A-F31E3AE59C4C}</SessionHandle> 
		</m:PerfmonOpenSessionResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The following example shows a failed Serviceability XML API SOAP response message with HTTP headers:

Example

HTTP/1.1 500 OK
Content-Type: text/xml; charset=utf-8
Content-Length: xxx
 
   
<?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/">
	<SOAP-ENV:Body>
		<SOAP-ENV:Fault>
			<faultcode>SOAP-ENV:Server</faultcode> 
			<faultstring>Perfmon error occurs</faultstring> 
			<detail>
				<m:ErrorInfo xmlns:m="http://schemas.cisco.com/ast/soap/">
					<Version>3.2.0.2</Version> 
					<Time>07/16/2001 - 00:00:24</Time> 
					<ProcId>1200</ProcId> 
					<ThreadId>300</ThreadId> 
					<ArrayOfCallInfo SOAP-ENC:arrayType="m:CallInfoType[]">
						<CallInfo>
							<FileName>perfmon.cpp</FileName> 
							<LineNo>396</LineNo> 
							<ErrorCode>3221228473</ErrorCode> 
							<Function>AddCounter</Function> 
							<Params>\\nozomi\tcp\Bad Counter Name</Params> 
						</CallInfo>
					</ArrayOfCallInfo>
				</m:ErrorInfo>
			</detail>
		</SOAP-ENV:Fault>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Namespaces

Serviceability XML 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 Serviceability XML API data types as defined in the WSDL file

Downloading Serviceability SOAP WSDL Files

You can download the Unified CM serviceability SOAP WSDL files from the Unified CM 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

1 SOAPMonitorService is the standard SOAP monitor service WSDL of the third-party Axis SOAP server.


PClients of Serviceability XML 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 Serviceability XML 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.

Table 4-4 SOAP RisPort Service Operations 

Operation
Description
Reference

selectCmDevice

Allows clients to perform Unified CM device-related queries

RisPort Service: selectCmDevice Operation

SelectCmDevice (includes IPv6 devices)

Allows clients to search for devices that have IPv6 addresses

RisPort Service: SelectCmDevice Operation (Includes IPv6 Devices)

selectCtiItem

Allows clients to perform a CTI manager-related query

RisPort Service: selectCtiItem Operation

SelectCtiItem (includes IPv6 devices)

Supports search for CTI controlled applications and devices that have IPv6 addresses

RisPort Service: SelectCtiDevice Operation (Includes IPv6 Devices)

getServerInfo

Exports information from the Server Information SOAP interface

RisPort Service: getServerInfo Operation

SelectCmDeviceSIP

Allows clients to perform Unified CM SIP device related queries

RisPort Service: SelectCmDeviceSIP Operation


RisPort Service: selectCmDevice Operation

The selectCMDevice operation allows clients to perform Unified CM 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.

<soap:Header>
<tns:AstHeader id="id1">
<SessionId xsi:type="xsd:string">SessionId</SessionId>
</tns:AstHeader>
</soap:Header>

Selection Criteria

Selection criteria type, which is a Unified CM 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/">
<tns:SelectCmDevice>
 
   

If the same information is queried 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

Specifies the maximum number of devices for which information can be returned in a search. In Unified CM release 8.5(1) the maximum number is 1000. Prior to Unified CM release 8.5(1) the maximum number was 200.

<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/SIPStatus for SIP Trunk

<element name="SelectBy" type="tns:CmSelectBy"/>
<simpleType name="CmSelectBy">
<restriction base="string">
<enumeration value="Name"/>
<enumeration value="IPV4Address"/>
<enumeration value="DirNumber"/>
<enumeration value="Description"/>
<enumeration value="SIPStatus"/>
</restriction>
</simpleType>

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"/>
</soapenc:Array>
<tns:SelectItem id="id3" xsi:type="tns:SelectItem">
<Item xsi:type="xsd:string"/></tns:SelectItem>
</soap:Body>
</soap:Envelope>

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'>
    <sequence>
           <element name='TotalDevicesFound' type='xsd:unsignedInt'/>
           <element name='CmNodes' type='tns:CmNodes'/>
  </sequence>
</complexType>
 
   

CMNodes provides a list of Unified CMNodes that are given in search criteria.

<complexType name='CmNodes'>
    <complexContent>
        <restriction base='SOAP-ENC:Array'>
         <sequence>
       <element name='CmNode' type='tns:CmNode' minOccurs='0 maxOccurs='1000'/>
         </sequence>
        </restriction>
    </complexContent>
 </complexType>
 
   

Each Unified CMNode contains a sequence of devices and their registration status.

<complexType name='CmNode'>
    <sequence>
        <element name='ReturnCode'          type='tns:RisReturnCode'/>
        <element name='Name'                type='xsd:string'/>
        <element name='NoChange'            type='xsd:boolean'/>
        <element name='CmDevices'           type='tns:CmDevices'/>
   </sequence>
</complexType>
<complexType name='CmDevices'>
    <complexContent>
      <restriction base='SOAP-ENC:Array'>
      <sequence>
      <element name='CmDevice' type='tns:CmDevice' minOccurs='0' maxOccurs='200'/>
      </sequence>
      </restriction>
      </complexContent>
    </complexType>
 
   

The Unified CM Device information contains the following information.

<complexType name='CmDevice'>
<sequence>
<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='SIPStatus' type='tns:SIPStatus'/>
<element name='SIPRemoteIpAddress' type='xsd:string'/>
<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'/>
</sequence>
</complexType>

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">
  <soapenv:Body>
    <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"/>
    </ns1:SelectCmDevice>
    <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">
        <item href="#id1"/>
      </SelectItems>
    </multiRef>
    <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>
    </multiRef>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679736</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
				<SIPStatus xsi:type='tns:SIPStatus'>InService</SIPStatus>
				<SIPRemoteIpAddress xsi:type='xsd:string'> 0.77.31.18=Available</SIPRemoteIpAddress>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
            </CmDevices>
          </item>
        </CmNodes>
      </SelectCmDeviceResult>
      <StateInfo xsi:type="xsd:string">&lt;StateInfo ClusterWide=&quot;1&quot;&gt;&lt;Node 
Name=&quot;CISCART15&quot; SubsystemStartTime=&quot;1204679712&quot; StateId=&quot;4&quot; 
TotalItemsFound=&quot;4&quot; 
TotalItemsReturned=&quot;4&quot;/&gt;&lt;/StateInfo&gt;</StateInfo>
    </ns1:SelectCmDeviceResponse>
  </soapenv:Body>
</soapenv:Envelope>

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>
<message name="SelectCmDeviceOutput">
	<part name="SelectCmDeviceResult" type="tns:SelectCmDeviceResult"/>
	<part name="StateInfo" type="xsd:string"/>
</message>
<portType name="RisPortType">
	<operation name="SelectCmDevice">
		<input message="tns:SelectCmDeviceInput"/>
		<output message="tns:SelectCmDeviceOutput"/>
	</operation>
</portType>

This section has the following information:

Request Format

Response Format

Example Request

Example Response

Faults

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"?>
<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/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header>
<AstHeader xsi:type="soap:AstHeader">
<SessionId xsi:type="xsd:string"/>
</AstHeader>
</soapenv:Header>

The SOAP header has the session ID that is a unique ID.

SelectCmDevice Operation

The SelectDevice operation is first defined in the SOAP body element.

<SOAP-ENV:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<soap:SelectCmDevice>

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 Realtime Information Server Data Collection (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">
<sequence>
<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"/>
</sequence>
</complexType

CmSelectionCriteria contains the following information:

MaxReturnedDevices

Class

Model

Status

NodeName

SelectBy

SelectItems

Protocol

DownloadStatus

MaxReturnedDevices

Specifies the maximum number of devices for which information can be returned in a search. In Unified CM release 8.6(1) the maximum number is 1000. Prior to Unified CM release 8.6(1) the maximum number was 200.

Format:

<element name="MaxReturnedDevices" nillable="true" type="xsd:unsignedInt"/>

Example:

<MaxReturnedDevices xsi:type="xsd:unsignedInt">1000</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"/>
</restriction>
</simpleType>

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">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectItem[]"/>
</restriction>
</complexContent>
</complexType>

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"/>
</soapenc:Array>
<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

SIPStatus for SIP Trunk

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"/>
<enumeration value="SIPStatus"/>
</restriction>
</simpleType>

Example:

<SelectBy href="#id1"/>
</multiRef>
<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"/>
</restriction>
</simpleType>

Example:

<Protocol href="#id3"/>
</multiRef>
<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"/>
</restriction>
</simpleType>

Example:

<DownloadStatus href="#id4"/>
</multiRef>
<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'>
<sequence>
<element name='TotalDevicesFound' type='xsd:unsignedInt'/>
<element name='CmNodes' type='tns:CmNodes'/>
<element name='
</sequence>
</complexType>

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">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmNode[]"/>
</restriction>
</complexContent>
</complexType>

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'>
<sequence>
<element name='ReturnCode' type='tns:RisReturnCode'/>
<element name='Name' type='xsd:string'/>
<element name='NoChange' type='xsd:boolean'/>
<element name='CmDevices' type='tns:CmDevices'/>
</sequence>
</complexType>

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"/>
</restriction>

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">
<sequence>
<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"/>
<element name='SIPStatus' type='tns:SIPStatus'/>
<element name='SIPRemoteIpAddress' type='xsd:string'/>
</sequence>
</complexType>

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"/>
</restriction>
</simpleType>

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"/>
</restriction>
</simpleType>

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"/>
</restriction>
</simpleType>

Example:

<Status xsi:type="ns1:CmDevRegStat">Registered</Status>

StatusReason

Displays the status of the device. It is an integer value. If the device is in "Registered" state then <StatusReason> is 0. If the device is in "Unregistered" state then one of the following values is displayed:

Value
Description

1

Unknown - The device has unregistered for an unknown reason. If the device does not re-register within 5 minutes, verify that it is powered up and verify that there is network connectivity between the device and Unified CM.

6

ConnectivityError - Network communication between the device and Unified CM has been interrupted. Possible causes include device power outage, network power outage, network configuration error, network delay, packet drops, and packet corruption. It is also possible to get this error if the Unified CM node is experiencing high CPU usage. Verify that the device is powered up and operating, verify that there is network connectivity between the device and Unified CM, and verify that the CPU utilization is in the safe range (you can monitor this via the CPU Pegging Alert in RTMT).

8

DeviceInitiatedReset - The device has initiated a reset, possibly due to a power cycle or internal error. No action required; the device will re-register automatically.

9

CallManagerReset - A device reset was initiated from Cisco Unified CM Administration, either due to an explicit command from an administrator, or due to internal errors encountered. No action necessary; the device will re-register automatically.

10

DeviceUnregistered - The device has explicitly unregistered. Possible causes include a change in the IP address or port of the device. No action is necessary; the device will re-register automatically.

11

MalformedRegisterMsg - (SIP only) A SIP REGISTER message could not be processed because of an illegal format. Possible causes include a missing Call-ID header, a missing AoR in the To header, or an expires value that is too small. Check the REGISTER message for any of these issues and if you find one, correct the issue.

12

SCCPDeviceThrottling - (SCCP only) The indicated SCCP device exceeded the maximum number of events allowed per-SCCP device. Events can be phone calls, KeepAlive messages, or excessive SCCP or non-SCCP messages. The maximum number of allowed events is controlled by the Unified CM service parameter, Max Events Allowed. When an individual device exceeds the number configured in that service parameter, Unified CM closes the TCP connection to the device; automatic reregistration generally follows. This action is an attempt to stop malicious attacks on Unified CM or to ward off excessive CPU usage.

13

KeepAliveTimeout - A KeepAlive message was not received. Possible causes include device power outage, network power outage, network configuration error, network delay, packet drops, and packet corruption. It is also possible to get this error if the Unified CM node is experiencing high CPU usage. Verify that the device is powered up and operating, verify that there is network connectivity between the device and Unified CM, and verify the CPU utilization is in the safe range (you can monitor this via the CPU Pegging Alert in RTMT).

14

ConfigurationMismatch (SIP only) The configuration on the device does not match the configuration in Unified CM. This can be caused by database replication errors or other internal Unified CM communication errors. Go to the Cisco Unified Reporting web page, generate a Unified CM Database Status report and verify "all servers have a good replication status". You can also go to the Real-Time Reporting Tool (RTMT) and check the Replication Status in the Database Summary page. If status shows 2, then replication is working. If this device continues to unregister with this reason code, go to the Device Configuration page in Unified CM Administration for the device indicated in this alarm and click Save. This generates a change notify message to the Unified CM and TFTP services and rebuilds a new configuration file for the device. If the problem still persists, restart the TFTP service and the Unified CM service.

15

CallManagerRestart - A device restart was initiated from Unified CM Administration, either due to an explicit command from an administrator or due to a configuration change such as adding, deleting or changing a directory number associated with the device. No action is necessary; the device will re-register automatically.

16

DuplicateRegistration - Unified CM detected that the device attempted to register to two nodes at the same time. Unified CM initiated a restart to the phone to force it to re-home to a single node. No action is necessary; the device will re-register automatically.

17

CallManagerApplyConfig - An ApplyConfig action was performed in Unified CM Administration resulting in an unregistration. No action is necessary; the device will re-register automatically.

18

DeviceNoResponse - The device did not respond to a reset or restart notification, so it is being forcefully reset. If the device does not re-register within 5 minutes, confirm that it is powered up and confirm that there is network connectivity between the device and Unified CM.

21

PowerSavePlus - The device powered off as a result of the Power Save Plus feature that is enabled for this device. When the device powers off, it remains unregistered from Unified CM for the duration specified in the Phone On Time parameter in the Product Specific Configuration for this device.


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">
	<sequence>
		<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"/>
	</sequence>
</complexType>

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"/>
</restriction>
</simpleType>

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">
	<complexContent>
		<restriction base="SOAP-ENC:Array">
			<attribute ref="soapenc:arrayType" 
wsdl:arrayType="tns:IPAddressArrayType[]"/>
		</restriction>
	</complexContent>
</complexType>
 
   
<complexType name="IPAddressArrayType">
	<sequence>
		<element name="IP" type="xsd:string"/>
		<element name="IPAddrType" type="tns:IPAddrType"/>
		<element name="Attribute" type="tns:AttributeType"/>
	</sequence>
</complexType>
<simpleType name="AttributeType">
	<restriction base="string">
		<enumeration value="Unknown"/>
		<enumeration value="Adminstrative"/>
		<enumeration value="Signaling"/>
		<enumeration value="AdministrativeAndSignaling"/>
	</restriction>
</simpleType>
<simpleType name="IPAddrType">
	<restriction base="string">
		<enumeration value="ipv4"/>
		<enumeration value="ipv6"/>
	</restriction>
</simpleType>

SIPStatus

Displays the status of SIP trunk. The following options are available:

InService

OutOfService

PartialService

Unknown

Format:

<simpleType name="SIPStatus">
    <restriction base="string">
         <enumeration value="InService"/>
         <enumeration value="OutOfService"/>
         <enumeration value="PartialService"/>
         <enumeration value="Unknown"/>
    </restriction>
</simpleType>

SIPRemoteIpAddress

Displays a list of remote IP addresses and its status.

Format:

<element name='SIPRemoteIpAddress' type='xsd:string'/>

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">
  <soapenv:Body>
    <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"/>
    </ns1:SelectCmDevice>
    <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">1000</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">
        <item href="#id1"/>
      </SelectItems>
    </multiRef>
    <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>
    </multiRef>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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"/>
                </H323Trunk>
				<SIPStatus xsi:type='tns:SIPStatus'>InService</SIPStatus>
				<SIPRemoteIpAddress xsi:type='xsd:string'> 0.77.31.18=Available</SIPRemoteIpAddress>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679736</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
              <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"/>
                </H323Trunk>
                <TimeStamp xsi:type="xsd:unsignedInt">1204679735</TimeStamp>
              </item>
            </CmDevices>
          </item>
        </CmNodes>
      </SelectCmDeviceResult>
      <StateInfo xsi:type="xsd:string">&lt;StateInfo ClusterWide=&quot;1&quot;&gt;&lt;Node 
Name=&quot;CISCART15&quot; SubsystemStartTime=&quot;1204679712&quot; StateId=&quot;4&quot; 
TotalItemsFound=&quot;4&quot; 
TotalItemsReturned=&quot;4&quot;/&gt;&lt;/StateInfo&gt;</StateInfo>
    </ns1:SelectCmDeviceResponse>
  </soapenv:Body>

</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.

<soap:Header>
<tns:AstHeader id="id1">
<SessionId xsi:type="xsd:string">jSessionId</SessionId>
</tns:AstHeader>
</soap:Header>
 
   
<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"/>
</tns:SelectAppItem>
</soap:Body>
</soap:Envelope>

Response Format

The Response includes a sequence of Unified CM Nodes with sequences of CTI devices and lines real-time information:

<complexType name='CtiItem'>
<sequence>
<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'/>
</sequence>
</complexType> 

CTI Device real-time information contains the following sequence of information:

<complexType name='CtiDevice'>
<sequence>
<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'/>
</sequence>
</complexType> 

CTI Line contains the following sequence of information:

<complexType name='CtiLine'>
    <sequence>
         <element name='DirNumber'        type='xsd:string'/>
         <element name='LineStatus'       type='tns:CtiStatus'/>
         <element name='LineStatusReason' type='xsd:unsignedInt'/>                             	
         <element name='LineTimeStamp'    type='xsd:unsignedInt'/>
   </sequence>
</complexType>

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>
<message name="SelectCtiItemOutput">
	<part name="StateInfo" type="xsd:string"/>
	<part name="SelectCtiItemResult" type="tns:SelectCtiItemResult"/>
</message>
	<portType name="RisPortType">
	 		<operation name="SelectCtiItem">
			<input message="tns:SelectCtiItemInput"/>
			<output message="tns:SelectCtiItemOutput"/>
		</operation>
	</portType>

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"?>
<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/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header>
<AstHeader xsi:type="soap:AstHeader">
<SessionId xsi:type="xsd:string"/>
</AstHeader>
</soapenv:Header>

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">
<sequence>
<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"/>
</sequence>
</complexType>

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"/>
</restriction>
</simpleType>

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"/>
</restriction>
</simpleType>

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"/>
</restriction>
</simpleType>

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">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectAppItem[]"/>
</restriction>
</complexContent>
</complexType>
 
   
<complexType name="SelectAppItem">
<sequence>
<element name="AppItem" type="xsd:string"/>
</sequence>
</complexType>

Example:

<AppItems soapenc:arrayType="ns2:SelectAppItem[1]" xsi:type="soapenc:Array">
<item href="#id1"/>
</AppItems>
<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>

DevNames

Format:

<complexType name="SelectDevNames">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectDevName[]"/>
</restriction>
</complexContent>
</complexType>
 
   
<complexType name="SelectDevName">
<sequence>
<element name="DevName" type="xsd:string"/>
</sequence>
</complexType>

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">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:SelectDirNumber[]"/>
</restriction>
</complexContent>
</complexType>
 
   
<complexType name="SelectDirNumber">
<sequence>
<element name="DirNumber" type="xsd:string"/>
</sequence>
</complexType>

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>
</AppItems>
<DevNames xsi:type="ris:SelectDevNames" soapenc:arrayType="ris:SelectDevName[]">
<Item xsi:type="ris:DevName"> dev1 </Item>
<Item xsi:type="ris:DevName"> dev2 </Item>
</DevNames> 
 
   
<DirNumbers xsi:type="ris:SelectDirNumbers" soapenc:arrayType="ris:SelectDirNumber[]">	
<Item xsi:type="ris:DirNumber"> dir1 </Item>
<Item xsi:type="ris:DirNumber"> dir2 </Item>
</DirNumbers>

In the sample request, the ReturnCode is a string:

<simpleType name="ReturnCode">
	<restriction base="xsd:string"/>
</simpleType>

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">
<sequence>
<element name="TotalItemsFound" type="xsd:unsignedInt"/>
<element name="CtiNodes" nillable="true" type="tns:CtiNodes"/>
</sequence>
</complexType>

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">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CtiNode[]"/>
</restriction>
</complexContent>
</complexType>
 
   
<complexType name="CtiNode">
<sequence>
<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"/>
</sequence>
</complexType>

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"/>
</restriction>

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">
<sequence>
<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"/>
</sequence>
</complexType>

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">
<sequence>
<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"/>
</sequence>
</complexType>

CtiLine

Displays the following information related to CTI line:

DirNumber

LineStatus

LineStatusReason

LineTimeStamp

Format:

<complexType name="CtiLine">
<sequence>
<element name="DirNumber" type="xsd:string"/>
<element name="LineStatus" type="tns:CtiStatus"/>
<element name="LineStatusReason" type="xsd:unsignedInt"/>
<element name="LineTimeStamp" type="xsd:unsignedInt"/>
</sequence>
</complexType>
 
   

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/">
  <soapenv:Body>
    <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"/>
    </ns1:SelectCtiItem>
    <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">
        <item href="#id1"/>
      </AppItems>
      <DevNames xsi:type="ns2:SelectDevName" xsi:nil="true"/>
      <DirNumbers xsi:type="ns2:SelectDirNumber" xsi:nil="true"/>
    </multiRef>
    <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>
    <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>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
   <soapenv:Body>
      <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"/>
                     </item>
                  </CtiItems>
               </item>
            </CtiNodes>
         </SelectCtiItemResult>
         <StateInfo xsi:type="xsd:string">&lt;StateInfo>&lt;Node Name="172.27.203.17" 
SubsystemStartTime="1221380428" StateId="134" TotalItemsFound="1" 
TotalItemsReturned="1"/>&lt;/StateInfo></StateInfo>
      </ns1:SelectCtiItemResponse>
   </soapenv:Body>
</soapenv:Envelope>
 
   

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:input>
<wsdl:output name="getServerInfoResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>

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/">
   <soapenv:Header>
      <AstHeader xsi:type="soap:AstHeader">
         <SessionId xsi:type="xsd:string">999</SessionId>
      </AstHeader>
   </soapenv:Header>
   <soapenv:Body>
      <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>
         </Hosts>
      </soap:GetServerInfo>
   </soapenv:Body>
</soapenv:Envelope>

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" /> 
</wsdl:message>

Response Format

The response comprises an ArrayOfServerInfo:

<wsdl:message name="getServerInfoResponse">
  <wsdl:part name="ServerInfo" type="impl:ArrayOfServerInfo" /> 
  </wsdl:message>
<complexType name="ArrayOfServerInfo">
<complexContent>
<restriction base="soapenc:Array">
  <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:ServerInformation[]" /> 
  </restriction>
  </complexContent>
  </complexType>
 
   

ServerInformation consists of the following sequence of elements:

<complexType name="ServerInformation">
<sequence>
  <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" />
  </sequence>
  </complexType>

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">
  <soapenv:Body>
    <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>
      </Hosts>
    </ns1:GetServerInfo>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
  <soapenv:Body>
    <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>
        </item>
      </ServerInfo>
    </ns1:GetServerInfoResponse>
  </soapenv:Body>
</soapenv:Envelope>
 
   

RisPort Service: SelectCmDeviceSIP Operation

The SelectCmDeviceSIP operation allows clients to perform Unified CM 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">
			<soapenv:Body>
					<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"/>
</ns1:SelectCmDeviceSIP>
 
   

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"/>
 
   
</soapenv:Body>
</soapenv:Envelope>

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'>
   <sequence>
      <element name='TotalDevicesFound' type='xsd:unsignedInt'/>
      <element name='CmNodes' type='tns:CmNodesSIP'/>
   </sequence>
</complexType>
 
   

CmNodesSIP is list of CmNodeSIP that are given in the search criteria.

<complexType name="CmNodesSIP">
  <complexContent>
   <restriction base="SOAP-ENC:Array">
     <attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmNodeSIP[]"/>
   </restriction>
  </complexContent>
</complexType>
 
   

Each CmNodesSIP has a sequence of devices and their registration status.

<complexType name='CmNodeSIP'>
     <sequence>
         <element name='ReturnCode'          type='tns:RisReturnCode'/>
         <element name='Name'                type='xsd:string'/>
         <element name='NoChange'            type='xsd:boolean'/>
         <element name='CmDevices'           type='tns:CmDevicesSIP'/>
    </sequence>
</complexType>
<complexType name="CmDevicesSIP">
  <complexContent>
   <restriction base="SOAP-ENC:Array">
     <attribute ref="soapenc:arrayType" wsdl:arrayType="tns:CmDeviceSIP[]"/>
   </restriction>
  </complexContent>
</complexType>
 
   

CmDeviceSIP information will contain the following information:

<complexType name="CmDeviceSIP">
	<sequence>
		<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"/>
	</sequence>
</complexType>
 
   

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"/>
	</restriction>
</simpleType>
 
   

CmDevLinesStatus is a list of CmDevSingleLineStatus:

<complexType name="CmDevLinesStatus">
	<complexContent>
		<restriction base="SOAP-ENC:Array">
			<attribute ref="soapenc:arrayType"
			wsdl:arrayType="tns:CmDevSingleLineStatus[]"/>
		</restriction>
	</complexContent>
</complexType>
 
   

CmSingleLineStatus is a sequence of DN and DN status:

<complexType name="CmDevSingleLineStatus">
	<sequence>
		<element name="DirectoryNumber" type="xsd:string"/>
		<element name="Status" type="tns:CmSingleLineStatus"/>
	</sequence>
</complexType>
 
   

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"/>
	</restriction>
</simpleType>

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">
 <soapenv:Body>
  <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/">
     <item>
      <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]">
       <item>
        <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"/>
        </H323Trunk>
        <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]">
         <item>
          <DirectoryNumber xsi:type="xsd:string">5001</DirectoryNumber>
          <Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
         </item>
        </LinesStatus>
       </item>
       <item>
        <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"/>
        </H323Trunk>
        <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]">
         <item>
          <DirectoryNumber xsi:type="xsd:string">5002</DirectoryNumber>
          <Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
         </item>
        </LinesStatus>
       </item>
       <item>
        <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"/>
        </H323Trunk>
        <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]">
         <item>
          <DirectoryNumber xsi:type="xsd:string">5003</DirectoryNumber>
          <Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
         </item>
        </LinesStatus>
       </item>
       <item>
        <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"/>
        </H323Trunk>
        <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]">
         <item>
          <DirectoryNumber xsi:type="xsd:string">5004</DirectoryNumber>
          <Status xsi:type="ns1:CmSingleLineStatus">Registered</Status>
         </item>
        </LinesStatus>
       </item>
      </CmDevices>
     </item>
     <item>
      <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]"/>
     </item>
    </CmNodes>
   </SelectCmDeviceResultSIP>
   <StateInfo xsi:type="xsd:string">&lt;StateInfo&gt;&lt;Node Name=&quot;node70&quot; 
SubsystemStartTime=&quot;1110841841&quot; StateId=&quot;8&quot; 
TotalItemsFound=&quot;4&quot; TotalItemsReturned=&quot;4&quot;/&gt;&lt;Node 
Name=&quot;node71&quot; SubsystemStartTime=&quot;1110688669&quot; StateId=&quot;5772&quot; 
TotalItemsFound=&quot;0&quot; 
TotalItemsReturned=&quot;0&quot;/&gt;&lt;/StateInfo&gt;</StateInfo>
  </ns1:SelectCmDeviceSIPResponse>
 </soapenv:Body>
</soapenv:Envelope>

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.

Serviceability XML 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.

Table 4-5 SOAP PerfmonPort Service Operations 

Operation
Description
Reference

perfmonOpenSession

Allows client programs to obtain a session handle from the Serviceability XML APIs

PerfmonPort Service: perfmonOpenSession Operation

perfmonAddCounter

Adds an array of counters to a session handle

PerfmonPort Service: perfmonAddCounter Operation

perfmonRemoveCounter

Removes an array of counters from a session handle

PerfmonPort Service: perfmonRemoveCounter Operation

perfmonCollectSessionData

Collects perfmon data for all counters that have been added to the query handle

PerfmonPort Service: perfmonCollectSessionData Operation

perfmonCloseSession

Closes the session handle that the PerfmonOpenSession retrieved

PerfmonPort Service: perfmonCloseSession Operation

perfmonListInstance

Returns a list of instances of a Perfmon object in a particular host

PerfmonPort Service: perfmonListInstance Operation

perfmonQueryCounterDescription

Returns the help text of a particular counter

PerfmonPort Service: perfmonQueryCounterDescription Operation

perfmonListCounter

Returns the list of Perfmon objects and counters in a particular host

PerfmonPort Service: perfmonListCounter Operation

perfmonCollectCounterData

returns the Perfmon data for all counters that belong to an object in a particular host

PerfmonPort Service: perfmonCollectCounterData Operation


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 Serviceability XML 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. Serviceability XML APIs keep the opened handles in cache. If no activity occurs on a handle for 25 hours, the Serviceability XML 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 Serviceability XML 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">
  <soapenv:Body>
    <ns1:PerfmonOpenSession 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>

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 Serviceability XML APIs describe the types that this request uses:

    ...
<complexType name='ArrayOfCounterType'>
    <complexContent>
        <restriction base='SOAP-ENC:Array'>
            <sequence>
                <element name='Counter'
                    type='tns:CounterType' minOccurs='1' maxOccurs='unbounded'/>
            </sequence>
        </restriction>
    </complexContent>
</complexType>

Note ArrayOfCounterType expects at least one Counter element in the array.


...
<complexType name='CounterType'>
    <sequence>
        <element name='Name' type='tns:CounterNameType'/>
    </sequence>	
</complexType>
 
   

CounterType represents a structure, and it has a single element member: Name.

...
<simpleType name='CounterNameType'>
     <restriction base='string'/>
</simpleType>
 
   

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}
			</SessionHandle> 
			<ArrayOfCounter soapenc:arrayType="q1:CounterType[2]"> 
				<Counter>
					<Name>\\nozomi\process(inetinfo)\handle count</Name>
				</Counter>
				<Counter>
					<Name>\\nozomi\process(csrss)\handle count</Name>
				</Counter>
			</ArrayOfCounter>
</q1:PerfmonAddCounter">
	</soap:Body>
</soap:Envelope
 
   

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">
  <soapenv:Body>
    <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>
        <item xsi:type="ns1:CounterType">
          <Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\PID</Name>
        </item>
      </ArrayOfCounter>
    </ns1:PerfmonAddCounter>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <ns1:PerfmonAddCounterResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
  </soapenv:Body>
</soapenv:Envelope>
 
   

If pefmonAddCounter fails to add one or more counters that are specified in the request, Serviceability XML 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, Serviceability XML 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}
			</SessionHandle> 
			<ArrayOfCounter soapenc:arrayType="q1:CounterType[2]"> 
				<Counter>
					<Name>\\nozomi\process(inetinfo)\handle count</Name>
				</Counter>
				<Counter>
					<Name>\\nozomi\process(csrss)\handle count</Name>
				</Counter>
				<Counter>
					<Name>\\nozomi\process(regsvc)\handle count</Name>
				</Counter>
			</ArrayOfCounter>
</q1:PerfmonRemoveCounter">
	</soap:Body>
</soap:Envelope
 
   

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">
  <soapenv:Body>
    <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>
        <item xsi:type="ns1:CounterType">
          <Name xsi:type="ns1:CounterNameType">\\10.77.31.15\Process\PID</Name>
        </item>
      </ArrayOfCounter>
    </ns1:PerfmonRemoveCounter>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <ns1:PerfmonRemoveCounterResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
  </soapenv:Body>
</soapenv:Envelope>
 
   

If the PefmonRemoveCounter operation fails to remove one or more counters that the request specifies, the Serviceability XML 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 Serviceability XML 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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>

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 Serviceability XML APIs .WSDL show the types that this response uses:

 
   
...
<complexType name='ArrayOfCounterInfoType'>
	<complexContent>
		<restriction base='SOAP-ENC:Array'>
			<sequence>
				<element name='CounterInfo'
					type='tns:CounterInfoType' minOccurs='1' maxOccurs='unbounded'/>
			</sequence>
		</restriction>
	</complexContent>
</complexType>
 
   

ArrayOfCounterInfoType has one or more CounterInfo elements in the array. The CounterInfo element includes the following type:

...
<complexType name='CounterInfoType'>
	<sequence>
		<element name='Name' 	type='tns:CounterNameType'/>
		<element name='Value' 	type='xsd:long'/>
		<element name='CStatus' type='xsd:unsignedInt'/>
	</sequence>
</complexType>
...
<simpleType name='CounterNameType'>
	<restriction base='string'/>
</simpleType>
 
   

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">
  <soapenv:Body>
    <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        </item>
      </ArrayOfCounterInfo>
    </ns1:PerfmonCollectSessionDataResponse>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <ns1:PerfmonCloseSessionResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"/>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>

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 Serviceability XML APIs .WSDL file explain the types that this response uses:

...
<complexType name='ArrayOfInstanceType'>
	<complexContent>
		<restriction base='SOAP-ENC:Array'>
			<sequence>
				<element name='Instance'
					type='tns:InstanceType' minOccurs='0' maxOccurs='unbounded'/>
			</sequence>
		</restriction>
	</complexContent>
</complexType>
 
   

Note ArrayOfInstanceType can have 0 (zero) Instance elements, in which case the requested object is not of a multi-instance object.


...
<complexType name='InstanceType'>
	<sequence>
		<element name='Name' type='tns:InstanceNameType'/>
	</sequence>	
</complexType>
 
   

The type for Instance element specifies InstanceType. It represents a structure with a single-element member: Name.

...
<simpleType name='InstanceNameType'>
	<restriction base='string'/>
</simpleType>
 
   

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">
  <soapenv:Body>
    <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>
        <item xsi:type="ns1:InstanceType">
          <Name xsi:type="ns1:InstanceNameType">migration_0</Name>
        </item>
        <item xsi:type="ns1:InstanceType">
          <Name xsi:type="ns1:InstanceNameType">ksoftirqd_0</Name>
        </item>
 
   
... 
 
   
        <item xsi:type="ns1:InstanceType">
          <Name xsi:type="ns1:InstanceNameType">CTLProvider</Name>
        </item>
        <item xsi:type="ns1:InstanceType">
          <Name xsi:type="ns1:InstanceNameType">capf</Name>
        </item>
        <item xsi:type="ns1:InstanceType">
          <Name xsi:type="ns1:InstanceNameType">CCMDirSync</Name>
        </item>
      </ArrayOfInstance>
    </ns1:PerfmonListInstanceResponse>
  </soapenv:Body>
</soapenv:Envelope>

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>
	</soap:Body>
</soap:Envelope>
 
   

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/">
	<SOAP-ENV:Body>
		<m:PerfmonQueryCounterDescriptionResponse
			xmlns:m="http://schemas.cisco.com/ast/soap/">
			<HelpText>The number of files currently opened in the server. Indicates 
current server 
activity.
</HelpText> 
		</m:PerfmonQueryCounterDescriptionResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

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> 
		</q1:PerfmonListCounter>
	</soap:Body>
</soap:Envelope>

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 Serviceability XML APIs WSDL file describe the types that this response uses:

   ...
<complexType name='ArrayOfObjectInfoType'>
	<complexContent>
		<restriction base='SOAP-ENC:Array'>
			<sequence>
				<element name='ObjectInfo'
					type='tns:ObjectInfoType' minOccurs='1' maxOccurs='unbounded'/>
			</sequence>
		</restriction>
	</complexContent>
</complexType>
 
   

The ArrayOfObjectInfo element comprises an array of ObjectInfo elements that have the following type:

...
<complexType name='ObjectInfoType'>
	<sequence>
		<element name='Name' type='tns:ObjectNameType'/>
		<element name='MultiInstance' type='xsd:boolean'/>
		<element name='ArrayOfCounter' type='tns:ArrayOfCounterType'/>
	</sequence>
</complexType>
 
   
...
<simpleType name='ObjectNameType'>
	<restriction base='string'/>
</simpleType>
 
   

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'>
	<sequence>
		<element name='Name' type='tns:CounterNameType'/>
	</sequence>	
</complexType>
<simpleType name='CounterNameType'>
	<restriction base='string'/>
</simpleType>
 
   

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: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/">
	<SOAP-ENV:Body>
		<m:PerfmonListCounterResponse xmlns:m="http://schemas.cisco.com/ast/soap/">
			<ArrayOfObjectInfo SOAP-ENC:arrayType="m:ObjectInfoType[]">
				<ObjectInfo>
					<Name>.NET CLR Memory</Name> 
					<MultiInstance>true</MultiInstance> 
					<ArrayOfCounter SOAP-ENC:arrayType="m:CounterType[]">
						<Counter>
							<Name># Gen 0 Collections</Name> 
						</Counter>
						<Counter>
							<Name># Gen 1 Collections</Name> 
						</Counter>
						...
					</ArrayOfCounter>
				</ObjectInfo>
				<ObjectInfo>
					<Name>.NET CLR LocksAndThreads</Name> 
					<MultiInstance>true</MultiInstance> 
					<ArrayOfCounter SOAP-ENC:arrayType="m:CounterType[]">
						<Counter>
							<Name>Total # of Contentions</Name> 
						</Counter>
						<Counter>
							<Name>Contention Rate / sec</Name> 
						</Counter>
						<Counter>
							<Name>Current Queue Length</Name> 
						</Counter>
						...
					</ArrayOfCounter>
				</ObjectInfo>
				...
			</ArrayOfObjectInfo>
		</m:PerfmonListCounterResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        <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>
        </item>
      </ArrayOfCounterInfo>
    </ns1:PerfmonCollectCounterDataResponse>
  </soapenv:Body>
</soapenv:Envelope>

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.

Table 4-6 SOAP ControlCenterServicesPort Service Operations 

Operation
Description
Reference

soapGetStaticServiceList

Allows clients to perform a query for all services static specifications in Unified CM

ControlCenterServicesPort service: soapGetStaticServiceList Operation

soapGetServiceStatus

Allows clients to perform a list of deployable and undeployable services status query

ControlCenterServicesPort service: soapGetServiceStatus Operation

soapDoServiceDeployment

Allows clients to deploy or undeploy a list of services

ControlCenterServicesPort service: soapDoServiceDeployment Operation

soapDoControlServices

Allows clients to start or stop a list of service

ControlCenterServicesPort service: soapDoControlServices Operation

getProductInformationList

Provides information about the products that are installed on a given server

ControlCenterServicesPort service: getProductInformationList Operation


ControlCenterServicesPort service: soapGetStaticServiceList Operation

The soapGetStaticServiceList operation allows clients to perform a query for all services static specifications in Unified CM. 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"/>
	<input>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</input>
	<output>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</output>
</operation>
 
   

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">
	<sequence>
		<element name="Services" type="tns:ArrayOfServiceSpecification"/>
	</sequence>	
</complexType>
 
   

ArrayOfServiceSpecification is an array of ServiceSpecification defined as follows:

<complexType name="ArrayOfServiceSpecification">
	<complexContent>
		<restriction base="SOAP-ENC:Array">
		<attribute ref="SOAP-ENC:arrayType" 
              wsdl:arrayType="tns:ServiceSpecification[]"/>
		</restriction>
	</complexContent>
</complexType>
 
   

ServiceSpecification contains information defined as follows:

<complexType name="ServiceSpecification">
	<sequence>
		<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"/>
	</sequence>
</complexType>
 
   

where ServiceTypes defines the type of service, defined as follows:

<simpleType name="ServiceTypes">
	<restriction base="xsd:string">
		<enumeration value="Service"/>
		<enumeration value="Servlet"/>
	</restriction>
</simpleType>
 
   
ArrayOfServices defines the dependent services for the service, defined as an array:
<complexType name="ArrayOfServices">
	<complexContent>
		<restriction base="SOAP-ENC:Array">
			<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
		</restriction>
	</complexContent>
</complexType>

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">
 <soapenv:Body>
  <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/"/>
   </StaticServiceList>
  </ns1:GetStaticServiceListResponse>
 </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
  <soapenv:Body>
    <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>
          <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"/>
          </item>
 
   
...
 
   
</Services>
      </StaticServiceList>
    </ns1:soapGetStaticServiceListResponse>
  </soapenv:Body>
</soapenv:Envelope>

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"/>
	<input>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</input>
	<output>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</output>
</operation>
 
   

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>
</GetServiceStatusList>
 
   

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">
	<sequence>
		<element name="ReturnCode" type="tns:ReturnCode"/>
		<element name="ReasonCode" type="xsd:integer"/>
		<element name="ReasonString" type="xsd:string"/>
		<element name="ServiceInfoList" type="tns:ArrayOfServiceInformation"/>
	</sequence>
</complexType>
 
   

where ReturnCode is a string format of return code:

<simpleType name="ReturnCode">
	<restriction base="xsd:string"/>
</simpleType>
 
   

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">
	<complexContent>
	<restriction base="SOAP-ENC:Array">
		<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:ServiceInformation[ ]"/>
	</restriction>
</complexContent>
</complexType>
<complexType name="ServiceInformation">
	<sequence>
		<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"/>
	</sequence>
</complexType>
 
   

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"/>
	</restriction>
</simpleType>
 
   

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"
-1001: "Entry replaced"
-1002: "Component not initialized"
-1003: "Component is running"
-1004: "Entry not found"
-1005: "Unable to process event"
-1006: "Registration already present"
-1007: "Unsuccessful completion"
-1008: "Registration not found"
-1009: "Missing or invalid environment variable"
-1010: "No such service"
-1011: "Component is reserved for platform"
-1012: "Bad arguments"
-1013: "Internal error"
-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"
-1020: "Signal ignored"
-1021: "Notification ignored"
-1022: "Buffer overflow"
-1023: "Cannot parse record or entry"
-1024: "Out of memory"
-1025: "Not connected"
-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"
-1032: "File is locked"
-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"
-1043: "No changes"
-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"
-1053: "Data Directory"
-1054: "Table Full"
-1055: "Deleted Data"
-1056: "No Such Record"
-1057: "Component already in specified state"
-1058: "Out of range"
-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">
 <soapenv:Body>
  <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>
   </GetServiceStatusList>
  </ns1:GetServiceStatus>
 </soapenv:Body>
</soapenv:Envelope>
 
   
<?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">
 <soapenv:Body>
  <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>
 </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <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 Tftp</item>
      </GetServiceStatusList>
    </ns1:GetServiceStatus>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
  <soapenv:Body>
    <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/">
          <item>
            <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">
            </ReasonCodeString>
            <StartTime xsi:type="xsd:string">Tue Sep 14 14:29:43 2004</StartTime>
            <UpTime xsi:type="xsd:integer">11800</UpTime>
          </item>
        </ServiceInfoList>
      </ServiceInformationResponse>
    </ns1:GetServiceStatusResponse>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
 <soapenv:Body>
  <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/"/>
  </ns1:GetServiceStatus>
 </soapenv:Body>
</soapenv:Envelope>

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">
 <soapenv:Body>
  <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/">
     <item>
      <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>
     </item>
     <item>
      <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>
     </item>
     <item>
      <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>
     </item>
     <item>
      <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>
     </item>
     <item>
      <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>
      <UpTime xsi:type="xsd:integer">186699</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CDP Agent</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>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CDR Agent</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:50:38 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186620</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CTIManager</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CTL Provider</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Unified CM</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 12:43:07 2004</StartTime>
      <UpTime xsi:type="xsd:integer">179871</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Unified CM Admin</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:01 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73677</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Unified Communications Manager Attendant 
Console 
			Server</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Unified CM Personal Directory
		</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:02 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73676</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Unified CM Serviceability< 
			/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:13 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73665</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Unified CM Serviceability RTMT
		</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:03 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73675</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco DRF Local</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1019</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Component is not running</ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Database Layer Monitor</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco DirSync</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Electronic Notification</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Extended Functions</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Extension Mobility</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:12:57 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73681</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Extension Mobility Application 
       </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:12:39 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73699</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco IP Voice Media Streaming App</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 12:30:51 2004</StartTime>
      <UpTime xsi:type="xsd:integer">180607</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Log Partition Monitoring Tool</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:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186698</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Messaging Interface</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1019</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Component is not running</ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco RIS Data Collector</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 16:25:25 2004</StartTime>
      <UpTime xsi:type="xsd:integer">166533</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco RTMT Reporter Servlet</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:12:56 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73682</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco SOAP -Log Collection APIs</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:12:56 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73682</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco SOAP - Performance Monitoring APIs
		</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:12:58 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73680</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco SOAP -Real-Time Service APIs</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:12:59 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73679</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Serviceability Reporter</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:21 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186697</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Syslog Agent</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:21 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186697</UpTime>
     </item>
     <item>
      <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"> </ReasonCodeString>
      <StartTime xsi:type="xsd:string">Mon Dec  6 17:51:20 2004</StartTime>
      <UpTime xsi:type="xsd:integer">161378</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco Tomcat</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:12:35 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73703</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco WebDialer 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:00 2004</StartTime>
      <UpTime xsi:type="xsd:integer">73678</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Host Resources Agent</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:56 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186662</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">MIB2 Agent</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:58 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186660</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Native Agent Adaptor</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:59 2004</StartTime>
      <UpTime xsi:type="xsd:integer">186659</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">SNMP Master Agent</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1019</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Component is not running</ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CAR Scheduler</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1068</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Service Not Activated </ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CAR Web Service</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1068</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Service Not Activated </ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco CDR Repository Manager</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1068</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Service Not Activated </ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
     <item>
      <ServiceName xsi:type="xsd:string">Cisco SOAP - CDRonDemand Service</ServiceName>
      <ServiceStatus xsi:type="ns2:ServiceStatus">Stopped</ServiceStatus>
      <ReasonCode xsi:type="xsd:integer">-1068</ReasonCode>
      <ReasonCodeString xsi:type="xsd:string">Service Not Activated </ReasonCodeString>
      <StartTime xsi:type="xsd:string" xsi:nil="true"/>
      <UpTime xsi:type="xsd:integer">-1</UpTime>
     </item>
    </ServiceInfoList>
   </ServiceInformationResponse>
  </ns1:GetServiceStatusResponse>
 </soapenv:Body>
</soapenv:Envelope>

ControlCenterServicesPort service: soapDoServiceDeployment Operation

The soapDoServiceDeployment operation allows clients to deploy or undeploy a list of services. It returns the services response information for the services that are requested to be deployed or undeployed. You can use this API only to deploy or undeploy a deployable service, a service with the Deployable attribute set to True in the response from getting the static service specification. The API does not allow clients to deploy or undeploy an empty list of services.

This API only activates services the node that is specified by the NodeName element. NodeName must specify the local node.

Request Format

The HTTP header should have following SOAP action and envelop information:

<operation name="soapDoServiceDeployment">
	<soap:operation 
soapAction="http://schemas.cisco.com/ast/soap/action/#ControlCenterServices#soapDoServiceD
eployment"/>
	<input>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</input>
	<output>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</output>
</operation>
 
   

The soapDoServiceDeployment operation takes one array of service names for which their services are either deployed or undeployed:

<soapenv:Body>
    <ns1:DoServiceDeployment 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <DeploymentServiceRequest href="#id0"/>
    </ns1:DoServiceDeployment>
    <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:DeploymentServiceRequest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
      <NodeName xsi:type="xsd:string">172.19.240.61</NodeName>
      <DeployType href="#id1"/>
      <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]">
        <item>service name</item>
      </ServiceList>
    </multiRef>
    <multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:DeployType" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Deploy</multiRef>
  </soapenv:Body>

Response Format

The response contains the performed query information as defined in the previous "Response Format" section.

Fault

Invalid Service: Nonexisting Service

If the request to activate or deactivate a service 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 activating the service "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">
 <soapenv:Body>
  <ns1:DoServiceDeployment 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <DeploymentServiceRequest xsi:type="ns2:DeploymentServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string">172.19.240.99</NodeName>
    <DeployType xsi:type="ns2:DeployType">Deploy</DeployType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
     <item>Cisco WrongService</item>
    </ServiceList>
   </DeploymentServiceRequest>
  </ns1:DoServiceDeployment>
 </soapenv:Body>
</soapenv:Envelope>
 
   
 
   
<?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">
 <soapenv:Body>
  <ns1:DoServiceDeploymentResponse 
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:DoServiceDeploymentResponse>
 </soapenv:Body>
</soapenv:Envelope>

Invalid Service: Nondeployable Service

If the request to activate or deactivate a service is for a nondeployable service, a service with the Deployable attribute set to False in the response for getting the static service specification, such as service "SNMP Master Agent," the ReasonCode -1045 and the ReasonCodeString "Operation not supported" will appear in the response.

The following request and response example applies for activating the service "SNMP Master Agent."

<?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">
 <soapenv:Body>
  <ns1:DoServiceDeployment 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <DeploymentServiceRequest xsi:type="ns2:DeploymentServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string">172.19.240.99</NodeName>
    <DeployType xsi:type="ns2:DeployType">Deploy</DeployType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
     <item>SNMP Master Agent</item>
    </ServiceList>
   </DeploymentServiceRequest>
  </ns1:DoServiceDeployment>
 </soapenv:Body>
</soapenv:Envelope>
 
   
<?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">
 <soapenv:Body>
  <ns1:DoServiceDeploymentResponse 
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">-1045</ReasonCode>
    <ReasonString xsi:type="xsd:string">Operation not supported</ReasonString>
    <ServiceInfoList xsi:type="ns2:ServiceInformation" xsi:nil="true"/>
   </ServiceInformationResponse>
  </ns1:DoServiceDeploymentResponse>
 </soapenv:Body>
</soapenv:Envelope>

Invalid Service: Empty List of Services

If the request to activate or deactivate a service provides an empty list of services, the ReasonCode -1045 and the ReasonCodeString "Operation not supported" will appear in the response.

The following request and response example applies for activating the service without providing any service name:

<?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">
 <soapenv:Body>
  <ns1:DoServiceDeployment 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <DeploymentServiceRequest xsi:type="ns2:DeploymentServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string">172.19.240.99</NodeName>
    <DeployType xsi:type="ns2:DeployType">Deploy</DeployType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[0]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
   </DeploymentServiceRequest>
  </ns1:DoServiceDeployment>
 </soapenv:Body>
</soapenv:Envelope>
 
   
<?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">
 <soapenv:Body>
  <ns1:DoServiceDeploymentResponse 
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">-1045</ReasonCode>
    <ReasonString xsi:type="xsd:string">Operation not supported</ReasonString>
    <ServiceInfoList xsi:type="ns2:ServiceInformation" xsi:nil="true"/>
   </ServiceInformationResponse>
  </ns1:DoServiceDeploymentResponse>
 </soapenv:Body>
</soapenv:Envelope>

Request Example

The request example for deploying "Cisco Tftp" service 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">
  <soapenv:Body>
    <ns1:DoServiceDeployment 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <DeploymentServiceRequest href="#id0"/>
    </ns1:DoServiceDeployment>
    <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:DeploymentServiceRequest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
      <NodeName xsi:type="xsd:string">172.19.240.61</NodeName>
      <DeployType href="#id1"/>
      <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]">
        <item>Cisco Tftp</item>
      </ServiceList>
    </multiRef>
    <multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:DeployType" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Deploy</multiRef>
  </soapenv:Body>
</soapenv:Envelope>

Response Example

The response example for deploying "Cisco Tftp" service 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">
 <soapenv:Body>
  <ns1:DoServiceDeploymentResponse 
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/">
     <item>
      <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"> </ReasonCodeString>
      <StartTime xsi:type="xsd:string">Wed Sep 15 13:59:28 2004</StartTime>
      <UpTime xsi:type="xsd:integer">6</UpTime>
     </item>
    </ServiceInfoList>
   </ServiceInformationResponse>
  </ns1:DoServiceDeploymentResponse>
 </soapenv:Body>
</soapenv:Envelope>

ControlCenterServicesPort service: soapDoControlServices Operation

The soapDoControlServices operation allows clients to start or stop a list of service. It returns the services response information for the services that are requested to get started or stopped. The API does not allow clients to stop the following non-stop services:

A Cisco DB

Cisco Tomcat

The API also does not allow clients to provide an empty list of services when trying to start or stop the services.

Request Format

HTTP header should have following SOAP action and envelop information:

<operation name="soapDoControlServices">
	<soap:operation 
soapAction="http://schemas.cisco.com/ast/soap/action/#ControlCenterServices#soapDoCont
rolServices"/>
	<input>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</input>
	<output>
		<soap:body use="encoded" namespace="http://schemas.cisco.com/ast/soap/" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
	</output>
</operation>
 
   

The soapDoControlServices operation takes one array of service names for which their services are either started or stopped.

<multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:ControlServiceRequest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
      <NodeName xsi:type="xsd:string" xsi:nil="true"/>
      <ControlType href="#id1"/>
      <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]">
        <item>service name</item>
      </ServiceList>
    </multiRef>
    <multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:ControlType" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Start</multiRef>
 
   

Response Format

The response contains the performed query information as defined in the previous "Response Format" section.

Fault

Invalid Service: Nonexisting Service

If the request of start/stop service for an invalid service name, such as a nonexisting service name, the ReasonCode -1010 and the ReasonCodeString "No such service" will be the response. The following request and response example applies for starting the service "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">
 <soapenv:Body>
  <ns1:DoControlServices soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <ControlServiceRequest xsi:type="ns2:ControlServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string" xsi:nil="true"/>
    <ControlType xsi:type="ns2:ControlType">Start</ControlType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
     <item>Cisco WrongService</item>
    </ServiceList>
   </ControlServiceRequest>
  </ns1:DoControlServices>
 </soapenv:Body>
</soapenv:Envelope>
 
   
 
   
<?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">
 <soapenv:Body>
  <ns1:DoControlServicesResponse 
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:DoControlServicesResponse>
 </soapenv:Body>
</soapenv:Envelope>

Invalid Service: Nonstop Service

If the request of stop service for a nonstop service, such as service "Cisco Tomcat", the ReasonCode -1045 and the ReasonCodeString "Operation not supported" will be the response. The following request and response example applies for stopping the service "Cisco Tomcat."

<?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">
 <soapenv:Body>
  <ns1:DoControlServices soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <ControlServiceRequest xsi:type="ns2:ControlServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string" xsi:nil="true"/>
    <ControlType xsi:type="ns2:ControlType">Stop</ControlType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
     <item>Cisco Tomcat</item>
    </ServiceList>
   </ControlServiceRequest>
  </ns1:DoControlServices>
 </soapenv:Body>
</soapenv:Envelope>
 
   
<?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">
 <soapenv:Body>
  <ns1:DoControlServicesResponse 
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">-1045</ReasonCode>
    <ReasonString xsi:type="xsd:string">Operation not supported</ReasonString>
    <ServiceInfoList xsi:type="ns2:ServiceInformation" xsi:nil="true"/>
   </ServiceInformationResponse>
  </ns1:DoControlServicesResponse>
 </soapenv:Body>
</soapenv:Envelope>

Invalid Service: Empty List of Services

If the request of start or stop service is with an empty list of services, the ReasonCode -1045 and the ReasonCodeString "Operation not supported" will be the response. The following request and response example applies for stopping the service without providing any service name.

<?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">
 <soapenv:Body>
  <ns1:DoControlServices soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
   <ControlServiceRequest xsi:type="ns2:ControlServiceRequest" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
    <NodeName xsi:type="xsd:string" xsi:nil="true"/>
    <ControlType xsi:type="ns2:ControlType">Stop</ControlType>
    <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[0]" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
   </ControlServiceRequest>
  </ns1:DoControlServices>
 </soapenv:Body>
</soapenv:Envelope>
 
   
<?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">
 <soapenv:Body>
  <ns1:DoControlServicesResponse 
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">-1045</ReasonCode>
    <ReasonString xsi:type="xsd:string">Operation not supported</ReasonString>
    <ServiceInfoList xsi:type="ns2:ServiceInformation" xsi:nil="true"/>
   </ServiceInformationResponse>
  </ns1:DoControlServicesResponse>
 </soapenv:Body>
</soapenv:Envelope>

Invalid Service: Service with Stopping Status

If the request is to stop a service, and the service status is Stopping, the ReasonCode -1045 and the ReasonCodeString "Operation not supported" will be the response. The request and response example appears very similar to the preceding example.

Request Example

The request example for starting "Cisco Tftp" service is:

<?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">
  <soapenv:Body>
    <ns1:DoControlServices 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <ControlServiceRequest href="#id0"/>
    </ns1:DoControlServices>
    <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:ControlServiceRequest" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
      <NodeName xsi:type="xsd:string" xsi:nil="true"/>
      <ControlType href="#id1"/>
      <ServiceList xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[1]">
        <item>Cisco Tftp</item>
      </ServiceList>
    </multiRef>
    <multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns3:ControlType" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Start</multiRef>
  </soapenv:Body>
</soapenv:Envelope>
 
   

Response Example

The response example for starting "Cisco Tftp" service 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">
  <soapenv:Body>
    <ns1:DoControlServicesResponse 
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/">
          <item>
            <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">
            </ReasonCodeString>
            <StartTime xsi:type="xsd:string">Tue Sep 14 19:36:08 2004</StartTime>
            <UpTime xsi:type="xsd:integer">6</UpTime>
          </item>
        </ServiceInfoList>
      </ServiceInformationResponse>
    </ns1:DoControlServicesResponse>
  </soapenv:Body>
</soapenv:Envelope>

ControlCenterServicesPort service: getProductInformationList Operation

The getProductInformationList operation provides information about the products that are installed on a given server. This information includes:

Active Server Version

Primary Node name

SecondaryNode name (if any)

Array Of Installed Products

Each installed product provides the following information:

ProductName

Product Version

Product Description

Product ID

Short Name for the product

Array Of Product Service Specification

Each Product Service Specification provides the following information:

Service Name

Service Type

Deployable value

GroupName

ProductID

Array of DependentServices (if any).

For each server in the cluster, clients are expected to send one request to get all this information. The system requires clients to send this request only once during initialization.

Request Format

<?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">
  <soapenv:Body>
    <ns1:GetProductInformationList 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <ServiceInformationResponse 
xsi:type="xsd:string">getProduct</ServiceInformationResponse>
    </ns1:GetProductInformationList>
  </soapenv:Body>
</soapenv:Envelope>

Response Format

<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">
  <soapenv:Body>
    <ns1:GetProductInformationListResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <GetProductInformationListResponse xsi:type="ns2:GetProductInformationListResponse" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
        <ActiveServerVersion xsi:type="xsd:string">6.0.0.9381-5</ActiveServerVersion>
        <PrimaryNode xsi:type="xsd:string">irv3-ccm4</PrimaryNode>
        <SecondaryNode xsi:type="xsd:string">
        </SecondaryNode>
        <Products soapenc:arrayType="ns2:InstalledProduct[3]" xsi:type="soapenc:Array" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <item xsi:type="ns2:InstalledProduct">
            <ProductName xsi:type="xsd:string">Cisco Unified CallManager</ProductName>
            <ProductVersion xsi:type="xsd:string">6.0.0.9381-5</ProductVersion>
            <ProductDescription xsi:type="xsd:string">CallManager temporary 
description</ProductDescription>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <ShortName xsi:type="xsd:string">CCM</ShortName>
          </item>
          <item xsi:type="ns2:InstalledProduct">
            <ProductName xsi:type="xsd:string">Cisco Unity Connection</ProductName>
            <ProductVersion xsi:type="xsd:string">6.0.0.9381-5</ProductVersion>
            <ProductDescription xsi:type="xsd:string">Unity Connection temporary 
description</ProductDescription>
            <ProductID xsi:type="xsd:string">UnityConnection</ProductID>
            <ShortName xsi:type="xsd:string">CUC</ShortName>
          </item>
          <item xsi:type="ns2:InstalledProduct">
            <ProductName xsi:type="xsd:string">Common Services</ProductName>
            <ProductVersion xsi:type="xsd:string">6.0.0.9381-5</ProductVersion>
            <ProductDescription xsi:type="xsd:string">Common Services for all 
Products</ProductDescription>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <ShortName xsi:type="xsd:string">SYS</ShortName>
          </item>
        </Products>
        <Services soapenc:arrayType="ns2:ProductServiceSpecification[58]" 
xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Tftp</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
        ..
        ..
         </Services>
      </GetProductInformationListResponse>
    </ns1:GetProductInformationListResponse>
  </soapenv:Body>
</soapenv:Envelope>

Fault

The system issues a standard SOAP fault in the event of a failure.

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">
  <soapenv:Body>
    <ns1:GetProductInformationList 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <ServiceInformationResponse xsi:type="xsd:string">test</ServiceInformationResponse>
    </ns1:GetProductInformationList>
</soapenv:Body>
</soapenv:Envelope>
 
   

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">
  <soapenv:Body>
    <ns1:GetProductInformationListResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <GetProductInformationListResponse xsi:type="ns2:GetProductInformationListResponse" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/ControlCenterServices/">
        <ActiveServerVersion xsi:type="xsd:string">7.0.0.39700-8</ActiveServerVersion>
        <PrimaryNode xsi:type="xsd:string">CISCART15</PrimaryNode>
        <SecondaryNode xsi:type="xsd:string">
        </SecondaryNode>
        <Products soapenc:arrayType="ns2:InstalledProduct[2]" xsi:type="soapenc:Array" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <item xsi:type="ns2:InstalledProduct">
            <ProductName xsi:type="xsd:string">Cisco Unified Communications 
Manager</ProductName>
            <ProductVersion xsi:type="xsd:string">7.0.0.39700-8</ProductVersion>
            <ProductDescription xsi:type="xsd:string">Stand Alone Cisco Unified 
Communications Manager</ProductDescription>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <ShortName xsi:type="xsd:string">CCM</ShortName>
          </item>
          <item xsi:type="ns2:InstalledProduct">
            <ProductName xsi:type="xsd:string">Common Services</ProductName>
            <ProductVersion xsi:type="xsd:string">7.0.0.39700-8</ProductVersion>
            <ProductDescription xsi:type="xsd:string">Common Services for all 
Products</ProductDescription>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <ShortName xsi:type="xsd:string">SYS</ShortName>
          </item>
        </Products>
        <Services soapenc:arrayType="ns2:ProductServiceSpecification[58]" 
xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <item xsi:type="ns2:ProductServiceSpecification">
            <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>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <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>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco DirSync</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Directory Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Tftp</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Messaging Interface</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Unified Mobile Voice Access 
Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco IP Voice Media Streaming 
App</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CTIManager</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco CallManager</item>
            </DependentServices>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager Attendant Console 
Server</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CTI Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Extension Mobility</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco IP Manager Assistant</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CTI Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco SOAP - CDRonDemand 
Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CDR Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CTL Provider</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Security Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Extended Functions</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Voice Quality Reporter Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco WebDialer Web Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CTI Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Certificate Authority Proxy 
Function</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Security Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CAR Web Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CDR Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager SNMP 
Service</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>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Bulk Provisioning 
Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Database and Admin Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Dialed Number Analyzer</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco DHCP Monitor Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco Database Layer Monitor</item>
            </DependentServices>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco TAPS Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">true</Deployable>
            <GroupName xsi:type="xsd:string">Database and Admin Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager Serviceability 
RTMT</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco DRF Master</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Backup and Restore Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager 
Serviceability</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">System Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">A Cisco DB</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">A Cisco DB Replicator</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Tomcat</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">SNMP Master Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Database Layer Monitor</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">DB Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">MIB2 Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Host Resources Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Native Agent Adapter</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">System Application Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CDP Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Syslog Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco RTMT Reporter Servlet</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Log Partition Monitoring 
Tool</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco Database Layer Monitor</item>
            </DependentServices>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CDP</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">System Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">SOAP -Real-Time Service APIs</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">SOAP Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">SOAP -Performance Monitoring 
APIs</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">SOAP Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">SOAP -Log Collection APIs</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">SOAP Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco DRF Local</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Backup and Restore Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Certificate Expiry 
Monitor</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Trace Collection 
Servlet</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">System Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Trace Collection 
Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">System Services</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Tomcat Stats Servlet</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco RIS Data Collector</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco AMC Service</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Performance and Monitoring</GroupName>
            <ProductID xsi:type="xsd:string">Common</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager Personal 
Directory</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CDR Repository Manager</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CDR Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[2]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco Database Layer Monitor</item>
              <item xsi:type="xsd:string">A Cisco DB</item>
            </DependentServices>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager Admin</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Admin Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco License Manager</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">Platform Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CDR Agent</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CDR Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[2]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco Database Layer Monitor</item>
              <item xsi:type="xsd:string">A Cisco DB</item>
            </DependentServices>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco Extension Mobility 
Application</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CallManager Cisco IP Phone 
Services</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Servlet</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CM Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices xsi:type="xsd:string" xsi:nil="true"/>
          </item>
          <item xsi:type="ns2:ProductServiceSpecification">
            <ServiceName xsi:type="xsd:string">Cisco CAR Scheduler</ServiceName>
            <ServiceType xsi:type="ns2:ServiceTypes">Service</ServiceType>
            <Deployable xsi:type="xsd:boolean">false</Deployable>
            <GroupName xsi:type="xsd:string">CDR Services</GroupName>
            <ProductID xsi:type="xsd:string">CallManager</ProductID>
            <DependentServices soapenc:arrayType="xsd:string[2]" xsi:type="soapenc:Array">
              <item xsi:type="xsd:string">Cisco Database Layer Monitor</item>
              <item xsi:type="xsd:string">A Cisco DB</item>
            </DependentServices>
          </item>
        </Services>
      </GetProductInformationListResponse>
    </ns1:GetProductInformationListResponse>
  </soapenv:Body>
</soapenv:Envelope>

LogCollectionPort SOAP Service

This section describes the operations for the LogCollectionPort service, which provides operations for searching for and collecting log files for a set of services.

Table 4-7 provides a summary of the SOAP LogCollectionPort service operations.

Table 4-7 SOAP LogCollectionPort Service Operations 

Operation
Description
Reference

listNodeServiceLogs

Returns the location of their log files for each service

LogCollectionPort service: listNodeServiceLogs Operation

selectLogFiles

Takes FileSelectionCriteria object as an input parameter and returns the file names and location for that object

LogCollectionPort Service: selectLogFiles Operation


LogCollectionPort service: listNodeServiceLogs Operation

The listNodeServiceLogs operation returns the location of their log files for each service. This information includes the node names in the cluster and the lists of service names and system log names.

Request Format

The input is a dummy ListRequest Handle.

<?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"> 
 <soapenv:Body> 
  <ns1:ListNodeServiceLogs 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"> 
   <ListRequest href="#id0"/> 
  </ns1:ListNodeServiceLogs> 
  <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:ListRequest" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/LogCollection/">handle</multiRef> 
 </soapenv:Body> 
</soapenv:Envelope>

Response Format

The response is an array of NodeServiceLogList.

message="impl:listNodeServiceLogsResponse" name="listNodeServiceLogsResponse" />
String name;
String[] serviceLog;
String[] systemlog;
 
   
<?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"> 
 <soapenv:Body> 
  <ns1:ListNodeServiceLogsResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"> 
   <ListNodeServiceLogs xsi:type="soapenc:Array" 
soapenc:arrayType="ns2:NodeServiceLogList[2]" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
    <item> 
     <name xsi:type="xsd:string">172.19.240.92</name> 
     <ServiceLog xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[40]"> 
      <item>Cisco Syslog Agent</item> 
      <item>Cisco Unified CM SNMP Service</item> 
      <item>Cisco CDP Agent</item> 
      <item>Cisco CDP</item> 
      <item>Cisco Log Partition Monitoring Tool</item> 
      <item>Cisco RIS Data Collector</item> 
      <item>Cisco AMC Service</item> 
      <item>Cisco Serviceability Reporter</item> 
      <item>Cisco Unified CM Admin Web Service</item> 
      <item>Cisco Unified CM Realm Web Service</item> 
      <item>Cisco Unified CM Service Web Service</item> 
      <item>Cisco SOAP Web Service</item> 
      <item>Cisco RTMT Web Service</item> 
      <item>Cisco CAR Web Service</item> 
      <item>Cisco Unified CM PD Web Service</item> 
      <item>Cisco Unified CM DBL Web Library</item> 
      <item>Cisco Unified CM NCS Web Library</item> 
      <item>Unified CM</item> 
      <item>Cisco Unified IP Phone Services</item> 
      <item>Cisco AXL Web Service</item> 
      <item>Cisco WebDialer Web Service</item> 
      <item>Cisco WebDialerRedirector Web Service</item> 
      <item>Cisco Ccmuser Web Service</item> 
      <item>Cisco Extended Functions</item> 
      <item>Cisco CDR Repository Manager</item> 
      <item>Cisco CDR Agent</item> 
      <item>Cisco CAPF</item> 
      <item>Cisco CTLProvider</item> 
      <item>Unified CM</item> 
      <item>Cisco DirSync</item> 
      <item>Cisco CTIManager</item> 
      <item>Cisco TFTP</item> 
      <item>Cisco Ip Voice Media Streaming App</item> 
      <item>CMI</item> 
      <item>Cisco Database Layer Monitor</item> 
      <item>Cisco Car Scheduler</item> 
      <item>Cisco Ipma Services</item> 
      <item>Cisco Extension Mobility</item> 
      <item>Database Layer (DBL) Logs</item> 
      <item>Prog Logs</item> 
      <item>SQL DBMS Logs</item> 
     </ServiceLog> 
     <Systemlog xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[5]"> 
      <item>Event Viewer-Application Log</item> 
      <item>Install Logs</item> 
      <item>Event Viewer-System Log</item> 
      <item>Security Logs</item> 
      <item>Cisco Tomcat</item> 
     </Systemlog> 
   </ListNodeServiceLogs> 
  </ns1:ListNodeServiceLogsResponse> 
 </soapenv:Body> 
</soapenv:Envelope>

Fault

If the database is not up and running or no node exists in the database, it will return a remote exception, "Query selectAllProcessNodes failed."

If no service list or syslog list is returned from the preferences, the system returns a remote exception: "No service found" or "No System Log found."

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"> 
 <soapenv:Body> 
  <ns1:ListNodeServiceLogsResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"> 
   <ListNodeServiceLogs xsi:type="soapenc:Array" 
soapenc:arrayType="ns2:NodeServiceLogList[2]" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
    <item> 
     <name xsi:type="xsd:string">172.19.240.92</name> 
     <ServiceLog xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[40]"> 
      <item>Cisco Syslog Agent</item> 
      <item>Cisco Unified CM SNMP Service</item> 
      <item>Cisco CDP Agent</item> 
      <item>Cisco CDP</item> 
      <item>Cisco Log Partition Monitoring Tool</item> 
      <item>Cisco RIS Data Collector</item> 
      <item>Cisco AMC Service</item> 
      <item>Cisco Serviceability Reporter</item> 
      <item>Cisco Unified CM Admin Web Service</item> 
      <item>Cisco Unified CM Realm Web Service</item> 
      <item>Cisco Unified CM Service Web Service</item> 
      <item>Cisco SOAP Web Service</item> 
      <item>Cisco RTMT Web Service</item> 
      <item>Cisco CAR Web Service</item> 
      <item>Cisco Unified CM PD Web Service</item> 
      <item>Cisco Unified CM DBL Web Library</item> 
      <item>Cisco Unified CM NCS Web Library</item> 
      <item>Unified CM Cisco Unified IP Phone Services</item> 
      <item>Cisco AXL Web Service</item> 
      <item>Cisco WebDialer Web Service</item> 
      <item>Cisco WebDialerRedirector Web Service</item> 
      <item>Cisco Ccmuser Web Service</item> 
      <item>Cisco Extended Functions</item> 
      <item>Cisco CDR Repository Manager</item> 
      <item>Cisco CDR Agent</item> 
      <item>Cisco CAPF</item> 
      <item>Cisco CTLProvider</item> 
      <item>Unified CM</item> 
      <item>Cisco DirSync</item> 
      <item>Cisco CTIManager</item> 
      <item>Cisco TFTP</item> 
      <item>Cisco Ip Voice Media Streaming App</item> 
      <item>CMI</item> 
      <item>Cisco Database Layer Monitor</item> 
      <item>Cisco Car Scheduler</item> 
      <item>Cisco Ipma Services</item> 
      <item>Cisco Extension Mobility</item> 
      <item>Database Layer (DBL) Logs</item> 
      <item>Prog Logs</item> 
      <item>SQL DBMS Logs</item> 
     </ServiceLog> 
     <Systemlog xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[5]"> 
      <item>Event Viewer-Application Log</item> 
      <item>Install Logs</item> 
      <item>Event Viewer-System Log</item> 
      <item>Security Logs</item> 
      <item>Cisco Tomcat</item> 
     </Systemlog> 
   </ListNodeServiceLogs> 
  </ns1:ListNodeServiceLogsResponse> 
 </soapenv:Body> 
</soapenv:Envelope>

LogCollectionPort Service: selectLogFiles Operation

Description

The selectLogFiles operation retrieves log files based on a selection criteria. This API takes FileSelectionCriteria object as an input parameter and returns the file name and location for that object.

The LogCollectionService URL is http://hostname/logcollectionservice/services/LogCollectionPort

Parameters

The selectLogFiles operation includes the following elements:

ServiceLogs—Array of strings. The available service options depends on the services that are activated on the Cisco Unified CM. The actual available options are as those returned by the listNodeServiceLogs operation at run time. For example:

Cisco Syslog Agent

Cisco Unified CM SNMP Service

Cisco CDP Agent

SystemLogs—Array of strings.


Note SystemLogs element is not available in Cisco Unified CM release 7.1.3, and therefore should be empty.


JobType—The collection type. The available options are:

DownloadtoClient

PushtoSFTPServer

If you select PushtoSFTPServer, then the following elements are also required:

IPAddress

UserName

Password

Port

Remote Download Folder

SearchStr—A non-null string.

Frequency—The frequency of log collection. The available options are:

OnDemand

Daily

Weekly

Monthly


Note Only OnDemand option is currently supported for Frequency element. The other options (Daily, Weekly, and Monthly) are applicable for schedule collection that is currently not supported.


ToDate—The end date for file collection. Format is mm/yy/dd hh:mm AM/PM. The ToDate element is required if you use absolute time range.
File collection time range can be absoulte or relative. If you prefer relative time range, then the following elements are required:

RelText

RelTime

If you prefer absolute time range, then the following elements are required:

ToDate

FromDate

FromDate—The start date for file collection. Format is mm/yy/dd hh:mm AM/PM. The FromDate element is required if you use absolute time range.

RelText—The file collection time range. The available options are:

Week

Day

Month

Hours

Minutes

RelTime—The file collection time value. Gives all files from the specified time up to present. The available range is 1 to 100.
For example, if the RelText is "Day" and RelTime is 1, then we get all files modified in the previous one day.

TimeZone—The time zone value. The format is Client: (GMT ±n) Name of the time zone
where, n is the offset time of the specified time zone and GMT. For example:

Client: (GMT-0:0) Greenwich Mean Time

Client: (GMT-8:0) Pacific Standard Time

Port—The port number of the node.

IPAddress—The IP address of the node.

UserName—The service administrator username for the node.

Password—The service administrator password for the node.

ZipInfo—Indicates whether to compress the files during collection. This element is applicable only for PushtoSFTPServer option. The avilable options are:

True—The files are compressed.

False—The files are not compressed.

RemoteFolder—The remote folder where the files are to be uploaded. This option is used only if you choose to upload trace files to SFTP or FTP server.

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"> 
 <soapenv:Body> 
  <ns1:SelectLogFiles soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/"> 
   <FileSelectionCriteria href="#id0"/> 
  </ns1:SelectLogFiles> 
  <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:SchemaFileSelectionCriteria" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/LogCollection/"> 
   <ServiceLogs xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[45]"> 
    <item>Cisco Syslog Agent</item> 
    <item>Event Viewer-Application Log</item> 
    <item>Install Logs</item> 
    <item>Event Viewer-System Log</item> 
    <item>Security Logs</item> 
   </ServiceLogs> 

<SystemLogs xsi:type="xsd:string" xsi:nil="true"/>

   <JobType href="#id2"/> 
   <SearchStr xsi:type="xsd:string"/>
   <Frequency href="#id1"/> 
   <ToDate xsi:type="xsd:string" xsi:nil="true"/> 
   <FromDate xsi:type="xsd:string" xsi:nil="true"/> 
   <TimeZone xsi:type="xsd:string">Client:(GMT-8:0)Pacific Standard Time</TimeZone> 
   <RelText href="#id3"/> 
   <RelTime xsi:type="xsd:byte">5</RelTime> 
   <Port xsi:type="xsd:byte">0</Port> 
   <IPAddress xsi:type="xsd:string">MCS-SD4</IPAddress> 
   <UserName xsi:type="xsd:string" xsi:nil="true"/> 
   <Password xsi:type="xsd:string" xsi:nil="true"/> 
   <ZipInfo xsi:type="xsd:boolean">false</ZipInfo> 
  </multiRef> 
    <multiRef id="id1" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:Frequency" 
xmlns:ns4="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">OnDemand</multiRef>
    <multiRef id="id2" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:JobType" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">DownloadtoClient</multiRef>
    <multiRef id="id3" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:RelText" 
xmlns:ns4="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">Hours</multiRef>
 </soapenv:Body> 
</soapenv:Envelope>

Response Example

The response returns a FileSelectionResult object, which contains the list of matching file names and their location in the server.

<?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">
<soapenv:Body>
<ns1:SelectLogFilesResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<FileSelectionResult xsi:type="ns2:SchemaFileSelectionResult" 
xmlns:ns2="http://cisco.com/ccm/serviceability/soap/LogCollection/">
<Node xsi:type="ns2:Node">
<name xsi:type="xsd:string">MCS-SD4</name>
<ServiceList soapenc:arrayType="ns2:ServiceLogs[1]" xsi:type="soapenc:Array" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns2:ServiceLogs">
<name xsi:type="xsd:string" xsi:nil="true"/>
<SetOfFiles soapenc:arrayType="ns2:file[5]" xsi:type="soapenc:Array">
<item xsi:type="ns2:file">
<name xsi:type="xsd:string">syslogmib00000305.txt</name>
<absolutepath 
xsi:type="xsd:string">/var/log/active/cm/trace/syslogmib/sdi/syslogmib00000305.txt</absolu
tepath>
<filesize xsi:type="xsd:string">2097082</filesize>
<modifiedDate xsi:type="xsd:string">Thu Jan 29 04:14:05 PST 2009</modifiedDate>
</item>
<item xsi:type="ns2:file">
<name xsi:type="xsd:string">syslogmib00000306.txt</name>
<absolutepath 
xsi:type="xsd:string">/var/log/active/cm/trace/syslogmib/sdi/syslogmib00000306.txt</absolu
tepath>
<filesize xsi:type="xsd:string">2097083</filesize>
<modifiedDate xsi:type="xsd:string">Thu Jan 29 05:41:26 PST 2009</modifiedDate>
</item>
<item xsi:type="ns2:file">
<name xsi:type="xsd:string">syslogmib00000307.txt</name>
<absolutepath 
xsi:type="xsd:string">/var/log/active/cm/trace/syslogmib/sdi/syslogmib00000307.txt</absolu
tepath>
<filesize xsi:type="xsd:string">2096868</filesize>
<modifiedDate xsi:type="xsd:string">Thu Jan 29 07:08:56 PST 2009</modifiedDate>
</item>
<item xsi:type="ns2:file">
<name xsi:type="xsd:string">syslogmib00000308.txt</name>
<absolutepath 
xsi:type="xsd:string">/var/log/active/cm/trace/syslogmib/sdi/syslogmib00000308.txt</absolu
tepath>
<filesize xsi:type="xsd:string">2096838</filesize>
<modifiedDate xsi:type="xsd:string">Thu Jan 29 08:36:17 PST 2009</modifiedDate>
</item>
<item xsi:type="ns2:file">
<name xsi:type="xsd:string">syslogmib00000309.txt</name>
<absolutepath 
xsi:type="xsd:string">/var/log/active/cm/trace/syslogmib/sdi/syslogmib00000309.txt</absolu
tepath>
<filesize xsi:type="xsd:string">100657</filesize>
<modifiedDate xsi:type="xsd:string">Thu Jan 29 08:40:20 PST 2009</modifiedDate>
</item>
</SetOfFiles>
</item>
</ServiceList>
</Node>
</FileSelectionResult>
<ScheduleList soapenc:arrayType="ns3:Schedule[0]" xsi:type="soapenc:Array" 
xmlns:ns3="http://cisco.com/ccm/serviceability/soap/LogCollection/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"/>
</ns1:SelectLogFilesResponse>
</soapenv:Body>
</soapenv:Envelope>

Fault

If the specified frequency is null, it will throw a remote exception, "LogCollection frequency is null." If the array of ServiceLogs and System Logs is null, it throws a remote exception, "No Service/Syslog are provided for the collection." If a matching file is not found, it throws a remote exception, "The File Vector from the server is null."

CDRonDemand SOAP Service

The CDRonDemand SOAP service comprises a public SOAP/HTTPS interface that is exposed to third-party billing applications or customers to allow them to query the Unified CM CDR Repository Node to retrieve CDR/CMR files on demand through the use of two new API calls, get_file_list and get_file.

In previous releases, the CDR database stored CDR records, and third-party applications could query the database directly for the CDR records. In this release, CDRs no longer get stored in the CDR database, but as flat files.

The CDR On-Demand Service allows applications to obtain CDR files in a two-step process. First, the application requests CDR file lists based on a specific time interval; then, it can request specific CDR files from those lists that are returned via as (s)FTP session.

The billing application can acquire a list of CDR files that match a specified time interval (get_file_list), with the maximum time span being 1 hour. If the application needs to retrieve CDR files that span an interval over 1 hour, multiple get_file_list requests must be made to the servlet.

After the list of files is retrieved, the third-party application can then request a specific file (get_file). Upon receiving the request, the servlet initiates a (s)FTP session and sends the requested file to the application. Only one file per request is allowed, to avoid timeouts and other potential complications.

The CDR Repository node normally transfers CDR files to the billing servers once on a preconfigured schedule, then deletes them per the Unified CM configuration and other criteria. If for some reason the billing servers do not receive the CDR files, or want to have them sent again, they can do so using the SOAP/HTTPS CDR On-Demand APIs. After CDR files are deleted, you cannot retrieve them.

The CDR On-Demand Service provides the following features:

API to get a list of files that match a specified time interval (get_file_list)

API to request a specific file that matches a specified filename (get_file)

Limit of 1300 file names get returned from the get_file_list API

Specified time range cannot span over 1 hour

Service not available during CDR repository file maintenance window

CDR files are sent via standard FTP or (s)FTP, which is user configurable

API to request specific file (get_file) can return only one file per request

Servlet needs to be activated through Service Activation Page

Before an application can access the CDR files, you must follow these steps to ensure that the SOAP APIs are activated from the Service Activation window on the CDR Repository Node where the CDR Repository Manager is activated:


Step 1 Go to http://<IP Address of Unified CM node>:8080/ccmservice

Step 2 Choose Tools > Service Activation.

Step 3 Select the server where the CDR Repository Manager resides.

Step 4 Under the CDR Services section, start the following services:

Cisco SOAP - CDRonDemandService

CDR Repository Manager

The CDR On-Demand Service depends on the CDR Repository Manager, so both must be activated.

Step 5 Click Update and wait until the page refreshes.


Table 4-8 provides a summary of the SOAP CDRonDemand service operations.

Table 4-8 SOAP CDRonDemandService Operations 

Operation
Description
Reference

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

CDRonDemand Service: get_file_list Operation

get_file

Allows customers to request a specific CDR file that matches the specified filename

CDRonDemand Service: get_file Operation



Tip The On-Demand Service will not function during the maintenance window, which occurs every hour by default (this setting is configurable). The maintenance window generally runs from 10 seconds to a few minutes. Applications should submit requests outside of the maintenance window.


WSDL Definition

The following section provides the WSDL definition of the SOAP CDRonDemand serviece APIs:

<?xml version="1.0" encoding="UTF-8" ?> 
<wsdl:definitions targetNamespace="http://schemas.cisco.com/ast/soap/" 
xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://schemas.cisco.com/ast/soap/" 
xmlns:intf="http://schemas.cisco.com/ast/soap/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<!-- 
WSDL created by Apache Axis version: 1.2RC3
Built on Feb 28, 2005 (10:15:14 EST)
--> 
<wsdl:types> 
	<schema targetNamespace="http://schemas.cisco.com/ast/soap/" 
xmlns="http://www.w3.org/2001/XMLSchema"> 
		<import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
		<complexType name="ArrayOfFileName"> 
                	<sequence>
				<element name="FileName" type="xsd:string" minOccurs="0" 
maxOccurs="unbounded"/>
			</sequence>
		</complexType> 
	</schema> 
</wsdl:types> 
 
   
<wsdl:message name="get_fileResponse" /> 
 
   
<wsdl:message name="get_file_listResponse"> 
	<wsdl:part name="get_file_listReturn" type="impl:ArrayOfFileName" /> 
</wsdl:message> 
 
   
<wsdl:message name="get_file_listRequest"> 
	<wsdl:part name="in0" type="xsd:string" /> 
	<wsdl:part name="in1" type="xsd:string" /> 
	<wsdl:part name="in2" type="xsd:boolean" /> 
</wsdl:message> 
 
   
<wsdl:message name="get_fileRequest"> 
	<wsdl:part name="in0" type="xsd:string" /> 
	<wsdl:part name="in1" type="xsd:string" /> 
	<wsdl:part name="in2" type="xsd:string" /> 
	<wsdl:part name="in3" type="xsd:string" /> 
	<wsdl:part name="in4" type="xsd:string" /> 
	<wsdl:part name="in5" type="xsd:boolean" /> 
</wsdl:message> 
 
   
<wsdl:portType name="CDRonDemand"> 
	<wsdl:operation name="get_file_list" parameterOrder="in0 in1 in2"> 
		<wsdl:input message="impl:get_file_listRequest" name="get_file_listRequest" /> 
		<wsdl:output message="impl:get_file_listResponse" name="get_file_listResponse" /> 
	</wsdl:operation> 
	<wsdl:operation name="get_file" parameterOrder="in0 in1 in2 in3 in4 in5"> 
		<wsdl:input message="impl:get_fileRequest" name="get_fileRequest" /> 
		<wsdl:output message="impl:get_fileResponse" name="get_fileResponse" /> 
	</wsdl:operation> 
</wsdl:portType> 
 
   
<wsdl:binding name="CDRonDemandSoapBinding" type="impl:CDRonDemand"> 
	<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
	<wsdl:operation name="get_file_list"> 
		<wsdlsoap:operation 
soapAction="http://schemas.cisco.com/ast/soap/action/#CDRonDemand#get_file_list" /> 
		<wsdl:input name="get_file_listRequest"> 
				<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" /> 
		</wsdl:input> 
		<wsdl:output name="get_file_listResponse"> 
				<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" /> 
		</wsdl:output> 
	</wsdl:operation> 
 
   
	<wsdl:operation name="get_file"> 
		<wsdlsoap:operation 
soapAction="http://schemas.cisco.com/ast/soap/action/#CDRonDemand#get_file" /> 
		<wsdl:input name="get_fileRequest"> 
			<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="urn:CDRonDemand" use="encoded" /> 
		</wsdl:input> 
		<wsdl:output name="get_fileResponse"> 
			<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://schemas.cisco.com/ast/soap/" use="encoded" /> 
		</wsdl:output> 
	</wsdl:operation> 
</wsdl:binding> 
 
   
<wsdl:service name="CDRonDemandService"> 
	<wsdl:port binding="impl:CDRonDemandSoapBinding" name="CDRonDemand"> 
		<wsdlsoap:address 
location="https://SERVERNAME/CDRonDemandService/services/CDRonDemand" /> 
	</wsdl:port> 
</wsdl:service> 
</wsdl:definitions>
 
   

Security Considerations for CDRonDemand Service

You can use standard FTP or SFTP to deliver the CDR files. Refer to RFC959 and RFC2228 for further details about these applications.

The CDR On-Demand Service will create either a standard FTP or SFTP session with the billing server each time that a CDR file is to be sent. Exceptions get thrown whenever an error occurs on the Servlet side. In addition, all errors will get written into log files.

On the billing application side, Cisco recommends that billing applications implement code to catch these exceptions and display the exception string for detailed error conditions.

CDRonDemand Service: get_file_list Operation

The get_file_list operation allows an application to query the CDR Repository Node for a list of all the files that match a specified time interval. The time interval of the request cannot exceed one hour. If you want a list of files that span more than the one hour time interval that is allowed, you must make multiple requests to the servlet to acquire multiple lists of filenames.

The get_file_list API returns an array of strings that contain the list of all the filenames that match the specified time interval. If no filenames exist that match the time range, the value that is returned from the API call is simply null. If any time errors are encountered, exceptions get thrown. In addition, logs will be kept detailing the errors. Find these log files in the /var/log/active/tomcat/logs/soap/log4j directory.

A limit of 1300 file names can be returned to the application as a result of a get_file_list API call. If the file list that is returned contains 1300 file names, but does not span the entire requested time interval, you should make additional requests with the start time of the subsequent requests as the time of the last file name that was returned in the previous request.

Parameters

The get_file_list API expects the following parameters:

Start Time—Mandatory parameter that specifies the starting time for the search interval. The format is a string: YYYYMMDDHHMM. No default value exists.

End Time—Mandatory parameter that specifies the ending time for the search interval. The format is a string: YYYYMMDDHHMM. No default value exists.


Note The time span between Start Time and End Time must constitute a valid interval, but be not longer than 1 hour.


Where to get the files from— Mandatory parameter that tells the servlet whether to include those files that were successfully sent to the third-party billing servers. The format is boolean.

True = Include both files that were sent successfully and files that failed to be sent.

False = Send only the files that failed to be sent. Do not include files that were sent successfully.

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">
  <soapenv:Body>
    <ns1:get_file_list soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <in0 xsi:type="xsd:string">200511161000</in0>
      <in1 xsi:type="xsd:string">200511161059</in1>
      <in2 href="#id0"/>
    </ns1:get_file_list>
    <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:boolean" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">true</multiRef>
  </soapenv:Body>
</soapenv:Envelope>
 
   

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">
  <soapenv:Body>
    <ns1:get_file_listResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://schemas.cisco.com/ast/soap/">
      <get_file_listReturn xsi:type="ns1:ArrayOfFileName">
        <FileName 
xsi:type="xsd:string">cdr_StandAloneCluster_01_200807081000_50</FileName>
        <FileName 
xsi:type="xsd:string">cdr_StandAloneCluster_01_200807081001_51</FileName>
        <FileName 
xsi:type="xsd:string">cdr_StandAloneCluster_01_200807081002_52</FileName>
      </get_file_listReturn>
    </ns1:get_file_listResponse>
  </soapenv:Body>
</soapenv:Envelope>

CDRonDemand Service: get_file Operation

The get_file operation allows customers to request a specific CDR file that matches the specified filename. The resulting CDR file then gets sent to the customer via standard FTP or secure FTP, depending on the third-party billing application preference. The only constraint provides that the servlet can only process one file per request.

The get_file API returns normally with no value to indicate that the file has been successfully sent to the third-party billing server. If the transfer fails for any reason, exceptions get thrown. In addition, logs detailing the errors get saved in the /var/log/active/tomcat/logs/soap/log4j directory.

Parameters

The get_file API expects the following parameters:

Host Name—Mandatory parameter (string) that specifies the hostname of the third-party billing application server, information that the servlet needs to connect to the billing server to deliver the CDR files.

User Name—Mandatory parameter (string) that specifies the username for the third-party billing application server, information that the servlet needs to connect to the billing server to deliver the CDR files.

Password—Mandatory parameter (string) that specifies the password for the third-party billing application server, information that the servlet needs to connect to the billing server to deliver the CDR files.

Remote Directory—Mandatory parameter (string) that specifies the remote directory on the third-party billing application server to that the CDR servlet is to send the CDR files.

File Name—Mandatory parameter (string) that specifies the filename of the CDR file that the third-party billing application wants delivered from the CDR On-Demand Service.

Secure FTP—Mandatory parameter (Boolean) that specifies whether to use standard FTP or secure SFTP to deliver the CDR files. This depends on the third-party billing application configuration and preferences.

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">
  <soapenv:Body>
    <ns1:get_file soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="urn:CDRonDemand">
      <in0 xsi:type="xsd:string">citadel</in0>
      <in1 xsi:type="xsd:string">root</in1>
      <in2 xsi:type="xsd:string">citadelroot</in2>
      <in3 xsi:type="xsd:string">/tmp/</in3>
      <in4 xsi:type="xsd:string">cdr_cluster1_cm1_200511161018_9</in4>
      <in5 href="#id0"/>
    </ns1:get_file>
    <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:boolean" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">true</multiRef>
  </soapenv:Body>
</soapenv:Envelope>

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">
  <soapenv:Body>
    <ns1:get_fileResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="urn:CDRonDemand"/>
  </soapenv:Body>
</soapenv:Envelope>
 
   

Fault

The CDR On-Demand Service throws exceptions when certain error conditions are met:

The servlet gets used during the maintenance period.

The values that are entered for starting and ending time do not reflect the correct length -
12 bytes in the format YYYYMMDDHHMM is the correct length.

The starting and ending time spans an interval of more than 1 hour.

The starting time is greater than or equal to the ending time (invalid interval).

No files exist in the CDR Repository.

The (s)FTP connection to the remote node did not get established.

The (s)FTP application failed to send the files that the third-party billing application requested.

The exception string describes the error condition that the billing application can print with the toString() function.

DimeGetFileService SOAP Service

The DimeGetFileService service provides for obtaining log files through the standard Direct Internet Message Encapsulation (DIME) protocol.

DimeGetFileService SOAP Service: getOneFile Operation

The getOneFile operation takes as an input parameter the absolute file name of the file that you want to collect from the server.

The return value specifies the file name, but the file name will have an AXIS-specific name. After the file is downloaded, you must replace it with the actual file name that you got from the server.

This APIS is in a different service, and the service name is DimeGetFileService. The URL is: https://host:8443/logcollectionservice/services/DimeGetFileService.

Request Format

<?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"> 
 <soapenv:Body> 
  <ns1:GetOneFile soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="DimeGetFileService"> 
   <FileName xsi:type="xsd:string">/var/log/active/syslog/messages</FileName> 
  </ns1:GetOneFile> 
 </soapenv:Body> 
</soapenv:Envelope>

Response Format

<?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"> 
 <soapenv:Body> 
  <ns1:GetOneFileResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="DimeGetFileService"> 
   <DataHandler href="cid:967B4FFE5D1E6F693815D4CA118E91D0"/> 
  </ns1:GetOneFileResponse> 
 </soapenv:Body> 
</soapenv:Envelope>

Fault

None.

Example

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/env<soapenv:Body>"
	<soapenv:Body> 
		<ns1:GetOneFile soapenv:encodingStyle="http://schemas.xmlsoap.org/
			<FileName xsi:type="xsd:string">/var/log/active/cm/trace/ris/sdi/
		</ns1:GetOneFile> 
	</soapenv:Body> 
</soapenv:Envelope>

Authentication

The following sections describe the authentication for the Serviceability XML API.


Note To improve performance, the SOAP server uses a timed finite cache of authentication and authorization information for up to 100 users. Cached information persists for up to 2 minutes.


Basic

Basic authentication uses base64 to encode and decode the credential information. Because base64 is a two-way function, which requires no key, this protocol represents an insecure clear-text authentication. Many platforms implement Basic authentication and most HTTP client agents support it. Basic authentication can be secure if encryption, such as SSL, is used.

Secure

When you install/upgrade Unified CM, the HTTPS self-signed certificate, httpscert.cer, automatically installs on the default website that hosts the Unified CM virtual directories.

Hypertext Transfer Protocol over Secure Sockets Layer (SSL), which secures communication between the browser client and the server, uses a certificate and a public key to encrypt the data that is transferred over the internet. HTTPS also ensures that the user login password transports securely via the web.

The following Unified CM applications support HTTPS, which ensures the identity of the server:

Cisco Unified Communications Manager Administration

Unified CM Serviceability

Cisco Unified IP Phone User Option Pages

Unified CM Bulk Administration

Cisco Unified Communications Manager Auto-Register Phone Tool

Cisco Unified Communications Manager CDR Analysis and Reporting

Unified CM Trace Collection Tool

Unified CM Real Time Monitoring Tool

For more information, refer to the Cisco Unified Communications Manager Security Guide, Release 7.0.

Authorization

Each LDAP user gets checked against an MLA configuration for permissions. If the LDAP user in basic authentication does not have permission to "Read and Execute" and does not have the "Standard CCM Admin Users" role, the access to SOAP APIs gets denied.

Developer Tools

Each of the following Web Services includes a separate JSP page that can be referenced during development as developer support:

Real-time Service—https://<server>:8443/realtimeservice

Performance Service—https://<server>:8443/perfmonservice

ControlCenter Service—https://<server>:8443/controlcenterservice

Log Collection Service—https://<server>:8443/logcollectionservice

CDR On-Demand Service—https://<server>:8443/CDRonDemandService


Note You must enter the name of each Web Service exactly as shown above.


Each Web Service JSP page offers these options:

View Deployed Web Services

View <Web Service> WSDL

SOAP Monitor

View Deployed Web Services

This option displays a window that is similar to Figure 4-1 for each Web Service. The (wsdl) links display the code for the item(s) that are listed. For more information about viewing the web services, see the Unified CM Administration Guide.

Figure 4-1 Deployed Web Services Window

View <Web Service> WSDL

This option displays a window similar to Figure 4-2, which displays the WSDL code for the selected web service.

Figure 4-2 Web Service WSDL Window

SOAP Monitor

This option displays the SOAP Monitor Window, as shown in Figure 4-3. The SOAP Monitor window helps you look at the request and response messages during the development cycle.

Figure 4-3 SOAP Monitor Window

Password Expiration and Lockout

If a Credential Policy is defined for SOAP accounts to lock out with a count of login failures, the SOAP services returns "http 401 Unauthorized."

If a Credential Policy is defined for SOAP accounts to expire, SOAP services returns "http 403 Forbidden."

If a Credential Policy is defined for SOAP accounts to change the password, SOAP services returns "http 403 Forbidden."

Application Customization for Cisco Unity Connection Servers

Be aware that some Serviceability SOAP operations are only available when the server runs the Unified CM software. Applications that support multiple server configurations (servers that run the Unified CM software, or the Cisco Unity Connection software, or both) must use the getProductInformation() interface to determine whether the operation they want to perform is available.

The following Serviceability SOAP operations are not available when only the Cisco Unity Connection software resides on the server:

Port or Service
Unavailable Operations

PerfmonPort

SelectCmDevice

CDROnDemand

All operations


The following Serviceability SOAP operations may provide different sets of target objects, depending on which software resides on the server:

Port or Service
Operations with Different Sets of Target Objects

PerfmonPort

perfmonAddCounter

perfmonRemoveCounter

perfmonCollectSessionData

perfmonListInstance

perfmonQueryCounterDescription

perfmonListCounter

perfmonCollectCounterData

ControlCenterServices

soapGetStaticServiceList

soapGetServiceStatus

soapDoServiceDeployment

soapDoControlServices

LogCollectionPort

listNodeServiceLogs

selectLogFiles

DimeGetOneFile


SOAP Service Tracing

SOAP Service tracing is configurable through the Serviceability page in the Cisco Unified Serviceability application.

To configure debugging for the Cisco SOAP web service and the Cisco SOAPMessage service, follow these steps:


Step 1 From Cisco Unified Serviceability administration, choose Trace > Configuration.

Step 2 From the Server drop-down list, choose a server in your network.

Step 3 From the Service Group drop-down list, choose Soap Services.

Step 4 From the Service drop-down list, choose the service that you want to configure.

Step 5 If you want debugging to apply to all nodes, check the Apply to All Nodes check box.

Step 6 Make sure that the Trace On check box is checked.

Step 7 From the Debug Trace Level drop-down list, choose Debug.

Step 8 Click Save.

Step 9 Repeat this steps as needed to configure debugging for another service.


The traces can also be configured to debug level in Cisco Unified Serviceability administration. To do so, Trace > Troubleshooting Trace Settings, check the Cisco SOAP Web Service and Cisco SOAP Message Service check boxes, then click Save.

You can collect SOAP service logs for the Cisco SOAP web service and the Cisco SOAPMessage service by using the Unified CM Real Time Monitoring Tool (RTMT). For detailed instructions, refer to the RTMT on-line help.

Serviceability XML API Authentication Security

The HTTP transport that is used for the Serviceability XML API uses the following methods for authentication:

Basic authentication—Uses base64 and SSL to encode and decode user name and password information. Because base64 is a two-way function and requires no key, this method is not secure. Basic authentication has the advantage of being widely implemented by many platforms and most HTTP client agents support it. Basic authentication is used with SSL to ensure a secure connection.

Secure—When you install or upgrade Unified CM, HTTPS certificates are installed. Hypertext Transfer Protocol over SSL, which secures communication between the browser client and the server, uses a certificate and a public key to encrypt data that is transferred over the internet. HTTPS also ensures that the user log in password transports securely via the web.

Rate Control Mechanism

The Serviceability XML interface includes a request rate control mechanism that monitors the request rates for each server. If the request rate for a server is more than supported, a SOAP Fault is sent by the SOAP service on that server to the client and the additional requests are blocked. This rate control is enabled for Real-time Data Requests and Perfmon Data Requests. Rates are controlled through the enterprise parameters that are described in Table 4-9.

Table 4-9 Enterprise Parameters for Rate Control 

Enterprise Parameter
Description

Allowed Performance Queries Per Minute

Specifies the maximum number of AXL performance counter queries that are allowed per minute for each server. Clients such as Voice Health Monitoring and Gateway Statistic Utility (GSU) receive a slow response if applications send more queries than the limit that is imposed by this parameter.

Default value: 50

Minimum value: 1

Maximum value: 80

Allowed Device Queries Per Minute

Specifies the maximum number of AXL device queries that are allowed per minute for each server. Clients such as Voice Health Monitoring and Gateway Statistic Utility (GSU) receive a slow response if applications send more queries than the limit that is imposed by this parameter.

Default value: 15

Minimum value: 1

Maximum value: 18

Maximum Performance Counters Per Session

Specifies the maximum number of performance counters that are allowed in a session-based request.

Default value: 100

Minimum value: 0

Maximum value: 1000

Allowed CDRonDemand get_file Queries Per Minute

Specifies the maximum number of CDRonDemand get_file queries that are allowed per minute for each server.

Default value: 10

Minimum value: 1

Maximum value: 20

Allowed CDRonDemand get_file_list Queries Per Minute

Specifies the maximum number of CDRonDemand get_file_list queries that are allowed per minute for the each server.

Default value: 20

Minimum value: 1

Maximum value: 40


SOAP Fault Error Codes

Unified CM sends the AxisFaults to soap clients.

For general information about SOAP AxisFaults, refer to information provided by Apache for Apache Axis 1.4.

Fault Strings

The SOAP FaultString element contains the error string from Unified CM. Table 4-10 describes these error messages.

Table 4-10 Fault Strings in the SOAP FaultString Element 

Error Message
Description
Error Location

Exceeded allowed rate for Realtime information. Current allowed rate for realtime information is " + maxcountperminute " requests per minute." +SOAPaction

Client has exceeded the configured limit for real-time SOAP requests that is configured for the rate control mechanism.

For related information, see the "Rate Control Mechanism" section section on page 2-97.

Client

"Exceeded allowed rate for CDRonDemand get_file_list. Current allowed rate is " +maxCdrGetFileListCountPerMinute +" requests per minute." + SOAPaction

Client has exceeded the configured limit for CDR on demand SOAP requests that is configured for the rate control mechanism.

For related information, see the "Rate Control Mechanism" section section on page 2-97.

Client

ERROR not able to resolve localhost

Serviceability XML soap server unable able to resolve localhost. This there is configuration error in Unified CM.

Server

ERROR the cmSelectionCriteria is null

Selection criteria specified in the request cannot be null. SOAP clients must specify the selection criteria in the request.

Client

RISBEAN COULD NOT BE INSTANCIATED

Connection between servlet and RIS data collector could not be established.

Server

ERROR: Invalid Class " + classStr

Class criteria specified in the request is not a valid device class.

Client

ERROR: Invalid Status " + statusStr

Status criteria specified in the request is not a valid registration status

Client

ERROR: Invalid node " + node2search

Node specified in the request is not reachable

Client

ERROR: Invalid node " + node2search + " Host "

Error message provides a description.

Client

ERROR: SelectBy is null"

SelectBy criteria has not been specified in the request.

Client

ERROR: Invalid DeviceDownloadStatus

Download status specified in the request is not valid.

Client

ERROR: Invalid ip address

IP address is not in the valid format.

Client

ERROR ctiSelectionCriteria is null

Selection criteria specified in the request cannot be null. SOAP clients must specify the selection criteria in the request.

Client

ERROR: Invalid empty Cti Class

CtiMgrClass criteria specified in the request cannot be empty.

Client

ERROR: Invalid SelectAppBy

SelectAppBy criteria specified in the request has an invalid string.

Client

ERROR: Invalid Cti Class " + cticlasshere

Error message provides a description.

Client

ERROR: Invalid Cti Status " + ctistatushere

Error message provides a description.

Client

ERROR: Invalid node " + node2search + " Host " + myHost

Error message provides a description.

Client

Error Context is null

Error message provides a description.

Server

Failure trying to get the Call object"

Error message provides a description.

Server

Server.Unauthorized

Error message provides a description.

Client

DB access to NodeNames failed

Error message provides a description.

Client

-> soap getFileDirectoryList IO exception->

Error message provides a description.

Server

GetOneFile response message context null

Error message provides a description.

Server

FileName is NULL

Error message provides a description.

Client

Error found in Adding counters: Error=" + error code + " ErrorMsg=" + Error String

The perfmonAddCounter API fault includes one of these ReturnCode values:

1: "Not Found" client error

2: "Invalid Request" client error

3: "Internal Error" server error

9: `Invalid Node Name" client error

10: "Not Ready" server error

11: "Remote RisDC Down" server error

12: "Remote RisDC Not Ready" server error

13: "Collection Disabled"; server error

14: "No Collector Available" server error

50: "Handle Not Found In Cache" client error

100: "Perfmon Error" client error

101: "Add Counter Error" client error

102: "Invalid Request For All Instance Sessison" client error

103: "Invalid Counter Format" client error

127: "Unknown Error" client/server error

Error found in Removing counters" + errorString

The perfmonRemoveCounter API fault includes one of these ReturnCode values:

1: "Not Found" client error

2: "Invalid Request" client error

3: "Internal Error" server error

9: `Invalid Node Name" client error

10: "Not Ready" server error

11: "Remote RisDC Down" server error

12: "Remote RisDC Not Ready" server error

13: "Collection Disabled"; server error

14: "No Collector Available" server error

50: "Handle Not Found In Cache" client error

100: "Perfmon Error" client error

101: "Add Counter Error" client error

102: "Invalid Request For All Instance Sessison" client error

103: "Invalid Counter Format" client error

127: "Unknown Error" client/server error

Query counter failed. Error=" + Error code + " ErrorMsg=" + Error String

The perfmonCollectSessionData, perfmonListInstance, perfmonListCounter, or perfmonCollectCounterData API includes one of these ReturnCode values:

1: "Not Found" client error

2: "Invalid Request' client error

3: "Internal Error" server error

9: "Invalid Node Name" client error

10: "Not Ready" server error

11: "Remote RisDC Down" server error

12: "Remote RisDC Not Ready" server error

13: "Collection Disabled"; server error

14: "No Collector Available" server error

50: "Handle Not Found In Cache" client error

100: "Perfmon Error" client error

ERROR: The ctiSelectionCriteria is null

Selection criteria specified in the request cannot be null. Soap Clients needs to specify this in the request.

Client

ERROR: Invalid SelectAppBy

SelectAppBy criteria specified in the request has an invalid string.

Client

ERROR: Invalid ip address

IP Address is not in the valid format.

Client

ERROR: Invalid DeviceDownloadStatus

DownloadStatus specified in the request is not valid.

Client


Sample SOAP Fault or AXIS Fault

The following example shows the format of a SOAP or AXIS fault.

<?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 ">- <soapenv:Body>- <soapenv:Fault>
  <faultcode>soapenv:Server.generalException</faultcode>
  <faultstring>{*}Error found in Adding counters: Error=101 ErrorMsg=\\suri-lab3\Memory% 
Mem UUU;*</faultstring> - <detail>
  <ns1:stackTrace xmlns:ns1="{*}http://xml.apache.org/axis/* ">{*}Error found in Adding 
counters: Error=101 ErrorMsg=\\suri-lab3\Memory% Mem UUU; at 
com.cisco.ccm.serviceability.soap.perfport.PerfmonBindingImpl.perfmonAddCounter(Unknown 
Source) at 
com.cisco.ccm.serviceability.soap.perfport.PerfmonBindingSkeleton.perfmonAddCounter(Unknow
n Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at 
java.lang.reflect.Method.invoke(Method.java:324) at 
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384) at 
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281) at 
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319) at 
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at 
org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at 
org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at 
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at 
org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at 
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:697) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at 
sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source) at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at 
java.lang.reflect.Method.invoke(Method.java:324) at 
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239) at 
java.security.AccessController.doPrivileged(Native Method) at 
javax.security.auth.Subject.doAsPrivileged(Subject.java:500) at 
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268) at 
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157) at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.ja
va:231) at 
org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50) 
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:140) 
at java.security.AccessController.doPrivileged(Native Method) at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:136) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198
) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) 
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) 
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at 
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:417) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Pr
otocol.java:705) at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at 
java.lang.Thread.run(Thread.java:534)*</ns1:stackTrace>
  <ns2:hostname xmlns:ns2="{*}http://xml.apache.org/axis/* 
">suri-lab3.cisco.com</ns2:hostname>
  </detail>
  </soapenv:Fault>
  </soapenv:Body>
 
   

Serviceability XML Application Design Guidelines and Best Practices

The following sections provide guidelines and best practices for designing Serviceability XML applications.

Maintain HTTPs sessions and Connection Timeouts

All SOAP clients need to maintain an HTTPS session. The SOAP server normally sends a set-cookie in response to an authentication request. The client must maintain and HTTPS session by sending cookies in subsequent SOAP requests as described in RFC 2109.

Clients should handle the connection timeouts and read timeouts. This approach helps release the connections and helps the web server to reuse the connection thread for another request.

Send Perfmon Close Session

It is the responsibility of the application to send the PerfmonCloseSession SOAP API.

The client program can use the following operations from the Serviceability XML APIs:

Perfmon Open Session

Perfmon Add Counter

Perfmon Remove Counter

Perfmon Collect Session Data

Perfmon Close Session

A session handle is needed by the client to perform the session-based perfmonListCounter operation. The session handle is a universally unique identifier and is used only once. Ensure that there are no duplicate handles. The server stores the open handles in its cache. Session handles are removed by a Unified CM server when any of the following conditions occur:

Session has been idle time out is reached

Service/Server gets restarted

Server resource is tight

An application should issue and PerfmonCloseSession API when a session completes. This API releases the memory on server side.

Device Query Support for Large Clusters

The following guidelines apply for device queries in large Unified CM clusters:

The selectCmDevice operation includes StateInfo as part of the response. The StateInfo string must be in a CDATA element and indicates the state of the Device server. Clients must provide string from the first request to the next request for the same selection criteria. Clients receive the response with the NoChange element set to "true" as part of CmNode, which indicates that the server information state has not changed from the previous state. If NoChange in the response set to "false," the server information has changed. In this case, clients must obtain real-time information from the server and update the client information on the devices.

The following example shows the schema of the StateInfo within the SelectCmDevice operation:

<!-- SOAP AST Header -->
<message name="AstHeader"><part name="AstHeader" type="tns:AstHeader"/></message>
<!-- R1. SelectCmDevice -->
<message name="SelectCmDeviceInput"><part name="StateInfo" type="xsd:string"/><part 
name="CmSelectionCriteria" type="tns:CmSelectionCriteria"/>
</message>
<message name="SelectCmDeviceOutput"><part name="SelectCmDeviceResult" 
type="tns:SelectCmDeviceResult"/><part name="StateInfo" type="xsd:string"/>
</message>
 
<complexType name="SelectCmDeviceResult">
<sequence><element name="TotalDevicesFound" type="xsd:unsignedInt"/><element 
name="CmNodes" type="tns:CmNodes"/>
</sequence>
</complexType>
<complexType name="CmNodes">
<complexContent><restriction base="SOAP-ENC:Array"><attribute ref="soapenc:arrayType" 
wsdl:arrayType="tns:CmNode[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="CmNode">
<sequence>
<element name="ReturnCode" type="tns:RisReturnCode"/><element name="Name" 
type="xsd:string"/><element name="NoChange" type="xsd:boolean"/>
<element name="CmDevices" type="tns:CmDevices"/>
</sequence>
</complexType>
 
   

The response provides a maximum of 200 devices, as shown in the following response schema:

<complexType name="CmDevices"><complexContent>
<restriction base="SOAP-ENC:Array">
<sequence><element name="CmDevice" type="tns:CmDevice" minOccurs="0" 
maxOccurs="200"/></sequence>
</restriction>
</complexContent>
</complexType>
 
   

This approach limits the response buffer to the first 200 devices that are returned. To obtain information about all configured devices, clients must embed the device information obtained from the AXL-DB method "SelectItems" into the serviceability method "CmSelectionCriteria."

The following example shows this approach:

<?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">
  <soapenv:Body>
    <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"/>
    </ns1:SelectCmDevice>
    <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">Phone</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[200]" xsi:type="soapenc:Array">
      <item href="#id1"/>
    </SelectItems>
  </multiRef>
  <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">SEP0123456789ab</Item>
 ...
    <Item xsi:type="xsd:string"> SEP0123456789aa</Item>
    </multiRef>
  </soapenv:Body>
</soapenv:Envelope>
 
   

The most efficient way to obtain the list of devices is to use "executeSQLQuery" in the AXL-DB API.

You also can use the SQL equivalent to "Select name from device where tkclass = 1" to obtain all phones, then iterate through the list sending 200 at a time to the Serviceability XML API.

By default, device requests per minute can not exceed 15 per minute by default to the Unified CM server. Client requests should be spaced so that they do not exceed this limit. If client requests exceed this limit, the server responds with a SOAP fault. The SOAP client can then adjust the request rate. These rates are expected to take less than 20% of CPU resource so that they do not affect the performance of Unified CM.

Example of Stateinfo in a Response

The following example shows the StateInfo String from a response that contains a CDATA[] section. State ID for each Node is specified as an attribute StateId="123456".

<StateInfo xsi:type="xsd:string">
 
   
     &lt;StateInfo&gt;&lt;Node Name=&quot;sa-cm2-1&quot; 
     SubsystemStartTime=&quot;1136458877&quot; StateId=&quot;2&quot; 
     TotalItemsFound=&quot;0&quot; TotalItemsReturned=&quot;0&quot;/&gt;&lt;Node 
     Name=&quot;sa-cm2-2&quot; SubsystemStartTime=&quot;1136403259&quot; 
     StateId=&quot;33&quot; TotalItemsFound=&quot;15&quot; 
     TotalItemsReturned=&quot;15&quot;/&gt;&lt;Node Name=&quot;sa-cm2-6&quot; 
     SubsystemStartTime=&quot;1135982895&quot; StateId=&quot;387&quot; 
     TotalItemsFound=&quot;1&quot; TotalItemsReturned=&quot;1&quot;/&gt;&lt;/StateInfo&gt;
 
   
</StateInfo>
 
   

Respond and React to SOAP Faults

It is the responsibility of the application to respond and react to SOAP faults.

SOAP faults are sent according to the SOAP standard. For additional information, see the "SOAP Fault Error Codes" section.

Limit Request and Response Size in the Application Design

When an application uses a SOAP interface, the application must ensure that the size of the SOAP request and response does not exceed the 1 MB limit. If this limit is exceeded, review the application design to determine another solution.

Usage notes for applications:

Web server level security filters are configured to deny requests that exceed limits that are configured in your security applications.

Tomcat Webserver 5.x and later provides a 2 MB limit on request size.

Number of Perfmon counters per sessions is limited to 1,000.

Number of Nodes in the Cluster

In large cluster, configure your application to point SOAP clients to individual servers that have server specific Perfmon counters.

SOAP Monitor Usage

The SOAP Monitoring Tool should not be used in a production system because this tool can affect performance. User this tool only be used in development or unit testing and rely on SOAP logs for troubleshooting production systems.