Jabra 410 Software For Mac

Revision History

  1. Jabra 410 Software
  2. Jabra 410 Speakerphone
  3. Jabra Speak 410 Software
  4. Jabra 410 Driver
  5. Jabra Speak 410 Firmware
  6. Jabra Speak 410 Software

Jabra Suite for Mac is free Mac software that enables Jabra USB audio devices to have Remote Call Control over the latest generation of Mac softphones. Suite for Mac also. Jabra SPEAK 410 & 510 & 810, Jabra PRO 9400 series, Jabra PRO 930 & 935, Jabra GO 6400 series, Jabra LINK 260 & 265 & 280. Jabra speak 410 is a meeting speakerphone designed for consumers with a need for audio conferencing. Its compact design and travel case make it easy to carry around, and an integrated USB cable ensures quick set up without the risk of losing cables.

Get support for your Jabra Speak 510. Find all product guides, resources and FAQs. Office Headsets. Wired and wireless calls, music and concentration. Companion software, apps, and services. Jabra Glossary. Explanations of common Jabra terminology. Hearing protection. Jabra hearing protection standards. Jabra Support. Oct 30, 2012  Watch the 'Hands-on with Jabra Support' tutorial video. In this video we will show you how to setup and use your Jabra SPEAK 410 speakerphone, including controlling functionalities such.

RevisionDateDescription
5.02019-11-08Update API list.
4.92019-10-07Updated supported device list.
4.82019-09-27Added new APIs. Updated supported device list.
4.72019-08-16Modified for Mac OS X
4.62019-07-12Deprecated GetSerialNumber and GetWarrantyEndDate API's
4.52019-05-24Updated library interfaces for firmware update API's
4.42018-11-15Updated library interfaces
4.32018-09-27Removed load and save settings interfaces
4.22018-09-25Updated library interfaces - Removed lock references
4.12018-04-12Updated library interfaces
4.02017-12-12Updated library interfaces
3.02017-11-10Updated features of dongle & child separation and Firmware Updater download from cloud.
2.02017-08-24Updated features for Save & Load Setting, Logging and Firmware Updater.
1.02017-05-09Initial Draft

Introduction

Jabra SDK V2 is a dynamic library (dylib), provides interfaces to perform below functionalities in Jabra devices:

  • Device Settings: Allows the user to view and change settings of the attached Jabra devices
  • Remote Call control (RCC): Allows user to perform remote call control functionalities
    • Get and set HID reports to and from the attached Jabra device
    • Answer and End
    • Mute and Unmute Call
    • Ring indication
    • Hold and Resume Call
    • Manual Audio
  • Get device serial number, battery status if supported by the device
  • Button configuration (button takeover and remote MMI)
  • Child device support with Link360, Link370
  • Busy light indication
  • Concurrency support for multiple applications of SDK
  • Co-existence with Jabra Direct Online
  • Device events logging
  • Device firmware update

The SDK is built as a C++ dynamic library with C interfaces.

Abbreviations and Acronyms

AcronymDescription
APIApplication Programming Interface
DYLIBDynamic Linked Library
HIDHuman Interface Device
SDKSoftware Development Kit
IDEIntegrated Development Environment
USBUniversal Serial Bus
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation
WPFWindows Presentation Foundation
RCCRemote Call Control
MMIMan Machine Interface
FWUFirmware Updater
RMMIRemote Man Machine Interface

SDK Installation

SDK Mac release package would consist of the following directories:

  • Demo - Demo application and it's source code
  • Library - static and dynamic libraries required for development and header files
  • Doc - user guide and release notes
  • Wrapper - Objective-C Wrapper framework and documentation
  • readme text file

The directories contain following assets:

