Mission accomplished – VoIP Softphone for Mac

One of my greatest frustrations with Mac has been the lack of a VoIP SoftPhone. To be completely clear, when I say VoIP SoftPhone I mean that the way you would mean “email client”. I’m not interested in a SoftPhone tied to a particular service provider or network.

This search has been frustrating me for almost two years now. In that time I’ve tried and rejected so many SoftPhones I’ve lost count. I know I’ve been to Pure-Mac’s VoIP page about 600 times. I’ve also been to VoIP-Info’s phones page about 600 times. I’ve tried everything from CounterPath to Ubiquity and had not found any SoftPhone that was both high quality and configurable.

I’m happy to say the search is over. iSoftPhone from Call4Mac is a robust SIP SoftPhone. It supports everything you would expect and enables peer to peer calling on the LAN via Bonjour. Configuration is a snap (see screen-shots below) and the implementation of SIP is flawless. I’ve connected iSoftPhone to OpenSER, SER, Asterisk, BroadVoice, Teliax, and Gizmo with no issues.

Perhaps most importantly, the call quality is excellent. Even over wifi on my MacBook Pro – with the usual complement of just about everything running – the call quality is excellent, even with the built in microphone/speakers. There is a slight echo for the other party, but this is easily overcome by plugging in headphones and using the built-in microphone.


Admittedly – this is for the geek crowd or the SMB IT folks. If you don’t have a SIP server/PBX Skype/Gizmo is still the right choice for you. But having said that, this SoftPhone is as easy to install and configure as the average email client. This makes it ideal for those who have a VoIP account/server and Mac Clients in their house/organization.

Video: VMware Fusion Developer Tips and Apple after Steve Jobs

Another day another video blog post. And I’ll say it again… however Vimeo selects the static frame… not working for me… what am I catching flies!!!

UPDATE: Well great, my first complaint with Vimeo – they totally hosed this when they encoded it… video/sound way out of sync. Sorry about that folks – this is a work in progress.

Well, good news. I’ve upgraded to Vimeo plus and I can now set the static frame (so I don’t look like I’m sneezing) and control the video size/framing. Enjoy.

Video: VMware Fusion Developer Tips and Apple after Steve Jobs from Brian Roy on Vimeo.

Skype begins un-walling the Walled Garden

I’ve said it before – and I’ll say it again. Walled gardens are great for developing a market – but the outcome is inevitable (barring anti-competitive regulation). The walls fall.

Skype announced yesterday that they are introducing a Skype interface (know as a channel driver) for Asterisk. This is great news – it enables Skype to work within the larger VoIP environment.

I’ve applied to have cosinity beta test this solution – it will allow us to use a Skype account as a business “phone number” for page2call. Hopefully Skype won’t attempt to defend their network in the Terms or EULA.

Jingle Networks Launches Voice Ad Network


Thank you for calling <insert big company name here>. Your call is important to us. While you are waiting we will now subject you to ads for products from <other big company name> for which you have no need, did not call to get information about and which you will find utterly annoying. You see if you are impertinent enough to bother us about anything OTHER than giving us more money we will need to make money from you doing so… because – frankly – we really don’t give a crap if you annoy you… we just want your money.


Jingle Networks Logo

A few months ago, we wrote about Jingle Networks’ intention to start a voice ad network that would see companies that receive a high-volume of calls place ads during caller wait time. And according to the company, that service has launched today.

Known for its 1-800-FREE-411 service, Jingle Networks’ voice ad network will allow any company with high call volume to insert audio advertisements in their calls and attempt to take advantage of the company’s installed base of 130,000 advertisers. There’s currently no word on how the revenue will be shared between Jingle Networks and its partners.

In-call advertising is quickly becoming an important element in increasing revenue while callers wait. But the question remains: will wait times, which already annoy callers, upset them even further now that ads will be piped through the phone? You can bet on it.

[From Jingle Networks Launches Voice Ad Network]

I swear… when I read this I actually threw up a little bit.

The great IMAP migration…

Late last week GoDaddy finally pushed me over the edge… I just couldn’t take it anymore. I’m all for combatting spam… I really am, but when 60% plus of the emails sent to me bounce as spam/virus something has gone dreadfully awry.

So, I had to search for a new email hosting provider – and while I was at it I could right one of the major (non-email bounce) issues I had with GoDaddy – no IMAP support.

I reviewed several options… and came to the conclusion that Google Apps (for MY domain) would be the right choice. I only had one serious issue with this. I wanted gmail to provide my IMAP store. The challenge? How to migrate 20 accounts with all of the associated IMAP folders and emails to gmail.

Turns out there is no simple answer unless you opt for a premier account with Google – which will run you $50/user/year. The premier account has an IMAP migration tool (but no backup… keep reading). But here is what I settled on:

imapsync would handle moving my current IMAP store to Gmail. To save you some time here is the full command I used:

/usr/local/imapsync/imapsync –syncinternaldates –host1 <my_imap_server> –user1 <username> –ssl1 –password1 <pwd> –host2 imap.gmail.com –port1 993 –port2 993 –ssl2 –user2 <gmail user> –password2 <gmail pwd> –prefix2 ‘[Gmail]/’

Now that I had all of the old email moved to Gmail I only had one other issue… What if Gmail “went away”.

