04-06-2020 03:36 AM
Hi there,
Suppose Agent0002 intitates call to Agent001. At this time Agent002's Participant state is INITIATED & Agent001's Participant state is ALERTING.On both Agents desktop there comes same event.
On Agent002's desktop who initiates call,Drop button in enabled is OK . But at Agent001's desktops also Drop button remains enabled because of same console event.
How to differentite the events.
Thanks in advance,
Komal
Solved! Go to Solution.
04-06-2020 12:41 PM
Hi,
That is correct that the same dialog event will go to all participants of the call. In order to see what buttons to hide/show for calls, you must look at the participant's allowable actions.
Taking the example dialog object from the documentation (https://developer.cisco.com/docs/finesse/#!dialog/dialog-object-for-voice-calls),
<participants> <Participant> <actions> <action>HOLD</action> <action>DROP</action> </actions> <mediaAddress>2002</mediaAddress> <mediaAddressType>AGENT_DEVICE</mediaAddressType> <startTime>2014-02-11T16:10:23.121Z</startTime> <state>ACTIVE</state> <stateCause></stateCause> <stateChangeTime>2014-02-11T16:10:23.121Z</stateChangeTime> </Participant> <Participant> <actions> <action>RETRIEVE</action> <action>DROP</action> </actions> <mediaAddress>2000</mediaAddress> <mediaAddressType>AGENT_DEVICE</mediaAddressType> <startTime>2014-02-11T16:10:23.121Z</startTime> <state>HELD</state> <stateCause></stateCause> <stateChangeTime>2014-02-11T16:10:36.543Z</stateChangeTime> </Participant> </participants>
In this example, agent with media address (extension) 2002 is in ACTIVE state, so this agent can only HOLD and DROP. Agent with media address 2000 is in HELD state, so this agent can only RETRIEVE and DROP.
So, you don't differentiate the events, but you use the information for that particular agent/media address.
Thanx,
Denise
04-06-2020 12:41 PM
Hi,
That is correct that the same dialog event will go to all participants of the call. In order to see what buttons to hide/show for calls, you must look at the participant's allowable actions.
Taking the example dialog object from the documentation (https://developer.cisco.com/docs/finesse/#!dialog/dialog-object-for-voice-calls),
<participants> <Participant> <actions> <action>HOLD</action> <action>DROP</action> </actions> <mediaAddress>2002</mediaAddress> <mediaAddressType>AGENT_DEVICE</mediaAddressType> <startTime>2014-02-11T16:10:23.121Z</startTime> <state>ACTIVE</state> <stateCause></stateCause> <stateChangeTime>2014-02-11T16:10:23.121Z</stateChangeTime> </Participant> <Participant> <actions> <action>RETRIEVE</action> <action>DROP</action> </actions> <mediaAddress>2000</mediaAddress> <mediaAddressType>AGENT_DEVICE</mediaAddressType> <startTime>2014-02-11T16:10:23.121Z</startTime> <state>HELD</state> <stateCause></stateCause> <stateChangeTime>2014-02-11T16:10:36.543Z</stateChangeTime> </Participant> </participants>
In this example, agent with media address (extension) 2002 is in ACTIVE state, so this agent can only HOLD and DROP. Agent with media address 2000 is in HELD state, so this agent can only RETRIEVE and DROP.
So, you don't differentiate the events, but you use the information for that particular agent/media address.
Thanx,
Denise
04-07-2020 11:03 PM
Hi,
That is correct that the same dialog event will go to all participants of the call. In order to see what buttons to hide/show for calls, you must look at the participant's allowable actions. But how can we differentiate which participant is event receiver and which participant is originator.
Thanks
04-08-2020 08:52 AM
@KomalJagtap26756 wrote:
But how can we differentiate which participant is event receiver and which participant is originator.
Each event is meant for all participants so there isn't an event receiver and event originator. If you want to know who initiated the call, you can use the fromAddress and toAddress fields:
<fromAddress>2002</fromAddress>
<toAddress>2000</toAddress>
Thanx,
Denise
04-08-2020 09:23 AM
Hi ,
As you said differentiate with toAddress & fromAddress but for both Agents there is same toAddress & fromaddress.
Suppose Agent002 initiates call,allowable actions are Drop,Update_call_data.And at Agent001 allowable action is Answer.So the problem is how to differentiate that actions.As in both the Agents response there is getting same action for both the Agents.
Thanks in advance,
Komal
04-08-2020 09:32 AM
Hi,
I don't seem to understand the issue. Can you give an example dialog event that you are talking about? Then we can be specific. I don't understand when you say "getting the same action for both agents". Are you saying that both participants in the dialog event have the same allowable actions?
Thanx,
Denise
04-09-2020 05:48 AM
Hi Denise,
Many thanks for your support. Actually We are getting same dialog response on both Agent. Agent1 and Agent2.
I am attaching below logs for Agent 2 who made call (dial) - Extension number 6002.
6002 DIAL
<Update>
<data>
<dialog>
<associatedDialogUri></associatedDialogUri>
<fromAddress>6002</fromAddress>
<id>16860397</id>
<mediaProperties>
<DNIS>6001</DNIS>
<callType>OUT</callType>
<dialedNumber>6000</dialedNumber>
<outboundClassification></outboundClassification>
<callvariables>
<CallVariable>
<name>callVariable1</name>
<value>6002</value>
</CallVariable>
<CallVariable>
<name>callVariable2</name>
<value>6000</value>
</CallVariable>
<CallVariable>
<name>callVariable3</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable4</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable5</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable6</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable7</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable8</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable9</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable10</name>
<value></value>
</CallVariable>
</callvariables>
<queueNumber>1</queueNumber>
<queueName>IT_Tier1</queueName>
</mediaProperties>
<mediaType>Voice</mediaType>
<participants>
<Participant>
<actions>
<action>CONSULT_CALL</action>
<action>UPDATE_CALL_DATA</action>
<action>START_RECORDING</action>
<action>SEND_DTMF</action>
<action>HOLD</action>
<action>DROP</action>
<action>TRANSFER_SST</action>
</actions>
<mediaAddress>8006000</mediaAddress>
<mediaAddressType></mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>ACTIVE</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:30:48.949Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>ANSWER</action>
</actions>
<mediaAddress>6001</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:31:00.095Z</startTime>
<state>ALERTING</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>UPDATE_CALL_DATA</action>
<action>DROP</action>
</actions>
<mediaAddress>6002</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>INITIATED</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
</participants>
<state>ALERTING</state>
<toAddress>6000</toAddress>
<uri>/finesse/api/Dialog/16860397</uri>
</dialog>
</data>
<event>PUT</event>
<requestId></requestId>
<source>/finesse/api/Dialog/16860397</source>
</Update>
and Agent 1 who receives call from extension 6002 - extension -6001.
6001 INCOMING
<Update>
<data>
<dialogs>
<Dialog>
<associatedDialogUri></associatedDialogUri>
<fromAddress>6002</fromAddress>
<id>16860397</id>
<mediaProperties>
<DNIS>6001</DNIS>
<callType>OUT</callType>
<dialedNumber>6000</dialedNumber>
<outboundClassification></outboundClassification>
<callvariables>
<CallVariable>
<name>callVariable1</name>
<value>6002</value>
</CallVariable>
<CallVariable>
<name>callVariable2</name>
<value>6000</value>
</CallVariable>
<CallVariable>
<name>callVariable3</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable4</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable5</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable6</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable7</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable8</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable9</name>
<value></value>
</CallVariable>
<CallVariable>
<name>callVariable10</name>
<value></value>
</CallVariable>
</callvariables>
<queueNumber>1</queueNumber>
<queueName>IT_Tier1</queueName>
</mediaProperties>
<mediaType>Voice</mediaType>
<participants>
<Participant>
<actions>
<action>CONSULT_CALL</action>
<action>UPDATE_CALL_DATA</action>
<action>START_RECORDING</action>
<action>SEND_DTMF</action>
<action>HOLD</action>
<action>DROP</action>
<action>TRANSFER_SST</action>
</actions>
<mediaAddress>8006000</mediaAddress>
<mediaAddressType></mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>ACTIVE</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:30:48.949Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>ANSWER</action>
</actions>
<mediaAddress>6001</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:31:00.095Z</startTime>
<state>ALERTING</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>UPDATE_CALL_DATA</action>
<action>DROP</action>
</actions>
<mediaAddress>6002</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>INITIATED</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
</participants>
<state>ALERTING</state>
<toAddress>6000</toAddress>
<uri>/finesse/api/Dialog/16860397</uri>
</Dialog>
</dialogs>
</data>
<event>POST</event>
<requestId></requestId>
<source>/finesse/api/User/Agent001/Dialogs</source>
</Update>
We are able to find out actions for 6002 and 6002 but our issues that how we can enable Drop button on only for Agent 2 and Answer button for Agent 1 because dialog response received on both agent is same.
Is there anyway we can identify Participant 1 actions are for Logged in Agent and Participant 2 actions for not logged in agent.
Can we get Logged in Agent extension within eventhandler using any get method ?
Let us know if you need any more information.
Regards,
Pravin
04-09-2020 10:08 AM
Hi,
@pravin1 wrote:
We are able to find out actions for 6002 and 6002 but our issues that how we can enable Drop button on only for Agent 2 and Answer button for Agent 1 because dialog response received on both agent is same.
In the dialog event you provided, you show:
<participants>
<Participant>
<actions>
<action>CONSULT_CALL</action>
<action>UPDATE_CALL_DATA</action>
<action>START_RECORDING</action>
<action>SEND_DTMF</action>
<action>HOLD</action>
<action>DROP</action>
<action>TRANSFER_SST</action>
</actions>
<mediaAddress>8006000</mediaAddress>
<mediaAddressType></mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>ACTIVE</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:30:48.949Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>ANSWER</action> <-- Actions for 6001
</actions>
<mediaAddress>6001</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:31:00.095Z</startTime>
<state>ALERTING</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
<Participant>
<actions>
<action>UPDATE_CALL_DATA</action> <-- Actions for 6002
<action>DROP</action>. <-- Actions for 6002
</actions>
<mediaAddress>6002</mediaAddress>
<mediaAddressType>AGENT_DEVICE</mediaAddressType>
<startTime>2020-04-08T05:30:48.949Z</startTime>
<state>INITIATED</state>
<stateCause></stateCause>
<stateChangeTime>2020-04-08T05:31:00.095Z</stateChangeTime>
</Participant>
</participants>
As you see in the bold red above, it lists the actions that 6001 can do and what 6002 can do. So in your code, you look for the participant that matches the agent's media address and only use that data...
@pravin1 wrote:
Is there anyway we can identify Participant 1 actions are for Logged in Agent and Participant 2 actions for not logged in agent.
Yes, mediaAddress is equivalent to the agent's extension.
@pravin1 wrote:
Can we get Logged in Agent extension within eventhandler using any get method ?
What do you mean within eventhandler? I would think your application knows the extension of the agent currently logged in... They had to provide it to even log in in the first place.
Thanx,
Denise
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