07-14-2021 11:38 AM
Hi,
I am integrating Cisco Finesse with 3rd party telephony server. As per the docs, I found that finesse doesn't support the blind conference through API or Agent desktop. How can we implement Conference functionality through API or Agent desktop?
I didn't find any proper details for Conference API in the Finesse API guide. it will be really appreciated if someone can provide me the steps/guide. I have gone through the below articles.
As per the first URL (dialog take action on the participant), i have implemented the CONFERENCE request, let me explain the scenario.
- Agent1 received a call from Agent2
- Agent3 is available with READY status
- Agent1 select Agent3 and press conference button
- Request sent and response received as 202 (successful) but call not initiated to Agent3, status is still READY for Agent3
Below is the Request and Response from logs 3rd application logs:
DEBUG - CallConference Dlg , okButton_actionPerformed()
DEBUG - CallConference Class , okButton_actionPerformed() , agent and Blind radio Button selected
DEBUG - CallConference Dlg , ConferenceCall() , targetAgentextension = 1008 Dialog id = 35959474 agentExtension = 1001
DEBUG - Before Sending Request
DEBUG - Open connection to fin-xxxx.icm:80
network: Connecting http://fin-xxxx.icm:80/ with proxy=DIRECT
DEBUG - >> "PUT /finesse/api/Dialog/35959474 HTTP/1.1[\r][\n]"
DEBUG - Adding Host request header
DEBUG - >> "Authorization: Basic MTIzMDAwOmNpc2NvMTIz[\r][\n]"
DEBUG - >> "Content-Type: application/xml[\r][\n]"
DEBUG - >> "User-Agent: Jakarta Commons-HttpClient/3.1[\r][\n]"
DEBUG - >> "Host: fin-pub-a-50.berlin.icm[\r][\n]"
DEBUG - >> "Content-Length: 134[\r][\n]"
DEBUG - >> "[\r][\n]"
DEBUG - >> "<Dialog><requestedAction>CONFERENCE</requestedAction><toAddress>1008</toAddress><targetMediaAddress>1001</targetMediaAddress></Dialog>"
DEBUG - Request body sent
DEBUG - << "HTTP/1.1 202 Accepted[\r][\n]"
DEBUG - << "HTTP/1.1 202 Accepted[\r][\n]"
DEBUG - << "Cache-Control: no-cache, no-store[\r][\n]"
DEBUG - << "Expires: Wed, 31 Dec 1969 19:00:00 EST[\r][\n]"
DEBUG - << "X-Content-Type-Options: nosniff[\r][\n]"
DEBUG - << "requestId: [\r][\n]"
DEBUG - << "Content-Type: application/xml[\r][\n]"
DEBUG - << "Content-Length: 0[\r][\n]"
DEBUG - << "Date: Wed, 14 Jul 2021 19:32:13 GMT[\r][\n]"
DEBUG - << "Server: [\r][\n]"
DEBUG - << "[\r][\n]"
DEBUG - Buffering response body
DEBUG - Resorting to protocol version default close connection policy
DEBUG - Should NOT close connection, using HTTP/1.1
DEBUG - Releasing connection back to the connection manager.
DEBUG - Default charset used: ISO-8859-1
DEBUG - URL = http://fin-xxxx.icm/finesse/api/Dialog/35959474
DEBUG - xml body = <Dialog><requestedAction>CONFERENCE</requestedAction><toAddress>1008</toAddress><targetMediaAddress>1001</targetMediaAddress></Dialog>
DEBUG - Response Code===> 202
DEBUG - Response body===>
DEBUG - 202 : Call Conference
DEBUG - CallConference Dlg , ConferenceCall() , result = 202
Regards,
Arslan
Solved! Go to Solution.
07-14-2021 12:41 PM
Hi @MuhammadArslan76714 ,
In order to perform a conference, you must first create a consult from Agent1 to Agent3, THEN complete the conference from the original call leg.
To create a consult, you need to use this API using the original call's id: https://developer.cisco.com/docs/finesse/#!dialogmake-a-consult-call-request
After the consult is completed, you need to use this API with a requestAction of CONFERENCE to complete the conference from the original call's id: https://developer.cisco.com/docs/finesse/#!dialogtake-action-on-participant
Finesse REST APIs are asynchronous, so you will receive a HTTP response code of 202 whether or not the action is successful or failed. These APIs rely on the Finesse Notification Service to send events to determine whether or not the action was successful or failed. Since these APIs are asynchronous, you need to wait for the notification before proceeding to the next API. So, in this case, you need to confirm that the consult was successful before making the conference REST API request.
As far as doing a blind conference, there isn't a blind conference feature. I can't remember off the top of my head if you are able to complete the conference while the consult leg is still ringing. You can try that out by seeing if the original leg's allowable action lists CONFERENCE when the consult leg is ringing.
Thanx,
Denise
07-14-2021 12:41 PM
Hi @MuhammadArslan76714 ,
In order to perform a conference, you must first create a consult from Agent1 to Agent3, THEN complete the conference from the original call leg.
To create a consult, you need to use this API using the original call's id: https://developer.cisco.com/docs/finesse/#!dialogmake-a-consult-call-request
After the consult is completed, you need to use this API with a requestAction of CONFERENCE to complete the conference from the original call's id: https://developer.cisco.com/docs/finesse/#!dialogtake-action-on-participant
Finesse REST APIs are asynchronous, so you will receive a HTTP response code of 202 whether or not the action is successful or failed. These APIs rely on the Finesse Notification Service to send events to determine whether or not the action was successful or failed. Since these APIs are asynchronous, you need to wait for the notification before proceeding to the next API. So, in this case, you need to confirm that the consult was successful before making the conference REST API request.
As far as doing a blind conference, there isn't a blind conference feature. I can't remember off the top of my head if you are able to complete the conference while the consult leg is still ringing. You can try that out by seeing if the original leg's allowable action lists CONFERENCE when the consult leg is ringing.
Thanx,
Denise
07-18-2021 01:48 AM
Hello Denise,
Thanks a lot for the valuable feedback, let me implement and test it as you advised then I will make it an accepted solution, as now finesse is out of service. I have one concern regarding this:
if a consult call is completed, then Agent3 will become the participant and the status will be updated to TALKING, then what will be the purpose to make a conference call, as Agent3 is already with us in the call.
Secondly, I am also trying to make an outbound call from my application, can you please provide some guide/links related to this.
a). do i need to use same MAKE_CALL API to initiate an outbound call?
b). Do I have to set the call variables while making a call or after the call is answered?
c) if after the call is answered then should I do it through UPDATE_CALL_DATA?
Thanks,
Arslan
07-19-2021 10:42 AM
Hi,
if a consult call is completed, then Agent3 will become the participant and the status will be updated to TALKING, then what will be the purpose to make a conference call, as Agent3 is already with us in the call.
Maybe our terminology is not on the same page. When I say Consult call is completed, that means that Agent3 answers the call and the call is in ACTIVE. The consult is a separate call leg from the original call.
a). do i need to use same MAKE_CALL API to initiate an outbound call?
Not sure what you mean by "same", but you do need to use the Make a call API: https://developer.cisco.com/docs/finesse/#!dialogcreate-a-new-dialog-make-a-call
b). Do I have to set the call variables while making a call or after the call is answered?
It depends on your deployment type, if it is CCE or CCX. Per the doc, you can only set call variables when making the call for CCE deployments. For a CCE deployment, it is up to you when you want to set it. For a CCX deployment, you do not have a choice but to set it until after the call is answered.
c) if after the call is answered then should I do it through UPDATE_CALL_DATA?
Yes, you need to use that API: https://developer.cisco.com/docs/finesse/#!dialogupdate-call-variable-data
Thanx,
Denise
07-27-2021 02:32 AM
Hello Denise,
Thanks for the feedback, I have successfully implemented the conference part, now I have one concern regarding this.
Let me explain the scenario:
"Three agents are in a CONFERENCE call, I want to add one more agent to call.
Agent1 will make a consult call to Agent4, he accepted the consultative call."
Now, do I need to add the Agnet4 in the conference call or do I need to add Agent2 and Agent3 in the current call leg one by one?
Regards,
Muhammad Arslan
07-27-2021 10:02 AM
Hi,
After your successful conference, you have agents 1, 2, 3 on the same call (we will call this call#1). If you want agent1 to add agent 4 to call#1, agent1 will request a consult from call#1 (that will be the dialog Id to use). Then, this will create a call#2 between agent1 and agent4. Agent4 answers. Now, Agent1 will request a conference using call#1's dialog Id. This will combine the call to be Agent1, 2, 3, 4.
Basically it is the same process.
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