Originally posted on Tom Keating’s VoIP & Gadgets Blog.
With more softphones on the market than you can shake a stick at, each with their own “island” of users that cannot bridge to other islands, I've become a bit disillusioned with the VoIP softphone market. Sure, there is talk about interoperability, support for SIP/SIMPLE, XMPP support, etc. but we still don't have a single unified client that can speak to Skype users, AOL/AIM users, ICQ, Google Talk, MSN Messenger, Yahoo! Messenger, etc.
Although software such as GAIM is a multi-protocol client that aims to unify all of these IM/softphone clients, it too is incomplete. For one, it was designed mainly to handle instant messaging (IM) and not voice or video. A branch of the open-source project called GAIM VV was started to work on adding voice and video support, but it appears to be a dead project since the last posted news was October 2005.
This lack of a single unified client means I have to have about five IM/softphone clients running on my PC, which uses more memory, requires more time spent keeping each client up to date, uses more hard disk space, Registry bloat, and other inconveniences. It got me thinking, though; what features would I like to see to create the perfect VoIP softphone and IM client?
And so, here is my “wish list” for the perfect softphone/IM client:
1. Support for SIP (obviously)
2. Ability to map multiple inbound numbers (212-555-XXXX, 800-555-XXX) to the softphone. This way you can have your “personal” phone line for family/friends and your “business line.” I'd like each phone line to have its own distinctive ring to indicate the inbound number called in case you are away from the softphone/PC. You will obviously greet the caller differently depending on the ringtone.
3. Related to the feature above, I'd like the ability to have different greetings depending on the number dialed. For instance you can have a business greeting for your business phone number and a personal greeting for your personal phone number. You can take this one step further and have customized greetings depending on the CallerID or buddy calling you.
4. Customizable ringtones depending on CallerID or buddy calling you.
5. Support for XMPP to interoperate with other XMPP-compliant softphone/IM clients.
6. Multi-protocol support to communicate with other IM clients that doesn't follow industry standards.
7. Firewall NAT-traversal friendly.
8. Video capabilities with H.264/AVC/MPEG-4 Part10 support
9. Support for at least a 4-way videoconference with minimum 10fps.
10. Message Waiting Indicator (MWI).
11. Call log.
12. Call recording of BOTH audio and video (if applicable) into standard MP3 for audio and .avi or Shockwave formats for video calls.
13. Ability to record the beginning of the call even if you decide to click the Record button later. (Call buffered hard disk and deleted if you decide not to record.)
14. Really COOL feature: Streaming of my personal video and audio files to my buddies. Think Slingbox or Orb Networks.
15. Drag-and-drop Instant Upload & Instant Streaming. I want the ability to simply drag-and-drop any media type (photo, music file, or video file) and it will instantly stream or appear on the remote user's screen.
16. If the provider of the softphone is a cellular carrier or even if they simply OEM it, I'd like the ability to run the softphone on the mobile phone and for it to be my unified call control application for both PSTN and VoIP calls as well as SMS or instant messages.
17. Skinnable with ability to add custom buttons mapped to specific functionality.
18. Can use any standard MP3 or .wav file for customizable ringtones WITHOUT having to pay to download them. Of course, the softphone provider can also provide “paid” ringtones - just don't lock/force users to use paid ringtone downloads.
19. Support for VAD (Voice Activity Detection), AGC (Automatic Gain Control), and CNG (Comfort Noise Generator).
20. Support for registering to an unlimited number of SIP registrars (termination providers).
21. Some sort of Least Cost Routing (LCR) based on your user-defined rules (time of day, country destination code, special promo offered by a SIP provider, etc.) that will dial-out using the least expensive SIP termination provider. Perhaps even ability to import the rate tables in XML format on a daily or weekly basis would assist in LCR.
22. Support for the popular Asterisk open-source PBX, including IAX.
23. LDAP directory support.
24. Outlook integration.
25. Ability to create Groups (Family, Friends, coworkers, MIS Dept, etc.) and instantly launch a conference voice or video call to a specific group.
26. Ability to schedule conference calls from the softphone and invite attendees, with that info routed to Outlook Calendar so it can automatically set up the call when the time arrives.
27. Remote Webcam viewing. Most softphones require a human at the remote end to answer the video call. I want the ability for the remote end to automatically answer the call so that I can remotely call this softphone using a buddy name, SIP URI or IP address with a special parameter passed that tells the remote softphone that I wish to initiate a webcam viewing. No, this isn't for spying on the spouse. This feature would be cool to use to remotely check on your house or as a cheap man's security system.
28. Initiate a remote desktop or screen-sharing session. Can't tell you how useful it is to be able to troubleshoot family/friend's PCs.
29. Throwaway Alias IDs (usernames) so you can post these aliases as "click to call buttons" on blogs, MySpace.com or other websites without giving away your regular username. So if you get spammed (SPIT) you can just post a new alias.
30. A “white list" of allowed people that can call you, and a personal “black list” to block spammers. Perhaps even a “shared” blacklist similar to the DNSBL (DNS Black List) that is used to block email spam by doing a simply DNS query.
31. Bonus feature: Initiate a game with one or more buddies and it will automatically tell the game software the IP addresses of each buddy.
Sure GAIM “unifies” several popular instant messaging services, including AIM, ICQ, MSN Messenger, Yahoo!, IRC, and Jabber, but it doesn't incorporate most of my wishlist items.
Another feature I'd like to see that is sort of Web 2.0-related. I'd like the ability to have better community search features. For instance: the ability to find your high school friends by searching by school name and year. Perhaps this could be achieved by a partnership with Classmates.com? I should mention that NetZero, now United Online, owns Classmates.com and NetZero already does VoIP. Perhaps NetZero will be the first to integrate Web 2.0 with VoIP 2.0?
In reality, an application that incorporates all of my desired features can’t really be called a “softphone and IM client.” My ideas/wishlist create something much more than your typical softphone/IM client. Perhaps the most apt description or name you could call this theoretical software would be to call it a “unified communications client,” since it marries the best of Web 2.0, VoIP, calendaring, gaming, sharing/collaboration, and more.
While some may complain about feature-bloat if such a software application was ever created, I would argue the fact that having to run 4 or 5 different applications that don't even talk to one another is even more bloated and doesn't have the synergies that I have previously suggested.
Do you have some suggestions for the perfect softphone / unified communications client? Contact Tom Keating here.
Tom Keating is CTO of TMC and Executive Technology Editor for TMC Labs. For more articles, please visit Tom Keating’s columnist page.