03-18-2021 12:15 AM
Dear Team,
I want to configure the Whisper coaching feature in a Finesse Gadget. and as far as I know, this feature is not based on REST APIs, and you need to write application for whisper i.e. web service.
Appreciate if someone can guide me through building the web service code so that i will be able to call it through a finesse gadget.
Thank you
03-18-2021 02:48 AM
There's one here
03-18-2021 03:03 AM
Hi Paul,
Thank you for your Reply i have navigated throughout the link and found the JAVA class (monitor.java). Appreciate if you can guide me on how to implement this Java class in a web service so that i can call it from Finesse Gadget
Thank you for your usual support
Regards,
03-18-2021 03:57 AM
You have the source directory and pom.xml so you just need to use maven to build the WAR file. Navigate into the same directory as the pom.xml and issue "mvn install" from the command line. Then deploy that web app on your app server of choice -- Tomcat, Glassfish, Jetty etc.
You'll have to manually add the JTAPI JAR for your CUCM version to your local maven repository and correct the dependency version in pom.xml. The one I published was built some years ago on 11.5. JAR dependencies shown in screenshot.
03-18-2021 08:11 AM
Hi Paul,
I went through the implementation of the document and i was checking the localhost catalina logs after updating the CUCM ip address and JTAPI user and password, but i am still receiving the below error
18-Mar-2021 08:01:22.418 INFO [main] org.apache.catalina.core.ApplicationContext.log Marking servlet [Recording] as unavailable
18-Mar-2021 08:01:22.418 SEVERE [main] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [Recording] in web application [/recordctrl-1.0] threw load() exception
java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale en_US
to note that i have the below 2 jar files under the below path:
C:\Program Files\Apache Software Foundation\Tomcat 10.0\webapps\recordctrl-1.0\WEB-INF\lib
1- javaee-web-api-7.0
2- json-20160810
3- jtapi-11.5 (My CUCM version)
to note as well that i have added the recordctrl-1.0.war file under webapps and i have restarted the tomcat service instead of using maven for deployment
Anything i am missing ? and how i can make sure that the monitoring is working fine?
Kind regards,
03-19-2021 05:31 PM
Try also including javax.servlet-api-3.1.0.jar in WEB-INF/lib
03-20-2021 12:15 AM
Hi Paul,
Thank you for your reply, i have already added this jar file under the directory and i now have my webserver up and running with the below logs in stdout: Address 111, Event = CiscoAddrInServiceEv
i have as well tested the Rest API: http://<host:port/path>/monitor/<monitoredExtensionID> and it was successful.
and here i have 2 small questions:
1- this web server is going to provide on demand recording as well as whisper coaching right?
2- if possible, i need some hints to get this web service in a finesse gadget and i know that there is one to call a rest API, but how can i map the <monitoredExtensionID> and the monitor (supervisor extension) to this call
Thank you for your great support
Kind regards,
03-20-2021 03:58 AM
03-20-2021 04:12 AM
Hi Paul,
What do you mean by a UI element ?? you mean a REST API gadget that I build on finesse and that gadget will contain a button to trigger the REST API http request. and regarding the monitored agent numbers that we need to pick, this has to be put manually ? or we can select the agent(click on the talking agent) like we do in silent monitoring then we can click the whisper coaching button without having to put the agent extension manually ??
thank you a lot again for your swift support
Regards,
03-20-2021 04:29 AM
You'll need some user interface capability in your gadget for the supervisor to specify the target extension. The simplest would be an input field into which they enter the agent device DN and a button to start monitoring. It would be slicker if you could use the selected agent in another gadget but I don't think that information will be available to you in a separate gadget iFrame without modifying the supervisor gadget or building a custom replacement for it. You could try a question on the Finesse forum but I think you'd be better off using the simple form approach to get something working quickly.
03-22-2021 01:39 AM - edited 03-22-2021 02:07 AM
Hi Paul,
I was testing the API using postman with the below input:
- 8888 is the calling number
- 569 is the called number
- 554 is the supervisor number that needs to monitor the call
- 554 wanna monitor 8888
- all 3 extensions are in service
- using ip communicator for testing
- and i am using cucm mode without uccx
whenever i call the API, i receive a fast busy message with no resources error on the phone, although the phones are all in the same device pool and using same codec
below are the stdout logs
Call [8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED, Event = TermConnRingingEv SEP28D2443E124A
Call [8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED, Event = ConnConnectedEv 569:PT_Internal:1
Call [8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED, Event = TermConnActiveEv SEP28D2443E124A
Call [8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED, Event = ConnConnectedEv 569:PT_Internal:1
Call [8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED, Event = TermConnActiveEv SEP28D2443E124A
Connection State = [SEP8CA982C37FBA/[8888:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14025)->ACTIVE]->ESTABLISHED]->TALKING
{
"tone": "NONE",
"action": "START",
"monitor": "554",
"type": "WHISPER"
}
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->DIALING, Event = CallActiveEv
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->DIALING, Event = ConnCreatedEv 554:PT_Internal:1
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->DIALING, Event = ConnConnectedEv 554:PT_Internal:1
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->DIALING, Event = TermConnCreatedEv SEP3CF01126079F
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->DIALING, Event = TermConnActiveEv SEP3CF01126079F
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14026)->ACTIVE]->FAILED, Event = ConnFailedEv 554:PT_Internal:1
thank you for your support
Regards,
03-22-2021 02:27 AM
Touma,
Can you confirm that Standard Monitoring and Barge in works OK using the out of the box Supervisor Finesse Desktop features using the same extensions?
Regards,
Gerry
03-22-2021 05:42 AM
Hi Gerry,
i had an issue with my Monitoring CSS, now i fixed it and the API is calling the web service however both the client and the agent can hear the supervisor. to note that i have simulated the client as an extension calling to a trigger. so the call is as follows:
554 is the supervisor extension
8888 is an extension simulating the client calling into the call center
569 is the agent extension
below are the stdout logs:
Connection State = [SEP28D2443E124A/[569:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14072)->ACTIVE]->ESTABLISHED]->TALKING
{
"tone": "NONE",
"action": "START",
"monitor": "554",
"type": "WHISPER"
}
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = CallActiveEv
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnCreatedEv 554:PT_Internal:1
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnConnectedEv 554:PT_Internal:1
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = TermConnCreatedEv SEP3CF01126079F
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = TermConnActiveEv SEP3CF01126079F
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnCreatedEv 569:PT_Internal:5
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnInProgressEv 569:PT_Internal:5
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnAlertingEv 569:PT_Internal:5
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = ConnConnectedEv 569:PT_Internal:5
Call [554:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14074)->ACTIVE]->ESTABLISHED, Event = CiscoTermConnMonitorTargetInfoEv SEP3CF01126079F
Call [569:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14072)->ACTIVE]->ESTABLISHED, Event = CiscoTermConnMonitoringStartEv SEP28D2443E124A
Call [569:PT_Internal:1/(P1-JTAPI_monitoring) GCID=(1,14072)->ACTIVE]->ESTABLISHED, Event = CiscoTermConnMonitorInitiatorInfoEv SEP28D2443E124A
03-26-2021 06:23 AM
Hi,
Now I have the slient monitoring feature working using this solution, but when it comes to whisper coaching, the client can as well hear me
note that i am testing using IP communicator
and by the way, why does cisco still didn't include this feature natively. I think it is more important than many features they release because i've been asked for it by many clients
Kind regards,
11-15-2021 11:55 PM - edited 12-18-2021 12:52 AM
NOTE : Cisco Whisper Coaching feature does not works on Cisco IP Communicator
In case you are open to 3rd party application you can check out below application for your requirement
MARS Silent Monitor & Whisper Coaching
Please check out attached document on the application
For more details you can write to info@parsec-tech.com
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