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.
Get/set device settings
The following diagram illustrates how to get settings from the device.
Figure 5: Get device settings
The following diagram illustrates how to apply settings to the device.
Figure 6: Set device settings
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).
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_IsLocked() when doing call control.
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
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.
Figure 9: Softphone initiated OffHook/OnHook
Figure 10: User initiated OffHook/OnHook
The following diagrams illustrate how to implement mute/unmute scenarios in your softphone.
Figure 11: Softphone mute toggle
Figure 12: User mute toggle
The following diagrams illustrate how to implement hold/resume call scenarios in your softphone.
Figure 13: Softphone initiated hold/resume
Figure 14: User initiated hold/resume
Remote MMI – button takeover
Figure 15: Button takeover
Child device support
Figure 16: Child device handling