AssetsDescription
readme.txtProvides information on Jabra SDK V2
Doc/SDK User Guide.htmlUser Guide and API documentation
Doc/ReleaseNotes.txtRelease information and supported devices list
Library/libjabra.dylibJabra SDK dynamic library for platform (x86 and x64)
Library/libjabra.aStatic library for platform (x86 and x64)
Library/Headers/JabraNativeHid.hHeader file defining the RCC APIs
Library/Headers/JabraDeviceConfig.hHeader file defining the dynamic setting APIs
Library/Headers/Common.hHeader file defining the common interfaces used across Jabra SDK V2
Library/Headers/returncodes.incInclude file defining the Return codes
Library/Headers/errorcodes.incInclude file defining the Error codes
Demo/Jabra SDK DemoDemo application
Demo/SourceDemo application source code
Wrapper/JabraSDK.frameworkObjective-C Wrapper framework for Mac
Wrapper/Documentation/Docs/index.htmlJazzy generated Wrapper API documentation

Supported Jabra Devices

The following Jabra devices are supported by the SDK:

  • AudioCodes HRS 457
  • DELL PRO STEREO HEADSET UC150
  • DELL PRO STEREO HEADSET UC350
  • Jabra BIZ 1100 Mono
  • Jabra BIZ 1100 Stereo
  • Jabra BIZ 1500 USB Duo
  • Jabra BIZ 1500 USB Mono
  • Jabra BIZ 2300 USB Duo
  • Jabra BIZ 2300 USB Mono
  • Jabra BIZ 2400 II CC USB Mono
  • Jabra BIZ 2400 II CC USB Stereo
  • Jabra BIZ 2400 II Duo
  • Jabra BIZ 2400 II Mono
  • Jabra BIZ 2400 II USB Duo BT
  • Jabra BIZ 2400 II USB Mono BT
  • Jabra BIZ 2400 II USB Mono CC
  • Jabra BIZ 2400 USB
  • Jabra BIZ 2400 USB Duo
  • Jabra BIZ 2400 USB Mono
  • Jabra DIAL 550
  • Jabra Engage 50 Mono
  • Jabra Engage 50 Stereo
  • Jabra Engage 65 Convertible
  • Jabra Engage 65 Mono
  • Jabra Engage 65 Stereo
  • Jabra Engage 75 Convertible
  • Jabra Engage 75 Mono
  • Jabra Engage 75 Stereo
  • Jabra Evolve 20 Mono
  • Jabra Evolve 20 Stereo
  • Jabra Evolve 20SE Mono
  • Jabra Evolve 20SE Stereo
  • Jabra Evolve 30 II Mono
  • Jabra Evolve 30 II Stereo
  • Jabra Evolve 30 Mono
  • Jabra Evolve 30 Stereo
  • Jabra Evolve 40/80
  • Jabra Evolve 65 Mono
  • Jabra Evolve 65 Stereo
  • Jabra Evolve 65e
  • Jabra Evolve 65t
  • Jabra Evolve 65t Cradle
  • Jabra Evolve 75
  • Jabra Evolve 75e
  • Jabra Handset 450
  • Jabra LINK 230
  • Jabra LINK 260
  • Jabra LINK 265
  • Jabra LINK 280
  • Jabra LINK 30
  • Jabra LINK 32
  • Jabra LINK 33
  • Jabra LINK 360
  • Jabra LINK 370
  • Jabra LINK 43
  • Jabra LINK 44
  • Jabra LINK 850
  • Jabra LINK 860
  • Jabra LINK 950
  • Jabra Motion Office
  • Jabra MOTION UC
  • Jabra Pro 920
  • Jabra Pro 925 Dual Connectivity
  • Jabra Pro 925 Single Connectivity
  • Jabra Pro 930
  • Jabra Pro 935
  • Jabra Pro 935 Single Connectivity
  • Jabra Pro 9450
  • Jabra Pro 9460
  • Jabra Pro 9465/9470
  • Jabra SPEAK 410
  • Jabra SPEAK 450 Cisco
  • Jabra SPEAK 510
  • Jabra SPEAK 710 MS
  • Jabra SPEAK 710 Teams
  • Jabra SPEAK 710 UC
  • Jabra SPEAK 810
  • Jabra STEALTH UC
  • Jabra SUPREME
  • Jabra SUPREME UC
  • Jabra UC VOICE 150a Duo
  • Jabra UC VOICE 150a Duo MS
  • Jabra UC VOICE 150a Mono
  • Jabra UC VOICE 150a Mono MS
  • Jabra UC VOICE 250a
  • Jabra UC VOICE 250a MS
  • Jabra UC VOICE 550a Duo
  • Jabra UC VOICE 550a Duo MS
  • Jabra UC VOICE 550a Mono
  • Jabra UC VOICE 550a Mono MS
  • Jabra UC VOICE 750a Duo
  • Jabra UC VOICE 750a Duo MS
  • Jabra UC VOICE 750a Mono
  • Jabra UC VOICE 750a Mono MS
  • Lenovo Pro Wired Stereo VoIP Headset
  • Mitel S720
  • NXT Technologies HUB
  • NXT Technologies UC-2000 Stereo Headset
  • NXT Technologies UC-5100
  • NXT Technologies UC-7500 Mono
  • NXT Technologies UC-7500 Stereo
  • USB2 Jabra Engage 75

