IP04 Adventures - Day 1

A bit of backstory first; about a week ago, I ordered an IP04 4-port PBX from rowetel.com. The IP04 uses a "Blackfin" microprocessor, ucLinux, and Asterisk to provide a fully "open source" (both software and hardware) PBX, for about CAD $500. Comparable commercial units usually price in the thousands (if not tens-of-thousands) of dollars, making this a really great deal... if it works.

So, I ordered one (with one FXO and three FXS ports), and about a week later, guess what shows up at my door. David Rowe (the guy behind rowetel.com and an integral part of the Village Telco mesh wifi voip project) had shipped the device to me via EMS courier. And that brings up to today.

So, now the fun begins. I unwrap my little treat to find:

  1. A black plastic box about 25 cm long by 12 cm wide by 3 cm deep,
  2. A black "wall-wart" style plug with about 2 M of cord ending in a nondescript DC plug,
  3. A bag containing 6 screws and 4 rubber feet,
  4. a small bubblewrapped card containing an RS232 serial adaptor,
  5. and nothing else

Well, that last bit is not quite true; I found a single 2-line label pasted to the inside of the corrugated cardboard shipping box;

"Getting Started:
http://rowetel.com/ucasterisk/ip04.html#started"

The IP04 ships without any documentation. To test it, let alone configure it properly, you must have skills with the Linux commandline, good knowledge of basic networking commands, and some familiarity with Asterisk. While a web-based configuration tool does exist, the IP04 does not ship with it installed. Be warned.

OK, so do I feel up to the challenge of getting this device going? You bet!

First off, let's check this device out. David deliberately left the plastic casing open. While the IP04 has a fully functioning ethernet port, with telnet, ftp and web services on it, the mad tinkerer who buys this product might want to (or need to) use the supplied RS232 serial adaptor to interact and customize the software. To make it easier for this mad tinkerer, David leaves the case unsealed, and supplies the screws (and rubber feet that go over them) for you to seal the case up with.

Within the unsealed case, you can see the three green FXS daughterboards that will feed the extension phones, and the one red FXO daughterboard that will connect to the telephone line. If I should need it, the RS232 daughterboard connects to the topmost row of pins to the left of the red FXO card. For now, I leave the case unsealed; once I've established that I don't need the RS232, I'll seal the box up.

The IP04 has no on/off switch; when the power goes on, the box comes alive. I hook a straight-through cable between the ethernet port and my laptop, and reconfigure my laptop's wired network to talk on the 192.168.1.0/24 network. The IP04 comes configured as 192.168.1.30, and if I don't manage to connect to it through TCP/IP, I'll have to install that RS232 adaptor and try a serial connection.

After some fiddling, and a minute or so waiting for the IP04 to warm up, my "pings" show me that 192.168.1.30 has appeared. I telnet in, and examine the system from the inside. Yup, Linux.

root:~> uname -a
Linux ip04 2.6.19.3-ADI-2007R1.1-svn #3 Mon Mar 10 08:53:41 CST 2008 blackfin unknown
root:~> free
total used free shared buffers
Mem: 59080 23712 35368 0 0

Some exploration of the filesystem leads me to the /etc/init.d and /etc/rc.d directories. /etc/rc.d has softlinks to various /etc/init.d scripts. In /etc/init.d, I find the "network" and "network-static" scripts that set up the IP04's TCP/IP stack either as a DHCP client (the "network" script) or as a fixed IP (the "network-static" script). I copy the network-static script to /etc/init.d/network-puter.lan, and modify that script to give the IP04 a fixed address within my LAN. After replacing the network softlink in /etc/rc.d with a softlink to my new script, I reboot the device and find that, indeed, it now occupies an address within my lan. I make a few further changes, and screw things up a bit. A few moments of panic, and then I recover and set the script right. The box now sits on my LAN, as it should.

I plug a phone into one of the three FXS ports (the ports that talk to telephone handsets), and I get a dialtone. I've left the single FXO port (the port that talks to the telephone company) unconnected, so the dialtone must originate from the IP04. Dial extension 2008 and you get one of the Asterisk demo extensions, with beautiful voice-quality.

So, now I get to play. First off, a few real extensions, and then some VoIP practice. But, that's for tomorrow.