Serviceability XML API

While AXL API exposes many CUCM Database provisioning tasks, the UC Serviceability XML API is a collection of SOAP-based APIs that expose multiple capabilities for CUCM administrators to automate management and monitoring tasks.

The family of UC Serviceability XML APIs consist of the following 5 APIs:

Each of these APIs has its own dedicated WSDL file that describes its unique methods (service endpoints) and unlike AXL (AXLAPI.wsdl) they are available to download directly from a given CUCM node. Note that all methods (service endpoints) are NOT available in all CUCM releases. See https://developer.cisco.com/site/sxml/documents/operations-by-release/ for more information.

Let's take a closer look at the RisPort70 and Perfmon APIs.

In this section, you will use SoapUI to perform the following tasks:

  1. Download RIS and Perfmon WSDL files
  2. Check Phone Registration Status via RisPort
  3. Check Phone Registration Status via Perfmon
  4. Delete a Phone

Step 1 - Download RIS and Perfmon WSDL files

  1. Unlike the AXL (AXLAPI.wsdl) file you had to download via the axltoolkit plugin, the RISPort and Perfmon WSDL files can be downloaded directly from a CUCM URL. First you need to be authenticated with the CUCM.
    Access the CUCM GUI at https://cucm1a.pod6.col.lab and log in with username admin and password C1sco.123
  2. Now that you are authenticated, Right Click each of the following links and select Save link as... and then set the Save as type option to All Files in order to download them to your local machine into your Downloads folder:
    Be sure to change the Save as type setting first to All Files, or a .xml extension will be added by default. Having the .xml extension, however, will not prevent SoapUI from reading the file
    You do NOT want to open the file in the browser and then save the contents as the browser could alter the contents of the WSDL file.
  3. Next you need to add each of these WSDL files to the already opened SoapUI project. Open SoapUI and Right click on the UCMSOAP Project and select Add WSDL.


    • For the RisPort70 WSDL file; click Browse. Navigate to your WSDL file downloaded earlier:
      Click on button the get to the Desktop, then enter or navigate to the location of the file C:\Users\student1\Downloads\RISService70.wsdl and Click OK
    • Repeat the Add WSDL operation for the PerfmonService WSDL file; Navigate to your WSDL file downloaded earlier:
      Click on button the get to the Desktop, then enter or navigate to the location of the file C:\Users\student1\Downloads\PerfmonService.wsdl and Click OK

    You should now have two more bindings added to SoapUI project named UCMSOAP as shown below. You may have to collapse the AXLAPIBinding tree to see the other two you just added.

  4. Next, similar to the steps you performed in the SOAP Overview Section for AXLAPIBinding, you need to set the default endpoint URL and credentials for the PerfmonBinding and RisBinding objects.
    • Right-click on PerfmonBinding and pick Show Interface Viewer (same as double-clicking or pressing Enter).
    • Select the Service Endpoints tab. Double-click the Endpoint Column entry and update https://localhost:8443/perfmonservice2/services/PerfmonService to https://cucm1a.pod6.col.lab:8443/perfmonservice2/services/PerfmonService
    • Double-click on the Username field and enter admin
    • Double-click on the Password field and enter C1sco.123 . Be sure to press Enter to save the value.
    • Close the PerfmonBinding window by clicking the X in the right of its blue title bar .
  5. Repeat these steps for the RisBinding as shown below:
    • Right-click on RisBinding and pick Show Interface Viewer (same as double-clicking or pressing Enter).
    • Select the Service Endpoints tab. Double-click the Endpoint Column entry and update https://localhost:8443/realtimeservice2/services/RISService70 to
      https://cucm1a.pod6.col.lab:8443/realtimeservice2/services/RISService70
    • Double-click on the Username field and enter admin
    • Double-click on the Password field and enter C1sco.123 . Be sure to press Enter to save the value.
    • Close the RisBinding window by clicking the X in the right of its blue title bar .

When sending SOAP requests via SoapUI, if you ever get a response payload that indicates "<!--custom Cisco error page-->" and "HTTP Status 401" in the content, double check your Binding Service Endpoint Username & Password

Step 2 - Check Phone Registration Status via RisPort

The RisPort70 (Real-Time Information Port) service provides an API for querying the current connection status of phones, devices, and CTI applications connected to the CUCM.

The RisPort70 API documentation is located here: https://developer.cisco.com/docs/sxml/#!risport70-api

  1. Open SoapUI in the UCMSOAP project.
  2. In the Navigator, under RisBinding, expand the selectCMDevice method.

    This method allows clients to perform Cisco Unified CM device-related queries. The method returns a snapshot of real-time device registration status from each Cisco Unified CM node. The data includes registration status, IP address, model info, and CTI application connections to the device. A single device may appear in multiple elements if the device has registered to multiple nodes. Devices may be requested by wildcard using an asterisk, *.

  3. Double-click on Request 1 to open it.
  4. Again you can see a series of method elements that needs to be supplied, however all elements are essentially required, otherwise the Sample SOAP request payload is not much different than what you have seen with AXL. In this step, We would like you to search CUCM RIS DB based on the Description field and get Device Registration status for Device Descriptions containing Cisco*. Copy and Paste the following payload it into your SoapUI selectCMDevice / Request1: Some of the parameters you are including in this request deserve some explanation. All of these parameters are documented in the API guide mentioned earlier so you should reference that guide for details on what each of the above parameters means. You must refer to the API guide to determine what value in the Model field maps to a particular phone model.
  5. Click Run and observe the selectCmDeviceResponse payload. Notable pieces of information are: For each device matching the selection criteria, you can see the real-time registration status:
    You can also see run-time information such as the IP address of the device:
    or the Active Software Version the device is running:

Step 3 - Check Phone Registration Status via Perfmon

The Perfmon API is an interface to the CUCM performance counters normally accessed through by the Real-Time Monitoring Tool (RTMT). The PerfMon API allows clients to perform the following tasks:

  • Collect Perfmon data either session-based or single-transaction
  • Retrieve a list of all PerfMon objects and counter names installed on a particular host
  • Retrieve a list of the current instances of a PerfMon object
  • Retrieve a description of a PerfMon counter

The session-based counters are useful for tracking information over time. For that, a perfmonOpenSession is required initially to get a session ID. Sessions can be explicitly closed when data collection is complete (best practice) or they will automatically clear if idle for 25 hours. The session ID is subsequently used in queries such as perfmonAddCounter and perfmonCollectSessionData.

See https://developer.cisco.com/docs/sxml/#!perfmon-api for more information on PerfMon API.

In this section, you will perform a single transaction request utilizing the perfmonCollectCounterData operation. You will be querying the Cisco CallManager Performance Counter Class from the CUCM host. This PerfMon API operation request requires not only the Perfmon Counter Class Name (aka Object), but also the specific CUCM Node/Host. For example, this means that even if the SOAP Request is sent to the publisher server in the cluster, the performance class data from any of the other CUCM Cluster nodes can be retrieved. Follow these steps to retrieve performance data using the PerfMon API:

  1. Open SoapUI in the UCMSOAP project.
  2. In the Navigator, under PerfmonBinding expand the PerfmonCollectCounterData method.
  3. Double-click on Request 1 to open it.
  4. There are only two elements required, the Host and the Object (aka Performance Counter Class). The query to retrieve all counters under the Cisco CallManager counter class can be seen below. Click the copy button and paste the following payload into your SoapUI PerfmonCollectCounterData / Request 1:
  5. Click the Run button. In the response payload you will find the RegisteredOtherStationDevices counter, which should indicate 1, for the only registered Webex Client device.