The Perfect VoIP Softphone and IM client

Tom Keating : VoIP & Gadgets Blog
Tom Keating
CTO
| VoIP & Gadgets blog - Latest news in VoIP & gadgets, wireless, mobile phones, reviews, & opinions

The Perfect VoIP Softphone and IM client

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 disillussioned 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. Although, 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 like 4-5 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... - Support for SIP (obviously)
- 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.
- 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.
- Personable ringtones - different ringtone depending on CallerID or buddy calling you
- Support for XMPP to interoperate with other XMPP-compliant softphone/IM clients
- Multi-protocol support to communicate with other IM clients that doesn't follow industry standards.
- Firewall NAT-traversal friendly
- Video capabilities with H.264/AVC/MPEG-4 Part10 support
- Support for at least a 4-way videoconference with minimum 10fps
- Message Waiting Indicator (MWI)
- Call log
- Call recording of BOTH audio and video (if applicable) into standard MP3 for audio and .avi or Shockwave formats for video calls.
- Will record the beginning of the call even if you decide to click the Record button later. (buffers the call to hard disk and deletes if you decide not to record).
- Really COOL feature:  Streaming of my personal video and audio files to my buddies. Think Slingbox or Orb Networks.
- Drag-and-drop Instant Upload & Instant Streaming. Related to previous feature. 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.
- 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.
- Skinnable with ability to add custom buttons mapped to specific functionality
- 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.
- Support for VAD (Voice Activity Detection), AGC (Automatic Gain Control), and CNG (Comfort Noise Generator).
- Support for registering to an unlimited number of SIP registrars (termination providers).
- 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.
- Support for the popular Asterisk open-source PBX, including IAX.
- LDAP directory support
- Outlook integration
- Can create Groups (Family, Friends, coworkers, MIS Dept, etc.) and can instantly create a conference voice or video call to a specific group.
- Can schedule a conference call from the softphone, invite others, and it will add it to the Outlook Calendar and automatically setup the call when the time arrives.
- 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.
- 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.
- 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.
- "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.
- (bonus) 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 and ICQ, MSN Messenger, Yahoo!, IRC, Jabber,  and more, but it doesn't most if any 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 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?

Conclusion
In reality, calling all of my desired features a softphone & IM client is a misnomer. 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 were ever created, I would argue the fact that you have 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? Post a comment


Related Articles to 'The Perfect VoIP Softphone and IM client'
webrtc2sip-click-to-call.png
Thumbnail image for logitech-uc-solution-cisco-725-c.png
amazon-voip-green.jpg
chrome.png

Featured Events