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

How to disable Drop button on incoming call.

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

           

 

 

1 Accepted Solution

Accepted Solutions

dekwan
Cisco Employee
Cisco Employee

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

View solution in original post

7 Replies 7

dekwan
Cisco Employee
Cisco Employee

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

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


@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

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

 

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

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  

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

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: