Muting and unmuting

The microphone on Jabra audio devices can be muted/unmuted from the device itself. Depending on the device, this can be achieved by pressing a physical button, touch-sensitive button, soft key, lifting the boom arm, and others.

It is also possible to request the device to mute/unmute through the Jabra device interface library. When the microphone is muted, the device stops sending audio to the application.

As a precaution from inadvertently transmitting audio to other participants, it is recommended that your application implements its own mute functionality and stops sending audio when the microphone is muted.

The USB HID protocol, unfortunately, does not support reading the state of the headset regarding parameters such as line busy or mute, it is therefore not possible to predict with certainty what state the headset is in.

Due to this, the recommended approach is to either mute or unmute the device when you offhook it, to ensure that it is in sync with the application.

For example, it could be that your application always unmutes your Jabra device when it is offhook, or when you join a call your application automatically mutes the Jabra device based on the number of participants already in the call.

Muting/Unmuting from the device

After you initialize the Jabra library, you can subscribe to signals relevant for your application. When a user mutes the device, the device sends a signal to the library.

The application listens for these signals and acknowledges that it has received the signal and stops sending audio to call participants.

The following diagram shows a Jabra headset stopping the transmission of audio from the microphone after the user mutes and the application stops sending audio.

sequenceDiagram
    participant User as User
    participant App as Application
    participant Device as Headset
    Note over User,Device: Ongoing call

    User -->> Device: Mute via the device
    Note over Device: Device stops transmitting<br>audio from microphone.
    Device ->> App: Mute
    Note over App: App must confirm<br>new mute state.
    App -) Device: Mute = 1
    App -) App: Stop recording microphone

    User -->> Device: Unmute via the device
    Note over Device: Device starts transmitting<br>audio from microphone.
    Device ->> App: Mute
    Note over App: App must confirm<br>new mute state.
    App -) Device: Mute = 0
    App -) App: Start recording microphone

Muting/unmuting from the application

When muting through your application UI, the application must also request the Jabra device to mute through the Jabra library.

Importantly, the Jabra device does not respond to a mute request from the application.

sequenceDiagram
    participant User as User
    participant App as Application
    participant Device as Headset
    Note over User,Device: Ongoing call

    User -->> App: Mute via the softphone UI
    App -) App: Stop recording microphone
    App -) Device: Mute = 1
    Note over Device: Device will not<br>acknowledge this request.

    User -->> App: Unmute via the softphone UI
    App -) Device: Mute = 0
    Note over Device: Device will not<br>acknowledge this request.
    App -) App: Start recording microphone

Hard-Mute State

On certain Jabra devices, it's possible to force a mute state, where it's not possible to unmute from the library. An example of this is the Jabra Evolve2 85 headset, where lifting the boom arm to an upright position hard-mutes the microphone.

In this case, if the boom arm remains in an upright position, the Jabra device remains muted.

When the application requests the device to unmute through the library and if the device is unable to unmute, it sends a mute signal, telling the application to return to a mute state.

sequenceDiagram
    participant User as User
    participant App as Application
    participant Device as Headset

    Note over User,Device: Ongoing call
    User -->> Device: Mute by moving boom arm up
    Device ->> App: Mute
    Note over App: App must confirm<br>new mute state.
    App -) Device: Mute = 1
    App -) App: Stop recording microphone

    User -->> App: Unmute via the softphone UI
    App ->> Device: Mute = 0

    Note over Device: Device will not unmute.
    Note over Device: Device sends request to mute.
    Device ->> App: Mute
    Note over App: App must confirm<br>new mute state.
    App ->> Device: Mute = 1

Common issues

Only every other mute signal received

A common mistake is to not acknowledge mute signals from the device. If the device does not receive an acknowledgement of a mute signal, it assumes the application did not receive it and is still stuck in the previous mute state.

As the user presses the Mute button again, the device understands that it is returning to the state the application is already in and does not send a new signal.

sequenceDiagram
    participant User as User
    participant App as Application
    participant Device as Headset
    Note over User,Device: Ongoing call

    User -->> Device: Mute via the device
    Device ->> Device: Set Mute State = 1
    Device ->> App: Mute
    Note over App: App fails to acknowledge the signal
    App -) App: Stop recording microphone

    User -->> Device: Unmute via the device
    Device ->> Device: Set Mute State = 0
    Note over Device: Headset thinks the mute state<br>is already Mute State = 0 in app
    Note over Device: No signal sent to app