cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
7319
Views
1
Helpful
18
Replies

Cisco finesse integration with third party CRM

asmita_jams
Beginner
Beginner

How do i register to Cisco finesse events so that i can enable and disable buttons of my desktop based application

18 Replies 18

dlender
Frequent Contributor
Frequent Contributor

Are you developing a non-gadget application? If so, you can use jabberwerx XMPP library to establish a BOSH connection to Finesse server.

See the NonGadgetSample in the tools folder of the Finesse Tech Center documentation page here

https://developer.cisco.com/site/collaboration/contact-center/finesse/documentation/

Applications are automatically registered for User and Dialog notifications.

In the dialog notifications there are included the participant actions which tell you which buttons to enable/disable.

If you are developing a Finesse gadget, use the finesse javascript library which provides User and Dialog events as well.

The application is not an webapplication it is a desktop application .Any API that is available that can create XMPP BOSH connection between the application and the finesse server.

Regards,

Asmita

dlender
Frequent Contributor
Frequent Contributor

There are xmpp libraries available that support a variety of languages.

See Libraries – The XMPP Standards Foundation


I am not able to find cisco UCCX finesse developer guide .

can you please help me out

dlender
Frequent Contributor
Frequent Contributor

There is only one doc for Finesse Developers for both UCCE and UCCX.

The 10.0 version can be found here.

https://developer.cisco.com/site/collaboration/contact-center/finesse/documentation/

https://developer.cisco.com/fileMedia/download/18fdabc5-75b5-4daa-83df-42e14e66f20e

The 10.5 version will be posted shortly.

We tried  to use sample non gadget code but we are not able to use libraries into our java code as we are developing standalone application. Do you have any sample code or example?

dlender
Frequent Contributor
Frequent Contributor

There is no sample java app.  There is, however, a sample finesse gadget that uses a java applet to communicate with a thick client app.  If you are not creating a finesse gadget but instead want to use finesse inside a thick client java app you will have to find an xmpp library that works with java.  There is no sample for this.

In finesse how do we get to know the agent is connected to which side of the server i.e side A or side B.
Because I am sending http request to the finesse server using  thick client (desktop application).So the url
is of the form http://finesse_server_address/finesse/api/User/" + agentid.
As I  have two sides of finesse server hosted on different servers how do i determine which server address to be used to the send  the request

dlender
Frequent Contributor
Frequent Contributor

You should use http://

/finesse/api/SystemInfo

to determine if the side is up.

If the request fails, try the other side.

If the request succeeds, then login the agent with http://

/finesse/api/User/

How it manage the load balancing .....

and how it will manage if in the middle of operation (connection)one server failed down will the finesse server connet to other side automatically as in CTIOS happen.?

dlender
Frequent Contributor
Frequent Contributor

The Finesse agent desktop does failover automatically.

However, if you are developing a non-gadget application you will have to develop failover yourself.

See Chapter 8 Finesse High Availability of the Finesse Developer Guide.

Specifically the section on Recovery.

Finesse does not allow same  agent to be logged in with same extension at two places at the same time(when I do that the previous session gets disconnected ).

I get the following message for the first agent: This session was disconnected because you signed in to a new agent desktop session.

Is there any way that i can know if the there is a session already created for that agent so that I disconnect that session and create a new finesse session

is there any API available so they that i could get connection information of a perticular aget.

dlender
Frequent Contributor
Frequent Contributor

Is there any way that i can know if the there is a session already created for that agent so that I disconnect that session and create a new finesse session

No

is there any API available so they that i could get connection information of a perticular aget.

No

When I  do a consult call  and when the consult call is answered and after a while I release the consult call the first call still is in hold state so the release and retrieve buttons should be enabled but I am not receiving notification from the finesse server for the held  call all I get is an notification for the dropped call (consult call )from the finesse server .Below given  is the  notification received from finesse server after the consult is released.

<Update>

  <data>

    <dialogs>

      <Dialog>

        <associatedDialogUri></associatedDialogUri>

        <fromAddress>8078</fromAddress>

        <id>16817663</id>

        <mediaProperties>

          <DNIS>8073</DNIS>

          <callType>AGENT_INSIDE</callType>

          <callvariables>

            <CallVariable>

              <name>callVariable1</name>

              <value></value>

            </CallVariable>

.

.

.

.

            <CallVariable>

              <name>callVariable10</name>

              <value></value>

            </CallVariable>

          </callvariables>

          <dialedNumber>8073</dialedNumber>

        </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>DROP</action>

            </actions>

            <mediaAddress>8078</mediaAddress>

            <mediaAddressType>AGENT_DEVICE</mediaAddressType>

            <state>ACTIVE</state>

            <stateCause></stateCause>

          </Participant>

          <Participant>

            <actions/>

            <mediaAddress>8073</mediaAddress>

            <mediaAddressType>AGENT_DEVICE</mediaAddressType>

            <state>DROPPED</state>

            <stateCause></stateCause>

          </Participant>

        </participants>

        <state>ACTIVE</state>

        <toAddress>8073</toAddress>

        <uri>/finesse/api/Dialog/16817663</uri>

      </Dialog>

    </dialogs>

  </data>

  <event>DELETE</event>

  <requestId></requestId>

  <source>/finesse/api/User/5025/Dialogs</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: