CCME xml api

Unanswered Question
Oct 15th, 2007

hi all!

I'm trying to do some xml requests to a Cisco CallManager Express 4.1(0). But every time i get a "The underlying connection was closed: The connection was closed unexpectedly." error.

After a while i found the default test page on the CCME for testing the xml API: http://CCME-IP/ISApi/AXL/V1/ You only need to past this in the url bar of your browser

When i submit the gerenated code on that page i recieve the following error: "Cannot find server - The page cannot be displayed" But when i press the f5 button the default test page shows again.

Is there anyone who can help me? Thanks in advance!

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
masur_fox_spr Mon, 01/28/2008 - 05:31

Hi all.

I have the same situation. Maybe AXL web server is not configured properly . How can I ensure that AXL server is running and configured properly for CCME?

Please help me!!!

Thanks ahead

mhankus Sun, 02/10/2008 - 12:39

But your solution is only for CCME version earlier then 4.0. I havn't managed to make AXL run in 4.0 and later.

Has anyone seen it running in CCME 4.0 and later ? (4.0 added ixi - and this may be the problem)

If anyone has a working AXL please share this information - how to do it.

Paolo Bevilacqua Mon, 02/11/2008 - 05:38

Hi, I do use the test mentioned above with CCME 4.1 and the router responds correctly as described in the SRND.

Then I don't use AXL because the features in there are insufficiente for my needs, but that's another issue.

mhankus Mon, 02/11/2008 - 06:19


Now I've resolved the problem. Under CCME 4.0 and later xmltest command is not available in help system. So IOS does not expand it when you press tab. I was thinking that xmltest command was removed. If you enter it by hand (and forget about command expanding) everything start to work.

You can verify that if you enter xml under telephony-service and press TAB. xmltest is not expanded.

Thank you for verifying that it is working under 4.0 and later. Right now I can also verify that it is working.


Paolo Bevilacqua Mon, 02/11/2008 - 11:15

Nothing strange, some commands are hidden one release and visible the next, or viceversa.

Sometime one thinks that this cisco's way to make your work "interesting".

biesselillo Tue, 02/19/2008 - 02:52


I have a CME and I have tested the "xmltest" calling it from my browser and it works.

Now what I want do to is create an application ASP.Net in order to connect to the CME, pass the authentication and then make some request to it in order to retrieve if an ip phone has the line "idle" or "inuse".

I tried to built the application but I have an error, I pass the authentication and then afetr posting the query copied from the xmltest web page, I get the answer "underlining connection closed".

Have you an idea why?

Have I to disable the "xmtest" ?

I fI disable it I see on the debug on the CME the error "test_xml_api not set".

I think I'm wrong in somthing, but I don't know where.

Please, can you help me ?

I'm doing this because I would like to simply retrieve if an ip hone is idle, busy, and if it is making a transfer.

Paolo Bevilacqua Tue, 02/19/2008 - 09:00

Looks like the CME doesn't like the query you sent. If you capture the response code, you should be able to see what's going on.

biesselillo Thu, 02/21/2008 - 03:31


sorry if I'm boring you but I'm new and I don't understand very well the mechanism.

We have tested the "xmltest" and it works perfectly.

Then we have built an application in Java whihc makes the connection to the CME, makes the authentication and sends a request to the CME identical to the one generated by the web interface of the "xmltest" sample.

The problem is that we don't know if we have to disable the xmltest ( i mean "no xmltest"), and create another file xml-test.html to push into the CME in order to do our applications, or if we can simply delete from the flash the xml-test.html and send request to the CME...we are in confusion because we don't know the correct way to proceed.

Please help me!

Thank you very much!

Paolo Bevilacqua Thu, 02/21/2008 - 14:56

You can capture the complete http transaction using wireshark, and find what is different.

sullyb007 Thu, 02/21/2008 - 09:13


I'm currently getting this error on CME 4.1 as well, but in a little different situation. When I try to submit the request, the response is always "The underlying connection was closed: The connection was closed unexpectedly."

The test page seems to be set up correctly, I can reach it on my browser, generate the xml for a call, but when I hit submit, I just get a blank page. I'm not even getting the "Cannot find server" error. All submits just come back with a blank page.

Any ideas?

Thanks in advance,


mhankus Thu, 02/21/2008 - 15:06

You must have "xmltest" command entered under telephony-service

biesselillo Fri, 02/22/2008 - 00:50


I'm using MS IE and also tried to use Firefox, but the problem is still present.

Whta I'm trying to understand is the reason behind; I mean that after I have tested with success the xmltest, what have I to do ?

On the dicumentation is written that I have to set the command:

no xmltest

after I tried the test.

But Have I to load into the flash another html file different from the xml-test.html in order to elaborate my request?

Or Have I to leave that file running ?

We have built a Java application which sends correctly the connection to the CME, do correctly the authentication and sends correctly the request; I'm sure because I see also this on Wireshark trace, but the CME does not answers, or expects something more or different.

I'm loose and I'm also worried because noone can help me understand this thing.

I think that is it impossible that I can't retrieve the simple "status" info from CME. There should be a correct way to do this.

Please help me!

sullyb007 Mon, 02/25/2008 - 14:16

Ok, I've now got the test page working properly, but I am still having problems when I try to post the soap message to the api. After I post, I try to receive with webRequest.GetResponse() (C#), and get the "connection has closed unexpectedly" error.

I've verified that the credentials that I'm using are correct, and I've even grabbed the soap message while debugging, and pasted it into the AXL test page and gotten back the expected results, so the soap messages is good.

I've been using wireshark to try to compare, but there are differences in the post headers and the data sent because one is being posted through the website, so the content-type is "application/x-www-form-urlencoded" instead of text/xml, and the data is obviously urlencoded instead of the straight soap message data that I'm trying to send.

I'm absolutely confused here because I'm able to use the webrequest & webresponse objects in the exact same way when I'm making calls to regular Call Manager (as opposed to CME), and it's not closing the webrequest.

Anyone have any more ideas?

sullyb007 Wed, 02/27/2008 - 07:46

Well, here's my chance to give back to the community. I've finally figured out how to communicate with CME 4.2.

First a little background - My application creates the string that represents the SOAP XML messages, uses the WebRequest object (C#) to set the headers, send, and receive the response. This worked fine for the regular Cisco Call Manager, but once I tried it with Express, the server kept killing the connection. If I screwed with the authentication string, I would at least get a response saying that I did not have authorization, but got absolutely nothing back when sending a valid xml request.

Using wireshark to examine the packets, I tried to reproduce the message that was being sent (successfully) from the API test page that is built into the server. I had first thought that my problem was with either the http headers or my xml was incorrect, but what I have found is this - The soap message MUST be preceded with "content=" and MUST be url encoded. It doesn't matter what the content type header is set to ("text/xml" or "application/x-www-form-urlencoded" as coming from the webpage); it will only respond to my request when I prefix content= and url encode the data.

This was very frustrating to say the least. This is obviously contrary to anything in the XML Provisioning Guide for CME, which tells you to pass text xml just like Call Manager. Anyway, I posted this in hopes that it saves someone else the headache and in thanks to all of those that have helped me.


Paolo Bevilacqua Wed, 02/27/2008 - 15:56

Good finding, I'm happy that my suggestion of sniffing packets has lead you to find what the problem was.

You've just meet a typical cisco IOS behavior: things work, but only when you make no easy assumptions and do not give up easily.


This Discussion