Bluetooth Link Quality
This datapoint indicates the quality of the connection between the USB dongle and wireless device. This information can be used to determine if the Bluetooth connection caused a bad call experience for the user.
Datapoint
Name in Jabra SDK | LinkQualityEventArgs.LinkQuality |
Trigger | A subscription to this datapoint will immediately trigger the first reported event. From then on, the device needs to be offhooked and the bluetooth quality needs to change to trigger an event. Note: Link quality changes of onhooked devices do not trigger events! The link quality change will only be reported, once the device is offhooked. |
Event Subscription | IDevice.LinkQuality |
Value Range |
Off = Dongle lost connection. Low = Link quality is low. High = Link quality is high. |
Supported SDKs
SDK | Support | SDK Version |
---|---|---|
SDK for Browser | No | |
SDK for Linux | Yes | From v1.11 |
SDK for macOS | Yes | From v1.11 |
SDK for Windows | Yes | From v1.11 |
SDK for Node.js | No | |
SDK for JavaScript | No |
Supported devices
Device | Support | Firmware Version |
---|---|---|
Jabra Link 370 | No | |
Jabra Link 380 | Yes | From v1.12.4 |
Code Sample
The code sample demonstrates the event subscription. It shows how to parse the event to get back the data for the datapoint.
To receive the first link quality event when the listener is added, it is best practice to only add the listener when the device goes offhook. To make sure you get the value again when a second call starts, remember to remove the listener when the device goes onhook.
There is no function to check if link quality is supported, but an exception is raised when adding the listener on an unsupported device, so make sure to catch it.
using System;
using System.Collections.Generic;
using JabraSDK;
namespace Jabra.TelemetryExample
{
public class TelemetryPrinter
{
public TelemetryPrinter(IDeviceService deviceService)
{
deviceService.DeviceAdded += OnDeviceAddedEvent;
}
private void OnDeviceAddedEvent(object sender, DeviceAddedEventArgs e)
{
try
{
// It is not guaranteed that the sender of the LinkQuality event is the device ID,
// so we create a local function and pass the DeviceId
void LinkQualityFunc(object linkQualitySender, LinkQualityEventArgs linkQualityArgs) =>
OnLinkQualityEvent(e.Device.DeviceId, linkQualityArgs);
e.Device.LinkQuality += LinkQualityFunc;
}
catch
{
Console.WriteLine($"Bluetooth link quality not supported for {e.Device.Name} (ID: {e.Device.DeviceId})");
}
}
private void OnLinkQualityEvent(int deviceId, LinkQualityEventArgs e)
{
Console.WriteLine($"Bluetooth link quality for device with ID {deviceId} is: {e.LinkQuality}");
}
}
}