cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1574
Views
5
Helpful
9
Replies

Webdialer with SOAP (WSDL)

markotisler
Level 1
Level 1

Hi,

i am trying to write a test class for an application, where you can use webdialer functionalities.

The code is written in Java (Visual Studio J#) and the webdialer web service is imported as a web reference.

cred = new Credential();

cred.set_userID("user");

cred.set_password("pass");

UserProfile prof = new UserProfile();

prof.set_user("me");

prof.set_lineNumber("my_phone");

prof.set_locale("default");

prof.set_supportEM(true);

wds = new WebdialerSoap();

CallResponse resp = new CallResponse();

wds.set_Url("https://<CCM_IP>:8080/webdialer/services/WebdialerSoapService");

resp = wds.makeCallSoap(cred, "called_number", prof);

On makeCallSoap i get this error:

{"The underlying connection was closed: An unexpected error occurred on a send."}

{"Authentication failed because the remote party has closed the transport stream."}

Any ideas what am i missing?

Best regards,

Marko

1 Accepted Solution

Accepted Solutions

I suppose either should be fine. Most webservices frameworks transparently handle server redirects so your application wouldn't even know the difference (unless the cert cannot be validated.. then you need to either import the cert into your cert store or write some lines of codes that automatically accept any given certificate from the webserver... I tend to do the latter since it means less installation support.. )

View solution in original post

9 Replies 9

Sascha Monteiro
Level 6
Level 6

To All: Please provide the CUCM version you are using in your posts

is webdialer enabled in the CUCM?

Version of CCM is 6.1 and webdialer is enabled, yes.

webdialer uses http, not https.

For the future.. always plug the url into your webbrowser and see what happens.. webservices still respond when you access them via GET.. they will most likely show an error message but at least you then know the service is up and running.. and if the service requires authentication, you can even verify if you enter the proper credentials.

If you do this for the webdialer.. you get a page load error for https and a "Hi there, this is an AXIS service!" for http..

When i enter "http://IP:8080/webdialer/services/WebdialerSoapService" in the browser i get redirected to "https://IP:8443/webdialer/services/WebdialerSoapService" and this is the page where i get "Hi there, this is an AXIS service" message. So which address and port should then be used in the application?

Best regards,

Marko

I suppose either should be fine. Most webservices frameworks transparently handle server redirects so your application wouldn't even know the difference (unless the cert cannot be validated.. then you need to either import the cert into your cert store or write some lines of codes that automatically accept any given certificate from the webserver... I tend to do the latter since it means less installation support.. )

Thanks, auto-accepting the certificate was exactly what i needed to do to make things work. I do have one more question:

Currently, i have to provide Device Name parameter in UserProfile to make the call work. Is it possible to make it work by providing the line number only?

This is how i have set the profile:

prof.set_deviceName("SEP000F23F67632");

prof.set_user("dialer");

prof.set_lineNumber("628");

prof.set_locale("default");

prof.set_supportEM(true);

Best Regards,

Marko

The reason i am asking this is because i would like to make calls via WebDialer for users with Extension Mobility. The problem is that even by calling getProfileSoap, i can not see any Extension Mobility Device Profiles, only the associated phones.

I suspect that's not possible because with EM you could potentially have two lines with the same dn/partition on two different phones.. and so it is important that the CCM knows from which phone the call should be made.

However, via axl you can extract whatever info you need. In case of em, both the physical device and the device profile are in the table device, the DNS are in the table numplan, and linked to each other via devicenumplanmap table. Furthermore the enduser is in the enduser table and then we have the extensionmobilitydynamic table which shows you who is logged in where with with profile.

Yes, i have currently implemented this via axl/soap, but i was looking for a way to avoid the use of axl if possible. Thanks for the info!

Best regards,

Marko

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: