Cisco finesse integration with third party CRM

Version 1
    This document was generated from CDN thread

    Created by: Asmita Patil on 12-12-2013 11:44:21 PM
    can we send HTTP request to finess server and get the respons??if yes how??
    e.g.can we login into finess or change the status of agent by sending http request.  

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Joseph Horvath on 13-12-2013 08:22:21 AM
    Yes you can send an HTTP request to Finesse. Just remember to include the Basic Authentication HTTP header. The HTTP response code will tell you if the request was successfully accepted. The BOSH messages will tell you if your request was processed.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Asmita Patil on 16-12-2013 05:55:55 AM
    Joseph Horvath:
    Yes you can send an HTTP request to Finesse. Just remember to include the Basic Authentication HTTP header. The HTTP response code will tell you if the request was successfully accepted. The BOSH messages will tell you if your request was processed.

    we already tried this using basic authentication,but we are getting exception "unexpeted end of file from server".
    can you please advice us.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Joseph Horvath on 16-12-2013 01:19:08 PM
    Please share your HTTP request and any POST or PUT data that you are sending.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Gary Olmsted on 16-12-2013 01:26:54 PM
    Are you sending the right "Content-Type"?  You need to send "Content-Type: application/xml" for these requests.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Asmita Patil on 17-12-2013 07:07:59 AM
     We got the respose as problem was with port number.
    we want Call_ID in HTTPS response,can you please suggest us.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Joseph Horvath on 17-12-2013 08:18:11 AM
    You mention that there may be an issue with the HTTPS response. Can you try to use HTTP instead of HTTPS to see if anything acts different without SSL?

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Asmita Patil on 18-12-2013 05:33:25 AM
    I am using HTTP request only by mistake I put HTTPS
     
    As shown in figure I can pass value to call variable 1 to 10 but not able to display value of call Id
    Can you please advice me.
    I also want to know, in answer event URL  http://<server>/finesse/api/Dialog/<id>
    which id should I pass as a dialog id?where will i get that dialog id?



    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Joseph Horvath on 18-12-2013 08:33:04 AM
    Here are a few of my sample REST requests that work for me. See if yours are similar and try to adjust.

    Sample GET:
    1GET /finesse/api/User/42035 HTTP/1.1
    2User-Agent: Java Finesse REST Library -- 2013/06/19 -- Joe Horvath -- joshorva@cisco.com
    3Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    4Accept-Language: en-US,en;q=0.5
    5Connection: keep-alive
    6Authorization: Basic NDIwMzU6MTIzNDU=
    7Host: jkh.desktop.com
    Sample PUT:
     1PUT /finesse/api/User/42035 HTTP/1.1
     2User-Agent: Java Finesse REST Library -- 2013/06/19 -- Joe Horvath -- joshorva@cisco.com
     3Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
     4Accept-Language: en-US,en;q=0.5
     5Connection: keep-alive
     6Authorization: Basic NDIwMzU6MTIzNDU=
     7Content-Type: application/xml
     8Host: jkh.desktop.com
     9Content-Length: 73
    10
    11<User>
    12    <state>LOGIN</state>
    13    <extension>42035</extension>
    14</User>
    Also, note that you can get the Dialog ID from the BOSH/XMPP event that notifies you of the incoming or outgoing call.

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Asmita Patil on 17-01-2014 07:11:47 AM
    Using Finesse server response for a HTTP request how do we identify which <actions> tag are used to enable
    buttons since the response has multiple actions(<tag>).
     
    <Dialogs>
    <Dialog>
    <associatedDialogUri></associatedDialogUri>
    <fromAddress>8079</fromAddress>
    <id>16788723</id>
    <mediaProperties>
    <DNIS></DNIS>
    <callType>CONSULT</callType>
    <callvariables>
    ...........................
    </callvariables>
    <dialedNumber>8073</dialedNumber>
    </mediaProperties>
    <mediaType>Voice</mediaType>
    <participants>
    <Participant>
    <actions>
    <action>UPDATE_CALL_DATA</action>
    <action>DROP</action>
    </actions>
    <mediaAddress>8079</mediaAddress>
    <mediaAddressType>AGENT_DEVICE</mediaAddressType>
    <state>INITIATED</state>
    <stateCause></stateCause>
    </Participant>
    </participants>
    <state>INITIATED</state>
    <toAddress></toAddress>
    <uri>/finesse/api/Dialog/16788723</uri>
    </Dialog>
    <Dialog>
    <associatedDialogUri></associatedDialogUri>
    <fromAddress>8072</fromAddress>
    <id>2130706446</id>
    <mediaProperties>
    <DNIS>1000</DNIS>
    <callType>PREROUTE_ACD_IN</callType>
    <callvariables>
    <CallVariable>
    .........
    </callvariables>
    <dialedNumber>1000</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>8072</mediaAddress>
    <mediaAddressType>AGENT_DEVICE</mediaAddressType>
    <state>ACTIVE</state>
    <stateCause></stateCause>
    </Participant>
    <Participant>
    <actions>
    <action>UPDATE_CALL_DATA</action>
    <action>DROP</action>
    <action>RETRIEVE</action>
    </actions>
    <mediaAddress>8079</mediaAddress>
    <mediaAddressType>AGENT_DEVICE</mediaAddressType>
    <state>HELD</state>
    <stateCause></stateCause>
    </Participant>
    </participants>
    <state>ACTIVE</state>
    <toAddress>1000</toAddress>
    <uri>/finesse/api/Dialog/2130706446</uri>
    </Dialog>    
     
        </Dialogs>    

    Subject: RE: Cisco finesse integration with third party CRM
    Replied by: Joseph Horvath on 17-01-2014 09:05:26 AM
    Note that the event lists ALL of the actions available for each Dialog Participant. You will need to determine which Participant you are, then enable a button for each Action listed.