Developers guide

Chapter 22: Wireless Wide-Area Networking
Processing Voice Calls
226 Psion Teklogix Mobile Devices SDK Developers Guide
If there is one or more calls on hold, then the active call joins them on hold. The held calls can
converse in a multiparty call excluding you. The incoming call becomes the new active call. If you
do not want this to happen either the active call or the held call must be disconnected before
AnswerIncoming is called.
Placing The Active Call On Hold And Answering The Held, Or The Waiting, Call
Use SwapHeldAndActive. This function does one of the following:
Places the active call on hold, and makes the held call active, or
Places the active call on hold, and makes the waiting call active.
This function fails if there is both a held call and a waiting call.
Holding Calls
The Mobile Devices SDK supports holding calls. Although holding calls are only available when
the Psion Teklogix computer is associated with a WWAN network that provides a held
calls service.
A held call is a call that has been active, but is temporarily interrupted. It can be resumed, made
active, again.
Multiparty Calls (Conference Calls)
The Mobile Devices SDK supports multiparty calls. Although multiparty calls are only available
when the Psion Teklogix computer is associated with a WWAN network that provides a multi-
party calling service. Up to five calls can be joined into a conference call.
Use the VoiceCallManager function RetrieveHeld to join together the active call with all the
held calls. All the calls are now active, and all the parties can communicate with each other.
The behaviour of RetrieveHeld depends on the WWAN modem. For example, this call is success-
ful with the MC75 modem when there is one held call and no active calls, while it fails with the
HC25 modem if there is not at least one active call and at least one held call.
Adding A Call To A Multiparty Call
If an incoming call event is received, with a voice call state of Call waiting, use the VoiceCall
function ActivateAndHoldOthers to make this the active call and place all the other calls on
hold. This function fails if there is already a call on hold.
Use the VoiceCallManager function RetrieveHeld to join together the active call with all the
held calls. All parties, including the new call, can now communicate with each other.
Use the VoiceCallManager function HoldActive to place all the active calls on hold. Then one of
the following occurs:
If there is a waiting call, it becomes the active call, or
If there is a call on hold, but there is no waiting call, the held call becomes the active call, or
If there is both a held call and a waiting call, the command is rejected.