Skip to content

Properties

The Properties module is used to get and set settings on Jabra devices and to listen for telemetry data events from devices.

In the code samples, you will find a link to a demo implementation of Device Settings and telemetry, while the main concepts are highlighted in the following. The demo implementation includes details on common properties for selected meeting room, camera, and headset devices.

The Properties module provides access to the following functionality:

  • Reading and modifying device settings
  • Getting telemetry information
  • Accessing advanced device information such as firmware version

Set up Properties module

To use the Properties module, you need to initialize the core SDK module and install the Jabra.NET.Sdk.Properties nuget package:

sh
dotnet add package Jabra.NET.Sdk.Properties

To start interacting with Properties, first create an instance of the PropertyModule and then create an instance of the PropertyFactory.

C#
//Initialize the SDK's properties module
IPropertyModule jabraSdkProps = new PropertyModule(jabraSdk);
IPropertyFactory jabraSdkPropsFactory = await jabraSdkProps.CreatePropertyFactory();

PropertyMap

Before reading or writing properties to/from a device you need to define a PropertyMap of the properties you intend to use. In this example we're using two properties from the Jabra PanaCast 50 meeting room camera.

C#
string[] propertyNames = {
    "zoomMode2",
    "(...) other properties you want to interact with"
};
IPropertyMap propertyMap = await jabraSdkPropsFactory.CreateProperties(device, propertyNames);

Read/write property

To read the current state of a setting (property) or change a setting, you simply Get the property or start a transaction for setting properties.

C#
// Reading value of the zoomMode2 property
PropertyValue zoomMode2 = await propertyMap["zoomMode2"].Get();
Console.WriteLine($"Zoom mode: {zoomMode2}");
C#
//Write properties to device.
IPropertyTransaction transaction = propertyMap.StartTransaction();
// Valid values for "zoomMode2": "fullScreen" | "intelligentZoom" | "activeSpeaker"
transaction.Set("zoomMode2", new StringPropertyValue("activeSpeaker"));
// Additional transaction.Set lines for further settings
// you want to change as part of same transaction.
await transaction.Commit();

Some settings trigger reboot

Note that some of the settings you can change using properties will trigger Jabra devices to reboot. See Properties code sample for more.

Telemetry data

Some properties can be read and observed for telemetry event data. Examples include the "peopleCount" property available in Jabra PanaCast 50 meeting room camera and the "backgroundNoiseLevel" property available in Jabra Engage 40/50/50 II headsets.

C#
// Observing a property
IObservable<PropertyValue> propertyWatcher = propertyMap["peopleCount"].Watch;
propertyWatcher.Subscribe(value =>
{
  Console.WriteLine($"Property change observed on '{propertyMap.Device.Name}':");
  Console.WriteLine($"Received value (peopleCount): {value}");
});

Other properties

In the Properties code sample we're detailing common properties of interest for developers for selected meeting room, camera, and headset devices. If you're interested in other settings or telemetry data points for Jabra devices, please contact us, detailing what you're looking for.