cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
918
Views
0
Helpful
0
Replies

Using CTI server protocol set agent state not-ready with reason code

dbonagir
Cisco Employee
Cisco Employee

I have an application that uses the cti server protocol to log the agent into the ACD and set the agent state using SET_AGENT_STATE_REQ message. The question here is how do I send the reason code using this protocol so Finesse see the reason code the same way as Finesse instead of seeing it as -1 even when I can see from the cti server protocol the same agent state event message with the reason code to the reason code I have defined in UCCX.

We've defined the reason codes for not-ready and using the REST API I can see the reason codes defined as follows:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<ReasonCodes category="NOT_READY">

<ReasonCode>

<uri>/finesse/api/ReasonCode/1</uri>

<category>NOT_READY</category>

<code>71</code>

<label>LUNCH</label>

<forAll>false</forAll>

</ReasonCode>

<ReasonCode>

<uri>/finesse/api/ReasonCode/2</uri>

<category>NOT_READY</category>

<code>72</code>

<label>IN MEETING</label>

<forAll>false</forAll>

</ReasonCode>

<ReasonCode>

<uri>/finesse/api/ReasonCode/3</uri>

<category>NOT_READY</category>

<code>73</code>

<label>TRAINING</label>

<forAll>false</forAll>

</ReasonCode>

</ReasonCodes>

If I use the REST API and send the following PUT command

<User>

<state>NOT_READY</state>

<reasonCodeId>1</reasonCodeId>

</User>

I can see the server protocol send me an agent state event where the agentState = not-ready and the EventReasonCode=71 and when I query the user using REST api I can the following

<User>

<dialogs>/finesse/api/User/cons8510/Dialogs</dialogs>

<extension>8510</extension>

<firstName>Console</firstName>

<lastName>8510</lastName>

<loginId>cons8510</loginId>

<loginName>cons8510</loginName>

<mediaType>1</mediaType>

<pendingState></pendingState>

<reasonCode>

<category>NOT_READY</category>

<code>71</code>

<forAll>false</forAll>

<id>1</id>

<label>LUNCH</label>

<uri>/finesse/api/ReasonCode/1</uri>

</reasonCode>

<reasonCodeId>1</reasonCodeId>

<roles>

<role>Agent</role>

</roles>

<settings>

<wrapUpOnIncoming></wrapUpOnIncoming>

</settings>

<state>NOT_READY</state>

<stateChangeTime>2016-12-29T19:29:59.896Z</stateChangeTime>

<teamId>3</teamId>

<teamName>MN Team 1</teamName>

<uri>/finesse/api/User/cons8510</uri>

</User>

Note that I see the code = 71 and the category is NOT_READY but if I use the CTI server protocol to send the reason code 71 I get the same agent state event agent state = not-ready and the eventReasonCode=71 but when I query the user using REST API I get the following

<User>

<dialogs>/finesse/api/User/cons8510/Dialogs</dialogs>

<extension>8510</extension>

<firstName>Console</firstName>

<lastName>8510</lastName>

<loginId>cons8510</loginId>

<loginName>cons8510</loginName>

<mediaType>1</mediaType>

<pendingState></pendingState>

<reasonCodeId>-1</reasonCodeId>

<roles>

<role>Agent</role>

</roles>

<settings>

<wrapUpOnIncoming></wrapUpOnIncoming>

</settings>

<state>NOT_READY</state>

<stateChangeTime>2016-12-29T19:34:10.245Z</stateChangeTime>

<teamId>3</teamId>

<teamName>MN Team 1</teamName>

<uri>/finesse/api/User/cons8510</uri>

</User>

Note the reason code id is -1 instead of 71.

0 Replies 0
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: