a Pocket PC
(Pocket Contact) plugin to dial telephone numbers using DTMF's (aka
(tested under PPC2000 MIPS, PPC2000 ARM, PPC2002 ARM, Xscale WMPPC2003
and WM2003SE, WM5 - if you want
processor supported either build the exe's yourself from CVS or email
and I may
look into it). There is a listed of known working hardware in
dialDTMF is free (in price) and released under the GPL http://www.gnu.org/copyleft/gpl.html
(freedom of use). This program is distributed in the hope that it will
useful, but is provided AS IS with ABSOLUTELY NO WARRANTY.
is GPL there is nothing to stop you creating a fork, but if you do make
change/improvement, I'd like to see it! Please send me any changes.
Plugin to built-in Microsoft Contacts application.
Works on basic Pocket PC 2000 devices all the way up to WM05 devices.
Can be operated with one hand on most devices.
Doesn't freak out on a landscape rotation (it uses a really
Dials the FULL number that needs dialing based on the
(can be used with a calling card if out on the road).
Uses WAV files for tones so if you have a good phone short
be used (quicker to dial, potentially unreliable). Alternatively if
phone isn't great longer tones can be used which are more reliable (at
expense of dialing speed).
Configurable pause between each tone played
\Software\Apps\dialDTMF\tonedelay), default 100 millisecs. You need a registry
to set this parameter.
Supports pauses whilst dialing (e.g. for calling cards) by
comma (",") to pause for 1 second (use two commas ",," for 2 seconds,
Supports normal numerics 0-9, "#" (hash or pound depending
country you are in), and "*" (star/asterix). The extended A,B,C,D
are NOT supported (I've never had call for them).
Source/project code available. If you are missing a feature
add it :-p
You can get binaries for PocketPC (and src zip files) here http://sourceforge.net/project/showfiles.php?group_id=91603
. The plugin is provided in a zipped CAB file (zips are smaller + you
a checksum so you can determine if the download was successful. "Naked"
files don't give you that). If you are trying to install directly to
PocketPC without access to a desktop check out TotalCommander file
explorer, it has built
in Zip file support. You also need a text editor to configure the
rules for your location (guess what, TotalCommander
can do that too). As of version 0.03 nscriptm is no longer required,
see the FAQ.
If you do NOT install to the default location, please see the FAQ.
By default the CAB installer will install long
tones (the most reliable), you may find that shorter tones are
(as they are faster), but they may not work on all phones (especially
phones), just download and extract them separately.
First thing is get the contents of the unzipped archive on to your
PocketPC - you only need the CAB file. Either:
open the active sync window and hit explore; then drag and drop
the file to the device
copy the file to the pocket pc directory under "My Documents"
(you can do this either when the device is connected or disconnected)
and sync as normal
Once the file is on the device, open a file explorer ( you can use the
default one that is on the device; or better TotalCommander).
Find the cab file in the explorer.
"tap"/click it like a normal file to open it which install the CAB. On
a default device the cab file will be DELETED (this is just how pocket
Contact details here http://sourceforge.net/users/clach04/
please contact me with bug reports or sample ini file settings for your
I also like to hear if any one is using it; ego boosts are nice
The re-itegration of the poom api and the display of phone numbers in
version 0.04 was written by
I wrote this because I'm lazy, manual dialing is a chore, speed
an option unless you are in one place and can program that phone. I
to lookup the number in my PDA anyway so why not make the PDA go the
There are some commercial packages, but I didn't want to spend money
no idea if they are any good or not), there are some (limited) free
but they either don't work on MIPS or they are 2.5Mb VB apps (I don't
the space for that on my 32Mb machine) - and none plugin into the
application (I don't want to learn a new interface). Plus I wanted the
to be smart and dial the correct number no matter where in the world I
why should I have to remember international dialing codes (that's what
PDA is for isn't it :-p )?
GUI tools require effort to make "pretty" and I'm pretty happy with the
app with PPC so I knocked up a plugin rather than a whole new contacts
Select ONE contact in the Microsoft Pocket Contact application, either
to the Tool menu (or tap-and-hold) and select dialDTMF, it should then
a basic dialog where the dialing rules (where you are) and the number
dial can be selected. If using wm2003 one can simply use the Action
and the op/down hardware button to select. You need to place the PDA
VERY close to the mouth piece of your phone (ideally the volume should
set HIGH, dialDTMF doesn't yet try and increase dialing volume).
If you have a telephone number that does NOT start with a + (plus sign)
the number is dialed as-is.
If the number has a + sign, translation is performed to dial the
for your current location. The up shot is that if you move locations
on locations later) and want to use dialDTMF make sure all of your
are in international format. If you use a cell phone and take it
have probably already modified some numbers to be in international
any way (if you have a cell phone you may not have much need of this
though :-)). Example: say you have a telephone number of a person in
Francisco, CA, USA. the number in the contacts application
stored as "+1 415 555 1234", this includes the country code "+1", the
code "415" and the telephone number itself (555 1234).
Dialing rules are stored in an ini file in the same dir as dialDTMF
install location on an English PocketPC is "\Program Files\dialDTMF").
should edit location.ini with your location information. An example ini
is provided that has USA and UK dilaing rules; see home and work (for
examples) see reading (for a UK example).
locally - remove the area code (and country code) then
nationally (same country) - remove country code add
national dialing prefix
internationally - prefix with the international dialing
Some people may argue over the national dialing "scheme" above, some
may claim they don't have a national dialing code (e.g. in the UK, the
dialing code is 0 but most people don't realize it, most think 0 is
the area code, you can tell it is the national dialing code as you
a 0 in front of the area code if you call the UK from another country).
So dialDTMF needs to know where you are, it needs to know the local
national dialing prefix, international prefix, your country code and it
custom prefixes (such as 9 to dial out of an office, or a bunch of
for a calling card). Location information is stored a file called
that is stored in the same location as the exe (well dll). The
is a standard ini format ASCII test file, currently one has to manually
it with a text editor (either on the device or a desktop), there are
of decent text editors for PocketPC, but if you are in need of one you
go wrong with TotalCommanderfile
it has built in Zip support, a decent/basic text file editor/viewer and
a registry viewer/editor.
Example location.ini file
# INI-like configuration file for dialDTMF # lives in: # # \Program Files\dialDTMF\location.ini # Normal home in USA (San Francisco) using standard long distance carrier # ["home"] country_code = '1' area_code = '415' int_code = '011' nat_code = '1' custom_prefix = ''
# home in USA using 1010987 for international carrier # ["home1010987"] country_code = '1' area_code = '415' int_code = '1010987011' nat_code = '1' custom_prefix = ''
# Normal office in USA, dial 9 to dial out # ["work"] country_code = '1' area_code = '415' int_code = '011' nat_code = '1' custom_prefix = '9'
# Normal office in UK (Slough), dial 9 to dial out # ["ukoffice"] country_code = '44' area_code = '1753' int_code = '00' nat_code = '0' custom_prefix = '9'
# Normal home phone UK (Reading) # ["ukreading"] country_code = '44' area_code = '118' int_code = '00' nat_code = '0' custom_prefix = '' # Do not use dialing rules, just dial "as-is" # ["no rules"] country_code = '' area_code = '' int_code = '' nat_code = '' custom_prefix = ''
If you end up going abroad you just need to create a new location and
can call anyone without mucking around with the numbers. dialDTMF has
tested in/from/to the USA and the UK, as the code is fairly simple I
problems attempting to dial (say) Jamaica from the USA (or any country
the country code prefix is a 1). If you find a problem let me know or
the code and see if you can get it working. But for the
phone dialDTMF has behaved itself so-far.
Finally there is a delay time for each tone (UK phones can be dialed
than US phones, don't ask me why they are different), this is in the
(registry setting \Software\Apps\dialDTMF\tonedelay). The default is
millisecs. 200 millisecs appears to be VERY reliable (100 works 99% of
time for me on long numbers and is the default). You need a registry
to modify this parameter, check out PHM
Tips / FAQ
How to handle different calling plans/long distance carriers
In the US there are various special prefixes that give you cheap deals
phone calls, such as "10 10 220", "10 10 987". If you want to use these
a new location and modify your long distance prefix, e.g. instead of
national calls set it to be "10 10 987 1" (note the 1 at the end).
it in the custom prefix, other wise local dialing will get messed up.
Try changing the dial delay for a slightly faster dial (I've stuck with
as it always works for me).
Errors when selecting dialDTMF from Contact "Tools" menu?
You may have installed dialDTMF to a Storage Card (or
other non-default location). It is strongly recommended that dialDTMF
be installed to the default location, if you have already installed
dialDTMF; simply uninstall and then re-install to the default
location. If you have used a tool like CabInstl you will have
problems as CabInstl does not correct the location of the registry
entries (using the desktop installer to select a different location
should address this). One option if you really want to change the
location of dialDTMF is to update the registry (you can use TotalCommander for
this) and check/update the registry entry:
dialDTMF (0.03) does NOT run under WM5 (due to the use of CEDB) so use
a later version of dialDTMF!
How to operate one handed?
On regular devices: just press the Contact button to bring up the
contacts application (even if the PDA is turned off). Scroll up/down to
the required contact. Press and HOLD the action button. Select dialDTMF
then scroll up/down to select which number to call. Then press the
action button. The action button is the button at the center of the
D-Pad (or press in the scroll wheel).
On a Smartphone: press the right control button under the screen to
bring up the contacts . Scroll up/down to the required contact.
Pressthe right control button again to get the tools menu and select
NOTE for previous (0.02alpha and earlier) users
Older versions of dialDTMF needed nscriptm http://s-k.al.ru/nscript.html.
nscriptm is no long required. nscriptm was required
to configure the dialer (to select whether to dial
numbers, and also to select the dialing location.
To install nscriptm, run the exe for your platform on your device and
open the install.ns script, once that is done you can click open any
script and it will run automatically.
There was a script to:
select current dialing FROM location
select current dialing TO location (home, work, mobile [aka
dialDTMF 0.02 and earlier used the poom api to get Contact information,
now used CEDB access I got the idea/model from SiKi'ho
another free dialer for PocketPC (which doesn't work in WinCE
5.0 - aka
WM5), 0.04 uses poom again!
dialDTMF was built using Microsoft
eMbedded Visual Tools 3.0
(eVC v3.0) - i.e. the older release to allow building for WinCE 3.0 to
support older MIPS (etc.) cpus, as well as the more modern Xscale and
ARM which all modern PocketPC, Windows Mobile, SmartPhones use.
If you don't like CVS much you may want to try TortoiseCVS so
you don't have to "learn" CVS.
cancel number dialing part way through dialing
adding support for more numbers (from the contacts)
change library support for sounds, to be less dependent on