1.6 Sequence diagrams

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

1.6.1 Get/set device settings

The following diagram illustrates how to get settings from the device.

Figure 5: Get device settings

Figure 5: Get device settings

The following diagram illustrates how to apply settings to the device.

Figure 6: Set device settings

Figure 6: Set device settings

1.6.2 Call Control

The term call control covers the integration between a headset and softphone software on a PC that involve incoming and outgoing calls. Some of the possible integration points are:

  • Reflecting the state of a call (active call, hold, inactive).
  • Reflecting the microphone mute state (muted or unmuted).
  • Changing states (via button presses):
    • Accepting or rejecting calls.
    • Putting a call on hold or resuming a held call.
    • Muting or unmuting the microphone.
    • Redial or dial.
  • Setting the ringer on or off (indicated by either audio or blinking LEDs on the device).

Call lock

The first step before changing any of the devices' states is acquiring a call lock. While it is possible to use the Jabra SDK to modify a device's state without acquiring a call lock, using the lock is a hard requirement to make sure that two softphone products are not clashing with each other and invalidating the state of a headset that is in use by another softphone.

Once a call is finished, it is equally important to release the call lock. Now other softphone products (or subsequent phone calls to your product) can successfully acquire (or reacquire) the call lock for the device.

Depending on the situation, the lock might already be acquired (usually when executing multiple features in quick succession), so an internal check for the lock should always be the first step.

[Note] If acquiring the call lock fails, it is usually because another softphone is currently using the device.

The following diagrams illustrate how to use the call lock functions Jabra_GetLock(), Jabra_ReleaseLock() and Jabra_IsLocked() when doing call control.

Figure 7: How to use call lock when starting and ending a call

Figure 7: How to use call lock when starting and ending a call

Figure 8: Call lock must be acquired before any call control operation

Figure 8: Call lock must be acquired before any call control operation

1.6.2.1 Off-Hook

The following diagrams illustrate how to implement off-hook/on-hook scenarios in your softphone. Proper call lock handling (see above) is implied in the Softphone-SDK integration.

Softphone initiated

Figure 9: Softphone OffHook initiation

Figure 9: Softphone initiated OffHook/OnHook

User initiated

Figure 10: User OffHook initiation

Figure 10: User initiated OffHook/OnHook

1.6.2.2 Mute

The following diagrams illustrate how to implement mute/unmute scenarios in your softphone.

Softphone initiated

Figure 11: Softphone mute toggle

Figure 11: Softphone mute toggle

User initiated

Figure 12: Mute toggle, user initiated

Figure 12: User mute toggle

1.6.2.3 Hold

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

Softphone initiated

Figure 13: Softphone hold/resume

Figure 13: Softphone initiated hold/resume

User initiated

Figure 14: User hold/resume

Figure 14: User initiated hold/resume

1.6.2.4 Remote MMI – button takeover

Figure 15: Button takeover

Figure 15: Button takeover

1.6.2.5 Child device support

Figure 16: Child device handling

Figure 16: Child device handling