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>
