Hi guys, I am hoping someone on here can help. I have gone through all the API docs, searched google and the community forums, and I don't see anyone with this issue.
Here are the relevant specs:
Device: Polycom VVX 401
SW Version: 220.127.116.1151 (also tried latest 5.9.X)
Admin password has been changed from default
REST API has been enabled in config
Normal device functionality works correctly, for example I can make an outgoing call to another extension without any issues.
The REST API works correctly for me when doing any sort of GET functionality, so I know authentication is correct, for example, I can call /api/v2/webCallControl/callStatus and see all the calls on the device.
The issue I am running into is that any call control method, e.g. to dial out, fails with just a plain "Status" : "5000". This happens for the following that I have tested so far
/api/v1/callctrl/answerCall - using a call handle that I retrieved in the /callStatus call
/api/v1/callctrl/dial - to dial another extension
I have turned logging on to the fullest for what I could find that is relevant and all that shows up is the following (for example when trying to dial)
0110004339|httpd|0|00|DigestCheck: header Digest username="Polycom",realm="API Authentication",nonce="154707969",uri="/api/v1/callctrl/dial",response="ca3a2a0cb09a8c27af5fb4293a5fb528" 0110004339|httpd|0|00|Checking with Digest Authentication 0110004339|httpd|0|00|authFunc returned: 1 0110004339|rest |0|00|At wappRestApiHandlerC::Handle. Moved REST API to request processing mode. 0110004339|rest |0|00|At wappRestApiHandlerC::Handle. Request's HTTP method POST 0110004339|rest |0|00|At wappRestApiHandlerC::Handle. Returning from Handle.
I am hoping someone in the community forums will know why all POST methods result in a 5000, our HTTP request is correct, the content type is application/json, and it's valid JSON being created by Newtonsoft.JSON (not hand crafted)
Solved! Go to Solution.
UPDATE: I solved this. For anyone that runs into the same issue, it's important to do this part before making any API requests
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11;
It was in the docs and I thought I was doing it earlier but apparently I wasn't. For whatever reason this does not affect GET requests, but it does affect POST requests