cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
96
Views
0
Helpful
0
Comments
cdnadmin
Level 11
Level 11
This document was generated from CDN thread

Created by: samineni s on 26-08-2010 01:49:49 PM
Hai,
 
Can we use silent monitor functions in JAVA using the JAVA CIL?

Subject: RE: New Message from samineni s in Computer Telephony Integration Object Se
Replied by: David Lender on 26-08-2010 05:07:30 PM
You can use Callmanager based Silent Monitor but NOT CTIOS Based Silent Monitor using the Java CIL.

Subject: RE: New Message from samineni s in Computer Telephony Integration Object Se
Replied by: Christopher Nagel on 03-09-2010 06:32:27 PM
You can use Callmanager based Silent Monitor but NOT CTIOS Based Silent Monitor using the Java CIL.



 
David,
 
Could you please elaborate on this a little?  My application uses the Java CIL and I am about to begin distributing the silent monitor / winPap installs with it but your note makes me reconsider.
 
What is the technical definition of "can not use"?  What is the specific technical reason for not being able to do this?
 
Chris

Subject: RE: New Message from Christopher Nagel in Computer Telephony Integration Ob
Replied by: David Lender on 07-09-2010 02:23:58 PM
Chris,



The JavaCil does not support the silent monitoring objects needed for CTIOS based silent monitoring.  Nor does the .NET Cil.

Subject: Re: Silent Monitor w/4GL CILs
Replied by: Christopher Nagel on 08-09-2010 06:13:46 PM
Chris,
The JavaCil does not support the silent monitoring objects needed for CTIOS based silent monitoring.  Nor does the .NET Cil.

 
David,
 
Thank you so much for this response.  However, I need to find a way to enable client side silent monitoring **somehow**.  I cannot rewrite the entire custom client, so whatever I do will need to be either kludge or genius! :-)
 
I am not asking for you to design the solution, but if there were some additional detailed guidance you could provide I would be very grateful.  I can open case if you think it is a valid Development Support issue that would yield concrete technical results.
 
I am thinking that if the COM CIL supports those objects, perhaps I can develop a native bridge to utilize the COM objects that are required.  Would it require multiple logins for the agent at the ICM side?  Is there any reason why it would not be possible?  In my experience, there is nothing that cannot be done in Java (especially given JNI); it's typically just an engineering challenge.
 
If I understand how SM works, the winPcap application transmits voice packets off the PC<->Phone link to a remote address.  I'd guess the setup/teardown trigger events would come from CTIOS, and this would cause the client app to instantiate a session in winPcap using the endpoint provided in the OnSilentMonitorStartRequestedEvent event.  Is there any reason why the event received in Java cannot trigger objects in the COM CIL?  I'm not sure what is accomplished by session.SetCurrentSilentMonitor(). 
 
Another possible solution would be to switch to the COM CIL for CTIOS events and recast the GUI as a shell over the COM CIL's event mechanism.  The multi-threaded approach (listener / gui) lends itself to refactoring across a wider gulf than just 2 in-process threads, so I suppose that'd be a decent solution if I can't mix in the SMM objects to the existing session.
 
I will look through the sample code to see if there's anything I can come up with on my own.  Would the Dev Support team be able to support a request like this?  Can you share with me the principle impediment to a Java+COM solution?

Thanks,
Chris
 
 

Subject: RE: New Message from Christopher Nagel in Computer Telephony Integration Ob
Replied by: David Lender on 08-09-2010 07:59:33 PM
Developer Support can assist you using existing interfaces  in their intended manner, not a kludge.  I cannot assist you in using Java events to integrate with COM.  Java is intended for cross-os compatibility between linux and MS windows.  Obviously COM doesn¿t work on Linux. 



You certainly can write a silent monitoring client in COM.  How you connect that COM based client to your Java app is totally up to you.



Alternatively you can rely on Callmanager based silent monitoring which works in all Cils including the Java Cil.

Subject: RE: New Message from Christopher Nagel in Computer Telephony Integration Ob
Replied by: David Lender on 09-09-2010 12:33:33 AM
I think you can turn off ¿RejectifAlreadyLoggedIn¿ in the registry and run more than 1 instance of an agent application.  The limitation is that the extension used must be the same because I am pretty sure if RejectifAlreadyLoggedIn is turned off that the newest login will kick off the first one if it is a different extension with the same agentid.   If the agentids and extensions are the same for both you should  be able to use instances of the app.



