dialDTMF
a Pocket PC
(Pocket Contact) plugin to dial telephone numbers using DTMF's (aka
Dual Tone
Multi-Frequency)
(tested under PPC2000 MIPS, PPC2000 ARM, PPC2002 ARM, Xscale WMPPC2003
and WM2003SE, WM5 - if you want
your
processor supported either build the exe's yourself from CVS or email
me
and I may
look into it). There is a listed of known working hardware in
the FAQ.
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
be
useful, but is provided AS IS with ABSOLUTELY NO WARRANTY.
As this
is GPL there is nothing to stop you creating a fork, but if you do make
a
change/improvement, I'd like to see it! Please send me any changes.
Features
Free!
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
small window
size).
Dials the FULL number that needs dialing based on the
current location
(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
tones can
be used (quicker to dial, potentially unreliable). Alternatively if
your
phone isn't great longer tones can be used which are more reliable (at
the
expense of dialing speed).
Configurable pause between each tone played
(registry setting
\Software\Apps\dialDTMF\tonedelay), default 100 millisecs. You need a registry
editor
to set this parameter.
Supports pauses whilst dialing (e.g. for calling cards) by
using a
comma (",") to pause for 1 second (use two commas ",," for 2 seconds,
etc.)
Supports normal numerics 0-9, "#" (hash or pound depending
on which
country you are in), and "*" (star/asterix). The extended A,B,C,D
"digits"
are NOT supported (I've never had call for them).
Source/project code available. If you are missing a feature
you can
add it :-p
Where?
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
get
a checksum so you can determine if the download was successful. "Naked"
CAB
files don't give you that). If you are trying to install directly to
your
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
dialing
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
preferably
(as they are faster), but they may not work on all phones (especially
old/cheap
phones), just download and extract them separately.
Installing
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
PC's work).
Contact details here http://sourceforge.net/users/clach04/
please contact me with bug reports or sample ini file settings for your
country.
I also like to hear if any one is using it; ego boosts are nice
sometimes
:-)
The re-itegration of the poom api and the display of phone numbers in
version 0.04 was written by
BK Liew
.
Why?
I wrote this because I'm lazy, manual dialing is a chore, speed
dialing isn't
an option unless you are in one place and can program that phone. I
have
to lookup the number in my PDA anyway so why not make the PDA go the
extra
mile?
There are some commercial packages, but I didn't want to spend money
(I've
no idea if they are any good or not), there are some (limited) free
dialers
but they either don't work on MIPS or they are 2.5Mb VB apps (I don't
have
the space for that on my 32Mb machine) - and none plugin into the
contacts
application (I don't want to learn a new interface). Plus I wanted the
dialer
to be smart and dial the correct number no matter where in the world I
was,
why should I have to remember international dialing codes (that's what
the
PDA is for isn't it :-p )?
GUI tools require effort to make "pretty" and I'm pretty happy with the
Contacts
app with PPC so I knocked up a plugin rather than a whole new contacts
dialing
application.
How?
Select ONE contact in the Microsoft Pocket Contact application, either
go
to the Tool menu (or tap-and-hold) and select dialDTMF, it should then
pop up
a basic dialog where the dialing rules (where you are) and the number
to
dial can be selected. If using wm2003 one can simply use the Action
button
and the op/down hardware button to select. You need to place the PDA
speaker
VERY close to the mouth piece of your phone (ideally the volume should
be
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)
then
the number is dialed as-is.
If the number has a + sign, translation is performed to dial the
correct number
for your current location. The up shot is that if you move locations
(more
on locations later) and want to use dialDTMF make sure all of your
numbers
are in international format. If you use a cell phone and take it
abroad, you
have probably already modified some numbers to be in international
format
any way (if you have a cell phone you may not have much need of this
app
though :-)). Example: say you have a telephone number of a person in
San
Francisco, CA, USA. the number in the contacts application
should be
stored as "+1 415 555 1234", this includes the country code "+1", the
area
code "415" and the telephone number itself (555 1234).
Dialing rules are stored in an ini file in the same dir as dialDTMF
(default
install location on an English PocketPC is "\Program Files\dialDTMF").
You
should edit location.ini with your location information. An example ini
file
is provided that has USA and UK dilaing rules; see home and work (for
USA
examples) see reading (for a UK example).
How does number translation take place?
Check out various web sites for the rules on this subject (e.g. http://kropla.com/dialcode.htm
) or your telephone company phone book.
But basically to dial:
locally - remove the area code (and country code) then
dial
nationally (same country) - remove country code add
national dialing prefix
internationally - prefix with the international dialing
code
Some people may argue over the national dialing "scheme" above, some
countries
may claim they don't have a national dialing code (e.g. in the UK, the
national
dialing code is 0 but most people don't realize it, most think 0 is
part of
the area code, you can tell it is the national dialing code as you
don't dial
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
area code,
national dialing prefix, international prefix, your country code and it
supports
custom prefixes (such as 9 to dial out of an office, or a bunch of
numbers
for a calling card). Location information is stored a file called
location.ini
that is stored in the same location as the exe (well dll). The
location.ini
is a standard ini format ASCII test file, currently one has to manually
edit
it with a text editor (either on the device or a desktop), there are
loads
of decent text editors for PocketPC, but if you are in need of one you
can't
go wrong with TotalCommanderfile
explorer,
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
you
can call anyone without mucking around with the numbers. dialDTMF has
been
tested in/from/to the USA and the UK, as the code is fairly simple I
can't foresee
problems attempting to dial (say) Jamaica from the USA (or any country
where
the country code prefix is a 1). If you find a problem let me know or
grab
the code and see if you can get it working. But for the
people/countries I
phone dialDTMF has behaved itself so-far.
Finally there is a delay time for each tone (UK phones can be dialed
faster
than US phones, don't ask me why they are different), this is in the
registry
(registry setting \Software\Apps\dialDTMF\tonedelay). The default is
100
millisecs. 200 millisecs appears to be VERY reliable (100 works 99% of
the
time for me on long numbers and is the default). You need a registry
editor
to modify this parameter, check out PHM
or Tascal.
Tips / FAQ
How to handle different calling plans/long distance carriers
In the US there are various special prefixes that give you cheap deals
on
phone calls, such as "10 10 220", "10 10 987". If you want to use these
create
a new location and modify your long distance prefix, e.g. instead of
"1" for
national calls set it to be "10 10 987 1" (note the 1 at the end).
Don't
put
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
100ms
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:
Check what the "dll" entry is set to, by default it points to:
\Program Files\dialDTMF\dialDTMF.dll
If you have a non-English device the "Progam Files" should be in the
local language as the installer installs to %CE1%.
What numbers can you dial?
Any number in a contact record can be dialed with the exception of:
Work Fax
Pager
Car Tel
Home Fax
Assitant Tel
No sounds play when dialing?
Check that the sound files are available
Ensure that
under
Settings->Sounds & Notifications is enabled for
"Programs" and
"Notifications (alarms, reminders)"
Slow dialing speed - how to speed up dialing?
By default the CAB installer will install long
tones (the most reliable), you may find that shorter tones are
preferably
(as they are faster), but they may not work on all phones (especially
old/cheap
phones), just download the short tones from http://sourceforge.net/project/showfiles.php?group_id=91603&package_id=100460
and extract them into the "\Program Files\dialDTMF\wav"
directory.
How to add pauses to the dialing?
If you want to add a pause, e.g. dial number, pause, dial password.
Just use a comma i.e. "," and a 1 second pause will occur, for 2
seconds use 2 commas, e.g. ",," or 3 commas for 3 secs, etc.
What hardware/software does dialDTMF work on?
In theory any PocketPC or later version of Windows CE (i.e. 3.0
on-wards). dialDTMF has been reported to run on:
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
dialDTMF.
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
home/mobile/cell/work phone
numbers, and also to select the dialing location.
To install nscriptm, run the exe for your platform on your device and
then
open the install.ns script, once that is done you can click open any
.ns
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
cell])
dialDTMF 0.02 and earlier used the poom api to get Contact information,
0.03
now used CEDB access I got the idea/model from SiKi'ho
Xialer
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.
Future ideas
cancel number dialing part way through dialing
adding support for more numbers (from the contacts)
Work Fax
Pager
Car Tel
Home Fax
Assitant Tel
change library support for sounds, to be less dependent on
PocketPC: