Please join me in asking Cisco to provide a proper WSDL / schema files for the AXL API. The power of webservices largely stem from simplicity of use.. you import a WSDL into your IDE and you're all set. If you look at the files Cisco provides, they've been manually edited, which already should be a sign for alarm. There are plenty of toolkits to automatically generate schema and WSDL files form a set of classes so that somebody can expose a service, so there really is no need for manually writing a service contract, it only leads to problems (I've tried three toolkits to try and generate proxy classes, in Java and .NET and none of them worked out so I'm left with the option to either write my own stubs, or try and fix the WSDL and schema files).
AXL is a very useful API and it's a shame that Cisco throws huge rocks in our way by not providing a service contract that can be consumed directly by a modern IDE.
Note: I've tried VS.NET 2k3, Microsoft's wsdl.exe from the .NET SDK, AXIS and Sun's web services development kit.
I totally agree!! I have been having the same problems. Because of the time involved in trying to write our own we have effectively given up on the project we had intended on pursuing.
Someone once said that XmlSpy comes very close to beingable to generate it. Have you tried this? My trial has run out, and although I'd be happy to buy it if it does work - I'm not going to buy it on the off chance.
Since Cisco charges for developer support regardless of it's about a bug of their own or you needing help, where can I send the bill for what I'm about to post?
I must say I'm highly disappointed by the AXL "API" documentation. An autogenerated document from a couple of schema files that don't even pass the validation in the program they were written in.
I have fixed all the validation errors and attached the files below. I have also used XMLSpy 2006 to create a C# and a Java project from the axlsoap.xsd schema. This isn't as good as importing a WSDL, but it at least gets you closer to where we should be without effort of our own.
I have also created another set of schema and WSDL file that use standard identation so you can actually read the WSDL, and changed the namespaces definitions to be less ambiguous so that they pass the wsdl.exe test. However, I have not managed to turn either version of the WSDL into a set of classes.. wsdl.exe craps out because it has problems dealing with "wsdl that references schema file that references schema file" (description here: http://support.microsoft.com/default.aspx?scid=kb;en-us;820122), and WSDL2Java times out for reasons unkown.
I sincerely hope that if somebody managed to get a working WSDL (based on my work or otherwise), he/she will share it. When it comes to such basic issues, we really should all pull on one string on this one. I think I did my part for now but if I manage to progress even further, I'll of course share my results.. it's not like we're talking about protected IP after all, and whomever once took advantage of the knowledge provided for free from another person should be able to convince his/her employer that some sharing of information is mutually beneficial.
Anyway, enjoy the attachments and please do not hesitate to contact your cisco account manager regarding this highly unsatisfactory situation. I also work with a competing PBX (Alcatel), and why their APIs are not as rich yet, they at least have a proper documentation, working samples (in both Java and .NET) and creating proxies from the WSDL works out just fine.
Could you upload your files again?
Is there some other place that I could find them?
I could really use what you have already done for my current project.
Could you repost your files?
I'm working on a small AXL project on CCM 4.2 and I'm having a lot of issues with the WSDL file that is part of the CCM.
I couldn't agree more. We use AXIS and I waste days tweaking the AXL schema files for each upgrade (which I am currently doing for 4.1.3 uhg!).
It is a very useful API and I do not understand how the schema files do not map to the actual soap messages. It cripples the tool.
Stephan: We have AXIS running here if you have any questions about it I'd be glad to help.
Zach: I believe the xsd files I've attached are proper, but AXIS' WSDL2Java times out when generating the classes.. any idea why that is?
I basically got rid of the ambiguous declarations of tunneledProtocol and the one immediately thereafter (I'm not at work atm so I can't have a look). In the WSDL, there was a getHuntgroup message call, for which there's no corresponding method in the axlsoap.xsd.. in the latter file it's called something like listHungroupList.. I got rid of the List suffix.
What other changes have you been making?
So... I didn't experiance very many problems with the initial compilation. My problems come in the form of CM returning or expecting a soap message that is not expressed in the schema files. The most anoying example of this so far is when calling getUser CM returns a XUser with
I do remember having issues with getHuntgroup and listHuntgrouList... I think I just removed them all together. And got it to compile. I'm attaching my 4.1.3 xsd and wsdl files... for some reason my diff's against the originals are totally useless (they're just saying the whole file is different). I'm still working on them to hammer out some issues but they compile with axis 1.2.1 .
As for the timing out, I think when I mucked around too much in the files I think I remember getting a time out, but try mine and let me know if you have any luck.
hmm.. I only see the attachment keyword but not the actual attachment. Did the forum software swallow it? Not that I would be surprised because this forum has a tendency to muck up (and it dog slow, too.. )
What you said about XUser scares the hell out of me.. how do they expect us to work with such an obviously broken product?
Where I am we've already invested a lot into using the APIs so there's kind of no choice at this point. I just try and do as much unit testing as I can and fix the stubs when they fail.
But you're absolutly right... the product is so broken. I don't understand how they can deploy it without it being correct. I think as more people get into webservices they'll have to start making it a better product.
I'll try attaching it again. These forums leave ummm something to be desired.
I just tried your schemas, but when trying to generate stubs via 'wsdl AXLAPI.wsdl', I get the same error as with the original files:
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Error: Unable to import binding 'AXLAPIBinding' from namespace 'http://www.cisco
- Unable to import operation 'addPhone'.
- The element 'http://www.cisco.com/AXL/API/1.0:addPhone' is missing.
I do totally agree, it is a BIG mess :-(
You cannot log cases for this, unless you have the special developer support contract $$$
...a REAL soap interface should be able to create the wsdl file on the fly with a request...
And how about backwards compatibility???
you need stubs for every different CCM version :-(
A couple of questions for you and would appreciate your thoughts.
1.What can you use the AXL API for, and what specific use do you currently use.
2.We are planning to develop XML apps for the phones and plan to look at the cisco sdk AND 3rd party apps (applicances) like NET6. Can you give us any pointers on SDK usage best practice. Also view on development platform (we have both Unix and windows platfroms)
We are plannnig to develop
@Zach: Since there's no dedicated login operation, any pointers as to how to do the authentication when using AXLPort (compiled from the WSDL)?
Will, perhaps another thread would be more suited for the subject..
AXL is THE programming API for the CCM. You can do a lot of things, ranging from getting a list of phones, to creating phones, creating gateways, etc etc. Please refer to the API documentation (http://www.cisco.com/cgi-bin/dev_support/access_level/product_support, free CCO account required) for more details.
AXL has nothing to do with the phones themselves, but lacking any dedicated AXL forum, this still is pretty much the only place you can discuss that API. So, development platform requirements are quite different for AXL and IP Phone services since they run at another place. A management application using AXL could run on a windows desktop, whereas an IP phone service could run on a Linux or Unix webserver, use different programming languages, etc. And depending on your webserver, your platform will once again vary, i.e. if you're using IIS with the onboard tools, clearly Windows is a preferable development platform, whereas if you're using LAMP (Linux, Apache, MySQL, PHP), it really doesn't matter.
Belated Thanks for yr feedback, agree another thread would have been more suited. Have found the sample AXL browser and been experimenting with that.
How did this thread make it up into the list again without new posts?
Anyway, I have some news:
I've been told that starting with the next 5.1x release, Cisco will start verifying the WSDL (starting with one of the 5.04 patches they started shipping modified WSDL files that can be imported using .NET and Apache Axis 1.4 but without validation of the WSDL file so there can still be inconsistencies between the language description and the generated code).
And for the upcoming 6.1, they're looking at autogeneration of the WSDL.
I agree that this needs to be resolved. I have been trying to use VS .NET and have had no luck. Is there a work around that anyone knows of or a wrapper class that someone has written? Thanks in advance for your help!
I'd be very careful with that.. CCM 4.x and 5.x have different feature sets, so there are things in 4.x that you don't have in 5.x and vice versa.. so if you send an 5.x XML containing tags CCM 4.x doesn't know, it'll fail, and conversely, there are things you cannot set in CCM 4.x using a 5.x wrapper.
You make a very good point. I have been trying to locate a WSDL file that works with VS, but all the attachments in the posts that I find are expired. Do you have any idea where this can be obtained from?
I am also intrested in having wsdl specific for CCM 4.x.
If somone could re post these files here or send me a copy to: probert100 at gmail.com