Note: The headset may be wireless but the connection to the system must be via USB (e.g. using a Jabra LINK 360 Bluetooth USB Adapter). In present scope, the library does not support Jabra Bluetooth headsets that are directly connected to the Mac via Bluetooth.

Prerequisites

The prerequisites for the SDK are:

  • Curl libraries

Developing application Using Jabra SDK V2

System requirements

  • Mac OS X : 10.14.x (Applications can be deployed from 10.12.x to 10.14.x)
  • Xcode : 10.3/11
  • Network (Internet) connection

Library Interfaces

Common.h: Common interfaces for device
API NameDescription
Jabra_GetVersionGets the version of the SDK library
Jabra_SetAppIDApplication should set the application name using this interface. The Client ID/App ID must be obtained by registering to Jabra portal by App developers. This is a mandatory step, which needs to be done before initialization, failing which, callbacks will not be registered with SDK
Jabra_InitializeV2Initializes the Jabra library. Argument details to the function are described here: Library Initialization.
Jabra_UninitializePerforms library memory cleanup
Jabra_SetHidEventsFromNonJabraDevicesEnable Hid events from non Jabra devices.
Jabra_IsHidEventsFromNonJabraDevicesEnabledIs Hid events from non Jabra devices enabled.
Jabra_SetStdHidEventsFromJabraDevicesEnable Hid events from Jabra devices.
Jabra_IsStdHidEventsFromJabraDevicesEnabledIs Hid events from Jabra devices enabled.
Jabra_IsFirstScanForDevicesDoneChecks if device scan during initialization is done. It is recommended to register for the corresponding callback during initialization
Jabra_IsDeviceAttachedChecks if a device is attached. It is recommended to register for the corresponding callback during initialization
Jabra_GetAttachedJabraDevicesGets the list of attached Jabra devices
Jabra_GetSkuGet device SKU (stock keeping unit).
Jabra_GetFirmwareVersionReturns the firmware version of the specified Jabra device
Jabra_GetDeviceImagePathGets the attached device image path. The image is provided by Jabra Cloud service (and stored in the device’s local directory) and hence requires network access for the first time
Jabra_GetDeviceImageThumbnailPathGets the device thumbnail image. The image is provided by Jabra cloud service (and stored in the device’s local directory) and hence requires network access for the first time
Jabra_FreeDeviceInfoFrees the device information structure members. This is called right after handling device attach event by the application
Jabra_GetBatteryStatusV2Get battery status, if supported by device.
Jabra_CopyJabraBatteryStatusCopy the content of a Jabra_BatteryStatus struct.
Jabra_FreeBatteryStatusFrees the Jabra_BatteryStatus structure. This structure is return by Jabra_GetBatteryStatusV2
Jabra_RegisterBatteryStatusUpdateCallbackV2Register for battery status update callback.
Jabra_ConnectToJabraApplicationIntegrates softphone app to Jabra applications like Jabra Direct (JD)
Jabra_DisconnectFromJabraApplicationDisconnects the Jabra SDK application from Jabra Direct
Jabra_SetSoftphoneReadySets the softphone to ready
Jabra_IsSoftphoneInFocusIndicates whether the softphone is in focus
Jabra_SetBTPairingSets the Bluetooth device into pairing mode
Jabra_SearchNewDevicesQuery for available Bluetooth devices which are switched on, within range and ready to connect
Jabra_GetSearchDeviceListGets the list of new devices which are available to pair & connect.
Jabra_StopBTPairingStops the search for available Bluetooth devices
Jabra_SetAutoPairingEnables/disables auto pairing. When Bluetooth adapter is plugged into the PC it will attempt to connect with the last connected Bluetooth device. If it cannot connect, it will automatically search for new Bluetooth devices to connect to if auto pairing is set
Jabra_GetAutoPairingQueries whether auto pairing mode is enabled or disabled
Jabra_ClearPairingListClears the list of paired Bluetooth devices to the Bluetooth adapter
Jabra_ConnectBTDeviceConnect/Reconnect Bluetooth device to the Jabra Bluetooth adapter. Ensure the Bluetooth device is switched on and within range
Jabra_ConnectNewDeviceConnects to Bluetooth device with specified device details
Jabra_DisconnectBTDeviceDisconnects Bluetooth device from Bluetooth adapter
Jabra_GetConnectedBTDeviceNameQueries the name of connected Bluetooth device with Bluetooth Adapter
Jabra_GetErrorStringReturns the error string from the error status
Jabra_IsBusylightSupportedChecks if busylight is supported by the device
Jabra_GetBusylightStatusChecks the status of busylight
Jabra_SetBusylightStatusEnables/Disables the busylight status
Jabra_RegisterBusylightEventRegistration of callback to receive busylight events
Jabra_RegisterPairingListCallbackRegister callback to receive list of paired devices with BT adapter
Jabra_IsPairingListSupportedChecks if pairing list is supported by the device
Jabra_GetPairingListGets the list of devices which are paired previously to Bluetooth adapter
Jabra_FreePairingListFrees the memory allocated for the list of paired devices
Jabra_ConnectPairedDeviceConnect a device which was already paired
Jabra_DisConnectPairedDeviceDisconnect a paired device
Jabra_ClearPairedDeviceClears the specified device from paired device list
Jabra_GetButtonFocusConfigures the remote MMI events for a device
Jabra_ReleaseButtonFocusReleases the remote MMI events configured in the device
Jabra_GetSupportedButtonEventsGets the supported remote MMI for a device
Jabra_FreeButtonEventsFree the memory allocated for the button events
Jabra_RegisterForGNPButtonEventRegister callback function to get notified on GNP Button events
Jabra_GetCustomerSupportUrlGet the URL for contacting Jabra customer support.
Jabra_GetNpsUrlForApplicationGet the NPS URL for the application only.
Jabra_ConfigureLoggingAPI to configure the logging of events.
Jabra_RegisterLoggingCallbackRegister callback function for logging.
Jabra_CheckForFirmwareUpdateChecks if any latest firmware is available on the server.
Jabra_GetLatestFirmwareInformationGives the latest available firmware on the server based on user request.
Jabra_FreeFirmwareInfoFrees the memory allocated for the firmware information.
Jabra_DownloadFirmwareDownloads the selected firmware version.
Jabra_GetFirmwareFilePathGets the file path where the firmware file for the respective version has been downloaded.
Jabra_UpdateFirmwareUpdates the firmware of the device to the firmware version specified.
Jabra_CancelFirmwareDownloadCancels the firmware download.
Jabra_RegisterFirmwareProgressCallBackRegisters firmware progress callback to get notified about firmware download progress.
Jabra_GetESNGets ESN (electronic serial number) of the device
Jabra_GetCurrentLanguageCodeGets the language code for the current language of the device
Jabra_IsLeftEarbudStatusSupportedChecks if left earbud status supported by the device
Jabra_GetLeftEarbudStatusGets left earbud connection status of the device
Jabra_RegisterLeftEarbudStatusRegisters left earbud connection status event. Can only be called when a device is attached
Jabra_RegisterHearThroughSettingChangeHandlerRegisters HearThrough setting change event. Can only be called when a device is attached
Jabra_IsEqualizerSupportedChecks if equalizer is supported by the device
Jabra_IsEqualizerEnabledChecks if equalizer is enabled in the device
Jabra_EnableEqualizerEnables/disables equalizer in the device
Jabra_GetEqualizerParametersGets equalizer parameters for a device
Jabra_SetEqualizerParametersSet equalizer parameters for a device
Jabra_GetNpsUrlGet the NPS URL based on device, app name and app version
Jabra_ProductRegistrationRegisters a product with the provided information
Jabra_ExecuteAVRCPCommandTells the device to execute a AVRCP command
Jabra_ReconnectRecreates the session, Input and Output streams for all devices which are connected to the phone and not to the app
Jabra_IsFeatureSupportedChecks if a feature is supported by a device
Jabra_GetSupportedFeaturesGets array of features supported by a device
Jabra_FreeSupportedFeaturesFrees a list of features obtained by calling Jabra_GetSupportedFeatures
Jabra_GetMultiESNGet ESN for all device components
Jabra_FreeMapRelease memory allocated by functions returning a Map_Int_String*
Jabra_GetSearchDeviceListGets the list of new devices which are available to pair & connect
Jabra_RequestNoHangupToneNextTimeRequest that the headset does not play its 'end of call' tone when the SCO closes next time.
Jabra_IsCertifiedForSkypeForBusinessIndicates whether the device is certified for Skype for Business
Jabra_FreeCharArrayFree a char array
Jabra_IsUploadRingtoneSupportedChecks if ringtone upload is supported by the device
Jabra_UploadRingtoneUpload ringtone to device
Jabra_RegisterUploadProgressRegistration for upload progress event
Jabra_IsUploadImageSupportedChecks if image upload is supported by the device
Jabra_UploadImageUpload image to device
Jabra_IsSetDateTimeSupportedChecks if date and time synchronization is supported by the device
Jabra_SetDateTimeSet date and time to device
Jabra_GetSupportedDeviceEventsSupported events by device
Jabra_SetSubscribedDeviceEventsSet device events to subscribe to
Jabra_GetAudioFileParametersForUploadGet details of audio file for uploading to device
Jabra_UploadWavRingtoneUpload ringtone to device in .wav format
Jabra_SetWizardModeSets the wizard mode (whether a full setup wizard, a limited setup wizard or none will run on next power-on). Use Jabra_IsFeatureSupported to query feature support DeviceFeature.FullWizardMode or DeviceFeature.LimitedWizardMode.
Jabra_GetReturnCodeStringReturns the descriptive string from the return code.
Jabra_IsFirmwareLockEnabledChecks if firmware lock is enabled in the device.
Jabra_IsSettingProtectionEnabledChecks if setting protection is enabled in the device.
Jabra_EnableDevLogEnables/disables logging for a device.
Jabra_IsDevLogEnabledChecks if logging is enabled in device.
Jabra_RegisterDevLogCallbackRegister callback function to get notified on device events.
Jabra_DownloadFirmwareUpdaterDownloads the latest FW updater relevant for this device.
Jabra_GetRemoteMmiTypesGets a list of supported remote MMIs.
Jabra_FreeRemoteMmiTypesFrees/deallocates the memory area allocated by Jabra_GetRemoteMmiTypes().
Jabra_IsRemoteMmiInFocusGets the status of the remote MMI focus.
Jabra_GetRemoteMmiFocusGets the focus of the remote MMI specified.
Jabra_ReleaseRemoteMmiFocusReleases the focus of the remote MMI specified.
Jabra_SetRemoteMmiActionSets an output action on the remote MMI.
Jabra_RegisterRemoteMmiCallbackRegisters for remote MMI event callback.
Jabra_GetPanicsGet the panic list.
Jabra_FreePanicListTypeFrees the Jabra_PanicListType structure.
Jabra_SetTimestampSets a static timestamp in the device.
Jabra_GetTimestampGets the static timestamp in the device.
Jabra_PreloadDeviceInfoPreloads the configuration cache with the content of the specified archive.
Jabra_PlayRingtonePlay Ringtone in Device.
Jabra_GetAllFirmwareInformationGets information of all the firmwares present in cloud for the specific device.
Jabra_FreeFirmwareInfoListFrees the list of firmware information structure.
Jabra_SetJackConnectorStatusListenerSubscribe/unsubscribe to JackStatus events. Not available on all devices. If not available, the client will get no events.
Jabra_SetHeadDetectionStatusListenerSubscribe/unsubscribe to HeadDetectionStatus events. Not available on all devices. If not available, the client will get no events.
JabraDeviceConfig.h: Device setting interfaces
API NameDescription
Jabra_GetSettingsGets the attached Jabra device setting. Returns pointer to the device settings structure containing all settings for a particular device
Jabra_FreeDeviceSettingsOnce the device setting is requested by the application, memory needs to be freed by calling this API by the application
Jabra_SetSettingsUpdates/Sets the setting details of the attached Jabra device. Returns a return code to indicate if settings were applied successfully or not
Jabra_FreeStringOnce the device image path is requested, application needs to release the memory by calling this API to prevent memory leak
Jabra_GetFailedSettingNamesQueries the list of failed setting names
Jabra_FreeFailedSettingsMemory of failed setting names can be released by the application using this interface to prevent memory leak
Jabra_SetSettingsChangeListenerAdd a listener for changes to the device settings. The listener will be called when a setting is changed in the device, regardless of who changed it (this instance, another instance, or the user through MMI).
Jabra_IsFactoryResetSupportedReturns whether the device supports factory reset
Jabra_FactoryResetRestores to factory settings of the device
Jabra_FreeDeviceSettingsMemory allocated to device settings can be released by the application using this interface to prevent memory leak
Jabra_GetSettingGets the unique setting identified by a GUID of a device
Jabra_GetNamedAssetRequests a named asset for the specified device
Jabra_FreeAssetReleases an asset previously obtained with Jabra_GetNamedAsset()
JabraNativeHID.h: RCC interfaces
API NameDescription
Jabra_IsOffhookSupportedReturns true if off hook is supported for a specific Jabra device
Jabra_SetOffhookSet the specified device off hook/on hook
Jabra_IsRingerSupportedReturns true if ringer is supported for a specific Jabra device
Jabra_SetRingerSet ringer on/off for the specified device
Jabra_IsMuteSupportedReturns true if ringer is supported for a specific Jabra device
Jabra_SetMuteSet mute on/off for the specified device
Jabra_IsHoldSupportedReturns true if hold is supported for a specific Jabra device
Jabra_SetHoldSet hold on/off for the specified device
Jabra_IsOnlineSupportedReturns true if online mode is supported for a specific Jabra device
Jabra_SetOnlineTurn online mode on/off for a wireless headset. Online mode opens an audio link (radio link) between a base/dongle and a headset
Jabra_WriteHIDCommandInterface for sending HID output reports with device ID, Usage Page and Usage. This function is for advanced users. It is recommended to use the dedicated functions: Jabra_SetOffHook, Jabra_SetRinger, Jabra_SetMute, Jabra_SetHold, and Jabra_SetOnline
Jabra_IsGnHidStdHidSupportedReturns true if the device supports Gn HID and Std HID and able to switch between them
Jabra_GetHidWorkingStateGets the HID working state
Jabra_SetHidWorkingStateSets the HID working state to either standard HID (usb.org HID specification) or GN HID. HID Events will (default) NOT be triggered for standard HID to avoid conflicts

Steps to initialize the library

The below steps are mandatory for initializing the Jabra SDK

  • Valid App ID/Client ID must be set to SDK using Jabra_SetAppID API. If app id is not set, SDK initialization will fail. Kindly note, App ID/Client ID must be obtained by the application developers by registering with Jabra portal - https://developer.jabra.com/
  • The library is initialized using the Jabra_Initialize API. The arguments consist of pointers to five callback functions and an instance number
ParameterDescription
FirstScanForDeviceDoneFuncThis callback function is called when the library has finished the initial scanning for Jabra devices
DeviceAttachedFuncThis callback function is called when a new Jabra device is attached or the library has been initialized and found a Jabra device
DeviceRemovedFuncThis callback function is called when a Jabra device is removed
ButtonInDataRawHidFuncThis callback function is called when new input data has been received. Data is raw HID data
ButtonInDataTranslatedFuncThis callback function is called when new input data has been received. Data is represented at a higher level of abstraction than the raw HID data
InstanceOptional instance number. Can be 0 if not used

Important: As callbacks are executed in SDK context, application must perform only small/light-weight activity. For bulky functionality, it should continue using application thread

Library initialization must be done only once. Before process shutdown Jabra_Uninitialize() must be called in order to perform memory cleanup.

Note: For RCC to be reflected in device, HID button inputs from a device to the PC must be acknowledged by the OS. Otherwise the next button input transition will not be detected by the system. A button input is acknowledged by setting the corresponding button output to the same value as the input value. For example, when you receive an OffHook = true, you must call Jabra_SetOffHook (deviceId, true). After acknowledging the input you can set the new desired state. For example, to reject the off-hook request you could call Jabra_SetOffHook (deviceId, false).

