Forum Index » Windows Development » Unable to differentiate real button press events from acknowledge events   XML
 
Author Message
elvinyip


Joined: 23/04/2018 18:01:33
Messages: 5
Offline

I'm working on headset call control support for a softphone and I'm using Jabra Jabra-SDK-for-Windows-v10115 API for this.

From testing and from the flow diagrams in the docs, I see that when my application calls Jabra_SetMute or a Jabra_SetOffHook for example, our application receives a callback from the ButtonInDataTranslatedFunc that acknowledges/echos the request that was send.

This is sometimes causing an issue as it seems impossible to differentiate between the callback due to an actual button press and due to our app's request (as an acknowledgement) - this means that when our application receives the acknowledgement, our application will treat this as if the user pressed the button.

Is there any way to differentiate the 2 types of events? If not, is it possible to disable the acknowledgements? Or are there any callbacks that we can use that just notifies us of real button presses?

This message was edited 1 time. Last update was at 17/08/2018 11:42:52

JabraJohn1


Joined: 23/04/2018 04:54:57
Messages: 52
Offline

https://developer.jabra.com/site/global/sdks/web/index.gsp

hi, the USB HID document at the above address can help in looking at the flow of USB events.

can i ask which device you are using? as not all Jabra devices behave in the same way?
Wolfgang


Joined: 17/04/2018 04:27:59
Messages: 8
Offline

Yes, this is an open issue. I already discussed this in another thread (https://developer.jabra.com/forums/posts/list/99.page).

My workaround is: Per device I maintain two flags:
- IsOffHook reflects the current hook state as defined by my Softphone. I call SetHookState only when the hook state changes. I don't call SetHookState twice for the same hook state.

- ReportedOffHookSate reflects the hook state as received from the Jabra API (bool value from TranslatedButtonInputEventArgs for ButtonId.OffHook). I handle the hook event from the headset only when the recceived hook button state is different from the last reported hook button state.

Wolfgang
 
 
Go to: