Last time, I discussed the motivations for this project - low-cost voice communication via Wi-Fi from anywhere - or, well, almost anywhere. This time, here's a look at the software and services involved.
The particular MUC solution I'm using is based on the free and open-source Asterisk IP PBX, in my case hosted on a VM at Amazon, and which provides both PBX functionality (dial by extension, voicemail, etc.) for my workgroup and bridging ("outside lines") to the PSTN. Different service providers are used for the inbound and outbound PSTN connections, but the cost of these services is astonishingly low - we're paying, for example, between US$.00098 to about US$.0045 per minute, depending on the originating or terminating peer's charges, or literally pennies per hour (!) for outbound, and in relatively low volumes. Calls between workgroup members, involving to interconnect, are basically free. So, assuming one can get reasonable Wi-Fi connectivity (we need about 40 kbps and voice-class latency behavior), one can make calls anywhere such connectivity is available - anywhere in the world - with what is essentially one's office phone, and exceedingly inexpensively. Those are the basics, anyway, of MUC - your office phone, anywhere, on Wi-Fi.
The client at present in my case is the free version of Zoiper Mobile on my iPhone 5. Setup is simple, assuming your SysAdmin gives you the necessary credentials, as is operation. Voice quality in every case so far has been astonishingly good - better than cellular and any landline I've ever used, and as good as or better than Skype (no surprise there, I guess). Many remarked that I sounded like "you're in the same room" - yes, that good. And I've set it up so that incoming calls ring both the IP phone on my desk (a Polycom SoundPoint IP 550) and the Zoiper instance simultaneously. Given the intermittent nature of the connectivity available during my time in Europe, I did not use and thus did not test any inbound dialing, but it's easy to set up an inbound number both as an extension and via direct inward dialing (DID).
Zoiper, however, is not perfect - it does integrates with the iPhone's contacts, but it doesn't add a "9" and a "1" automatically, so such functionality isn't as useful as it might be. DTMF was also problematic from time to time, with the "3" required to delete FiOS voice mails sometimes bringing up the videoconferencing screen rather than transmitting the necessary tones. Small bugs and configuration errors, such as the case may be, are to be expected given the level of maturity of the technology. One great feature of Zoiper is its ability to use random ports for SIP, IAX, and RTP, in the event that some element of the food chain tries to block ports to prevent just what I was trying to do. But we also discovered a few configuration errors of our own during this project in the form of blocked IP ranges on the Asterisk side that may have prevented communications in some cases during this study; all of this is fixed now. Since returning to the states I've been using this solution with no issues. To be fair, I did notice occasional, very minor glitches in voice quality, but such occurs even on cellular, so no complaints there.
One minor problem in doing this testing was that I didn't have my usual basic Wi-Fi toolset with me - AirMagnet WiFi Analyzer and a Fluke Networks AirCheck WiFi Tester. My suitcase was full, and the security teams at airports are often unforgiving of nerds like me who travel with more transistors than they have. BTW, it would be great if AirMagnet ran on OS X (I brought my Macbook), but I digress. Some simple (and free) IP tools are available for the iPhone; these helped a little and I'll return to them in a subsequent blog entry. But I did wonder at times what was going on in Wi-Fi land, especially when iOS reported "unable to connect to network" or some similarly-useless error message.
The general algorithm for testing was (a) find open Wi-Fi SSID, (b) attempt to establish connection, and (c), if (b) was successful, make calls. And three of us (see the credits when the last entry in this series is posted) made calls to the office, voicemail, friends and family, and even to American Express to set up a PIN for my card (do not go to Europe without PINs on your credit cards; they're way ahead of us on the authentication front); really, anyone we could think of - hey, for (roughly) $.06/hour, why not? I was instructed to beat up on the implementation, and I did wherever and whenever possible.
BTW, in case you were wondering - AT&T charges $1.50/minute for voice roaming in Europe. The cruise ship charged $1.99/minute for voice service through a geosynchronous satellite. Using your own cell phone to roam to the microcell on the ship and then through that same satellite is $2.50/minute. Internet access on the ship is by time connected, not data trasferred! On land, AT&T offered 300 MB of data for $60, and I did see an SMS on my phone at one point that cellular data in Estonia is US$20.48 per MB. Really? C'mon! Why are we still being ripped off like this?
Next time: the results.