Mac OS X (C++/Objective-C/Swift) Application

User has an option to develop an application using C++ by directly consuming C interfaces. But if the application is developed in Objective-C/Swift, a wrapper has to be created to use the APIs from these libraries.

Refer Library Interfaces

More information on Objeive-C Wrapper can be found in Wrapper/Documentation folder.

Logging

SDK provides logging to troubleshoot issues. By default, log level is set to Warning.

Log level can be defined by setting the environment variable (LIBJABRA_TRACE_LEVEL) using export or launchctl setenv command from Terminal. Supported log levels are - fatal, error, warning and info.

The logs will be placed at ~/Application Support/JabraSDK by default.

Application log file size is restricted to 10 MB, log exceeding this size new files are created. 10 latest log files can be stored, after that on new log file creation the oldest log is deleted.

Note: Application restart is required, in case the log environment variable is changed.

Points to Remember

  • Concurrency is maintained between all the applications which uses Jabra SDK library and Jabra Direct Online
  • Dependent settings are some special settings which depend on other settings. For example, based on the value of one setting, other setting(s) may get enabled or disabled
    • Application needs to handle dependency settings, based on the flag isDepedentsetting in exposed settingInfo structure
    • ListKeyValue (structure) in each setting (mainly for drop down control settings) will contain list of possible values. Along with this, ListKeyValue will also have dependent settings details
    • For each values in the ListKeyValue structure,
    • dependentcount will have the information of how many settings are dependent for this value. It will be zero, if no settings are dependent.
    • If dependentcount is non-zero, then DependencySetting (structure) will have the details of the settings, which are dependent
    • DependencySetting will have setting GUID and a flag to say whether to enable or disable
    • For some settings when disabled because of dependency, the value needs to be changed to default value. dependentDefaultValue in settingInfo structure will have default value
  • PC settings are settings, which application needs to handle as it is not device settings. And the exposed settingInfo structure has the flag, isPCsetting, to identify whether it is PC setting or not
  • Any string input given should be terminated with a NULL pointer
  • Validations like regular expression, min length, max length etc. for string input needs to be handled by application
  • The button configurations done for remote MMI should be cleared/reset on device unplug or exit of the application. The application should perform button configuration again on next start up
  • Since device does not provide any information on currently configured remote MMI's, the client logic to maintain the remote MMI configurations for a device. Different instances of demo app will not know the remote MMI configured as device does not support reading of current remote MMI configurations
  • Remote MMI is restricted when supported device is paired with Dongle
  • If any of the settings fails while retrieving from the device, device settings structure will be null pointer
  • 3rd party developers have to register for the authorization token for firmware updater
  • The Firmware updater application (Jabra Firmware Updater.app) is required to be installed to support firmware update feature. The installer will be downloaded from cloud as part of firmware file download for Jabra device from Jabra_DownloadFirmware API. The udpater application will be installed when firmware update is initiated.
  • Jabra_DownloadFirmware API to be called before calling Jabra_UpdateFirmware API to get the firmware file path

