1 Introduction

1.1 Purpose

This document provides an overview of the fundamental and standardized USB HID commands implemented in Jabra USB headsets (see Appendix A for a full list of devices and their familiarities). In general HID commands are defined and referred in [1].

A target reader for this document is developers requiring a command interface towards USB headsets with intention to implement headset call control functions in their application. An application could be;

  • Softphone application running on Windows/Linux and Mac OS.
  • A deskphone based on e.g. Linux platform

Target readers are furthermore engineers employed by external vendors developing products supposed to cooperate with GN headsets.

Overall the document can be split in two categories, basic and advanced call control functions. Basic call control functions deals with;

  • Incoming call notification
  • Answer incoming call
  • Reject incoming call
  • Terminate active call
  • Synchronized Mute/unmute microphone
  • Volume control

Advanced call control functions deal with;

  • Last Number Redial
  • Active call Scenarios
  • Multiple Calls Handling (i.e. One active call and one call on hold)

1.2 Scope

Scope of this document is to provide an overview on how to use standard USB HID signals for supporting Jabra headset functions.

1.3 Definitions

Term Explanation
Control A control is used to operate or regulate a particular aspect of a device. In this document a control refers broadly to the physical entity on the device that the usage identifies.
Usage Defines the purpose or meaning of an item. Each usage has a usage ID, usage name and a detailed description
Usage page Usages are organized into pages - the so-called usage pages - of related controls.

1.4 References

ID Document Document number/reference
[1] USB_HID_USAGE_TABLES 1_12.pdf Refer to www.usb.org
[2]

2 Supporting products

This document states several call scenarios – ranging from basic to advanced - which for majority of the Jabra products are supported. Please ask your Jabra contact for more information on functionality on this matter.

Please visit Jabra.com to get latest product listing.

Note: All Jabra USB headsets use the vendor ID [VID] 0x0B0E. This can be used as common denominator to recognize Jabra USB headsets.

3 General USB HID interface supported by Jabra

All Jabra USB products described in this document support the standard HID interface. In the following section the input and output usage pages are outlined.

3.1 HID Input

Following signals are sent from the Jabra headset to the host. Please refer to sequence diagrams later in this document for actual usage and command flow of these signals.

3.1.1 Telephony page [0x0B]

Command Hex Type Size Description
Hook switch 0x20 Absolute 1 bit Sent from Jabra device to host when the answer/end button is pressed.

1 = off-hook (answer)
0 = on-hook (end)
Flash 0x21 Relative 1 bit Sent from Jabra device to host to signal a flash (call swap between an active call and a call on hold).
Redial 0x24 Relative 1 bit Sent from Jabra device to host to signal a last number redial.
Phone Mute 0x2F Relative 1 bit Sent from Jabra device to host when the mute button is pressed.
Line Busy 0x97 Absolute 1 bit Sent from Jabra device to host to indicate whether the user has a call on one of the telephony interfaces.

1 = Line is busy
0 = Line is free

3.1.2 Consumer page [0x09]

Command Hex Type Size Description
Volume Down 0xEA Relative 1 bit Sent from Jabra device to host to signal volume decrement.
Volume Up 0xEA Relative 1 bit Sent from Jabra device to host to signal volume increment.

3.2 HID Output

Following signals are expected to be sent from the host towards the Jabra headset.

3.2.1 LED page [0x08]

Command Hex Type Size Description
Mute 0x09 Absolute 1 bit Sent from host to Jabra device to set microphone mute state.

1 = muted
0 = unmuted
Off-hook 0x17 Absolute 1 bit Sent from host to Jabra device to set hook state.

1 = off-hook (on call)
0 = on-hook (idle)
Ring 0x18 Absolute 1 bit Sent from host to Jabra device to set ringer state.

1 = ringer on
0 = ringer off
Hold 0x20 Absolute 1 bit Sent from host to Jabra device to set call held state.

1 = held call
0 = no held call
Microphone 0x21 Absolute 1 bit Sent from host to Jabra device to set microphone mute state.

1 = muted
0 = unmuted

3.2.2 Telephony page [0x0B]

Usage Page Usage Type Size Description
Ringer 0x09 Absolute 1 bit Sent from host to device to set ringer state.

1 = ringer on
0 = ringer off

3.3 Usage of Line Busy

The line busy signal is provided from the headset towards the host in order to indicate call activity on a phone interface. Whenever there is an active and/or held call on one of the phones connected to the headset, both line busy indications will be set high. This includes if i.e. a mobile phone connected to the same headset.

