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

Created by: Engineering Department on 29-07-2009 10:11:27 PM
Does the cisco TSP allow 3rd party applications to control the speaker, mute button, volume control and headset buttons on a particular 7900 series phone?  How about navigating the phones interface to do things like changing ring tones?  Where can I find information regarding giving our CTI applications access to do these things?  Thanks.
 
Dustin

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: David Staudt on 31-07-2009 04:21:50 PM
The TSP does not provide direct access to these mechanisms.  However, the XML services API - http://developer.cisco.com/web/ipps - does provide a facility for simultating button pushes by sending a special XML object to the phone.  Normally XML services Execute requests are POSTed to the phone via HTTP, however the TSP also provides a 'pass-through' mechanism for sending XML to the phone, via phoneDevSpecific and CCiscoPhoneDevSpecificDataPassThrough.
 
In this way you can simulate pressing the hardware buttons for mute, volume up/down, etc. - however in practice this tends not to be too useful, as there is currently now way to read the status associated with these buttons.  For example there is no programmatic method to determine if the handset, speaker, or handset is in use, if the phone is muted, what the current volume level is, etc.  You can push the buttons, but only 'blindly.'
 
Similarly, you can automate user interaction to change ring settings, etc., but it isn't possible to know the starting state of the display (so the app knows what buttons to push), and there is no way to deal with interruptions robustly.  For example if the app kicks off a long sequence of button presses intended to change to ring setting X, but the user presses the Messages button while this is happening, unexpected things could happen (erasing messages, hanging up calls, etc.)

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: Vladimir Banker on 01-09-2009 06:22:59 AM
Is exist sample how to using CCiscoPhoneDevSpecificDataPassThrough?
Thanks

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: David Staudt on 01-09-2009 06:33:29 PM
There is a small sample app which shows using device specific requests (though not Data Passthrough specifically http://developer.cisco.com/web/tapi/docs

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: Vladimir Banker on 04-11-2009 09:27:27 AM
Could you specify exatly name, because I did not find which of them using
PhoneDevSpecific( exist only samples for lineDeviceSpecific).
Thanks.

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: David Staudt on 04-11-2009 07:57:11 PM
Sorry, you're right there is only a sample right now for lineDevSpecific.
 
Do you have a specific question about phoneDevSpecific?  The operation should be roughly analagous to the lineDevSpecific stuff, but you will be starting from phoneInitialize.  I.e.:
 
- phoneInitialize - will return how many devices are available
- Enumerate/walk the list of phones using phoneGetDevCaps to find the phone you're looking for
- Negotiate a max API version via phoneNegotiateAPIVersion
- Open the phone for operation with PhoneOpen, be sure an supply minimum API version as needed (i.e. 0x00030000 for using Device Data Passthrough)
- Use PhoneDevSpecific to issue phone extension commands

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: Vladimir Banker on 05-11-2009 10:12:30 AM
I have specific question about phoneDevSpecific:
I am using lineInitializeEx/lineGetDevCaps with enumarate for the line which I am looking.
Is it possible now get corresponding phone for the line which I already found?
Thanks
 

Subject: RE: Mute, speaker and headset controlled by TAPI
Replied by: David Staudt on 06-11-2009 05:04:06 PM
phoneGetDevCaps returns PHONECAPS structure, containing dwPhoneName. 
 
dwPhoneNameOffset=xe0
    63736943 6850206f 3a656e6f 45535b20  Cisco Phone: [SE
    30303050 42453037 42344339 xx005d34  P00070EB9C4B4].
 
This will correspond to the lineGetDevCaps, LINEDEVCAPS::dwLineName
 
dwLineNameOffset=x1a2
    xxxx6943 xxxxxxxx xxxxxxxx xxxxxxxx  Ci
    206f6373 656e694c 535b203a 30305045  sco Line: [SEP00
    45303730 34433942 205d3442 30303228  070EB9C4B4] (200
    xx002930 xxxxxxxx xxxxxxxx xxxxxxxx  0).
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