Free Telephony Family Tree

In 2005 I started messing around with Asterisk on the Blackfin. This led to the Free Telephony Project, and the idea of using open hardware techniques for telephony. Much has happened since then. Many people and companies are now working on Blackfin Asterisk projects. New projects, and even new businesses have spun out of the project.

This post is my attempt to document the various hardware and software developments in family tree form. My role is fast diminishing as more and more people get involved – this is how it should be. None of this would have been possible without a bunch of good people from around the world working together as a community.

If I missed anything (or anyone) I humbly apologize – please let me know so I can update this post. I have left out a few top secret projects that are being performed behind closed doors in traditional “closed” development form. Plus I imagine there are many other people using this technology that I am not aware of.

There are also a bunch of other hardware products (such as the Digium Asterisk Appliance) that were developed independently using similar technology. This post only includes those projects that have some sort of direct relationship with the Free Telephony Project and open hardware.

Hardware

Below is a map of all the open hardware projects and how they relate to one another. I count 14 separate hardware designs that have been built – amazing!

Wow – that’s a lot of obscure acronyms! Lets see if I can explain what all those line-noise names mean:

  • The Blackfin STAMP from Analog Devices was the first open hardware uClinux board design. I started playing with the STAMP in August 2005. Analog Devices took the unique step of releasing the schematic and PCB files. A post by Robin Getz opened my eyes to the possibility of open hardware. Got me thinking!
  • X100M hack: I modified the Zaptel drivers and soldered a Digium X100M FXO module to a Blackfin STAMP board. First Blackfin FXO phone call in Dec 2005. Asterisk on the Blackfin lives!
  • Fourfin: Some excellent early work (2006) on a 4 port BRI-ISDN daughter board for the STAMP by Philippe, Tom, and Thomas.
  • 4fx: Four analog port daughter board for the Blackfin STAMP, which was available in kit form (October 2006). Some work I did with Jerry Zeng from Analog Devices really helped this design along. The 4fx really got the ball rolling, as people could buy this card and a STAMP and start experimenting with Blackfin Asterisk.
  • The initial BlackfinOne V1.0 design (by Ivan and Dimitar) first appeared in mid 2006. This was an amazing project – a fully open uClinux Blackfin board designed with open source tools. I was interested in using it as a DSP motherboard for my telephony work so a group of us worked together to add dual Ethernet ports and a USB port to create the BlackfinOne V2.0.
  • The BlackfinOne V2.0 design and the 4fx were combined to create the first real product – the IP04 IP-PBX in April 2007. Atcom came on board to manufacture the IP04 which is now in volume production. Many have been sold and are in every day use around the world. Atcom are following up with the 8 port IP08 and single port IP01.
  • The PRI and BRI Appliance products are being developed by the Astfin team. The PR1 was a BlackfinOne V2.0 daughter board used for testing the PRI line interface.
  • Li at Edge PBX has been very busy developing a range of products (FX02, FX08, FX08D) with novel combinations of analog and PRI ports.
  • The Telesto TL-2XS is a 2 FXS port IP-PBX using the BF536 processor.

I should mention a couple of projects that are not Blackfin based, but still related to Free Telephony:

The $10 ATA was an idea I had for adding low cost FXS port capability to a wireless router. Although this project is currently inactive, there are two related active projects. One is the mega Mesh Potato, and the other a cool little project to build an Open USB FXS ATA being developed by Angelos.

Software

In August 2005 I had the idea of running Asterisk on the Blackfin. I had some leave for the birth of my 3rd child but in typical hacker fashion spent most of the time hacking Asterisk to run on uClinux! First phone call (SIP phone to Asterisk on a Blackfin) was in September 2005.

Here is a breakdown of the various software projects:

  • uClinux-dist: Analog Devices do an incredible amount of work maintaining and supporting uClinux for the Blackfin.
  • uCasterisk: First build system (released Dec 2005) – OpenWRT hacked to build Asterisk for the Blackfin. Back then uClinux didn’t support shared libraries so some interesting but now obsolete hacks were required to run Asterisk.
  • Astfin 1 was a re-write of uCasterisk, based on the buildroot type approach (e.g. like OpenWRT). Lots of work went into this by Mark, Pawel, Alex and Li (plus many others) and it was very useful over the course of 2007.
  • As 2007 wore on several ideas for improved build systems appeared. The outcome was a package based build system called BAPS and Astfin 2.
  • To make the various line interface hardware (FXS/FXO analog, BRI-ISDN, T1/E1 PRI) work various drivers were ported to the Blackfin platform. Driver work is often harder, takes longer and is less fun than building the actual hardware. Lots of good driver work by Diego/Mark/Pawel (BRI) and Mathieu & Mark (PRI).
  • Voiptel have done a great job at porting the AsteriskNow GUI written by Digium to the IP04.
  • Steve Underwood’s Spandsp library was integrated with the IP04 by Jeff, and was used as the baseline for Oslec – the open source line echo canceller. Steve, along with Jean-Marc Valin of Speex fame are some of the few guys doing open source DSP work for telephony.

5 thoughts on “Free Telephony Family Tree”

  1. Thank you all the pepole who worked and working for the open source and open hardware in the world, so that we can share their achievement. Thanks!!!

  2. David,

    Firstly, just to paraphrase what so many people have already said – keep up the brilliant work! I don’t think I’ve ever witnessed anyone as creative as yourself firsthand…

    Anyway, why I’m commenting – I’ve just finished school in the UK and I’m taking a year out before uni – I found your website because as a project in this next year, for one reason or another I’m looking to build my own IP phone that I could customize the functionality of at will.

    As far as I can tell, the only thing that comes close to what I’m looking for are your IP01 boards – but I’m looking for USB functionality as well – I’m sort of dreaming of a blackfinone V2.0 board with just one FXS module and ideally 2 usb ports.

    How difficult do you think this kind of thing would be to realize? I’m techie enough to not be afraid of missing a GUI and I haven’t had *huge* amounts of experience with linux but I’m a fast learner – similarly I would be happy to brush up on PCB design – really I’m just trying to find out where to start!

    Thanks for any help you can spare me,

    Richard Worrall

  3. Hello Richard,

    Thank you for your kind words.

    A Linux based “open” IP phone is a fine idea for a project. A commercial version would be very useful as many SIP phones have bugs, i.e. for all the reasons open source makes sense in other parts of the world. Atcom have actually mentioned to me that they are considering open-sourcing a new IP phone of theirs, though I don’t think it has USB or runs Linux.

    You could build a Blackfin based phone if you like, the BlackfinOne would be a good starting point. For an actual IP phone you might want to use a direct 4 wire connection to the phone handset rather than a FXS port.

    Cheers,

    David

  4. David,

    Yeah, those were the days!

    Do you know of anything that will run on the Digium AA50? Or should I just try to hack ASTFIN together on it? I can extract the driver files for the modules if needed. I got one of the devices and it seems that Digium totally abandoned the device.

    What is your views?

    Regards,

    Teuns J. Moolman

Comments are closed.