4 Implementation of HID Collections

Within the Headset collection two sub usage pages are defined each with its own main usage page:

  • Usage page 0xB (Telephony)
  • Usage page 0x8 (LED).
  • Usage page 0xFF30 (Vendor Specific GN Telephony)

The usages form two interfaces as shown in the figure below.

Figure 1 GN standard USB interface

Figure 1 GN standard USB interface

4.1 HID Co-existence with Jabra PC Suite and Jabra Direct

When using direct HID implementations there is possible conflict with Jabra PC Suite [JPCS] and Jabra Direct. Both applications use a proprietary command set and can in some cases be chosen as default for headset devices.

All recent Jabra devices have two USB HID Telephony interfaces, a standard USB Telephony interface defined by the USB Implementers Forum (www.usb.org) and a proprietary telephony interface defined by Jabra and understood only by Jabra applications and SDKs. Softphone applications with built-in HID telephony support, such as Microsoft Lync, use the standard telephony interface.

The purpose of having a proprietary telephony interface is to improve the interoperability between a softphone with built-in HID telephony support (typically Lync) and softphones integrated via a proprietary SDK. When a call is started on a softphone integrated via a Jabra proprietary SDK, the HID events from the device will not be detected by Lync because they are sent on the proprietary interface.

The Jabra SDK for Windows and Native HID specifications provide a solid description of the usage of the proprietary HID signaling methodologies.

5 HID usage – Sequence Diagrams [Basic]

The following sequence diagrams indicate how HID commands should be handled.
Be aware that several other commands might be sent beside those specified. These should be ignored and are only valid for advanced functionality implementations.

5.1 Incoming call, answered.

Figure 2 Sequence diagram for HID commands. Incoming call from SP is answered.

Figure 2 Sequence diagram for HID commands. Incoming call from SP is answered.

5.2 Incoming call, rejected.

Precondition is that everything is idle; all USB HID signals are idle. The incoming call arrives on the standard telephony interface.

Figure 3 Reject call standard telephony

Figure 3 Reject call standard telephony

5.3 Outgoing call

Figure 4 Outgoing call

Figure 4 Outgoing call

5.4 Terminate Active call

Precondition is that there is an active call on the standard USB telephony interface. The Hook on event can be replaced by the End call event in this case.

Figure 5 End active call standard telephony

Figure 5 End active call standard telephony

5.5 Mute Microphone

Precondition is that there is an active call on the standard telephony interface.

Primary feature is to secure that headset and application are synchronized with the mute state.

Figure 6 Mute active call standard telephony

Figure 6 Mute active call standard telephony

5.5.1 Un-mute a muted call

Precondition is that there is a muted active call on the standard telephony interface.

Figure 7 Unmute active call standard telephony

Figure 7 Unmute active call standard telephony

5.6 Volume Control

Apart from volume controls the USB layer must also handle audio settings for microphone gain/mute, and side-tone levels, these aspects are currently all outside the scope of this document.

Two settings though has impact on the functionality, these are the controls for speaker volume and mute. The speaker volume is the one that generates the ‘set volume’ event, and the speaker mute can generate a ‘mute’ or ‘unmute’ event. The speaker mute is not synchronised, since the host doesn’t change its value based on changes to the HID mute setting. If the user selects to mute on the audio control, and the headset is not muted, it will generate a mute event, and likewise if the headset is muted and the user selects to unmute on the audio control, it will generate an unmute event.

To function optimal the softphone driver must detect which operating system is running on the USB host. The host operating selection algorithm is based on the following mechanisms:

  • Linux OS attempts to set volume resolution.
  • Macintosh doesn't send set idle.
  • Windows 7 and Window 8 sends get current speaker volume before get minimum speaker volume.
  • Windows XP sends get minimum speaker volume before get current speaker volume.

5.6.1 Volume set from Host

Figure 8 Volume set from host

Figure 8 Volume set from host

5.6.2 Volume decrement from device

Figure 9 Volume decrement from device

Figure 9 Volume decrement from device

The device will continue to send Volume Down until it receives a Set speaker volume that has a volume fitting the current volume setting of the device.

5.6.3 Volume increment from device

Figure 10 Volume increment from device

Figure 10 Volume increment from device

The device will continue to send Volume Up until it receives a Set speaker volume that has a volume fitting the current volume setting of the device.

5.6.4 Linux specific volume synchronization

On Linux hosts the device should not retry the Volume Up/Down request if it doesn’t receive a set speaker volume signal. It must send one Volume Up/down request per volume change, Linux will jump one volume resolution step per request, but it is application dependent whether it is replied to.