Minor Tanget:

An associate of mine said “You don’t have to worry about it… Google will never go away. Backing up Google is silly.” – to which I respond:

Isn’t that what we thought about aol?

End of Tangent.

So I needed to find a solution that would allow me to keep all of my Gmail IMAP folders and emails copied in a reasonably secure way – ensuring that if I ever needed to move away from Gmail I could without losing anything.

Initially, I tried imapsync again to sync my Gmail data back down to my IMAP server. This, however, was not practical. imapsync’s primary attribute is not speed. It is not a high speed backup/sync solution… it is a bullet-proof solution. That made it:

  1. Way too much overhead for my needs
  2. Way too slow for my needs
  3. it is written in Perl – personal thing here but ICK.

I also looked at offlineimap (which I had looked at for the initial migration as well… but it has no ability to “dry run”- which was too big a chance to take). The advantage of offlineimap is that it “syncs” your IMAP to a Maildir (which – conveniently is my dovecot IMAP server’s file structure). This makes it much faster than doing IMAP to IMAP synchronization. Here are some other advantages:

  1. Runs as a daemon with defined intervals at which to sync accounts
  2. Supports multiple accounts
  3. Supports “quick sync” to only sync if a maildir has changed
  4. Python… giant step up from perl

NOTE: Why wasn’t I concerned about no “dry run”? Because I was creating a backup of the GMail IMAP folders and emails in a simple directory on my server. If the run went bad… just delete the directory and try again. I was also certain I had told offlineimap NOT to delete or expunge anything from my GMail account.

Again, to save you some time, here is my offlineimap config file:


accounts = brian.cosinity, brian.brianandkelly, brian.briantroy

metadata = /etc/offlineimap/.offlineimap

maxsyncaccounts = 3

ui = Noninteractive.Basic

[Account brian.cosinity]

localrepository = Local.brian.cosinity

remoterepository = brian.cosinity.gmail

autorefresh = 120

quick = 10

[Repository Local.brian.cosinity]

type = Maildir

localfolders = /u02/gmail-imap-backups/brian.cosinity

[Repository brian.cosinity.gmail]

folderfilter = lambda foldername: foldername not in [‘[Gmail]/All Mail’]

type = IMAP

remotehost = imap.gmail.com

remoteuser = <gmail_account>

remoteport = 993

ssl = yes

remotepass = <gmail_password>

[Account brian.briantroy]

localrepository = Local.brian.briantroy

remoterepository = brian.briantroy.gmail

autorefresh = 120quick = 10

[Repository Local.brian.briantroy]

type = Maildir

localfolders = /u02/gmail-imap-backups/brian.briantroy

[Repository brian.briantroy.gmail]

folderfilter = lambda foldername: foldername not in [‘[Gmail]/All Mail’]

type = IMAP

remotehost = imap.gmail.com

remoteuser = <gmail_account>

remoteport = 993

ssl = yes

remotepass = <gmail_password>

[Account brian.brianandkelly]

localrepository = Local.brian.brianandkelly

remoterepository = brian.brianandkelly.gmail

autorefresh = 120

quick = 10

[Repository Local.brian.brianandkelly]

type = Maildir

localfolders = /u02/gmail-imap-backups/brian.brianandkelly

[Repository brian.brianandkelly.gmail]

folderfilter = lambda foldername: foldername not in [‘[Gmail]/All Mail’, ‘[Gmail]/System Email’]

type = IMAP

remotehost = imap.gmail.com

remoteuser = <gmail_account>

remoteport = 993

ssl = yes

remotepass = <gmail_password>

What this does is backup 3 gmail accounts (brian.cosinity, brian.briantroy, and brian.brianandkelly) to /u02/gmail-imap-backup/<folder>. These accounts are backed up every 120 minutes. Also, every 10th sync is a full sync – so only once per day (every 20 hours) does offlineimap fully sync the accounts – the other syncs are “quick”.
You can check out the offlineimap wiki for more information about each directive in this config file.
This solution works for me. If you are looking for true dual synchronized IMAP servers you would have to go a bit further that what I’ve done here.
Now – with any luck – Google Gmail will never go down and I’ll never need any of this… but I’ll sleep better knowing it is there.

Gartner Hype Cycle… if you buy into that kind of thing…

If there is one thing I learned at Fortune 500 – it is that Gartner is the ultimate CYA for CIOs.

I’m not saying that Gartner doesn’t do quality analysis… it just seems to me they are always “fighting the last war” as it were…

Gartner is the best way to ensure your choice is perceived as safe by the executive suite and board of directors… if you are into that kind of thing…

New technologies tend to follow different trajectories of hype, hope, and despair as they are discovered by different groups of people and finally adopted (or ignored) by consumers. Gartner actually goes ahead and charts this hype cycle for different technologies. Its latest hype cycle for 2008, shown above, is making the rounds. (It was released in July, but is just now reaching the upward trajectory in its own cycle). According to Gartner’s view of the world, the visibility of new technologies peaks early as initial excitement gains steam. This phase is followed by a “trough of disillusionment” in which inflated expectations hit reality. But as technologies prove themselves, their visibility begins to grow again at a more measured pace.

[From Where Are We In The Hype Cycle?]