Showing results for 
Search instead for 
Did you mean: 
Walkthrough Wednesdays

JTAPI Utility in CTIOS desktop app?


Subject: RE: JTAPI Utility in CTIOS desktop app?
Replied by: David Staudt on 22-04-2010 10:27:31 PM
A possible spoiler for your plan: JTAPI (or any available UCM API) does not support control of the phone mute or volume controls.  It is possible to use the XML IP Phone Services API to simulate physical button presses on a phone - so you can simulate volume up/down or mute - but it isn't possible to read the current volume or mute button you can only do it 'blind.'
Setting the phone background image is also not supported by any API (see
This document was generated from CDN thread

Created by: Christopher Nagel on 22-04-2010 05:03:25 PM
I've been working in CTIOS for a few years now and I am seeing the opportunity to enhance functionality using JTAPI, so I wanted to get your experienced opinion on the plan:
1. Allow agents to mute the handset microphone
2. When first launched, brand the agent's handset with a special bg image (a one-shot deal)
I'd also like to explore the possibility of enabling media endpoint capabilities, but I have trouble believing there isn't more to it than just adding jtapi.jar to the classpath.
In the first go-round, I figure I'll just create a class that:
1. Takes agent ID and instrument from the existing login
2. Does whatever database lookups needed to get whatever JTAPI needs to initialize a handset proxy object
3. Connect to CUCM, doing whatever that takes
4. Write mute() and unmute() methods
   a. query current mic volume and save
   b. set volume to zero or to last-saved volume
What do you think?  Is this possible?  Can it really be this easy after all?  And what would I need to do to extend it to Avaya handsets for our hybrid users?

Subject: RE: JTAPI Utility in CTIOS desktop app?
Replied by: David Staudt on 28-04-2010 04:44:52 PM
Mute is strictly a matter of terminal hardware, and is not controllable by call control signaling from UCM.  Neither JTAPI or TAPI (or any UCM API currently) provide for controlling the audio hardware on the phone - mute, volume, speaker/headset/handset audio path, etc.  The JTAPI packages/features - such as PhoneMicrophone - are not implemented in the Cisco JTAPI library.
In a JTAPI softphone implementation, all media handling (and by implication hardware audio handling) is provided by the application code.  JTAPI provides IP/codec info in start/stop events for the streams, the app implementation must handle all RTP media and local audio hardware functions (including mute/volume.)

Subject: RE: JTAPI Utility in CTIOS desktop app?
Replied by: Christopher Nagel on 28-04-2010 04:11:58 PM
Thanks for the heads-up.  Just to be clear, you're saying that the JTAPI example code for muting the mic will not work because Cisco has not implemented the required supporting library, right?
If I cannot do this in JTAPI, is it possible to do this with a TSC and TAPI in C++?
Just want to make sure I understand where the limitations are. 
I guess lastly, if I use JTAPI to implement a custom "IP Communicator" does the PhoneMicrophone interface work against the PC hardware to set mic gain, or would I need to write that myself?
ComponentGroup groups[];
try {
    Terminal terminal = myprovider.getTerminal("5551212");

    if (terminal instanceof PhoneTerminal) {
        groups = ((PhoneTerminal)terminal).getComponentGroups();
} catch (Exception excp) {
// Handle exceptions

if (groups != null && groups.length >= 1)
    try {
        for( ComponentGroup cg : groups )

        Component components[] = groups[0].getComponents();

        for (Component comp : components )
            if (comp instanceof PhoneMicrophone)
     } catch (Exception excp) {
        // Handle exceptions

Subject: RE: JTAPI Utility in CTIOS desktop app?
Replied by: Christopher Nagel on 29-04-2010 09:57:29 PM
Thanks David for clarifying.
Content for Community-Ad

This widget could not be displayed.