5.6.5 Windows XP specific volume synchronization

On Windows XP the device should not retry the Volume Up/Down request if it doesn’t receive a set speaker volume, and it must not send another until it receives a set volume request.

5.6.6 Windows 7/8 specific volume synchronization

On Windows 7/8 the device should retry once the Volume Up/Down request if it doesn’t receive a set speaker volume. It should continue this for each volume change.

5.6.7 Macintosh specific volume synchronization

On Macintosh the device should retry once the Volume Up/Down request if it doesn’t receive a set speaker volume. It should continue this for each volume change.

6 HID usage – Sequence Diagrams [Advanced]

The following section will describe the more advanced device capabilities.

6.1 Last Number Redial

This scenario deals with the option to perform an outgoing call to the last dialed number from the headset.

Figure 11 Last Number Redial standard telephony

Figure 11 Last Number Redial standard telephony

6.2 Answer call during active call

This scenario deals with the option to answer an incoming call while already being in an active call. This means, precondition is that there is an active call on the standard telephony interface.

Figure 12 Answer waiting call during active call standard telephony

Figure 12 Answer waiting call during active call standard telephony

6.3 Terminate active and answer waiting call

This scenario deals with the option to terminate an active call and automatically answer the incoming call. This means, precondition is that there is an active call on the standard telephony interface.

Figure 13 End active call answer waiting standard telephony

Figure 13 End active call answer waiting standard telephony

6.4 Reject call during an active call

This scenario deals with the option to reject an incoming call while already being in an active call. This means, precondition is that there is an active call on the standard telephony interface.

Figure 14 Reject call during active call standard telephony

Figure 14 Reject call during active call standard telephony

6.5 Swap between calls

This scenario deals with the option to swap between an active call and a call placed on hold. Once the held call is activated the previous active call will be placed on hold and vice versa. This means, that precondition is that there is an active and a held call either on the standard telephony interface.

Figure 15 Swap calls during active call Standard telephony

Figure 15 Swap calls during active call Standard telephony

The last pulse on Off-Hook is not required, but is the way e.g. Microsoft Lync is currently signaling.

6.6 Terminate active call and activate other

This scenario deals with the option to terminate the active call and re-activate the held call. This means, that precondition is that there is an active and a held call either on the standard telephony interface.

Figure 16 End call activate other standard telephony

Figure 16 End call activate other standard telephony

6.7 Terminate multiple calls

This scenario deals with the option to terminate the active and the held call. This means, that precondition is that there is an active and a held call either on the standard telephony interface.

Figure 17 End call standard telephony

Figure 17 End call standard telephony

6.8 Terminate all calls

This scenario deals with the option to terminate the active and the held call. This means, that precondition is that there is an active and a held call either on the standard telephony interface.

Figure 18 End all calls standard telephony

Figure 18 End all calls standard telephony

6.9 Place an active call on hold

Scenario deals with the option to place an active call on hold. Precondition is that there is an active call on the standard telephony interface.

Figure 19 Put call on hold standard telephony

Figure 19 Put call on hold standard telephony

6.10 Activate the call on hold

Scenario deals with the option to resume the held call. Precondition is that there is a call on hold on the standard telephony interface.

Figure 20 Activate held call standard telephony

Figure 20 Activate held call standard telephony

7 Jabra product familiarities

The tables below show products who share functional behavior in either USB HID or PSTN usage scenarios. The headsets offer different functionalities but testing one device within a certain group will provide a representative report for the other devices.

The list is based on current device list of June 2015.

USB (Soft phone)
PRO 9470
PRO 9465 DUO
PRO 9460 DUO
PRO 9460
PRO 9450
Evolve 65 (Link360 dongle)
Motion (Link360 dongle)
Speak 510+ (Link360)
Supreme (Link360 dongle)
Stealth (Link360 dongle)
BIZ2300
LINK230
LINK260
Link265
UCVoice 750a
UCVoice 550a
UCVoice 250a
UCVoice 150a
Evolve 80
Evolve 40
BIZ 2400
Link 280
Evolve 30
Evolve 20
Speak 510 (via USB)
Speak 410
BIZ 2400
Link 280
Motion Office
Dial 550
PRO 930 Link180
PRO 935
PSTN (Desk phone)
PRO 9470
PRO 9465 DUO
PRO 9460 DUO
PRO 9460
PRO 9450
PRO 920
PRO 925
Motion Office