9 Mute

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, lifting the boom arm, and others.

It is also possible to request the device to mute/unmute through the Jabra library. When the microphone is muted, the device blocks the audio from communicating with the application.

As a precaution from inadvertently transmitting audio to other participants, it is recommended that the application implements its own mute functionality.

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 let the softphone application tell the device which state to be in when this makes sense for the flow of operation.

It could, for example, be that the softphone application always sets the Mute state as Unmuted when an audio connection is opened, or maybe always joins a conference call with more than five participants in a Muted state.

9.1 Muting/Unmuting from the device

After initializing the library (see Chapter 6 - Initialize), you subscribe to signals relevant for the app. 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 mutes the microphone in the app. Thereafter no further audio is transmitted from the microphone.

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

    User -->> Device: Mute via the device
    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
    Device ->> App: Mute
    Note over App: App must confirm<br>new mute state.
    App -) Device: Mute = 0
    App -) App: Start recording microphone

9.2 Muting/unmuting from the application

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

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

sequenceDiagram
    participant User as User
    participant App as Softphone
    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

9.3 Force Mute State

On certain 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 65 headset where the boom arm can be lifted to mute the device.

In this case, the device remains muted as long as the boom arm is lifted.

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 Softphone
    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

9.4 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.

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

sequenceDiagram
    participant User as User
    participant App as Softphone
    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

For more information about reacting to user and device signals, see the Mute section in the Developer's guide.