Call Lock functionality

The Call Lock functionality ensures that two (or more) softphones do not use the same Jabra device at the same time - it does so by controlling access to the device.
Please note that Call Lock is not an absolute lock; it is a semaphore to assist softphones using the same device without interfering with each other.

You acquire a ‘Call Lock’ before you perform any form of call control. The Call Lock informs other applications that use the Jabra SDK libraries to “keep hands-off”. The lock is kept for the duration of the call, once the call is finished, you release the lock to allow other softphones to use the device.

By acquiring a lock before using the call control functions softphones can co-exist without interfering with each other - if acquiring the lock fails another softphone is currently using the device. Note that interference may still occur if the Call Lock functionality is not implemented by all softphones.

Call Lock consists of three API functions:

  • Jabra_GetLock()
  • Jabra_ReleaseLock()
  • Jabra_IsLocked()

Use ‘Jabra_GetLock’ to acquire the lock, use ‘Jabra_ReleaseLock’ to release the lock.

‘Jabra_IsLocked’ reads the current state of the lock within your application. This can be used to check if your application already has obtained the lock; using ‘Jabra_IsLocked’ does not affect performance and has been provided as a convenient way of checking this without using ‘Jabra_GetLock’. Depending on the situation, the lock might already be acquired by your application, hence an internal check for the lock should be the first step in acquiring the lock. Executing multiple features in quick succession is an example of when the lock might already be acquired.

Note that ‘Jabra_IsLocked’ does not check if another softphone has obtained a lock on the device. You must use ‘Jabra_GetLock’ to see if you can obtain the lock or not.

The current Call Lock functionality is backward compatible with the one introduced in the first generation of Jabra SDK libraries (C# only).