-
×InformationNeed Windows 11 help?Check documents on compatibility, FAQs, upgrade information and available fixes.
Windows 11 Support Center. -
-
×InformationNeed Windows 11 help?Check documents on compatibility, FAQs, upgrade information and available fixes.
Windows 11 Support Center. -
- HP Community
- Poly Phones
- Desk and IP Conference Phones
- [FAQ] REST API

Create an account on the HP Community to personalize your profile and ask a question
05-23-2018 04:34 AM - edited 10-25-2024 09:38 AM
!!! If this is used with a Phone in Microsoft Teams or Zoom Room mode many features do not work as they are not translated via the underlying UC Software to the Partner application !!!
19/09/2024 Updated REST over SIP NOTIFY Guide >here<
Poly UC Software and Poly Voice Software REST API Reference Manual
3/10/2023: Official Online Guide >here<
Older information:
Since VVX UC Software 5.8.0 the REST API is publicly available to everybody.
27/02/2018: Added Trio & CCX Rest API document
- Trio UC Software 5.9.5 REST API Document >here<
- Trio UC Software 5.9.2 REST API Document >here<
- Trio UC Software 5.9.1 REST API Document >here<
- Trio UC Software 5.9.0 REST API Document >here<
- Trio UC Software 5.8.0 REST API Document >here<
The attached manual applies to the following Polycom models: VVX phones running UC Software, Poly Trio,Edge E and CCX Phones
- VVX only UC Software 6.4.2 REST API Document >here<
- VVX only UC Software 6.4.0 REST API Document >here<
- UC Software 6.1.0 REST API Document >here<
- UC Software 6.0.0 REST API Document >here<
- UC Software 5.9.0 REST API Document >here<
To enable simply logon to the Web Interface and browse to Settings > Applications > REST API
This can also be enabled via configuration:
<test apps.restapi.enabled="1" />
IMPORTANT:
- The password must be changed from 456 to anything else or the REST API will not work
- The Username is Polycom
- If this is used with a Phone in Microsoft Teams or Zoom Room mode many features do not work as they are not translated via the underlying UC Software to the Partner application
Power Shell Examples
RESET:
Attached is the PDF explaining all supported parameters and below is an example of how to Reset a Phone using Windows Power Shell
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod -Uri "https://10.252.149.61/api/v1/mgmt/safeRestart" -Credential $cred -Method Post -ContentType "application/json" -TimeoutSec 2
The above will use the following hardcoded values:
- Username: Polycom
- Password: 789
- Phone IP: 10.252.149.61
Dial a number:
The below example dials 123
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
$body = @"
{
`"data`":
{
`"Dest`": `"123`",
`"Line`": `"1`",
`"Type`": `"SIP`"
}
}
"@
Invoke-RestMethod -Uri "https://10.252.149.61/api/v1/callctrl/dial" -Credential $cred -body $body -Method Post -ContentType "application/json" -TimeoutSec 2
LineInfo:
The below prints the Line Info
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod -Uri "https://10.252.149.61/api/v1/mgmt/lineInfo" -Credential $cred -Method Get -ContentType "application/json" -TimeoutSec 2
Simulate Touch:
NOTE: The example is only applicable for openSIP or Skype for Business as we do not have any control over 3rd Party Apps like Microsoft Teams or Zoom or the other providers.
An easy way could be using provisioning via Lens >here< as an example to provision the phone by enabling the screen capture and other required settings and factory resetting the device to get the code as the touch simulation does not work. Using a Factory reset will take only about 1 minute and then the new code is being displayed.
$step1=$args[0]
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
$body = @"
{`"data`": {`"Type`": `"Tap`", `"Positions`": [
{`"X`": `"70`",`"Y`": `"34`"}
]}}
"@
Invoke-RestMethod -Uri "https://$step1/api/v1/mgmt/simulateTouch" -Credential $cred -body $body -Method Post -ContentType "application/json" -TimeoutSec 2
The above example add's the IP address to the PowerShell command aka:
- .\REST_API_simulateTouch.ps1 10.252.149.62
It expects a hardcoded Password of:
- 789
and hardcoded coordinates of the X and Y
- 70 and 34
Which in this example is the Missed Call Icon on a VVX600
Touch using a Swipe motion from left to right:
$step1=$args[0]
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
$body = @"
{
`"data`": {`"Type`": `"Swipe`", `"Positions`": [
{`"X`": `"68`",`"Y`": `"121`"}
,
{`"X`": `"320`",`"Y`": `"156`"}
],
`"Duration`": `"100`"
}
}
"@
Invoke-RestMethod -Uri "https://$step1/api/v1/mgmt/simulateTouch" -Credential $cred -body $body -Method Post -ContentType "application/json" -TimeoutSec 2
The above original example is now using additional Swipe motion with new coordinates
The above example "swipes" the screen during an active call to the display showing the Line View
Setting Device Parameters:
$step1=$args[0]
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
$body = @"
{
`"data`":
{
`"device.set`": `"1`",
`"device.prov.serverName.set`": `"1`",
`"device.prov.serverName`": `"10.252.149.102`"
}
}
"@
Invoke-RestMethod -Uri "https://$step1/api/v1/mgmt/config/set" -Credential $cred -body $body -Method Post -ContentType "application/json" -TimeoutSec 8
The above example sets the Provisioning Server to 10.252.149.102
Batch Processing:
Example Power Shell to read a text file (ip.txt) containing a list of IP addresses and execute this to all IP's in the List:
$username = "Polycom"
$password = "789" | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
$phoneips = Get-Content "C:\temp\restapi\ip.txt"
foreach($phoneip in $phoneips)
{
$url = "https://" + $phoneip + "/api/v1/mgmt/skype/signOut"
Invoke-RestMethod -Uri $url -Credential $cred -Method Post -ContentType "application/json"
}
Content of the file ip.txt:
10.252.149.67
10.252.149.59
The above expects the IP list to be in C:\temp\restapi\ip.txt and has hardcoded values for Username and Password.
It will execute a POST REST Api to sign out the list of IP addresses of phones from Skype for Business
Curl Examples:
EDIT: Windows 10 version 1809 or later comes with CURL via the MS-Dos Command line
REST API command Format for GET:
curl -X GET -H "Content-Type: application/JSON" http://Polycom:789@10.221.72.163/api/v1/mgmt/transferType/get
HTTPS Example:
curl -k -X GET -H "Content-Type: application/JSON" https://Polycom:777@10.252.149.59/api/v1/mgmt/network/stats
the -k disables the certificate check
For POST Method to dial a number:
curl -d "{\"data\": {\"Dest\": 123,\"Line\": 1,\"Type\": \"SIP\"}}" -H "Content-Type: application/json" http://Polycom:789@10.221.72.163/api/v1/callctrl/dial
the -d is being used to send the actual data
Signing Into Skype for Business:
curl -k -d "{\"data\": {\"Address\": \"test.user@poly.com\",\"User\": \"test.user@poly.com\",\"Password\": \"MyPassword\", \"Domain\":\"\" ,\"LockCode\":\"\" }}" -H "Content-Type: application/json" https://Polycom:789@10.252.149.60/api/v1/mgmt/skype/signIn
-k is for HTTPS and -d is the data
In the above, we used Skype for Business online with the Username and Sign In address the same. We did not supply a Domain or a code to unlock the phone.
Sign Out of Skype
curl -X POST -H "Content-Type: application/json" -d "" -k https://Polycom:789@10.252.149.59/api/v1/mgmt/skype/signOut
In the below example, we change the Provisioning Server via Device Parameters
curl -k -d "{\"data\": {\"device.set\": \"1\",\"device.prov.serverName.set\": \"1\",\"device.prov.serverName\": \"10.252.149.102\" }}" -H "Content-Type: application/json" https://Polycom:789@10.252.149.62/api/v1/mgmt/config/set
Restart Example:
curl -X POST -H "Content-Type: application/json" -d "" http://Polycom:777@10.252.149.59/api/v1/mgmt/safeRestart
in this case, we use the -d as the device does not like an empty CURL request and would answer with a "411 Length Required" error
Get Call Details and Hangup Call:
In order to get the call reference via the REST API use the webCallControl/callStatus
curl -k -X GET -H "Content-Type: application/JSON" https://Polycom:789@10.252.149.62/api/v1/webCallControl/callStatus
The above will return this:
{"data": {"CallHandle": "0x2341880", "LineId": "1", "Type": "Outgoing", "Protocol": "Sip", "CallState": "Connected", "RemotePartyName": "123", "DurationInSeconds": "2", "RemotePartyNumber": "123"}, "Status": "2000"}
The CallHandle Value without the 0x is the Call_Reference.
Disconnecting the call:
curl -d "{\"data\": {\"Ref\": \"2341880\"}}" -H "Content-Type: application/JSON" -k https://Polycom:789@10.252.149.62/api/v1/callctrl/endCall
Ends the call:
{"Status": "2000"}
Modular Room aka Poly Trio connected Visual+ or VisualPro
curl -k -X GET -H "Content-Type: application/JSON" https://Polycom:789456@10.252.149.59/api/v1/mgmt/mrpair/info
The above will respond with:
{"data": {"PairedDeviceList": [{"deviceUid": "00e0db48c130", "hardwareType": "VideoCodec", "hardwareModel": "RealPresence Group 500"}], "mrUid": "0004f2fd088c", "mrStatus": "Hub", "ConnectedDeviceList": [{"hardwareVer": "20", "mrProtocolMinor": 0, "deviceUid": "00e0db48c130", "mrIpAddress": "10.252.149.102", "mrProtocolMajor": 1, "mrPort": 18888, "connectionUpTime": 44475, "softwareRelease": "Release - 6.2.2.6-650033", "softwareDate": "2021-03-04 15:49:39-0600", "hardwareModel": "RealPresence Group 500", "ComponentList": [{"componentName": "TV UI", "componentUri": "tvui", "componentProtocolVer": "1.0", "componentType": "displayUI", "componentSerialNumber": "", "componentDetail": "", "componentVersion": ""}, {"componentName": "Group Series Content in", "componentUri": "mrCI0", "componentProtocolVer": "1.0", "componentType": "ContentInput", "componentSerialNumber": "", "componentDetail": "", "componentVersion": ""}, {"componentName": "Group Series Display", "componentUri": "mrDisplay1", "componentProtocolVer": "1.0", "componentType": "displaySink", "componentSerialNumber": "", "componentDetail": "", "componentVersion": ""}, {"componentName": "GS LEDs", "componentUri": "mrGSLedC", "componentProtocolVer": "1.0", "componentType": "led", "componentSerialNumber": "", "componentDetail": "", "componentVersion": ""}, {"componentName": "gsPTP", "componentUri": "mrPtp", "componentProtocolVer": "1.0", "componentType": "ptpControl", "componentSerialNumber": "", "componentDetail": "", "componentVersion": ""}, {"componentName": "GS system component", "componentUri": "system", "componentProtocolVer": "1.0", "componentType": "system", "componentSerialNumber": "8G180248C130CV", "componentDetail": "", "componentVersion": ""}, {"componentName": "Group Series Audio", "componentUri": "mrAudio", "componentProtocolVer": "1.0", "componentType": "audioSrcSink", "componentSerialNumber": "", "componentDetail": "Local-HDMI", "componentVersion": ""}, {"componentName": "Group Series EagleEye Camera", "componentUri": "mrCam0", "componentProtocolVer": "1.0", "componentType": "cameraSrc", "componentSerialNumber": "", "componentDetail": "", "componentVersion": "HDCI-MPTZ_EEP"}]}]}, "Status": "2000"}
Getting a Configuration Parameter Value:
curl -k -d "{\"data\": [\"SCEP.enable\" ]}" -H "Content-Type: application/json" https://Polycom:789@10.252.149.52/api/v1/mgmt/config/get
In this case we need to use [ and ] instead of the usual { and }
The above checks the value of SCEP.enable and replies with the current value:
{"Status": "2000", "data": {"SCEP.enable": {"Value": "0", "Source": "default"}}}
Batch Processing:
Example MS-Dos Batch file to read a text file (ip.txt) containing a list of IP addresses and executing this to all IP's in the List:
off
echo Reading ip.txt
for /F "tokens=1" %%i in (ip.txt) do curl -i -X POST -H "Content-Type: application/json" -d "" -k https://Polycom:789@%%i/api/v1/mgmt/updateConfiguration
Content of ip.txt:
10.252.149.67
10.252.149.59
The above expects the IP list to be in C:\temp\restapi\ip.txt and has hardcoded values for Username and Password.
It will execute a POST REST API force the phone to update the configuration of its provisioning server based on the list of IP addresses of phones in the IP.txt
Management.SimulateKeyEvent
Note: Poly Trio C60 and all CCX except for CCX 350 the <Key Label> only allows MicMute, VolDown and VolUp
Using POSTMAN to send and Receive REST API info:
Sending a GET request
- Select GET as the request type
- Enter the full address and REST command into the command bar
- Click the Authorization tab and enter the required username and password as “Basic Auth”
- Optionally, add the command to a “collection” so that it is easily resent at a later time without re-writing the full command.
- Press the send button, the response will appear in the box below
- Select “JSON” as the display type
Sending a POST request
- Select POST as the request type
- Enter the full address and REST command into the command bar
- Click the Authorization tab and enter the required username
- Click the “Body” tab and select the “Raw” radio button
- Choose “JSON” as the format if you would like syntax highlighting
- Enter the required parameters in JSON format
- Optionally, add the command to a “collection” so that it is easily resent at a later time without re-writing the full command.
- Press the send button, the response will appear in the box below
- Select “JSON” as the display type
Troubleshooting:
Set the Presentation and the overall logging to Debug:
- Settings > Logging > Global Settings > Global Log Level Limit > Debug
- Settings > Logging > Module Log Level Limits > Rest API > Debug
Check Diagnostics > View & Download Logs > UCS Application
0904183359|rest |0|00|At wappRestApiHandlerC::Handle. Received request is NOT for REST API handler. path=/Diagnostics/log
0904183359|rest |0|00|At wappRestApiHandlerC::Handle. Received request is NOT for REST API handler. path=/images/ajax-loader.gif
0904183405|rest |0|00|At wappRestApiHandlerC::Handle. Authentication failed, sending authDemand
0904183405|rest |0|00|At wappRestApiHandlerC::Handle. Moved REST API to request processing mode.
0904183405|rest |0|00|At wappRestApiHandlerC::Handle. Request's HTTP method POST
0904183405|rest |0|00|At wappRestApiHandlerC::Handle. JSON prepared as per input parameters - {
"data": {
"Type": "Tap",
"Positions": [
{
"X": "70",
"Y": "34"
}
]
}
}
0904183405|rest |0|00|At wappRestApiHandlerC::Handle. Returning from Handle.
0904183407|rest |0|00|At wappRestApiHandlerC::Handle. Received request is NOT for REST API handler. path=/images/ajax-loader.gif
Finding the Coordinates of the Touch Screen:
Set the Presentation and the overall logging to Debug:
- Settings > Logging > Global Settings > Global Log Level Limit > Debug
- Settings > Logging > Module Log Level Limits > Presentation > Event 3 or Trio/CCX Event 1
Touch the screen at the desired position:
0904183707|pgui |3|00|CLayoutMgr::onFilteredMouseEvent: mouse event detected at (x,y)=(438,254), state = 1, wheel = 0
In the above example, I touched more Softkey on a VVX600
Notice: I am an HP Poly employee but all replies within the community are done as a volunteer outside of my day role. This community forum is not an official HP Poly support resource, thus responses from HP Poly employees, partners, and customers alike are best-effort in attempts to share learned knowledge.
If you need immediate and/or official assistance for former Poly\Plantronics\Polycom please open a service ticket through your support channels
For HP products please check HP Support.
Please also ensure you always check the General VoIP , Video Endpoint , UC Platform (Microsoft) , PSTN
09-10-2021 04:58 AM
UC Software 6.4.0 added the capability to use the REST API to create a screenshot for VVX Phones (Not Trio or CCX at present)
{"data":{"display":"phone"}} or
{"data":{"display":"phone","page":"1"}} //same as above or
{"data":{"display":"EM1","page":"3"}} or
{"data":{"display":"EM2","page":"1"}}
Power Shell Example:
$step1=$args[0]
$username = "Polycom"
$password = "143968" | ConvertTo-SecureString -AsPlainText -Force
$filenameFormat = (Get-Date -Format "hhmmss_yyyy_MM_dd") + "_" + "screencapture.bmp"
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class IDontCarePolicy : ICertificatePolicy {
public IDontCarePolicy() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest wRequest, int certProb) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object IDontCarePolicy
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls11
$body = @"
{
`"data`":
{
`"display`": `"phone`",
`"page`": `"1`"
}
}
"@
Invoke-RestMethod -OutFile $filenameFormat -Uri "https://$step1/api/v1/mgmt/screencapture" -Credential $cred -body $body -Method Post -ContentType "application/json" -TimeoutSec 8
The above expects the command to be used with an argument representing the IP address aka
.\REST_API_screencapture.ps1 10.252.149.83
It has a hardcoded value for the Web Interface password 143968 and creates in the directory executed to download the Screen Capture BMP file with an HHMMSS_YYYYMMDD_screencapture.bmp format.
CURL Example:
curl --output screenshot.bmp -k -d "{\"data\": {\"display\": \"phone\", \"page\": \"1\" }}" -H "Content-Type: application/json" https://Polycom:143968@10.252.149.83/api/v1/mgmt/screencapture
The above simply stores a B file called screenshot.bmp in the directory executed
Network Diagnostic (VVX only at present):
PING
curl -k -d "{\"data\": {\"Address\": \"10.252.149.99\",\"Count\": \"4\" ,\"Size\": \"59\" }}" -H "Content-Type: application/json" https://Polycom:143968@10.252.149.91/api/v1/diag/ping
result:
{"ping": ["PING 10.252.149.99 (10.252.149.99) 59(87) bytes of data.\n", "67 bytes from 10.252.149.99: icmp_seq=1 ttl=128 time=8.55 ms\n", "67 bytes from 10.252.149.99: icmp_seq=2 ttl=128 time=0.578 ms\n", "67 bytes from 10.252.149.99: icmp_seq=3 ttl=128 time=0.563 ms\n", "67 bytes from 10.252.149.99: icmp_seq=4 ttl=128 time=0.577 ms\n", "\n", "--- 10.252.149.99 ping statistics ---\n", "4 packets transmitted, 4 received, 0% packet loss, time 3016ms\n", "rtt min/avg/max/mdev = 0.563/2.569/8.558/3.457 ms\n"], "Status": "2000"}
Traceroute:
curl -k -d "{\"data\": {\"Address\": \"google.com\",\"Hops\": \"4\" ,\"Timeout\": \"2\" }}" -H "Content-Type: application/json" https://Polycom:143968@10.252.149.91/api/v1/diag/traceroute
result
{"traceroute": ["traceroute to 172.217.23.110 (172.217.23.110), 4 hops max, 38 byte packets\n", " 1 *\n", " 2 usscswcore.plantronics.com (192.168.0.1) 1.233 ms\n", " skybroadband.com (123.123.123.123) 5.690 ms\n", " 4 *\n"], "Status": "2000"}
In addition to the above, the REST API can also check the DNS and NTP settings on the phone or run a query. More details are in the attached 6.4.0 VVX guide
Notice: I am an HP Poly employee but all replies within the community are done as a volunteer outside of my day role. This community forum is not an official HP Poly support resource, thus responses from HP Poly employees, partners, and customers alike are best-effort in attempts to share learned knowledge.
If you need immediate and/or official assistance for former Poly\Plantronics\Polycom please open a service ticket through your support channels
For HP products please check HP Support.
Please also ensure you always check the General VoIP , Video Endpoint , UC Platform (Microsoft) , PSTN
01-21-2022 04:32 AM - edited 09-19-2024 10:30 AM
Since VVX UC Software >6.4.2< we made changes to support Zoom Enhancements IP Phone Call Control from Desktop Client
REST over SIP NOTIFY Guide >here<
The above works via SIP signaling utilizing the REST API. To enable this use these parameters:
<web apps.restapi.enabled="1"
apps.restapi.sipNotify.enabled="1"
apps.restapi.sipNotify.bindRequired="1"/>
Using this with a compatible SIP Provider, once enabled on the platform, should prompt the user:
Command |
New/Modified |
Description |
/api/v1/callctrl/endCall |
Modified |
Operation now allowed on calls that are on hold |
/api/v1/callctrl/mute |
Modified |
Duplicate requests are now rejected with 4003 NOT ALLOWED response code |
/api/v1/callctrl/sendDTMF |
Modified |
Increased speed of operation |
/api/v1/callctrl/dial
|
Modified |
Added an optional JSON parameter X-ZOOM-RESERVED. |
/api/v1/callctrl/warmTransfer |
New |
Is required to perform a warm transfer which allows two calls to be joined together and the local IP phone performing the join is removed from the call. The calls that are joined can be either active or on hold. |
Troubleshooting:
The feature works by using REST API commands that are delivered in SIP NOTIFY requests via an Event: ACTION-URI
0922141810|sip |0|00| SIP/2.0 200 OK
0922141810|sip |0|00| Via: SIP/2.0/UDP 172.22.4.21;branch=z9hG4bKd0ddad609F050B40
0922141810|sip |0|00| From: "942616" <sip:942616@172.22.4.21:5090>;tag=79A87998-707E339
0922141810|sip |0|00| To: <sip:172.22.4.21>
0922141810|sip |0|00| Call-ID: d7e97babec684c465e8f87ea689ad9cc
0922141810|sip |0|00| CSeq: 1 INFO
0922141810|sip |0|00| Content-Length: 0
0922141814|sip |0|00|<<<Data Received UDP
0922141814|sip |0|00| NOTIFY sip:942616@172.22.4.21:5060 SIP/2.0
0922141814|sip |0|00| Via: SIP/2.0/UDP 172.22.4.21:5090;branch=z9hG4bK-11044-1-1
0922141814|sip |0|00| From: "VVX 501" <sip:VVX501@172.22.4.21:5090>;tag=local-11044-1-1
0922141814|sip |0|00| To: <sip:942616@172.22.4.21:5060>
0922141814|sip |0|00| CSeq: 1 NOTIFY
0922141814|sip |0|00| Call-ID: 1-2-11044@172.22.4.21
0922141814|sip |0|00| Contact: <sip:VVX501@172.22.4.21:5090;transport=UDP>
0922141814|sip |0|00| Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,INFO,MESSAGE,SUBSCRIBE,NOTIFY,PRACK,UPDATE,REFER
0922141814|sip |0|00| User-Agent: PolycomVVX-VVX_501-UA/6.3.1.8427
0922141814|sip |0|00| Accept-Language: en
0922141814|sip |0|00| Max-Forwards: 70
0922141814|sip |0|00| Event: ACTION-URI
0922141814|sip |0|00| Content-Type: application/JSON
0922141814|sip |0|00| Content-Length: 109
0922141814|sip |0|00|
0922141814|sip |0|00| {
0922141814|sip |0|00| "command-URI": "/api/v1/callctrl/dial",
0922141814|sip |0|00| "data": {
0922141814|sip |0|00| "Dest": "1234",
0922141814|sip |0|00| "X-ZOOM-RESERVED":"12345;abc"
0922141814|sip |0|00| }
0922141814|sip |0|00| }
Notice: I am an HP Poly employee but all replies within the community are done as a volunteer outside of my day role. This community forum is not an official HP Poly support resource, thus responses from HP Poly employees, partners, and customers alike are best-effort in attempts to share learned knowledge.
If you need immediate and/or official assistance for former Poly\Plantronics\Polycom please open a service ticket through your support channels
For HP products please check HP Support.
Please also ensure you always check the General VoIP , Video Endpoint , UC Platform (Microsoft) , PSTN