>>How do I disable the automatic answer on push "talk"?
There is no option to disable the Talk button in the Device Manager SDK. However, if you want to bring down the Audio Link that was brought up on Talk button press you can use IHostCommand.AudioState to bring down the Audio Link.
If you can provide more details on the use case and what you are trying to achieve that will help to provide a solution.
You should be able to do that. Using the Plantronics Spokes SDK your softphone application can register to receive talk button press event.
At this point you can add logic to your application and decide how to process that event. As Ramesh says, there is an SDK function to enable or disable the RF link (for wireless devices), via IHostCommand.AudioState. Wired products the audio path is enabled all the time.
Note: the Device Manager SDK is viewed as an older solution and is planned to be deprecated.
The recommended route to ensure full device support is to use the Spokes runtime with one of the following APIs: COM Service, REST Service or iPlugin SDK.
Here is some iPlugin SDK C# .NET sample code (from Event Monitor Sample - Standalone version with Spokes Wrapper):
m_session = m_sessionMgr.Register(Name); // Register a string name for your softphone's session with Spokes SDK
IDevice m_device = m_session.ActiveDevice; // Get "active device" for Spokes (connected Plantronics device)
m_device.DeviceListener.HeadsetButtonPressed += new DeviceListenerEventHandler(DeviceListener_HeadsetButtonPressed);
// register for headset button pressed event
m_device.HostCommand.AudioState = MonoOn; // MonoOn means turn the RF link on
m_device.HostCommand.AudioState = MonoOff; // MonoOff means turn the RF link off
Here is the equivelent COM Service C++ sample code (from: Standalone application integrated to Spokes - SpokesSDKCOMSample):
// Register a string name for your softphone's session with Spokes SDK
sessMgr->Register(_bstr_t("COM Plugin"), &session ));
session->get_ActiveDevice(&activeDevice); // Get "active device" for Spokes (connected Plantronics device)
activeDevice->get_HostCommand(&hostCommand); // Get reference to the IHostCommand interface
// register for headset button pressed event
AtlAdvise(deviceEvents, deviceEventSink, __uuidof(IDeviceCOMEvents), &_pSinkDeviceCookie);
hostCommand->put_AudioState( AudioType_MonoOn ); // MonoOn means turn the RF link on
hostCommand->put_AudioState( AudioType_MonoOff ); // MonoOff means turn the RF link off
It seems to me not optimal way to send event audiostate to softphone, process it, and send command audiostate=monooff back, if i dont need it (if no incoming calls, for example).
In other words: by default audiostate can be controlled both by headset and softphone - it`s not practical for me. I want only softphone to control headset audiostate.
Here what is going on now:
When I push talk-button my headset send events "ButtonPressed" and "AudioStateChanged" to softphone. Instead I want my headset to send event "ButtonPressed" only. And "AudioState" status of headset can only be changed by command from softphone. I'l send it, when I need.
>>When I push talk-button my headset send events "ButtonPressed" and "AudioStateChanged" to softphone. Instead I >>want my headset to send event "ButtonPressed" only. And "AudioState" status of headset can only be changed by >>command from softphone
Some of our DECT and Corded products have this functionality that you are looking for. For BT products we will look into a way to support functionality in the future. Can you also make sure Audio Sensing (AS) is disabled when you do this as Audio played by the Softphone can also bring up the Audio link if Audio Sensing is enabled. Please use Plantronics control Panel and see if the AS is disabled.
This seems to be a key issue that is holding up my development that could ultimately sell thousands of headsets. This is development for a type of phone system that could heavily use the wireless sets and doesn't currently have integration.
I am trying to make the WG200 Voyager Pro work with a softphone using the PURE SDK via plugin. I have the device working in where it answers calls and hangs up with the talk button. It's 90% there. However, if the user presses the button a second time, the earpiece goes out of sync (mono on/off) and answering the next inbound call results in hanging up upon pressing talk.
I have spent weeks building work around's to the mono on/off delima and boolean logic to try and synchronize the call state, however the earpiece has a mind of it's own and I have been unable to keep it in sync with code.
Is there anything else I can do? I have tried Audio Sensing and it fixed a lot of this issue, but not all of it.
When you clicked the talk button, the same event is sent to PURE. It is up to PURE to interpret if the button click is to answer or to hangup a call based on the call state it is keeping. It appears that call state is confused with what you wanted to do.
Is it possible that you share the code segement where you handle the call answer and call hangup in your plugin (with the code where you handle the audio state) so I can better determine where the confusion could arise.
Also you mentioned the second call is dropped by pressing the talk button. What about a third incoming call? Is that handled correctly? Does every call after the first get dropped, or every other call get dropped?