AXL listDeviceByNameAndClass syntax

Version 1
    This document was generated from CDN thread

    Created by: DAVID KEMP on 01-08-2008 01:18:33 AM
    Hi, First time poster. Hopefully this is an easy answer.
    I have ~ 800 Ip Communicators for my call centre agents. I am running into licencing issues as machines are swapped in and out. What I want to do is use AXL interface to collect the device and status at 1 hour intervals to build up a "last seen" table where I can start removing devices from CM after a set period.
    I am using PERL, plenty of ecperience with PERL and with CM, but not much with the XML and have the scritps working talking to CM (6.1.2.1108-1) do do variou things, I cant understand the syntax for the listDeviceByNameAndClass, can anyone give me the correct XML component. Basically I at least want to see every device configured and its current status. I can then handle the rest in a DB to track last regitered time.

    Or if anyone has any better ideas of doing this it would be appreciated.

    Can anyone help?

    Subject: Re: AXL listDeviceByNameAndClass syntax
    Replied by: DAVID KEMP on 01-08-2008 01:44:49 AM
    Ok, figured out the syntax, but I dont see status.
    in the API docs I can see axl:XRisStatus but how can I utilise this to get a result?

    currently using
    <axl:listDeviceByNameAndClass xmlns:axl="http://www.cisco.com/AXL/1.0"
    xsi:schemaLocation="http://www.cisco.com/AXL/1.0
    http://ccmserver/schema/axlsoap.xsd" sequence="1234">
    <searchString>SEP</searchString>
    <class>Phone</class>
    </axl:listDeviceByNameAndClass>

    Subject: Re: AXL listDeviceByNameAndClass syntax
    Replied by: David Staudt on 01-08-2008 06:12:54 AM
    It looks like you're using a request from the AXL Configuration interface. If you are looking for real-time registration status, IP address, etc. you will want to take a look at the AXL Serviceability interface: selectCMDevice.

    Note, AXL serviceability will only return a maximum of 200 devices per request, so a common technique is to get the full list of devices using AXL Configuration, then page through the list a hundred at a time via the AXL Serviceability interface.

    Subject: Re: AXL listDeviceByNameAndClass syntax
    Replied by: DAVID KEMP on 07-08-2008 06:30:05 AM
    I have tried this, the example in the AXL Doc's is pretty detaqiled, but for some reason I cannot get this to work, something wrong in my XML, errors back are very vague. I have also tried using the AXLDB and can query any table, but again none have registered status.

    Does anyone have the xml component of the selectCMDevice working?

    xml part looks like this;
    <SOAP-ENV: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-ENV:Body>
    <message name="AstHeader">
    <part name="AstHeader" type="tns:AstHeader"/>
    </message>
    <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>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    result is <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Client</faultcode>
    <faultstring>Element type "SOAP-ENV:Envelope" must be followed by either attribute specifications, ">" or "/>".</faultstring>
    <detail>
    <axl:Error xmlns:axl="http://www.cisco.com/AXL/API/1.0">
    <axl:code>5001</axl:code>
    <axl:message>Element type "SOAP-ENV:Envelope" must be followed by either attribute specifications, ">" or "/>".</axl:message>
    <request/>
    </axl:Error>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>

    I know one of the names is miss-spelt but cant see wich one?