Version 4.1 Beta, 21 Feb 2011
Compatibility Beta version may not be bug free. Varying results on different Windows versions
Description/note Added callto: support. Recompiled with Visual C++ 2010.
Version 3.0, 5 Nov 2010
Compatibility Stable version. Varying results on different Windows versions
Description/note Recompiled with Visual C++ 2008. Changed command line handling.
Dial.exe gives you the ability to create Windows shortcuts that place voice calls. The shortcuts can be desktop icons or put in the Start menu. Dial can also be used from a command line, and may be called from another script or program if you can't make API calls.
As of version 4, Dial should also work as the handler for callto: and sip: links in web pages. It strips additional text such as "callto:" from the number, and also converts "%xx" hex strings to the characters they represent. A consequence of the new feature is that although versions up to and including 3 had no dependencies, version 4 requires the Microsoft DLL included in the download. Put this in the same folder as dial.exe, or preferably in your system32 folder if it is not already present there. Windows may need some registry tweaking to respond to callto: links. Use a search engine to find out how.
Important: Dial does not work by magic alone. The PC and phone line must be connected by a suitable modem! Otherwise, Dial will initiate Internet calls.
Copy Dial.exe to somewhere convenient on your disk, for example the Program Files folder. Right-click the Start button and select Explore. Go to File / New / Folder and create a folder called Dial. If you are using version 4, see the note above about the DLL.
Inside that folder you can, if you wish, create sub-folders to to categorise your shortcuts.
Create a new shortcut by dragging Dial.exe into the folder using the RIGHT mouse button. When you drop the file, you get the option to create a new shortcut.
Press the [F2] key to rename the shortcut to the name of the person or company it will dial. After renaming, right-click the shortcut and select Properties.
Click in the Target field. Add a space and the phone number to the end of the line. Don't put any spaces within the number.
There are special characters you can include in the number:
| , | (comma) A short delay |
| # | [#] key |
| * | [*] key |
| W | Optional prefix – wait for dial tone before calling |
An example, where you have to dial 9 for an outside line:
"path_to\dial.exe" W9,0123456789
Please see the note below regarding a fault in Windows 2000 that prevents the use of these additional characters.
There is one more feature you may like to use. Using the shortcut fires up the Windows dialler utility and that program is what actually does the dialling. Some versions of this (Phone Dialer) create a log file of numbers they call. Get at it from Tools / Show Log. If you want to make use of this feature, you can have the person's name included alongside their phone number. Add it to the shortcut command line in quotes as follows:
"path_to\dial.exe" 1234567 "John Jones"
The text within quotes will be picked up by Dial.exe and passed through to the Windows Dialer which will include the name in its log.
You may have to install the Phone Dialer from the Windows CD. It's under Add/Remove programs. Click the Windows tab and locate it in one of the categories.
If when you run a shortcut the Dialer accessory comes up but there is no phone number, check you have constructed the shortcut command line exactly as I have described. However, you may be out of luck and have a faulty system component.
Some communications software replaces Windows' own telephone interface module (Tapi.dll or Tapi32.dll) with its own third-party version. I have seen one of these fail to drive Phone Dialer in the way that Microsoft documents it should.
Windows 2000/XP only (I think): the Dialer accessory MAY interpret non-digits (such as ,) to mean that you want to place an Internet call. If that happens, try this workaround reported by a user (not yet tested by me):
"In messing around, I pulled the idea out of thin air to add a 'P' in front of the phone number string. Voila! This forces phone call instead of internet call for those strings with the special characters (commas, etc)."
If you have the problem, please let me know if the fix works. Another user reported it did not work for him.
I once planned to write an upgraded version of Dial.exe with more features, for example enabling selection of the dialling device, monitoring call duration and automatic hang-up.
Further investigation revealed this to be non-trivial and the plan was shelved.
Dial.exe is very simple. Interpreting the command line is the most complicated part, and that isn't very complicated. Afterwards, it uses tapiRequestMakeCall() to pass the phone number to Windows, which handles the dialling process.
Accomplishing anything more requires Dial.exe to take over some of the functionality of Windows' telephony components.
Microsoft says that any program doing this should go the whole hog and implement a range of features – a full TAPI interface in fact, and a significant project. Technically, Dial.exe would have to make the jump from being 'TAPI Enabled' to 'TAPI Centric'.
The leap is so great that it won't happen as a hobby project. I only put that amount of effort into things I have good reason to.
Another option is for the program to work directly with the modem, sending AT commands through serial port API calls. This would give me more control, cut out the Windows Dialer accessory and the awkwardness of the telephony API.
The source code for FUNterm shows how to do this and I hope to come back to it one day.