Release Notes

Jabra Device Connector (Browser Extension)

Version 1.1.7

Improved stability for Single Page Applications:

  • Version 1.1.6 (or prior) would cause the Jabra SDK to re-initialize every time the URL changes
  • Stability of the application could be affected (depending on the specific implementation)

Version 1.1.7 of the browser extension solves this issue.

Version 1.1.6

The Jabra Browser Extension was migrated to Extension Manifest version 3. No changes to functionality.

Device Connector

Device Connector (macOS) – Version 1.0.3

  • Fixes crash happening if device has no serial number
  • Fixes crash happening if device is opened with exclusive access (e.g. Skype for Business)
  • Installer will automatically try to add extension to Chrome

Jabra SDK for JavaScript (Library Package)

Version 4.2.1

This patch release focuses on fixing bugs.

Fixes:

  • SDK version being incorrectly reported as "1.0.0".

Version 4.2.0

The release of jabra-js v.4.2.0 includes multiple bugfixes and two backwards compatible API changes to the Easy Call Control module that will grant better control of ringer behavior.

The Device Connector for macOS was updated to fix special cases that would cause the app to crash. Furthermore, a preference file was added to the installer that prompts Chrome to automatically add the Jabra Browser Extension upon installation.

Library initialization in node

  • Better error catching if library initialization in node fails

WebHID

  • Fixes bug where non-jabra devices would appear in device list from WebHID

Call Control

  • Internal refactoring of Jabra Direct installation check.

Easy Call Control

  • New feature (backwards compatible): Increase default ringer timeout to 25000 ms
  • New feature (backwards compatible): Provide optional ringer timeout
  • Fixes bug where ending a call awaited an extra response signal
  • Fixes race condition when accepting a call while signal incoming call
  • Mute state sync issues fixed
  • Fixes issue with some devices not being able to end a call via button press

Version 4.1.2

This patch release fixes a critical error when using the SDK on macOS.

Fixes:

  • macOS: Fixed an issue with Device Connector not being recognized as an application
  • Node: Improved error message when Device Connector is not installed on the system
  • Easy call-control: Improved error messages across the module
  • Easy call-control: Stability improvements

Known Issues:

  • Webpack doesn't pack the console app properly for Nodejs apps (e.g. Electron)
    • Error message: UnhandledPromiseRejectionWarning: Error: Cannot find native console app. Please make sure you have installed the SDK correctly.
    • Possible work-around: Adding externals: ["@gnaudio/jabra-js/node-cjs"] to the Webpack config file fixes the issue in certain situations
  • Jabra Speak 410 (UC version) and Jabra Speak 510 (UC version) are not recognized on Chrome OS
  • On Linux, when using the Jabra Device Connector – Browser Extension, the Easy Call Control modules sometimes interpret reject call signals from wireless devices as accept call

Known Limitations:

  • Organization key and app name do not support UTF-8
    • The only supported character set is ASCII
  • Caveats with multiple connection paths to a device (e.g. headset connected both through USB cable and USB Bluetooth dongle)
    • Call lock interference between applications using jabra-js and other libraries
      • There are cases in which call locking a child device simultaneously in both jabra-js and older Jabra libraries is possible. This may lead to interference in operation of the device in the two applications if trying to use the device simultaneously

Version 4.1.1

This patch release focuses on fixing bugs.

Fixes:

  • Engage 50: Ringing had no audible effect
  • Call lock: Fixed issue with call lock not properly releasing on some connections, when other connections fail to acquire the lock
  • Easy call-control: On some devices, mute state between device and SDK could get out-of-sync
  • Easy call-control: Improved stability of entire module
  • WebHID: Returns allowed devices from WebHID consent request
  • Node: Added recommended minimum version to package.json

Known Issues:

  • Console App for macOS is not executable, breaking initialization on macOS systems
    • Work-around: Make the macOS Console App executable with command: chmod +x ./node_modules/@gnaudio/jabra-js/jabra-console/darwin/jabra-console
  • Webpack doesn't pack the console app properly for Nodejs apps (e.g. Electron)
    • Error message: UnhandledPromiseRejectionWarning: Error: Cannot find native console app. Please make sure you have installed the SDK correctly.
    • Possible work-around: Adding externals: ["@gnaudio/jabra-js/node-cjs"] to the Webpack config file fixes the issue in certain situations
  • Jabra Speak 410 (UC version) and Jabra Speak 510 (UC version) are not recognized on Chrome OS
  • On Linux, when using the Jabra Browser Extension, the Easy Call Control modules sometimes interpret reject call signals from wireless devices as accept call

Known Limitations:

  • Organization key and app name do not support UTF-8
    • The only supported character set is ASCII
  • Caveats with multiple connection paths to a device (e.g. headset connected both through USB cable and USB Bluetooth dongle)
    • Call lock interference between applications using jabra-js and other libraries
      • There are cases in which call locking a child device simultaneously in both jabra-js and older Jabra libraries is possible. This may lead to interference in operation of the device in the two applications if trying to use the device simultaneously

Version 4.1.0

This release primarily improves Easy call-control with bug fixes and two new API functions: onDisconnect and teardown. In addition, it is now possible to provide an initial state for Easy Call Control. The updates make it easier to handle - and recover from - device changes and disconnects.

