SOAP interface
You should use the WebDialer SOAP interface when full control over the user experience is desired. The SOAP client is responsible for collecting the end-user’s credentials, obtaining the devices and lines associated with the user account, and specifying which device and line should be used when placing the call.
Use the WebDialer HTML (web-based) Interfaces if Cisco Unified CM should be responsible for these operations.
API Endpoint
All WebDialer SOAP API requests should be sent to:
Copyhttps://[cucm_host]:8443/webdialer/services/WebdialerSoapservice70
WSDL
The WebDialer WSDL can be downloade from the CUCM server:
Copyhttps://[cucm_host]:8443/webdialer/wsdl/wd70.wsdl
isClusterUserSoap>
This SOAP request determines if a user is a member of the queried cluster - useful in a multi-cluster environment. Send the request to at least one Subscriber running the WebDialer service in each cluster. The cluster which is the home cluster for the user will respond with a <isClusterUserSoapReturn>
value of true
.
Once the user's home cluster is identified, all further requests for that user should be sent to that cluster's WebDialer service URL.
This request does not require any authentication/credentials.
Parameters | Type | Required | Description |
---|---|---|---|
<in0> |
soapenc:string | Required | The user ID of the user or proxy user |
Request
Copy<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<urn:isClusterUserSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:string">johndoe</in0>
</urn:isClusterUserSoap>
</soapenv:Body>
</soapenv:Envelope>
Response
Copy<!--isClusterUserSoap 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:isClusterUserSoapResponse xmlns:ns1="urn:WD70" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<isClusterUserSoapReturn xsi:type="xsd:boolean">true</isClusterUserSoapReturn>
</ns1:isClusterUserSoapResponse>
</soapenv:Body>
</soapenv:Envelope>
Parameter | Type | Description |
---|---|---|
<isClusterUserSoapReturn> |
xsd:boolean | true or false if the user is present in the directory of the cluster |
makeCallSoap
Place a call.
The <in0>
Credential username must match the username specified in the <in2>
UserProfile, unless the Credential user has the proxy authentication role (see Authentication)
WebDialer does not provide any validation of the destination number. The phone handles the required validation. If an invalid dial string is provided, the SOAP request will succeed, but the phone may not place a call or may place a call that fails to complete.
Note: WebDialer does not support SIP URI dialing.
When a SIP phone initiates a <makeCallSoap>
request, the dial string is passed to the CUCM Digital Analyzer (DA). If it encounters invalid digits, the DA returns an error immediately. When a SCCP phone initiates a <makeCall>
request, the device layer in the Cisco Unified CM server checks for valid numbers, strips any invalid characters, and proceeds with the call.
Parameters | Type | Required | Description |
---|---|---|---|
<in0> |
urn:Credential | Required | API user credentials, see Authentication |
<in1> |
soapenc:string | Required | Destination dial string |
<in2> |
urn:UserProfile | Required | The <user >, <deviceName> , and <lineNumber> used to place the call |
Note: the optional
<in2>
elements<supportEM>
,<locale>
,<dontAutoClose>
and<dontShowCallConf>
are deprecated/ignored.
Request
Copy<!--makeCallSoap request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header />
<soapenv:Body>
<urn:makeCallSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="urn:Credential">
<userID xsi:type="xsd:string">bill</userID>
<password xsi:type="xsd:string">123</password>
</in0>
<in1 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:string">1002</in1>
<in2 xsi:type="urn:UserProfile">
<user xsi:type="xsd:string">bill</user>
<deviceName xsi:type="xsd:string">SEPF01FAF38ABC2</deviceName>
<lineNumber xsi:type="xsd:string">?</lineNumber>
</in2>
</urn:makeCallSoap>
</soapenv:Body>
</soapenv:Envelope>
Response
Copy<!--makeCallSoap 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 xmlns:ns1="urn:WD70" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<makeCallSoapReturn href="#id0" />
</ns1:makeCallSoapResponse>
<multiRef xmlns:ns2="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:CallResponse">
<responseCode xsi:type="xsd:int">0</responseCode>
<responseDescription xsi:type="xsd:string">Success</responseDescription>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
For a list of possble response codes/descriptions, see SOAP Response result codes.
endCallSoap
End a call previously launched via <makeCallSoap>
.
The <in0>
Credential username must match the username specified in the <in1>
UserProfile, unless the Credential user has the proxy authentication role. See Authentication
Request
Copy<!--endCallSoap request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header />
<soapenv:Body>
<urn:endCallSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="urn:Credential">
<userID xsi:type="xsd:string">bill</userID>
<password xsi:type="xsd:string">123</password>
</in0>
<in1 xsi:type="urn:UserProfile">
<user xsi:type="xsd:string">bill</user>
<deviceName xsi:type="xsd:string">SEPF01FAF38ABC2</deviceName>
<lineNumber xsi:type="xsd:string">1002</lineNumber>
</in1>
</urn:endCallSoap>
</soapenv:Body>
</soapenv:Envelope>
Parameter | Type | Required | Description |
---|---|---|---|
<in0> |
urn:Credential | Required | API user credentials, see Authentication |
<in1> |
urn:UserProfile | Required | The <user >, <deviceName> , and <lineNumber> of the call to end |
Response
Copy<!--endCallSoap 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:endCallSoapResponse xmlns:ns1="urn:WD70" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<endCallSoapReturn href="#id0" />
</ns1:endCallSoapResponse>
<multiRef xmlns:ns2="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:CallResponse">
<responseCode xsi:type="xsd:int">0</responseCode>
<responseDescription xsi:type="xsd:string">Success</responseDescription>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
For a list of possble response codes/descriptions, see SOAP Response result codes.
getProfileSoap
Retrieve a list devices associated with the specified end-user. Details include device names and lines.
Request
Copy<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:getProfileSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="urn:Credential">
<userID xsi:type="xsd:string">testAppUser</userID>
<password xsi:type="xsd:string">password</password>
</in0>
<in1 xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">johndoe</in1>
</urn:getProfileSoap>
</soapenv:Body>
</soapenv:Envelope>
Parameter | Type | Required | Description |
---|---|---|---|
<in0> |
urn:Credential | Required | API user credentials, see Authentication |
<in1> |
soapenc:string | Required | User for whome to retrieve device details |
Response
Copy<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:getProfileSoapResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:WD70">
<getProfileSoapReturn href="#id0"/>
</ns1:getProfileSoapResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:GetConfigResponse" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:WD70">
<description xsi:type="xsd:string">Success</description>
<deviceInfoList soapenc:arrayType="ns3:WDDeviceInfo[1]" xsi:type="soapenc:Array" xmlns:ns3="urn:WebdialerSoap">
<item href="#id1"/>
</deviceInfoList>
<responseCode href="#id2"/>
</multiRef>
<multiRef id="id2" 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>
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:WDDeviceInfo" xmlns:ns4="urn:WebdialerSoap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<deviceName xsi:type="xsd:string">IPCMRAEU5UCM5X7</deviceName>
<lines soapenc:arrayType="xsd:string[1]" xsi:type="soapenc:Array">
<item xsi:type="xsd:string">1251 ; no partition</item>
</lines>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
Response element | Type | Description |
---|---|---|
<deviceInfoList> |
soapenc:Array of ns2:WDDeviceInfo |
List of available devices for calling |
<deviceName> |
soapenc:string | Device name |
<lines> |
soapenc:Array of soapenc:string |
List of directory numbers on the device |
<item> |
soapenc:string | Directory number + ; + partition of the line appearance |
For a list of possble response codes/descriptions, see SOAP Response result codes.
getProfileDetailSoap
Retrieve a list of devices (including additional details) associated with the specified end-user. Details include device name, lines, description and phone type.
Note: this request does not support proxy authentication
Request
Copy<!--getProfileDetailSoap request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header />
<soapenv:Body>
<urn:getProfileDetailSoap soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="urn:Credential">
<userID xsi:type="xsd:string">bill</userID>
<password xsi:type="xsd:string">123</password>
</in0>
</urn:getProfileDetailSoap>
</soapenv:Body>
</soapenv:Envelope>
Parameter | Type | Required | Description |
---|---|---|---|
<in0> |
urn:Credential | Required | User credentials, see Authentication |
Response
Copy<!--getProfileDetailSoap 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:getProfileDetailSoapResponse xmlns:ns1="urn:WD70" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getProfileDetailSoapReturn href="#id0" />
</ns1:getProfileDetailSoapResponse>
<multiRef xmlns:ns2="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ConfigResponseDetail">
<description xsi:type="soapenc:string">Success</description>
<deviceInfoListDetail soapenc:arrayType="ns2:WDDeviceInfoDetail[3]" xsi:type="soapenc:Array">
<item href="#id1" />
<item href="#id2" />
<item href="#id3" />
</deviceInfoListDetail>
<responseCode xsi:type="xsd:int">0</responseCode>
</multiRef>
<multiRef xmlns:ns3="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:WDDeviceInfoDetail">
<deviceName xsi:type="soapenc:string">SEPE8B7480316D6</deviceName>
<lines soapenc:arrayType="soapenc:string[1]" xsi:type="soapenc:Array">
<item xsi:type="soapenc:string">1000 ; no partition</item>
</lines>
<phoneDesc xsi:type="soapenc:string">SEPE8B7480316D6</phoneDesc>
<phoneType xsi:type="soapenc:string">Cisco 6961</phoneType>
</multiRef>
<multiRef xmlns:ns4="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:WDDeviceInfoDetail">
<deviceName xsi:type="soapenc:string">SEPF01FAF38ABC2</deviceName>
<lines soapenc:arrayType="soapenc:string[1]" xsi:type="soapenc:Array">
<item xsi:type="soapenc:string">1002 ; no partition</item>
</lines>
<phoneDesc xsi:type="soapenc:string" />
<phoneType xsi:type="soapenc:string">Cisco IP Communicator</phoneType>
</multiRef>
<multiRef xmlns:ns5="urn:WD70" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:WDDeviceInfoDetail">
<deviceName xsi:type="soapenc:string">CSFuserBill</deviceName>
<lines soapenc:arrayType="soapenc:string[1]" xsi:type="soapenc:Array">
<item xsi:type="soapenc:string">1001 ; no partition</item>
</lines>
<phoneDesc xsi:type="soapenc:string" />
<phoneType xsi:type="soapenc:string">Cisco Unified Client services Framework</phoneType>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
Response element | Type | Description |
---|---|---|
<deviceInfoListDetail> |
soapenc:Array of ns2:WDDeviceInfoDetail |
List of available devices for calling |
<deviceName> |
soapenc:string | Device name |
<lines> |
soapenc:Array of soapenc:string |
List of directory numbers on the device |
<item> |
soapenc:string | Directory number + ; + partition of the line appearance |
<phoneDesc> |
soapenc:string | Phone description |
<phoneType> |
soapenc:string | Phone type |
For a list of possble response codes/descriptions, see SOAP Response result codes.
getPrimaryLine
Retrieve a user’s primary line.
Note: this request does not support proxy authentication
Request
Copy<!--getPrimaryLine request -->
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:WD70" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header />
<soapenv:Body>
<urn:getPrimaryLine soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<in0 xsi:type="urn:Credential">
<userID xsi:type="xsd:string">bill</userID>
<password xsi:type="xsd:string">123</password>
</in0>
</urn:getPrimaryLine>
</soapenv:Body>
</soapenv:Envelope>
Parameter | Type | Required | Description |
---|---|---|---|
<in0> |
urn:Credential | Required | User credentials, see Authentication |
Response
Copy<!--getPrimaryLine 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:getPrimaryLineResponse xmlns:ns1="urn:WD70" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getPrimaryLineReturn xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:string">1002</getPrimaryLineReturn>
</ns1:getPrimaryLineResponse>
</soapenv:Body>
</soapenv:Envelope>
Response element | Type | Description |
---|---|---|
<getPrimaryLineReturn> |
soapenc:string | The primary line DN of the user (can be empty) |
For a list of possble response codes/descriptions, see SOAP Response result codes.
SOAP response result codes
The possible response result codes from the SOAP interface are:
Code | Description |
---|---|
0 | Success |
1 | Call failure error |
2 | Authentication error |
3 | No authentication proxy rights |
4 | Directory error |
5 | No device is configured for the user or missing parameters exist in the request |
6 | Service temporarily unavailable |
7 | Destination cannot be reached |
8 | Service error |
9 | Service overloaded |