I am on the road this week, working in Syracuse, NY. I recently replaced my desktop computer with a laptop to facilitate this sort of trip. My phone system is VOIP (voice over internet protocol) based so, in theory, it should have been easy to take it with me. This ended up being significantly more of an adventure than I ever dreamed.
By way of background, I have two phone numbers, one local and one toll free. The local number goes to an SBC phone line which comes into my home office and connects to a special card in a computer running the Asterisk@Home phone system. If the phone line is busy, SBC forwards the call to another number which is handled by VoicePulse Connect. Calls to the toll free number are also forwarded to the VoicePulse Connect phone number.
The Asterisk@Home phone system registers with VoicePulse Connect, essentially saying, “Here I am. Send calls to me.” Whenever a call comes into the VoicePulse number, VoicePulse transfers it over the internet to the Asterisk PBX. Regardless of whether a call comes in on the SBC phone line or via the internet, the Asterisk system answers it, presents a voice menu, handles voice mail, etc.
Arguably the most useful feature of the Asterisk PBX is that it routes the incoming calls to the phone on my desk. Asterisk accomplishes this by sending the call over the network in the office to a little box called a Sipura SPA-2000 phone adaptor which is plugged into the ethernet. My trusty old AT&T desk phone, which is plugged into the phone adaptor, rings and gently reminds me that my attention is required elsewhere than writing this article.
From a traveller’s perspective, magic can happen in the last step. Since Asterisk communicates with the phone adaptor via the network, there is no particular need for the phone adaptor and the PBX to be in the same building. In theory, you can take your phone adaptor anywhere in the world, plug it in, and your phone should work just like it does “at home.”
I decided to use a “soft phone,” rather than carry the phone adaptor and the telephone with me in my suitcase. The X-Lite softphone does everything phone adaptor + telephone combination does but it runs on my laptop computer. I picked up a lightweight Logitech headset, configured X-Lite, tried it in the office, and everything worked like a charm. Magic!
Being paranoid, I hauled my laptop and headset over to a friend’s office and tried the set-up. I was able to place and receive calls without a hitch.
With great confidence, I packed up my laptop on Sunday and took off in our plane for points east. Still unaware of looming trouble, I unpacked my laptop on Monday, plugged it into the network at the site I am visiting, hooked up the headset, and fired up Firefox to verify that I was on the net. Bingo! I could surf the web and even check my email.
I started X-Lite and watched with great anticipation as it… did nothing. Usually X-Lite comes right up and says, “I’m ready!” On Monday, though, it delayed for a minute or so and finally said, “Login timed out! Contact Network Admin.” Since I am the network admin, this was particularly depressing advice.
To make a long story slightly shorter, the problem ended up being the network configuration at the site I was visiting. Soft phones like X-Lite communicate with Asterisk using one of two protocols, either SIP or IAX2. For some reason, neither one would work from that site’s network. (I heartily thank Mark and Jim for going way above and beyond the call of duty in trying debug this and accomodate me.)
After spending a couple of hours trying every configuration trick I could think of with both Asterisk and the soft phone, I packed up, headed to my hotel, and tried again. To my great relief, everything worked perfectly on the first try. On Monday evening, I was able to use my laptop to place and receive calls through my office phone system.
My theory is that the problem was caused by the presence of both a NAT router and a firewall at the site. Architecturally, the non-functional configuration looked like this:
laptop -> NAT router -> firewall -> internet -> Asterisk
The problem was that both the NAT router and the firewall changed the apparent IP address of my laptop. Asterisk “knows” how to deal with one change of address, since both NAT routers and firewalls are common, but it cannot handle two changes of address.
Everything worked fine until Tuesday morning when I suddenly lost the ability to either place or receive calls. That second problem, it turned out, was caused by a long lasting power failure at home. Once power was restored and I got a neighbor to go and kick the recalcitrant Asterisk box, I was up and running and I am crossing my fingers that things continue to work.
Now that I have found a cooperative network (and XM Radio Online as well as my collection of MP3 files in iTunes), my travelling office is a delight and I am looking forward to more trips.