Wildernets for the MP02
Wildernets is alternative firmware for the MP02 that aims to widen the customer base for the MP02 by making initial configuration much easier and adding new features such as Instant Messaging support. So even if you are comfortable operating a SECN 2.X network (as most are on this forum), you may find some of the Wildernets features of interest.
Wildernets is based on the latest version of SECN 2.1 but simplifies both the initial and ongoing configuration making it possible for a user with few technical skills to get the network up and running quickly. In addition to SIP and POTS telephony, Wildernets supports Instant Messaging and local Web content service. Wildernets firmware is complementary to SECN 2.X firmware. It targets a slightly different user base than the traditional VillageTelco user but there is certainly a lot of overlap. Deployment assumptions for SECN firmware have generally included an entrepreneur with the technical “chops” to roll out the network and a user base that may have never had access to even basic telephony services. As we added support for softphone client software on smartphones, tablets, and laptops, the SECN network started to become useful for limited emergency services communications and small groups of users who need communications services in environments that are outside the range of traditional PSTN and cellular services. These users are likely to own smartphones, tablets, and laptops that become much less useful in those environments. With a Wildernets network, these devices become very useful again for calling or instant messaging other people on the network and browsing local Web content. Generally, these users already know the basics of downloading, installing, and using Internet applications on their devices but likely don’t know how to setup networks with IP addresses, netmasks, gateways and application services such as telephony and IM servers. Wildernets goal is to remove that impediment.
The Wildernets firmware targets only the MP02 and MP02-Phone models. When I started this project (over 2 years ago), I was trying to develop it for the MP01 and the same TP-Link devices for which we were developing SECN firmware. While working on the development of SECN 1.1, the only way we could get Asterisk to run on the TP-Link devices was to create an extension filesystem on USB. Getting Asterisk to run on a path other than the one compiled in was a pain. I repeated that exercise with Prosody IM a while after that and was never happy with how awkward it was. I think that model can work with the tech savvy VillageTelco operators but while trying to develop firmware that would be dead easy for less experienced users, I concluded that the USB extension filesystem (and variants like pivot-root and overlay-root) were non-starters from a support point of view. I also needed more memory than the typical TP-Link devices offer. When the MP02 arrived, I finally had what I needed in terms of memory, storage, and network interfaces to achieve the goals I had set for the Wildernets project.
A fully-featured Wildernets deployment can be done with just a single MP02 (with obvious limitations in range and user loading). Expanding the network with the addition of more MP02s is easily achieved since Wildernets MP02s are initially configured with just a paper clip. To keep deployment simple, all Wildernets nodes are loaded with the same firmware. With just a single MP02, all of the services (DNS/DHCP/Asterisk/Prosody IM/Web Server) run from that single node. As MP02s are added, the services are partitioned between the additional nodes, spreading the processing load and extending the reach of the network. The way the service partitioning is achieved is by setting the roll (or mode) of each MP02. The modes are numbered 0 though 5:
The current mode of the MP02 is signaled via the “World” LED in the MP02. Every three seconds, the LED will blink once, twice, three times, four times, five times, or not at all depending on its mode. So you can always tell at a glance which MP02 is running which mode (note the MP02 animated gifs above).
To set the MP02 mode, you simply click the recessed toggle button with a paper clip. Each time you click the button, the mode increments until it reaches 5 and then goes back to 0. Once you have the MP02 displaying the desired mode, just power-cycle it to activate the new mode. That’s all there is to it.
The Wildernets firmware includes a new “Global” configuration tab in the WebUI. The upper portion of the page includes a dynamic display showing all of the active nodes in the network.
For each active node, the following is displayed:
- MAC Address
- Host Name
- IP Address
- Current Mode (an * next to the Mode indicates the MP02 is a Phone model)
- Node Firmware version
Note that the Wildernets firmware uses DNSMASQ to allow the MP02’s running services to be addressed via host names instead of IP addresses. This simplifies configuration of the user’s softphone and IM client software and allows the owner/administrator to change the IP network address without affecting the client software configuration.
The SIP service is provided at address . MP02’s not running services (mode 0), are provided IP addresses via DNSMASQ/DHCP from the MP02 running in mode 1, 2 or 3 (known collectively as “Master mode”). If the user/administrator wants to discover those dynamically assigned IP addresses, the above Global panel can be consulted. If the owner/administrator wants to assign a static IP address to an MP02 with a DHCP-assigned IP address, they can just click on the IP address in the Global panel to go directly to the admin WebUI of that node where the IP address can be changed to the desired static IP address. Alternatively, if that MP02 is a Phone model, the address can be changed using the attached phone via the IVR (2662).
Wildernets also provides a set of Client web pages that provide information about the network, pointers to local Web content, and extensive help with the installation of the recommended SIP and IM client software on their Android, Linux, or Windows client device. The Installation help pages even include local pointers to download the recommended SIP and IM client software already stored on the local Web server. Unlike the Admin Web pages, these pages are intended for the users/guests of the network and aren’t password protected.
For the owner/administrator, the SECN WebUI has been enhanced with the Global tab. Besides the panel that dynamically shows all active MP02s, the Global tab also provides the ability to change a number of configuration parameters on all of the MP02s at once. This makes it much easier to secure the network by changing things like the WPA pass key and SSID. This also allows the owner/adminstrator to change the IP network address, the Wifi AP mode and radio channel on all nodes with a single click.
In a similar fashion, the Advanced Firmware tab has been enhanced with the addition of the Global firmware upgrade. This allows the owner/administrator to upgrade all of the nodes to a new version of the Wildernets firmware with a single operation. After selecting the desired firmware image, the image is uploaded to the master MP02 and optionally checked against the MD5 checksum. The owner/administrator then just clicks the “Initiate Upgrade” button. An upgrade offer is broadcast to all active nodes. Each node checks that it is not already on that version of firmware and then retrieves the image from the “master” MP02, verifies its checksum, and then upgrades itself using the sysupgrade utility in “preserve configuration” mode. I use this routinely to upgrade the firmware on my test network of seven MP02s. Watching the Global display of active nodes, I have always found that all nodes are reporting the new version in under 15 minutes.
One final enhancement to the WAN configuration panel is worth mentioning. Wildernets adds basic support for the newer breed of USB Ethernet Modems popular on 4G networks. These USB modems provide an ethernet over USB interface to the OS. This interface shows up as eth2 and automatically receives an IP address from the USB modem. To connect, disconnect, and get status from the modem, you just need to enter the URL for the modem’s web interface under “USB Ethernet Modem Settings”. As shown below, I simply entered my Pantech UML295’s documented URL of http://192.168.32.2 and the USB Ethernet Modem Interface box provides direct access to the Pantech modem’s web interface. If you have one of these newer style USB modems, I’ll be very interested to know if anything else needs to be added to the above interface to make your modem work.
Wildernets is currently at version WNETS 1.0 Alpha30. It can be downloaded from the Villagetelco website here. You can easily move back and forth between WNETS 1.0 and SECN 2.X using the Advanced Firmware Local Upgrade mechanism or the “sysupgrade” script. However, you won’t be able to use the “preserve configuration” option when going from one to the other.
Also note that the two versions should interoperate as long as you use the same BSSID, SSID, Radio mode and Radio channel.