Webdialer
WebDialer WSDL File for CUCM
Reference Character Encoding (needed for WebDialer)
https://grox.net/utils/encoding.html
Use Postman for testing the XML API (Extension Mobility)
CUCM Extension Mobility API
CUCM Webdialer SOAP Developer Guide
https://developer.cisco.com/site/webdialer/develop-and-test/documentation/developer-guide/
https://developer.cisco.com/site/webdialer/develop-and-test/documentation/developer-guide/#makecallsoap
- Setup an Application user “webdialer” with the rights “Standard EM Authentication Proxy Rights”
- Enable “Cisco WebDialer Web Service” on the CUCM subs
Developer Overview – how to enable click to dial for a Extension Mobility User
- Use Extension Mobility XML API to get the Users “Phone Device Name”, e.g. the phone name “SEP0038DFA2ED28”, that the user is logged into.
- Use WebDialer SOAP MakeCall to do a click to dial
DETAILED STEPS
STEP 1 – Use Extension Mobility API to find out the Phone Device Name for the logged in user.
Note: I tested this step using the Developer tool “POSTMAN”
HTTPS POST
Content-Type: application/x-www-form-urlencoded
URL: https://my-cucm-server:8443/emservice/EMServiceServlet
xml Query
<query> <appInfo> <appID>webdialer</appID> <appCertificate>myappuser-password</appCertificate> </appInfo> <userDevicesQuery> <userID>11151</userID> </userDevicesQuery> </query>
Example Screenshot of Postman - with the XML POST
RESPONSE
<?xml version="1.0"?> <!DOCTYPE response SYSTEM "http://10.24.30.40:8080/emservice/jsp/LoginQueryResults.dtd"> <response> <userDevicesResults> <user id="11151"> <deviceName>SEP0038DFA2ED28</deviceName> </user> </userDevicesResults> </response>
STEP 2 – Send a Make Call Request using the Webdialer SOAP API
I tested this step using the developed tools SOAP UI
Send the Below SOAP Request for the user ‘11151’
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70"> <soapenv:Header/> <soapenv:Body> <urn:makeCallSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <in0 xsi:type="urn:Credential"> <userID xsi:type="xsd:string">webdialer</userID> <password xsi:type="xsd:string">ClickToDial!</password> </in0> <in1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">14155</in1> <in2 xsi:type="urn:UserProfile"> <user xsi:type="xsd:string">11151</user> <deviceName xsi:type="xsd:string">SEP0038DFA2ED28</deviceName> <lineNumber xsi:type="xsd:string"></lineNumber> </in2> </urn:makeCallSoap> </soapenv:Body> </soapenv:Envelope>
RESPONSE
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:makeCallSoapResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:WD70"> <makeCallSoapReturn href="#id0"/> </ns1:makeCallSoapResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:CallResponse" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:WD70"> <responseCode href="#id1"/> <responseDescription xsi:type="xsd:string">Success</responseDescription> </multiRef> <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef> </soapenv:Body> </soapenv:Envelope>