Dial from a shortcut or command line

Download a program that enables you to create an auto-dial phone book on your desktop

WARNING: Old software (older than the file dates suggest) that I have no interest in. Dial is supplied as-is and I discourage email about it. Read why if you want to pass a couple of minutes

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.

Image showing example dial.exe shortcut parameters

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.

The future?

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 complicated. Afterwards, it uses tapiRequestMakeCall() to pass the phone number to Windows, which handles the dialling process. My source code is included (Dial.cpp) if you want to see how that works or modify the program to suit your needs.

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 without an excellent reason, like somebody is paying me. And the odds are that nobody will.

The project status is 'probably dead'

I wrote Dial as a quick and trivial utility when I owned a modem. I got broadband in 2004 and have not owned a modem for quite some time.

Hence I cannot test Dial. Furthermore, I have no use for it, no interest in it, and if it was up to me, I'd retire the old boy.

People ask if I can do this or that. I used to comply with minor mods, often for commercial operations that did not offer pay for the work. So I stoppped doing mods. Even minor ones can eat a weary evening after the day job.

I like to be generous but there's being generous and there's being a bit stupid.

And for more than 10 years I repeatedly answered by email questions already answered on the web page from which my correspondent obtained the program. Unless they got it from one of those parasitic download libraries. I hate those outfits but will defer that rant for another time and place.

I don't even know how well the program works after so many later iterations of Windows.

So why not delete it and shut up, Mister Grumpy?

Because it must be useful to quite a few people, judging by the number of downloads. And I need to learn to be thick-skinned about the crap that comes from putting your work out there even when it is for nothing.

So the deal is that if you find Dial of value, you're very welcome but do not email me unless it's an offer to pay further development costs at UK rates. In return, Dial stays here for as long as the server logs say it should.


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.

Professional services

I offer professional services in software development. Find out more at IanSharpe.com.

OFFER - Get $10 to spend on a DigitalOcean VPS

IanSharpe.com and other sites I manage are hosted at DigitalOcean. I am happy to recommend this company for Linux VPS hosting.

I get a commission if you open an account through this link and stay a while. DigitalOcean will credit $10 when you add a payment method. That gets you a generous slab of Linux-based VPS hosting for nothing and helps support this site.

All material © 1986–2020 Ian Sharpe. Nothing may be reproduced or made available for download elsewhere without permission