cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
460
Views
0
Helpful
6
Replies

Multiple results from AXL query in CUCM 6.1

marxandengels
Level 1
Level 1

Hi,

I have an application that uses an AXL query to retrieve IP/Extension information from a Call Manager. For versions 4.x and 5.x it works fine: I get results back for my query (note that I send up to 200 elements per query). On 6.x however, I only ever get one response, so although my query fires off 200 IP addresses (or extensions) I only get an answer back on the first one. I cannot see why this has changed. I have checked the DB schema.

The query is 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">

<soap:Header>

<tns:AstHeader id="id1">

<SessionId xsi:type="xsd:string">1234-abcd-1234-abcd</SessionId>

</tns:AstHeader>

</soap:Header>

<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<tns:SelectCmDevice>

<StateInfo xsi:type="xsd:string"/>

<CmSelectionCriteria href="#id1"/>

</tns:SelectCmDevice>

<tns:CmSelectionCriteria id="id1" xsi:type="tns:CmSelectionCriteria">

<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">Any</Status>

<NodeName xsi:type="xsd:string"/>

<SelectBy xsi:type="xsd:string">IpAddress</SelectBy>

<SelectItems href="#id2"/>

</tns:CmSelectionCriteria>

<soapenc:Array id="id2" soapenc:arrayType="tns:SelectItem[]">

<Item href="#id3"/>

</soapenc:Array>

<tns:SelectItem id="id3" xsi:type="tns:SelectItem">

<Item xsi:type="xsd:string">192.168.1.100,192.168.1.101</Item>

</tns:SelectItem>

</soap:Body>

</soap:Envelope>

As you can see it sends multiple (in this case 2) IP addresses. There is a second query that sends extension numbers. On earlier Call Managers this works fine, but on 6.x, it never returns more than one result.

Any assistance would be appreciated.

6 Replies 6

stephan.steiner
Spotlight
Spotlight

Search for a thread started by myself asking for a working example of a risport query.. there's a (working) answer by somebody else, then there's a followup post by myself with a working example (it's by phone name though, not by IP address.. so there could potentially be a bug but if you try my example and it works (I'm using it on a CCM6.1.1 and 6.1.2) and you change it to IP address and it doesn't, then you need to open a developer support case.

Thanks for your reply. I used your example code, and while i successfully get multiple results when querying by "Name" or "DirName", i am unable to get multiple results when selecting by "IpAddress".

I can get single 'IpAddress' results just fine, and multiple IpAddress results against CUCM 4, but not multiple IpAddress results against CUCM 6...

Congratulations on finding yet another bug. I'd really wish Cisco would start unit testing their APIs. While they use it themselves, the amount of functionality used (and thus tested) still pales in comparison on all the untested elements.

However, perhaps there's at least a workaround for you: why do you need to look up by ip address? The only scenario I can imagine right now would be looking up a device name based on a service request from a phone.. and you can just add something like

?device=#DEVICENAME# to the service url and the phone will tell you its device name when making the first request (you have to add the name as query string parameter or as a session variable for subsequent requests).

Hi Stephan - thanks for the response. The reason for the IP lookup (in case you're interested) is that I am working in a CTI environment. The specific app does call monitoring/recording by capturing RTP streams and tying them back to specific devices. As the TSP primarily gives us either an IP address or DN, we need to match those back to the records in our DB. We query the CCM on both IP and DN and store them in a cache. Thanks for your help - I guess I'll log a Dev Case.

Congratulations on finding yet another bug. I'd really wish Cisco would start unit testing their APIs. While they use it themselves, the amount of functionality used (and thus tested) still pales in comparison on all the untested elements.

However, perhaps there's at least a workaround for you: why do you need to look up by ip address? The only scenario I can imagine right now would be looking up a device name based on a service request from a phone.. and you can just add something like

?device=#DEVICENAME# to the service url and the phone will tell you its device name when making the first request (you have to add the name as query string parameter or as a session variable for subsequent requests).

marxandengels
Level 1
Level 1

See previous response. Thanks again.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: