08-05-2020 12:12 PM
Im trying to Make REST call from uccx2 ( 2nd independent server) to uccx1 to know the NwaitingCalls from http://x.x.x.x:9080/realtime/VoiceIAQStats/
Im receiving a error 406 with either the content type or header wrong , Could you assist me what type would me admissible to use to accept and relay in UCCX server.
both server are version 11.6
Im currently using Content Type : text/xml;charset=UTF-8
Header : blank:
I could add in more info if required.
from postman it works just fine.
using variable string for body,response statuscode and considering no username/password(blank) is required for this API request.
Any assistance would be highly appreciated.
Thanks
M Shankar
Solved! Go to Solution.
08-05-2020 02:48 PM - edited 08-05-2020 03:20 PM
I have never done this before, but a quick test shows that Content-Type of application/json works in 12.0.
Also, just for fun, I tried port 9443 and HTTPS and it worked there too. So, either HTTP/9080 or HTTPS/9443 works.
Starting Value of REST
new String[] { // HTTP Request Section // Index 0 - Request URL "http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats", // Index 1 - Basic Auth Username "", // Index 2 - Basic Auth Password "", // Index 3 - Content-Type Header "application/json", // Index 4 - Body Payload for POST/PUT Requests "", // HTTP Response Section // Index 5 - Response Body "", // Index 6 - Status Code "", // Index 7 - Status Detail "" }
Resulting Value of REST
new String[] { "http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats", "", "", "application/json", "", U"[{\"id\":\"test\",\"operation\":\"UPDATE\",\"VoiceIAQStats\":{\"id\":1,\"esdId\":1,\"esdName\":\"test\",\"nResourcesLoggedIn\":1,\"nTotalContacts\":0,\"nHandledContacts\":0,\"nAbandonedContacts\":0,\"nDequeuedContacts\":0,\"avgTalkDuration\":0,\"longestTalkDuration\":0,\"avgWaitDuration\":0,\"longestWaitDuration\":0,\"longestCurrentlyWaitingDuration\":0,\"nAvailResources\":0,\"nInSessionResources\":0,\"nUnavailResources\":1,\"nUnavailResReasonsMap\":{\"32760\":1},\"nWorkResources\":0,\"nSelectedResources\":0,\"nAgentsAdded\":0,\"nAgentsRemoved\":0,\"nWaitingContacts\":0,\"nAverageHandlingTimeLowThreshold\":0.0,\"nAverageHandlingTimeHighThreshold\":0.0,\"nAverageWaitingTimeLowThreshold\":0.0,\"nAverageWaitingTimeHighThreshold\":0.0,\"nAbandonedCallsLowThreshold\":0,\"nAbandonedCallsHighThreshold\":0,\"nDequeuedCallsLowThreshold\":0,\"nDequeuedCallsHighThreshold\":0,\"nSLAPercentageLowThreshold\":0.0,\"nSLAPercentageHighThreshold\":50.0}}]", "200", "GET http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats returned a response status of 200 OK" }
Also, if you weren't aware, you can parse the returned body with the JSON steps like so:
This will mimic the Get Reporting Statistics step, in that it will return -1 if it cannot determine a good value.
08-05-2020 02:48 PM - edited 08-05-2020 03:20 PM
I have never done this before, but a quick test shows that Content-Type of application/json works in 12.0.
Also, just for fun, I tried port 9443 and HTTPS and it worked there too. So, either HTTP/9080 or HTTPS/9443 works.
Starting Value of REST
new String[] { // HTTP Request Section // Index 0 - Request URL "http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats", // Index 1 - Basic Auth Username "", // Index 2 - Basic Auth Password "", // Index 3 - Content-Type Header "application/json", // Index 4 - Body Payload for POST/PUT Requests "", // HTTP Response Section // Index 5 - Response Body "", // Index 6 - Status Code "", // Index 7 - Status Detail "" }
Resulting Value of REST
new String[] { "http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats", "", "", "application/json", "", U"[{\"id\":\"test\",\"operation\":\"UPDATE\",\"VoiceIAQStats\":{\"id\":1,\"esdId\":1,\"esdName\":\"test\",\"nResourcesLoggedIn\":1,\"nTotalContacts\":0,\"nHandledContacts\":0,\"nAbandonedContacts\":0,\"nDequeuedContacts\":0,\"avgTalkDuration\":0,\"longestTalkDuration\":0,\"avgWaitDuration\":0,\"longestWaitDuration\":0,\"longestCurrentlyWaitingDuration\":0,\"nAvailResources\":0,\"nInSessionResources\":0,\"nUnavailResources\":1,\"nUnavailResReasonsMap\":{\"32760\":1},\"nWorkResources\":0,\"nSelectedResources\":0,\"nAgentsAdded\":0,\"nAgentsRemoved\":0,\"nWaitingContacts\":0,\"nAverageHandlingTimeLowThreshold\":0.0,\"nAverageHandlingTimeHighThreshold\":0.0,\"nAverageWaitingTimeLowThreshold\":0.0,\"nAverageWaitingTimeHighThreshold\":0.0,\"nAbandonedCallsLowThreshold\":0,\"nAbandonedCallsHighThreshold\":0,\"nDequeuedCallsLowThreshold\":0,\"nDequeuedCallsHighThreshold\":0,\"nSLAPercentageLowThreshold\":0.0,\"nSLAPercentageHighThreshold\":50.0}}]", "200", "GET http://contactcenter.netguys.local:9080/realtime/VoiceIAQStats returned a response status of 200 OK" }
Also, if you weren't aware, you can parse the returned body with the JSON steps like so:
This will mimic the Get Reporting Statistics step, in that it will return -1 if it cannot determine a good value.
08-06-2020 06:23 AM
This is the make REST Ive done except i changed the content type after seeing your post.
yes im using the similar get JSON Doc Step to evaluate the message:
"$..VoiceIAQStats[?(@.id=='1')].nWaitingContact"
Do you think this read would work, but yeah the one you have tested with has a check for invalid commands, ill update those too.
08-06-2020 06:55 AM
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide