Developers guide
Chapter 22: Wireless Wide-Area Networking
Dual-Tone Multifrequency (DTMF)
228 Psion Teklogix Mobile Devices SDK Developers Guide
22.12.10 Dual-Tone Multifrequency (DTMF)
DTMF is a tone signalling scheme often used for control purposes on a telephone network. For ex-
ample, it can be used for the remote control of an answering machine, to control voice mail, or to
dial an extension.
For example, to dial an extension number of 1234, there are two options:
•Call SendDTMF with the string 1234, or
•Call SendDTMF four times. The first time set the string to 1, the second time set the string
to 2, then to 3, then to 4.
You can use SendDTMF for any touch-tone service.
22.12.11 Blocking Inbound And Outbound Calls
To ensure that the application has control of the call notifications, set the suppress call notifica-
tions flag before blocking calls. See “Access Flags” on page 212
for details.
Blocking (Rejecting) Inbound Calls
While processing the VoiceCallManager incoming call event, use GetOtherPartyCallerId to
get the caller ID. If the caller ID is recognized as one that should be blocked, use RejectIncoming
to reject the call.
If the incoming call has its caller ID blocked, GetOtherPartyCallerId returns an empty string.
Also, in the Voicecall status changed event, the voice call flag is withheld incoming number.
Blocking Outbound Calls
To prevent phone calls to selected phone numbers, monitor the Voicecall status changed events.
While the outbound call is in the alerting state, use HangUp to block the call.
22.12.12 Blocking Caller ID On Outgoing Calls
Use SetOutgoingCallerIdEnabled to block caller ID on outgoing calls. Use
GetOutgoingCallerIdEnabled to query the state of the outgoing caller ID.
22.12.13 Audio for Voice Over WWAN
Playing A Ring Tone
Use PlayRepeatingWave, in the Sound namespace, to play a repeating tone. This is shown in the
following example:
Example 22.19 Playing A Repeating Tone in C++
try
{
// Play a ring tone to notify the user of an incoming call.
// From PsionTeklogix::Sound namespace.
PlayRepeatingWave(std::wstring(L"\\windows\\ring.wav"), 3000);
}
catch(std::runtime_error ex)
{
// Unable to play the ringtone, does the file exist?
}