JavaScript SDK version 4 - Changelog

Version 4.1.2

Summary

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 Integration Extension for Jabra Device Connector, 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

Summary

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 Integration Extension for Jabra Device Connector, 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

Summary

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 Integration Extension for Jabra Device Connector, 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

Summary

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. The necessary work is described in the Manage call part of the Developer's Guide.
  • 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 Integration Extension for Jabra Device Connector, 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

Summary

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.

Release details

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 Integration Extension for Jabra Device Connector, 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