Features:

  • Easy call-control: New APIs onDisconnect and teardown
  • Easy call-control: Optional initial state

Fixes:

  • Easy call-control: Mute state of device and call control object could get out-of-sync when "hold" is used in MultiCallControl
  • Easy call-control: With some devices, a delay of several seconds could occur between the user pressing the accept-call button and the action being signalled in the application
  • Connection errors during attach and detach

Known Issues:

  • Webpack doesn't pack the console app properly for Nodejs apps (e.g. Electron)
    • Error message: UnhandledPromiseRejectionWarning: Error: Cannot find native console app. Please make sure you have installed the SDK correctly.
    • Possible work-around: Adding externals: ["@gnaudio/jabra-js/node-cjs"] to the Webpack config file fixes the issue in certain situations
  • Jabra Speak 410 (UC version) and Jabra Speak 510 (UC version) are not recognized on Chrome OS
  • Organization key and app name do not support UTF-8
    • The only supported character set is ASCII
  • On Linux, when using the Jabra Browser Extension, the Easy Call Control modules sometimes interpret reject call signals from wireless devices as accept call
  • Caveats with multiple connection paths to a device (e.g. headset connected both through USB cable and USB Bluetooth dongle)
    • Call lock interference between applications using jabra-js and other libraries
      • There are cases in which call locking a child device simultaneously in both jabra-js and older Jabra libraries is possible. This may lead to interference in operation of the device in the two applications if trying to use the device simultaneously

Version 4.0.1

A small patch with bug fixes.

API Changes:

  • Renamed IConfig.organizationKey to IConfig.partnerKey
  • Added ICallControl.onDisconnect
  • Removed IDevice.preferredConnection
  • Removed IDevice.isChild

Issues fixed:

  • Changing connections after Call Control is started
    • Attaching new connections to a device after creating an ICallControl object will no longer cause issues with the internal state of the device. However, ICallControl uses only one of the available connections, and detaching that connection will cause the ICallControl object to seize operation.
  • Connecting child device via USB as charge-only will disable Call Control for this device
  • Removed deprecated members in IDevice
    • The deprecated members preferredConnection and isChild inside the IDevice interface have been removed.

Known Issues:

  • Webpack doesn't pack the console app properly for Nodejs apps (e.g. Electron)
    • Error message: UnhandledPromiseRejectionWarning: Error: Cannot find native console app. Please make sure you have installed the SDK correctly.
    • Possible work-around: Adding externals: ["@gnaudio/jabra-js/node-cjs"] to the Webpack config file fixes the issue in certain situations
  • Organization key and app name do not support UTF-8
    • The only supported character set is ASCII
  • On Linux, when using the Jabra Browser Extension, the Easy Call Control modules sometimes interpret reject call signals from wireless devices as accept call
  • Caveats with multiple connection paths to a device (e.g. headset connected both through USB cable and USB Bluetooth dongle)
    • Call lock interference between applications using jabra-js and other libraries
      • There are cases in which call locking a child device simultaneously in both jabra-js and older Jabra libraries is possible. This may lead to interference in operation of the device in the two applications if trying to use the device simultaneously

Version 4.0.0

Welcome to the initial release of the Jabra JavaScript SDK for USB products.

The SDK supports development of standalone applications for Node.js as well as in-browser applications using either a browser extension or the new WebHID standard. The installation requirements for each are different and described in the documentation.

Headline functionality supported in this release includes:

  • Device management.
  • Call control.
  • Easy call-control.
  • Handling of device signals related to call control.
  • Logging and error handling.
  • Support for child devices.
  • Support for WebHID.

The release includes:

  • Installation instructions for the supported platforms.
  • Overview and Getting Started documentation.
  • API reference documentation.
  • Code samples which show how to initialize the SDK and use it in various scenarios.
  • Interactive demos and accompanying tutorials.
  • Licensing information.

Known Issues:

  • Webpack doesn't pack the console app properly for Nodejs apps (e.g. Electron)
    • Error message: UnhandledPromiseRejectionWarning: Error: Cannot find native console app. Please make sure you have installed the SDK correctly.
    • Possible work-around: Adding externals: ["@gnaudio/jabra-js/node-cjs"] to the Webpack config file fixes the issue in certain situations
  • Organization key and app name do not support UTF-8
    • The only supported character set is ASCII
  • On Linux, when using the Jabra Browser Extension, the Easy Call Control modules sometimes interpret reject call signals from wireless devices as accept call
  • Caveats with multiple connection paths to a device (e.g. headset connected both through USB cable and USB Bluetooth dongle)
    • Changing the connection path after a call-control session has been started
      • Adding or removing a connection path to an already connected device after a call-control session has been started will alter both the way the library communicates with the device, and the internal state of the device itself. Listening for changes in connections and resetting the state may alleviate this problem
    • Connecting child device via USB as charge-only will disable Call Control for this device
    • Call lock interference between applications using jabra-js and other libraries
      • There are cases in which call locking a child device simultaneously in both jabra-js and older Jabra libraries is possible. This may lead to interference in operation of the device in the two applications if trying to use the device simultaneously