Integrating phones and PCs has been talked about for a long time now, but it’s rarely done well, if at all. I couldn’t even find any examples of this sort of integration in a quick web search - so we’ll use some softphones for our examples.
Designers seem to think that when using a phone via a PC, we want it to look like a phone! For some crazy reason, we’ll want to press keys on screen that look like the buttons on our phone, and we’ll want the same display. The reasons for this are obvious: The user is “used” to this interface, or the designers have simply ported the in-phone firmware to a PC, and wrapped it with an image of the phone. Or, maybe the phone started out as a lab simulator, got seen by marketing, and turned into a product.
Here’s a couple of examples:
Cisco

And Avaya:

These lovely bits of s/w engineering are great for debugging your phone programming, but suck as a phone replacement, even if you’re on the road. Who wants to look at a HUGE image of a phone on screen, even in Cisco’s “Screen-Only” view!
These things are hard to dial, hard to manipulate, and just plain huge!
The buttons on a phone are designed to be easy to press with your fingers, to provide tactile feedback, to be designed for the size of average fingers and hands, to be easy to manufacture, and to fit in your office. NONE of this translates to an effective UI on a PC screen.
Trying to take those design values, and building a PC-based phone is just silly.
What we did:

- We built the tiniest app we could,
- We started with a bunch of buttons, but quickly narrowed it down to two,
- We integrated with Active Directory and your Outlook contacts, so your phonebook is always up-to-date and accessible,
- We integrated with LCS and MSN Messenger for presence,
- We integrated with MSN Desktop search - so you can find things like files and emails based on caller ID,
- We pause your music when you’re on the phone,
- We’ll pop up an extremely unobtrusive toast window when an incoming call occurs (you can turn this off),
- If you want, we’ll open an Outlook contact, or do an MSN Desktop search on incoming call,
- You can drag a phone number into the wee text box, and we’ll dial it,
- You can highlight a number in ANY APP, and click one key - and we’ll dial it,
- We set your MSN presence to “On the phone” when you’re on the phone,
- We’ll set you MSN presence to Do not disturb when you set Do not disturb on your phone, and visa versa,
- And, we made it as small as possible!
- And, we made it smaller! This app runs down in your taskbar, or can be run completely from a tray icon!
Simply type a couple of characters of the first or last name (or company) of the person you want to call, and immediately, a list pops up with all the matches!

The app searches your corporate Active Directory and your Outlook contacts. It finds all phone numbers and pops ‘em up. Now, simply choose a number and click or hit Enter.
When you’re on a call, you can control the phone, put calls on hold, hang up, all from this wee UI.
When an incoming call occurs, the Caller ID is shown in the text box. You’ll see the caller’s name and number. You can create a contact with a click, do a MSN Desktop Search, program a speed dial, all with a click or two.
We think this is desktop telephony done right!
This application is available at the end of March for the Mitel Navigator, and a few weeks later for the new Mitel 5300 phone sets.
Update:
You can find the Mitel Navigator version of this application HERE.
You can find the Mitel 5330/5340 version of this application HERE. (soon)