cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1161
Views
1
Helpful
5
Replies

CTI OS to REST & XMPP API migration

simacek
Level 1
Level 1

Hello all

I have two questions on Finesse API's.

  1. For our call recording app we need to get status change events for all agents that are to be recorded. We have been using CTI OS and there  were no problem to achieve all this with only Admin credentials. Now when CTI OS is not available we need to use 1) CCX Admin credentials to be able to get all Agents ID's and initial status via REST API and 2) Superuser credetials to be authorized to make register requests to receive Dialog events for every Agent via XMPP API. If there were multipleTeams the Supervisor would have to be a member of every Team otherwise register request is rejected. This means that in some configurations we need to create a special Supervisor for "recording" purpose. Can you confirm I am true? Isn't there a more efficient way?
  2. In developer docs there is an explanation of Dialog API Parameters here http://developer.cisco.com/docs/finesse/#dialog-api-parameters . For XMPP events there is no such description. Can you confirm that all parameters (names, values) in XMPP events  are the same as for REST?

Thanks a much

Miroslav

1 Accepted Solution

Accepted Solutions

dekwan
Cisco Employee
Cisco Employee

Hi Miroslav,

A1. Finesse isn't meant to be a monitoring tool and therefore users can only view their own dialogs and supervisors can view the agent's user changes. Finesse doesn't support one user to is subscribed to ALL agents' events. For this, I suggest the CTI protocol.

A2. Yes, the XMPP events uses the same user/dialog object format and parameters: https://developer.cisco.com/docs/finesse/#dialog . It is just wrapped in an additional tag, I believe something like "<Update>".

Thanx,

Denise

View solution in original post

5 Replies 5

dekwan
Cisco Employee
Cisco Employee

Hi Miroslav,

A1. Finesse isn't meant to be a monitoring tool and therefore users can only view their own dialogs and supervisors can view the agent's user changes. Finesse doesn't support one user to is subscribed to ALL agents' events. For this, I suggest the CTI protocol.

A2. Yes, the XMPP events uses the same user/dialog object format and parameters: https://developer.cisco.com/docs/finesse/#dialog . It is just wrapped in an additional tag, I believe something like "<Update>".

Thanx,

Denise

Hi Denise

Thanks for your answers even when the A1 is not what we wanted to hear . The reason is that CTI protocol is different for UCCX and UCCE whereas Finesse API is common for both call centers.

Regards

Miroslav

Hi Miroslav,

I totally understand the issues with CTI protocol. Finesse itself uses that to communicate with both CCE and CCX and had to handle these difference internally. But unfortunately due to technical and performance limitations, Finesse is unable to handle being a monitoring application.

Thanx,

Denise

Hi Denise

Thank for explaining. Also we've met an issue in REST API Developer Guide. In the Dialog Notification chapter there is a Dialog change notification event sample:

XMPP Sample.png

<queueNumber>, <queueName>, <callKeyCallId> and <callKeyPrefix> tags are inside <callvariables> boundaries. Shouldn't it be outside?

Thank you

Miroslav

Hi Miroslav,

Good find. Yes, it appears that the documentation is incorrect. They should be under <mediaProperties> in the same level as DNIS, callType, dialedNumber, etc.

Example from the UCCX 11.6 sandbox:

<Update>

    <data>

        <dialog>

            <associatedDialogUri></associatedDialogUri>

            <fromAddress>6013</fromAddress>

            <id>16855218</id>

            <mediaProperties>

                <DNIS>6001</DNIS>

                <callType>AGENT_INSIDE</callType>

                <dialedNumber>6000</dialedNumber>

                <outboundClassification></outboundClassification>

                <callvariables>

                    <CallVariable>

                        <name>callVariable1</name>

                        <value>6013</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>TRANSFER_SST</action>

                        <action>CONSULT_CALL</action>

                        <action>HOLD</action>

                        <action>UPDATE_CALL_DATA</action>

                        <action>SEND_DTMF</action>

                        <action>START_RECORDING</action>

                        <action>DROP</action>

                    </actions>

                    <mediaAddress>6013</mediaAddress>

                    <mediaAddressType>AGENT_DEVICE</mediaAddressType>

                    <startTime>2018-02-07T18:28:09.330Z</startTime>

                    <state>ACTIVE</state>

                    <stateCause></stateCause>

                    <stateChangeTime>2018-02-07T18:28:20.391Z</stateChangeTime>

                </Participant>

                <Participant>

                    <actions>

                        <action>TRANSFER_SST</action>

                        <action>CONSULT_CALL</action>

                        <action>HOLD</action>

                        <action>UPDATE_CALL_DATA</action>

                        <action>SEND_DTMF</action>

                        <action>START_RECORDING</action>

                        <action>DROP</action>

                    </actions>

                    <mediaAddress>6001</mediaAddress>

                    <mediaAddressType>AGENT_DEVICE</mediaAddressType>

                    <startTime>2018-02-07T18:28:20.391Z</startTime>

                    <state>ACTIVE</state>

                    <stateCause></stateCause>

                    <stateChangeTime>2018-02-07T18:28:20.391Z</stateChangeTime>

                </Participant>

                <Participant>

                    <actions></actions>

                    <mediaAddress>8006001</mediaAddress>

                    <mediaAddressType></mediaAddressType>

                    <startTime>2018-02-07T18:28:09.330Z</startTime>

                    <state>DROPPED</state>

                    <stateCause>OTHER</stateCause>

                    <stateChangeTime>2018-02-07T18:28:20.402Z</stateChangeTime>

                </Participant>

            </participants>

            <state>ACTIVE</state>

            <toAddress>6000</toAddress>

            <uri>/finesse/api/Dialog/16855218</uri>

        </dialog>

    </data>

    <event>PUT</event>

    <requestId></requestId>

    <source>/finesse/api/Dialog/16855218</source>

</Update>

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: