Title: Linksys WIP330 Review
Created: 31-Oct-2006
Modified: 31-Oct-2006
Author: L. Baldwin

On October 17, 2006, my wife an I planned to leave for Europe for a two week driving tour of France and Italy. We both run small businesses and the thought of going anywhere with no means of communication back home is stressful, never mind when you traveling internationally...this is especially the case with my wife as she is a Realtor where phone communications is critical. My fear was being somewhere in Italy with an urgent need to call home and not being able to, at least not inexpensively. I could only imagine how much more stressful it would be dealing with a problem when we were racking up $1-2/minute using one of the prepaid cell phone options...not to mention that we'd have to shell out nearly $100 to get prepaid SIMs that would cover both France and Italy.

I had heard about the super bleeding edge technology called Wireless VOIP...wouldn't it be great if we could simply purchase a Wireless VOIP handset, connect into what must be a plethora of open wireless access points (ok so let's ignore the ethical issues for a moment), and use it to make FREE calls home and/or to make last minute hotel and restaurant reservations while sipping a Cafe au Lait!

As it happens, I had just finished staging my first Asterisk (VOIP) server for a client so I already had a critical component that's needed to get this all to work. Additionally, I happen to be a network forensics consultant with a fair amount of VOIP packet analysis under my belt..if anyone could get this all to work, who better than me. So I decided to roll the proverbial dice and take the Wireless VOIP plunge....literally days before I was leaving for Europe.

Early October 2006 - Setup Asterisk

In the above diagram, we have an Asterisk server with two NICs (network interface cards) connected to a consumer Comcast cable modem connection (6Mbps downstream, 384Kbps upstream). I used a second NIC so that the Asterisk server could be assigned it's own public IP address and I could eliminate NAT from at least the server side of the equation. I presume that one could get this working with server-side NAT as well, but given my time constraints I needed to simplify things. Note: I subscribe to Comcast's additional service which provides me up to 5 public IP address on one cable modem connection...this kind of option will be necessary if you want to connect other devices to your Internet connection besides Asterisk.

Asterisk allows you to connect phone "lines" to it in a variety of ways. Normally this involves purchasing special purchase telephony hardware to provide 1 or more physical phone lines which to connect analog (e.g. RJ11) or digital T1 telephone circuits. However, a more economical and flexible route it to utilize SIP Trunking which allows virtual phone "lines" (or "trunks") to be provisioned via a simple TCP connection to a remote SIP server.

My client had purchased commercial grade VOIP services (using SIP trunking) from Level3. This was great is it game my little test server access to extremely high quality VOIP services (note: I'm not even sure what the cost/minute is for using these trunks, but I presume it's a few pennies/minute for US calls). My strategy was to use these trunks for placing US calls only so I could get great quality for a reasonable price. I setup my dial plan so that any outgoing calls prefixed with 92XXX... would use my Level3 trunk.

I utilize Vonage for my home office phone service and last year I signed up for their softphone feature for an extra $10/month...this is the only way to acquire SIP credentials (a username and password) from Vonage which is required to enable a foreign device (e.g. an Asterisk server or Wifi Phone) to authenticate with Vonage and make calls WITHOUT the normal Motorola, Cisco, or Linksys Vonage voice router. As it happens Vonage calls to France and Italy land line numbers is free with my flat-rate Vonage plan. My strategy here was to use the Vonge trunks for making International calls...like to call a restaurant or hotel in France or Italy. I setup my dial plan so that any outgoing calls prefixed with 98XXX... would use the Vonage trunk.

During my research for this project I had heard outbound another SIP trunking option called Gizmo Project. They have a software client that enables you to make phone calls from a laptop or computer, however, as it uses standard SIP under the covers, it's also possible to configure your Gizmo account credentials as an Asterisk trunk. As their US and International long-distance rates seemed great I figured I'd set that up as a third trunk to provide some backup to Level3 and Vonage. In the end, Level3 and Vonage worked so well that I never needed to use Gizmo so I won't be saying much about it from this point forward.

Though Asterisk server is NOT absolutely necessary to utilize a wireless VOIP phone, its one way to work around the major technical challenge of this project--namely NAT traversal. to using the system was physically connected via my Comcast cable modem connection (6Mbps/384Kbps), it was setup with commercial grade SIP trunks from Level3. I also had secondary SIP trunks configured to it using my Vonage Softphone account and project Gizmo.

October 10

I began my Wireless VOIP research here Voip-info.org and despite some negative comments I decided on the Linksys WIP330 primarily due to the phones built-in web browser...thus enabling logins via paid access points (something I didn't plan to use) and the ability to accept Terms of Service for open access points that require this.

My main hesitation about purchasing this phone was the well documented lack of support for the STUN (Simple Traversal of UDP over NAT) Protocol. Although STUN is not a solution to all NAT scenarios, I had hoped that it help the phone work in at least some of the NAT environments are was sure to encounter (it's pretty much a given that every open access point will be utilizing NAT). However, others had documented approaches that supposedly worked around the NAT problem as documented for phone with similar challenges (Nokia E61) here, so I dove in.

October 13

I received my new Linksys Wip330 and salivated as I let it charge overnight to hopefully avoid any battery life problems some have talked about. I did checks its software version...despite being promised by the supplier that it is very "new" stock and will have the latest firmware, it was loaded with v1.0.0. I then proceeded to spend the rest of the day researching firmware options and caveats. Interestingly V1.01.00 version adds Skype and MSN support, however, once you upgrade to that version you can no longer downgrade. Given that restriction, I decided to upgrade to V1.00.06a first and see if I could get that working first before committing to V1.01.00.

October 14:

I upgraded the phone to 1.0.6 with no problem. The main caveat I can see with this version is that you can no longer modify the SIP settings on the phone via the phone menus...rather it only shows you the name of the SIP profile and you can only change the settings by using a web browser on an second PC. I did try to use the web browser on the phone to do the same, but it seems like the Windows CE browser isn't very compatible with management web pages... that seems like a major oversight on Linksys's part. No matter, I configured the SIP settings to point to my Asterisk server.

The phone was able to register with no problem, however when I tried to make calls I had the classic "one way audio" problem. By connecting a packet analyzer (Ethereal) to my WAN Hub I was able to see that despite configuring the Wip330 extension as "nat=yes" the Asterisk server was sending the first set of outgoing RTP stream to phone's private IP address instead of its Natted public IP address. For some reason inbound RTP packets from the phone were coming into my cable modem connection, however, the destination address was to one of my other Comcast IP addresses...NOT the one I had setup for Asterisk. I go to bed in disgust.

October 15-17:

I spent at least 6-7 hours over the next couple of days looking at this, presuming that this phone simply won't work behind NAT. First I try the Gizmo/Pbxes setup...taking my Asterisk server out of the picture completely. I am able to make a call, but the quality is not so good and I get disconnected after 10 seconds (not sure if this is a limit of PBXes "free" account...their documentation is not too clear).

Next I try to see if I can get the phone to SIP registry *directly* with Vonage...I reconfigure the SIP profile and put in Vonages SIP servers and my softphone credentials...it works!! I'm able to make calls....however, I really want to get the phone working with my own server so that I can make calls using any trunk I want, instead of being tied to Vonage.

I spend some more time looking at packet traces to figure out why the Linksys was sending the RTP to the wrong IP. Finally, I realized that I had previously had the Asterisk server set up with one NIC and natting out my primary Comcast IP...and I had hard coded that IP as the "public IP" in the Asterisk config despite having moved the server to it's own dedicated public IP on the second NIC. The bogus public IP was actually sent to the Linksys during the SIP registration process, which is why the phone was sending to that IP. As soon as fixed up the Asterisk config and re-registered the phone I was able to make calls and have TWO-WAY audio!! This was good timing as I had to literally jump in the car for the airport in 30 minutes.

It's interesting to note that the "nat=yes" extension setting does not perfectly solve the problem. Because the WIP330 doesn't know anything about Nat, it still announcing it's private IP and port number for the RTP stream during SIP registration. As such, the Asterisk server actually sends the first few packets of the RTP stream to the private IP (which go no where), then once Asterisk sees the inbound RTP stream from the phone, it modifies the destination IP and port number and replaces with the source IP and source port number it sees from the inbound RTP stream. This is why you may notice that you miss the first .5 to 1 seconds of ringing that the Asterisk server produces at the very beginning of a call.

October 18:

I fire up the phone within the CDG airport in paris...I find an access point and can surf to it's sign-on page, but its a pay service so I put the toy away for now. We catch the Air France bus to Orly to catch our second flight to Nice...by the time we get to our hotel we're beat and crash.

October 19:

I get up at 08:00 and figure I'll hit the streets of Nice to do a little bit of access point recon while my wife catches a bit more shuteye. I'm two steps out the door and the WIP330 is picking up wireless access points (WAPs) galore...Wanadoo_034212, Livebox_23134, etc. There's only one problem, they are ALL secured (WEP/WPA enabled). I spend the next hour roaming residential streets of Nice...I easily find 100+ WAPs, but the nearly ALL secured. I find a couple (e.g. 'orange') that are not secured, but when I try to connect I fail to get an IP. I'm not sure if this is a signal strength issue (most WAPs I find only have 1 bar of strength) or of I'm finding seemingly open WAPs that have some other security enables (e.g. MAC address filtering).

Being in the security field and knowing the pitiful level of security of US-based WAPs (I probably still see 40% without WEP/WPA enabled) I'm blown away by the fact that 95% of the WAPs I find here are WEP/WPA enabled. I'd be curious why others think this is the case (I doubt the average European is more security-aware than us stupid Americans)...I suspect it's due to the prevalence of DSL in the places like Nice as compared to cable modem connections. Since cable connections enable plug-and-play wireless router installs (which default to open), they are more likely to be mis-installed by end-users. Whereas I don't think the average DSL has the technical capability to purchase and setup an WAP themselves and thus they depend more on provider installed WAPs, then are then secured by a more clueful technician.

Continuing my stroll through nice, after 30 minutes I find a McDonalds with a "Free WIFI" sign on the door. Sure enough I'm able to pull an IP from it, however, it auto launches my browser and I'm shoe-horned into an online survey that I must presumable complete before getting access. I *am* able to navigate using the phone, but after the 5th page and 20th question my thumb grows numb trying to frantically speed through this...I eventually give up as the survey seems never ending.

It's been about 30 minutes now, so I start circling back to the hotel and finally find an access point called something like E2NUF_Telecom...for the first time I'm able to pull and IP address and surf...the phone also SIP Registers with my Asterisk server in Atlanta. As it's only 4am in the morning in the states, I try calling my office line to check my voice mail...IT FRICKIN WORKS!!! On one hand I'm elated that I was successful, on the other hand I'm totally disappointed as it's going to be totally useless if it takes this much effort to find an open access point. I shut off the phone and head back to the hotel.

A few hours later my wife and I decide to walk from our hotel (Old Nice) to the Chagall museum...she wanted to call home of her mom to let her know we landed OK. On the way, I scanned and scanned and couldn't find any access points, however, on the way back down from the hotel you are on an elevated road with 3-4 blocks of apartment buildings staring back at you 3-4 stories up...if I couldn't find an open access point here it would be time to throw in the towel. Sure enough within a couple of minutes I'd found another open WAP and got connected. My wife called her mom's number, got connected and was able to have a decent conversation with her mom...there was definitely some hick ups, so dropouts..often a noticeable delay, but it wasn't half-bad.

October 20:

In the morning I head down to the in-town EuropCar office to pick up our rental car...we check out of the hotel and hit the lower corniche on our way towards Italy. First stop, Monaco...what a pretty place. We park the car and head to the casino...I've been here before but only gambled at the Lowes, not the classic casino...this time I'm determined to go AND lose at least a few Euros. We find that the casino doesn't open for another 30 minutes so we stroll around Monaco, grabbing a pastry to kill some time. I check out the open WAP scene..I find plenty, but again can't pull an IP from any...Monaco's a Wifi VOIP bust. The casino opens, we gamble, drop 60 Euros (including "admission") and boogie. On the way out I drool at the jet black Ferrari Enzo parked in the "elite" space right in front of the casino. We had back to the car through the "mall" where my wife stops to use the ladies room. While I'm waiting, I can hear someone fire up the Enzo and drive off with a throaty Ferrari roar. Just hearing that was worth the 60 Euros.

We leave Monaco and again head towards Italy stopping at the little sea-side town of VilleFranche for lunch. Again we find tons of access points, but they all slam the door in our face. After lunch we head into Italy and make our way towards Lucca. We only make it as far as Santa Margherita Ligure just outside of Portofino where we check in to a B&B recommended by Rick Steves. As it's been a few days now my wife is anxious to call her business partner as this is the first time she's been left on her own. We take literally 50 steps out of the B&B on our way to a restaurant for dinner and bam we hit a great AP with 3 bars of power, phone registers immediately. She places the call to her partners cell phone using the Level3 trunk and she gets connected no problem. Call is rock solid and extremely clear...it's so good, she talks for 30 minutes can gets caught up on everything...it was awesome.

October 21:

After breakfast we pack up and head out of Santa Margherita planning to make it to Lucca today. Before we get back on the A12 we figure we should hit up an ATM in Rapallo and at the same time try calling a few of the B&Bs in Lucca we were considering. There were no APs near the ATM we found, however, as we headed toward the A12 I just kept hitting the AP scan buttons on the phone and saw one pop up as we passed an intersection. A quick Uey and impromptu parking job up and the curb and yet again the phone registered...man, how much easier this had been than Nice! One of the three Lucca B&B options was expensive but it sounded really cool (15th century building, beamed ceilings, etc.) so we figured what the heck let's call them first. So I called, this time using the Vonage trunk (for free Italy land line calls)..got connected immediately...the owner confirms that they do have ONE room available, but there is a slight problem (very little hot water in the shower) and since it's Friday it can't be fixed until Monday. Due to this "problem" he offers us the room for 75 Euros vs. the normal 125 Euros...I didn't know how to say "hell, yeah" in Italian, but somehow he understood me. This was very cool as I hadn't even thought about the additional last-minute bargains real-time communications would afford us...maybe I'd make back the 300 bucks I blew on this toy yet.

We get to Lucca and call the owner of La Romea from the tourist information building just inside one of the gates to this walled city. He met us with his car and guided us to where we would be parking the car, then loaded our luggage in his car to drive over to the B&B. Yeah, it was as amazing as it sounded..fantastic place right in the heart of this very romantic walled city...oh yeah, did I mention he had DSL with an open Dlink access point...I was in heaven. Ironically, I could only use the Linksys from within the common area as the ridiculously think ancient walls made it impossible to sync up with the AP. Again, no problems registering the phone...made a couple of short "test" calls...delay was real noticeable and did get a lot of skips and dropouts. I asked the owner why speed DSL he had and he didn't even know as he wasn't that technical...I'm also suspicious that his AP was being hijacked by some scum bag neighbors (gesh how hypocritical can you get).

October 22-24:

We stayed in Lucca for 3 nights, using it as a base to visit Pisa, a bunch of hill towns, and a daytrip by train into Florence. Didn't have much use for the phone but it was again pretty useless in the medevil cities.

October 25:

After breakfast we use the Linksys to call a small Hotel in St.Paul de Vence, France (just north of Nice) and are able to make a reservation no problem. We head out by car for the days drive from Lucca to Vence, passing through the fantastic Cinque Terra towns along the coast. (Phone is again useless here). Around 6pm we arrive in Vence, checkin to our hotel and walk to the walled city of Vence for dinner. Ok so no go on the phone here either, however, the food more than makes up for it...we stop at a small restaurant and I end up having the best Duck a L'Orange I've ever had and top it off with a 40yr old vintage armangnac that was to die for.

October 26:

We decide to head in the general direction of Arle..spent a few hours on the back roads and then jumped back on the autostrade as it was starting to get late.

I've got another week of Wireless VOIP fun to document, but my fingers grow tired...stay tuned, I'll finish this as time permits.