Bluetooth/Dongle devices

  • The USB dongle and the paired Bluetooth headset are enumerated as seperate device in the available device list
  • When Dongle is paired with the Speak 710, if the user change shared use setting to off in Speak 710, then the device will disconnect the Bluetooth connection with the Dongle.

Sample application Code

Both source code and binary files for the demo application are packed along with this SDK. The demo application is a Swift application using Obj-C SDK Wrapper framework. The test program demonstrates library initialization, usage of remote call controls and device settings features using Jabra SDK V2.

Device Connected

Device Disconnected

Device Information View

Device Settings View

Call Control View

Enable HID Events - Jabra Standard HID Events, Non-Jabra HID Events

Disable HID Events - Jabra Standard HID Events, Non-Jabra HID Events

Device information while Bluetooth dongle is connected

Device connected to PC over Bluetooth via dongle

BT Pairing when no headset is connected

BT Pairing while dongle scanning for headset to connect

BT Pairing while headset is connected to PC via dongle

Mapping of Button Events with user actions.

Mapping of Remote MMI V2 Events.

Firmware Updater view

Firmware Updater View -- Download specific firmware.

Firmware Updater View -- Download Completed

Jabra 410 Software

Firmware Updater --Update on clicking update

Firmware Updater --Updater initiated for upate

