I'm trying (in AXL/SOAP Java) to get a list of phone-names/ip-address like the one you have in the 'Cisco Unified CM Adminstration' portal. Currently I'm trying a combination of the AXL/SOAP getPhone/listPhone -calls but still nothing similar like the CUCM-Admin. I tried in SOAP-UI, where I created a project using the AXL-API.wsdl (giving me a lot of SOAP-methods like getPhone/listPhone) and a project for the RisPort70.wsdl (which should give me somehow a phone IP-Address) with only the three SOAP-API's: selectCmDevice, selectCmDeviceExt and selectCtiItem. Using listPhone with: <soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:ns=" http://www.cisco.com/AXL/API/8.5 "> <soapenv:Header/> <soapenv:Body> <ns:listPhone sequence="?"> <searchCriteria> <name>%</name> </searchCriteria> <returnedTags> <name/> <model/> <protocol/> </returnedTags> </ns:listPhone> </soapenv:Body> </soapenv:Envelope> is giving me only the name/model and getPhone: <soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:ns=" http://www.cisco.com/AXL/API/8.5 "> <soapenv:Header/> <soapenv:Body> <ns:getPhone sequence="?"> <name>SEP4C00828573D8</name> </ns:getPhone> </soapenv:Body> </soapenv:Envelope> is giving me NOT its IP-Address, for which I learned that you need RisPort70. When I try e.g. selectCmDevice with: <soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/ " xmlns:soap=" http://schemas.cisco.com/ast/soap "> <soapenv:Header/> <soapenv:Body> <soap:selectCmDevice> <soap:StateInfo></soap:StateInfo> <soap:CmSelectionCriteria> <soap:MaxReturnedDevices>1000</soap:MaxReturnedDevices> <soap:DeviceClass>Any</soap:DeviceClass> <soap:Model>255</soap:Model> <soap:Status>Any</soap:Status> <soap:NodeName></soap:NodeName> <soap:SelectBy>DirNumber</soap:SelectBy> <soap:SelectItems> <!--Zero or more repetitions:--> <soap:item> <soap:Item>6961</soap:Item> </soap:item> </soap:SelectItems> <soap:Protocol>Any</soap:Protocol> <soap:DownloadStatus>Any</soap:DownloadStatus> </soap:CmSelectionCriteria> </soap:selectCmDevice> </soapenv:Body> </soapenv:Envelope> I'm always getting the error: "This request requires HTTP authentication" for the URL: ' https://XX/realtimeservice2/services/RISService70 ' with XX being our reference to the Cisco-dev partner server. Note that for the getPhone/listPhone I'm using the URL: ' https://XX/:8443/axl/ ' call which doesn't suffer from the above error and I use the same account-credentials for the RisPort calls which fails as described before!? Does anybody have an idea how best to accomplish a 'Find and List Phones' like the one in CUCM-Admin portal in Java/SOAP-code?
... View more
I'm trying to play a ringtone on a Cisco 7925 handset with the following code (using Postman):
Body: XML=<CiscoIPPhoneExecute><ExecuteItem URL="Play:Classic2.raw"/></CiscoIPPhoneExecute>
On average in 1 out of 6 times I hear the correct ring-tone playing.
This is really bad and I don't feel confident if the Cisco-API stuff is good enough to work with.
Since I'm fairly new in Cisco development (and couldn't find good tutorials, apart from the only AXL/SOAP-HelloWorld Java example using the GetPhone only), I hope that in the Cisco community somebody can help me with the following:
Is the above command the correct way to play a ring tone?
How can I be sure that I'm not trying the wrong ringtone, for example when I use 'Classic2', 'Clasic.ruw' or any other file I'm still getting a "Status: 200 OK" response back, without hearing the ringtone in question?
Are there any logfiles to be obtained from the Cisco handset, or at least a working tutorial on how to accomplish this?
I notice that (when the sounds plays) there is a considerable delay between the time I sent the command and once I hear it play. Are there any tools (like trace-route) to figure out where the delay comes from? I strongly suspect that our firewall/network setup is not the most efficient one, but really need some advice on the delay, since this is clearly not a workable solution.
Any help or references to good tutorials / guidelines are very much appreciated. Thanks in advance!
... View more
Hi Nicholas, thanks for the great tip! I had not thought about this easy solution and it works pretty well. When I tried your example it showed a popup window asking me to enter username/password. I noticed that when using http://username:password@phoneip/CGI/Execute it did not show the popup, but IMHO it is not good practice to use a visible password in the html-code. Again thanks very much for the tip and time, have a nice day, kind regards.
... View more
Hi 'dstaudt' again. Thanks to your great suggestions I got a working version. I based my solution on the AXL-HelloWorld example and used code to ignore all certificates! On my embedded environment the GetPhone() call now takes a whopping 1.6 seconds i.s.o. 22 minutes! You're me hero of the month and thanks again for your time.
... View more
Hi 'dstaudt', thanks for the great suggestions! I completely forgot that my test/host-OS has a 2.2Ghz Intel Core i7 with 16 GB-RAM, and the embedded environment is running on a 400 Mhz Atmel with 256 MB-RAM, which might explain the differences in duration. I'm working on a version with XML over HTTP but encounter some certificate issues. I've to figure out how to use either a HttpsUrlConnection or HttpClient / HttpPost connection and I've to ignore all certificates or download / convert the Cisco.cer to a (java)keystone.jks file in my project(s). The GetPhoneReq() example seems to work only with https i.s.o. http (I tested this with SoapUI ).
... View more
I found the SOAP/Java demo example in which a GetPhoneReq() is used to get information from a specific phone. Is there any Java example or tutorial with which I can send a message (CiscoIPPhoneText formatted) to a specific phone? I have searched quite a lot, but did not yet find any tutorial or example on how to send a message to a specific phone. Should I use JTAPI for this or modify the GetPhoneReq AXL-DEMO app by calling some kind of RPhone.sendMessage call with the appropriate parameters. Does anybody know a good (introductory) tutorial or have a reference to more Java/Soap examples, since I found only 2 ones i.e.: HelloWorld and GetPhoneReq?
... View more
I've made the Eclipse-Java/GetPhone example and when I run it on my MacOSX-10.11.6 Eclipse I'll get the following results: 2016-10-05 15:08:15,339 [main] INFO Demo.informUser:108 - Welcome to the Cisco AXL Sample APP. 2016-10-05 15:08:15,339 [main] WARN Demo.getPhoneInfo:77 - Enter AXLAPIService ... 2016-10-05 15:08:15,340 [main] DEBUG AXLAPIService. <clinit> :32 - baseUrl=file:/Users/NLverseveldO/Documents/Workspaces/ws_eclipse/Cisco_axl-demo/bin/ com / cisco / axlapiservice / 2016-10-05 15:08:15,341 [main] DEBUG AXLAPIService. <clinit> :34 - url =file:/Users/NLverseveldO/Documents/Workspaces/ws_eclipse/Cisco_axl-demo/schema/current/AXLAPI.wsdl 2016-10-05 15:08:15,680 [main] WARN Demo.getPhoneInfo:79 - GetAXLPort ... 2016-10-05 15:08:20,721 [main] INFO Demo.getPhoneInfo:84 - validatorUrl= https://ccm-10-5-1.ascom-rd.com:8443/axl/ 2016-10-05 15:08:20,721 [main] WARN Demo.getPhoneInfo:85 - Setup up getRequestContext() ... 2016-10-05 15:08:20,723 [main] WARN Demo.getPhoneInfo:91 - Create GetPhoneReq instance ... 2016-10-05 15:08:20,723 [main] DEBUG Demo.getPhoneInfo:94 - Set-up axlParams: com.cisco.axl.api._8.GetPhoneReq@508f66bd 2016-10-05 15:08:20,723 [main] DEBUG Demo.getPhoneInfo:96 - Performing getPhone request ... 2016-10-05 15:08:22,424 [main] INFO Demo.informUser:108 - Requested info for phone: SEP4C00828573D8 returned: Cisco 7925 where the time between GetAXLPort and the GetPhoneReq takes about 5 seconds, whereas when I run the same example on an (embedded) open-idk.vm I'll get the following results: 2016-10-05 14:23:38,478 [Thread-3] INFO Demo.informUser:108 - Welcome to the Cisco AXL Sample APP. 2016-10-05 14:23:38,505 [Thread-3] WARN Demo.getPhoneInfo:77 - Enter AXLAPIService ... 2016-10-05 14:24:16,144 [Thread-3] WARN Demo.getPhoneInfo:79 - GetAXLPort ... 2016-10-05 14:44:49,836 [Thread-3] INFO Demo.getPhoneInfo:84 - validatorUrl= https://ccm-10-5-1.ascom-rd.com:8443/axl/ 2016-10-05 14:44:49,908 [Thread-3] WARN Demo.getPhoneInfo:85 - Setup up getRequestContext() ... 2016-10-05 14:44:49,929 [Thread-3] WARN Demo.getPhoneInfo:91 - Create GetPhoneReq instance ... 2016-10-05 14:44:49,939 [Thread-3] DEBUG Demo.getPhoneInfo:94 - Set-up axlParams: com.cisco.axl.api._8.GetPhoneReq@c0c9c4 2016-10-05 14:44:49,947 [Thread-3] DEBUG Demo.getPhoneInfo:96 - Performing getPhone request ... 2016-10-05 14:44:56,929 [Thread-3] INFO Demo.informUser:108 - Requested info for phone: SEP4C00828573D8 returned: Cisco 7925 where the time between GetAXLPort and the GetPhoneReq takes a whopping 22 minutes!?? Does anybody know have an idea where this delay comes from or have a solution how to speed this up? I also tried multiple testruns with about the same timing-results, e.g. about 5 seconds while running native on OSX and about 22 minutes while running 'embedded'? Any advice or help, very much appreciated, thanks in advance.
... View more
Did you generate the local-keystore/certifcate with java8-keytool and tried to run it in a java6 environment? I think (in terms of security) java8-keytool / java6-keytool may differ in terms of algorithms, so you'ld better try to generate the local-keystore/certificate using java6-keytool?
... View more