Try it using two instances of your own Java Cil app to verify this in your environment.  If you can get that to work to your satisfaction, replace one instance with your COM silent monitor app and provide whatever communication mechanism you choose between your Java Cil app and the COM app.



If you have difficulty locating the RejectifAlreadyLoggedIn registry setting., open a TAC case and work with the Cisco TAC to demonstrate the previous test of 2 instances but use the out of box CTIOS Agent Desktop which is supported by the TAC.

Subject: Re: Silent Monitor w/4GL CILs
Replied by: Christopher Nagel on 08-09-2010 10:28:35 PM
Developer Support can assist you using existing interfaces  in their intended manner, not a kludge.  I cannot assist you in using Java events to integrate with COM.  Java is intended for cross-os compatibility between linux and MS windows.  Obviously COM doesn¿t work on Linux. 

You certainly can write a silent monitoring client in COM.  How you connect that COM based client to your Java app is totally up to you.

Alternatively you can rely on Callmanager based silent monitoring which works in all Cils including the Java Cil.

 
David,
 
Thanks much.  Of course, I was being facetious when I said "kludge".  I would not consider cooperating applications or using JNA to access a native library to be kludges.
 
We cannot use Callmanager SM because it has a minimum requirement on handset which we do not meet at this time in that department.
 
Can I connect 2 sessions for the same agent/extension (1 using JavaCIL, the other using Win32 CIL)?  That will be the decision point, I think, that focuses the design.
 
Thanks!
Chris

Subject: Sample SMM code?
Replied by: Christopher Nagel on 14-10-2010 05:26:18 PM
David,
 
I have verified that my custom app and the C++ sample work together logged into a single agent.
 
I am in desperate need of C++ sample code to add SilentMonitoring to the C++ sample phone.  The documentation is frankly a bit abstruse - it focuses more on the monitoring side, and simply dumps args in the monitored app example methods, which is just about zero help.
 
In our situation the monitoring app will be the out of box CTIOS Supervisor.  All I need to do is add the 2 methods to respond to the requests, but there is no clear and certain path and I do not have time for experimental / discovery programming.
 
1) "AcceptSilentMonitoring should only be used if the parameter DoDefaultMessageHandling was set to False when the subscriber handled the OnSilenMonitorRequestedEvent event."  HUH??  Ok, assuming it was True, what then?  When would it be True?  Who is the subscriber?  Isn't using SilentMonitorManager.AcceptSilentMonitoring() the manner in which the subscriber handles the event?
 
2) "The remote client, upon receiving the OnSilentMonitorStartRequestedEvent, chooses whether or not  accept the request."  Based on what?  Why wouldn't it?
 
3) "...approval or rejection by sending a status report back to the monitoring client"  How?
 
4) Am I supposed to create a new SMM each time I accept a request and add it to session, or is this a one-time, session init object that will then "just work" for the rest of the session?  If the latter, how shall I interpret the section on "Shutting Down SMM"?
 
A simple sample would be awesome. Again - I don't care about initiating the monitoring, I just need to enable *being* monitored.
 
Many thanks!  This is fun!
 
Regards,
Chris

Subject: RE: New Message from Christopher Nagel in Computer Telephony Integration Ob
Replied by: David Lender on 14-10-2010 06:04:52 PM
The developers guide has a section on Enabling Silent Monitor in your application.  There is very little to do in the monitored client.  Just create the SMM object, set it to Monitored Mode and it will automatically allow monitoring.  Then shut it down when you shut down your app.



There are means to intercept silent monitor requests and refuse them, but it doesn¿t sound like you are wanting to do that. 



Additional answers:



1) "AcceptSilentMonitoring should only be used if the parameter DoDefaultMessageHandling was set to False when the subscriber handled the OnSilenMonitorRequestedEvent event."  HUH??  Ok, assuming it was True, what then?  When would it be True?  Who is the subscriber?  Isn't using SilentMonitorManager.AcceptSilentMonitoring() the manner in which the subscriber handles the event?



