Quantcast
Channel: Plantronics Developer Connection : Popular Discussions - Forums & Support
Viewing all articles
Browse latest Browse all 2541

How to integrate the wireless devices with a base?

$
0
0

Hi All,

 

I work on some of the wireless devices with a base for our softphone product. These devices include the models such as Savi W730 or Savi Office WO100. We use the Spokes v2.8 COM library.

 

Generally I have a few questions:

1. Is there a sample or guideline for this kind of device? As we know, this kind of device is a bit complex compare to those looks-simpler devices such as Blackwire C310. I figured I need to do something like SetActiveLink and put_AudioState when there is an incoming call. Here is a bit of code I have below. Does it look alright?

VARIANT_BOOL bRet = VARIANT_TRUE;

m_DeviceListener->SetActiveLink(LineType_VOIP, VARIANT_TRUE, &bRet);

m_HostCommand->put_AudioState(AudioType_MonoOn);


2. The code above works fine if the user follows the normal routines. For instance, the user just presses the Talk button to answer the phone call, and presses the Talk button again to end the call. But sometimes, if the user wears the device and randomly presses the Talk button a few times in idle state, the Audio State could be messed up. And further, when there is an incoming call, it will end up with no ring or no audio. I thought the code above will make the device work no matter what the current audio state is. But it looks like the code cannot *force* the device to enter in the correct audio state. Is there a way to force the device enter in the correct link state and audio state?


3. I tested it quite a few times. I realized once the device is in “MonoOn” state, then if there is an incoming call, we’ll have no ring/no audio when press the Talk button to answer the call. That is because, the user pressed the Talk button, then the device toggled the audio state to MonoOff. Then there is no audio. The problem is, it doesn’t happen all the time. But if I keep trying a few times in idle states, it will happen.

  • Line1: Device Event: AudioStateChanged AudioState= MonoOn
  • Line2: ***Suppressing dial-tone in IDeviceListener.
  • Line3: Device Listener Event: HeadsetButton Talk
  • Line4: Device Event: ButtonPressed Talk
  • Line5: Device Event: TalkPressed
  • Line6: Device Listener Event: HeadsetState MonoOff
  • Line7: Device Event: AudioStateChanged AudioState= MonoOff
  • Line8: Device Listener Event: BaseState AudioMixer
  • Line9: Device Listener Event: BaseState VoipLinkDown

See the log above, I got it from the sample application shipped with Spokes. I had both the sample application and our softphone running at the same time. Before Line 1, I pressed the Talk button a few times. In Line1, the device is in MonoOn state. Then there is an incoming call, in Line 3, I pressed the Talk button to answer the call, the call is answered. But we heard no audio because the device entered “MonoOff” state by itself in Line6.

 

4. I understand we should put the device on sleep if it’s in idle state to save the power. Otherwise the device battery will drain fast. But how to put the device on sleep? I do this below. Is it enough? Do I need to turn off the air link?

m_HostCommand->put_AudioState(AudioType_MonoOff);


5. How to wake up the device if there is an incoming call? By calling “put_AudioState(AudioType_MonoOn)”, the device will wake up?


Thanks in advance!

Kenny


Viewing all articles
Browse latest Browse all 2541

Trending Articles