Firmware Updater --Firmware updater progress

Firmware Updater --Firmware updater progress

Firmware Updater --Firmware updater progress

Firmware Updater -- Update finished.

Upload ringtone

Upload ringtone file selection

Upload ringtone -- file upload progress view

Upload image

Upload image - file selection

Set date and time view

Logging view

Jabra 410 Speakerphone

Development Setup

  1. Create a new Sample application using Xcode 10.3 -- Cocoa Swift Application

Create new project view in Xcode 10.3

  1. Configure the application with the name and other details

Xcode application configuration

  1. Copy the SDK Framework (JabraSDK.framework) from the JabraSDK zip file and place it in application project folder as shown below.

Copy Framework in the Project

  1. Link the SDK Framework (JabraSDK.framework) to the project.

Locate framework to link into project

Select the framework to be linked

SDK Framework linked to project

Sequence Diagrams

This section shows sequence diagrams for the most common use cases. Using the same patterns like the one described here, enables more advanced use cases.

Get device setting Sequence

The following sequence diagrams illustrate how to get settings from device using this library.

Get device settings

Set device setting Sequence

The following sequence diagrams illustrate how to set settings from application to device using this library.

Set device settings

Off-Hook Sequence

The following sequence diagrams illustrate how to implement off-hook/on-hook scenarios in your softphone using this library.

