#
OverviewThe Jabra library is a modular library. It comes with a "core" interface, which enables developers to discover Jabra USB devices and communicate with these devices via HID. Several modules are then available, which build on top of the core interface, in order to provide common functionality, for example call control or telemetry.
These modules are optional and are meant to be initialized depending on your use case.
The functionality they offer can be almost completely replicated by using the basic core module.
This guide will guide you through initializing and using these optional modules.
#
Initializing a module#
Initializing the core libraryThe prerequisite in using any of the optional modules is initializing the core library.
You can follow the hello world (browser) guide or the hello world (Node) guide in order to initialize the library.
[Note] For the rest of this guide, we will assume you have initialized the core API and assigned it to a variable called
coreApi
.
#
Initializing an optional moduleOnce you have initialized and have a reference to the core API, you can initialize any optional module.
For every module, a "factory" class exists that helps you initialize the module and make use of the attached Jabra devices.
To initialize a module, you have to create a new instance of the aforementioned "factory" helper class.
Creating that instance requires you to pass a reference to the core API.
Depending on the module, additional parameters might be required.
For example, the Call Control
module comes with a CallControlFactory
class, and has an additional mandatory parameter, which specifies the unique name and ID of your software product.
Below is an example of initializing the Call Control
module:
[Note] The modules do not interfere with each other. You can also initialize the same module multiple times if you so decide, although we do not recommend it.
#
Using the core API to enable module functionalityOnce the module is initialized, you can take any ISdkDevice
instance and feed it to
the factory object you used to initialize the optional module.
Using the Call Control
module as an example, you can use any ISdkDevice
to create a ICallControl
object, which you can then use for any call control functionality (for that device):