The default behavior is the monitored app does not have to do anything other than create a SMM setting the mode to eSMMonitoredMode



2) "The remote client, upon receiving the OnSilentMonitorStartRequestedEvent, chooses whether or not  accept the request."  Based on what?  Why wouldn't it?



Based on your application design on whether or not you want the agent to be able to refuse a silentmonitorstart request.  Some applications want the agent notified and the ability to refuse.



3) "...approval or rejection by sending a status report back to the monitoring client"  How?


Approval or rejection is done by the CIL and CTIOS automatically depending on whether or not your client accepts the request.  Your monitored application does not have to do anything if it accepts the default to automatically accept silent monitor requests.  The monitoring  client receives

OnSilentMonitorStatusReportEvent . 



There is nothing for the client app to do.





4) Am I supposed to create a new SMM each time I accept a request and add it to session, or is this a one-time, session init object that will then "just work" for the rest of the session?  If the latter, how shall I interpret the section on "Shutting Down SMM"?

You create one SMM per session.  Shutting Down SMM when you shut down your client app.  Are there specific questions on this section?

Subject: RE: Re: Silent Monitor w/4GL CILs
Replied by: Indrajit Chakrabarty on 06-02-2012 04:47:29 PM
David,

Your answers as well as the communication from other CTI OS developers in this and other threads are very helpful in understanding how to implement Silent Monitoring with CTI OS.

We have developed a custom application with CTI OS using the .NET CIL. After the application was tested and deployed, we were asked to support Silent Monitoring since the default Cisco CTI OS Toolkit Agent Desktop supports it. I believe the Agent Desktop is written with C++ CIL and hence there are no problems with SIlent Monitoring.

I found two approaches discussed in the threads on .NET CIL and Silent Monitoring - (1) Write wrappers for COM CIL and use them in the .NET application, (2), modify the registry and run the Agent Desktop application written in C++.

My question is - is there any way to continue with our current .NET application and allow supervisors to do Silent Monitoring of agents?The customer will not like any modification of the registry to run the Agent Desktop and they will not like major re-work of the application.


Thank you for your help.
Indrajit

Subject: RE: New Message from Indrajit Chakrabarty in Computer Telephony Integration
Replied by: David Lender on 07-02-2012 10:19:52 AM
You can do Callmanager based Silent Monitoring with the .NET Cil but this only works for a 3rd generation or later CCE supported IP Phone. These currently are the

following: 7970, 7961/62/65, 7941/42/45, 7921 and later.



As you noted, CTIOS based Silent monitoring is only supported for the C++ and COM Cils.

Subject: RE: New Message from Indrajit Chakrabarty in Computer Telephony Integration
Replied by: Indrajit Chakrabarty on 07-02-2012 06:30:41 PM
David,
 
 
Thank you for your answer and explanation. 
 
The customer is not planning to roll out Cisco IP phones for some time. Therefore, using CCM based silent monitoring is not an option for me, unfortunately.
 
I have read in a similar post of success with importing CTIOS ActiveX control and using the Silent Monitoring support provided through the Silent Monitor Standalone ActiveX Control. I have couple of questions in relation to using the Silent Monitor ActiveX Control -
 
1. If I import the ActiveX Control in the .NET application and establish a separate session to the CTI OS server, is this permitted? I prefer to not touch the existing code that is in production and proven to work.
 
2. Assuming a separate session can be established to the CTI OS Server from the application, will the application receive Silent Monitoring events from the CTI OS server through the session established via the ActiveX control?
 
Thank you for your help.
Indrajit
 
 
You can do Callmanager based Silent Monitoring with the .NET Cil but this only works for a 3rd generation or later CCE supported IP Phone. These currently are the

following: 7970, 7961/62/65, 7941/42/45, 7921 and later.



As you noted, CTIOS based Silent monitoring is only supported for the C++ and COM Cils.


Subject: RE: New Message from Indrajit Chakrabarty in Computer Telephony Integration
Replied by: David Lender on 08-02-2012 04:06:52 PM
I do not think what you are planning to do will work.  You cannot have 2 Cils(.NET and COM)  in use in the same application.
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:

Quick Links