Softphone Initiated

Softphone OffHook initiation

User Initiated

User OffHook initiation

Mute Sequence

The following sequence diagrams illustrate how to implement mute/unmute scenarios in your softphone using this library.

Softphone Initiated

Softphone mute toggle

User Initiated

User mute toggle

Hold Sequence

The following sequence diagrams illustrate how to implement hold/resume call scenarios in your softphone using this library.

Softphone Initiated

Softphone Hold/resume sequence

User Initiated

User Hold/resume sequence

Remote MMI -- Button take over

Button takeover sequence

Child device support

Jabra

Child device handling sequence

Logging

Logging sequence

Firmware Update

Firmware update sequence

Third party license Notice

License notice for libjsoncpp

Copyright (c) 2007-2010 Baptiste Lepilleur

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Updated license information can be found here.

License notice for pugixml

Copyright (c) 2006-2018 Arseny Kapoulkine

Apple may provide or recommend responses as a possible solution based on the information provided; every potential issue may involve several factors not detailed in the conversations captured in an electronic forum and Apple can therefore provide no guarantee as to the efficacy of any proposed solutions on the community forums. Mac iso to thumb app.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Updated license information can be found here.

License notice for libcurl

Copyright (c) 2006-2018 Arseny Kapoulkine

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Updated license information can be found here.

Greetings chordhead,
Thanks for using the Apple Support Communities! I understand you're curious if you're able to use your Jabra Elite 65t wireless earbuds with your Mac.
The following guide from Jabra provides helpful compatibility information: True Wireless Earbuds for Calls & Music Jabra Elite 65t

Jabra Speak 410 Software

Specifically, let's have you review the FAQ section which mentions the compatibility:

Is it compatible with my phone?

Jabra 410 Driver

Jabra Elite 65t is optimized to be used with smartphones/mobile phones. It’s not specifically optimized to be used directly with a computer. You can check out the compatibility guide here.


Based on the information from Jabra, it doesn't appear your wireless earbuds will work with your Mac.

Jabra Speak 410 Firmware


Jabra Speak 410 Software

Kind regards.