Settle a problem:53
This document provides a technical analysis and a comprehensive solution for a common integration issue encountered with the Cisco Unified Communications Manager (CUCM) Administrative XML (AXL) API. Specifically, it addresses the HTTP Status 599
error accompanied by the message “Incorrect axl version,” which indicates a schema version mismatch between the client’s SOAP request and the versions supported by the target CUCM server. The following sections detail the problem, initial remediation steps, and a robust methodology for ensuring sustained compatibility in AXL-based integrations.
The core technical problem is a failure of the AXL API request due to a version incompatibility. Every major release of CUCM is associated with a specific version of the AXL schema, which defines the structure, elements, and operations available through the API. While CUCM maintains backward compatibility for several previous AXL versions, it will reject requests that specify a version it does not support.
HTTP Status 599
response from the CUCM server.15.0
) that is not present in the CUCM server’s list of supported schema versions. This commonly occurs when an application developed for a newer CUCM version attempts to communicate with an older CUCM cluster. For instance, a script using the AXL 15.0 schema will fail against a CUCM 14.x server, which supports AXL 14 as its latest version.The initial analysis of the issue points to a direct and effective, albeit reactive, solution.
Inspect the Error Response: The HTTP 599
error message from CUCM is highly descriptive. It explicitly lists the AXL schema versions that the server is configured to accept. This list is the definitive source for immediate remediation.
Modify the Client SOAP Request: The client-side application code (e.g., Python, Java, or any SOAP client) must be modified to use one of the supported versions listed in the error message. This change is typically made in the XML namespace (xmlns) attribute of the SOAP envelope.
xmlns:ns="http://www.cisco.com/AXL/API/15.0"
xmlns:ns="http://www.cisco.com/AXL/API/14.0"
This immediate fix resolves the error by aligning the client’s request with the server’s capabilities.
While the initial solution is correct, a senior-level approach requires a more proactive and resilient strategy to prevent these errors and build robust integrations. The initial fix relies on encountering an error first. A comprehensive strategy involves verification before a failure occurs.
4.1. Proactive Verification of Supported AXL Versions
To build resilient applications, it is a best practice to determine the target CUCM version before executing operational AXL requests.
Method A: Manual Verification via CUCM Administration
For initial setup and troubleshooting, an administrator can log in to the CUCM Publisher’s web interface. Navigate to Cisco Unified CM Administration > System > Server. The version of the CUCM cluster is clearly displayed (e.g., 14.0.1.13900-159
). As a rule, a CUCM X.Y
release will support AXL version X.Y
(or simply X
) as its highest schema version, along with several preceding versions for backward compatibility.
Method B: Programmatic Verification via getCUCMVersion
API Call
The most robust method is to use the AXL API itself. The getCUCMVersion
request is part of the “AXL Serviceability” API, which is typically supported across versions. An application should be designed to perform this simple, preliminary call to dynamically discover the target environment’s capabilities. This allows the application to select the appropriate AXL schema for all subsequent, more complex requests.
Sample getCUCMVersion
SOAP Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/12.5">
<soapenv:Header/>
<soapenv:Body>
<ns:getCUCMVersion>
<processNodeName></processNodeName>
</ns:getCUCMVersion>
</soapenv:Body>
</soapenv:Envelope>
Note: Even this initial request requires a valid AXL version namespace, so it is best to use a known, older version like 12.5 for this specific call to maximize compatibility.
4.2. Implementation Best Practices
getCUCMVersion
call upon initialization. The application can then parse the response and dynamically set the correct AXL namespace version for all other API calls.To resolve and prevent the HTTP 599
AXL version error, follow this structured approach:
getCUCMVersion
API call to dynamically determine and use a supported AXL schema version.This methodology ensures not only the immediate resolution of the error but also promotes the development of resilient, forward-compatible AXL integrations that can adapt to diverse Cisco Unified Communications environments.