How to Build an Embedded Asterisk IP-PBX
rowetel.com/ucasterisk
Contents
• Free Telephony Project• Why Embedded Asterisk• Motivation• Open Hardware• Open Hardware Hacking• Credits• Products• Demo
Free Telephony Project 1
many people working in open software
we are working in open hardware
professional telephony hardware designs
that we give away
to improve the world a little
Free Telephony Project 2
designs can be copied modified, re-used
without restriction
we encourage cloning of our products
trend: functionality shifting from hardware to
(free) software
trend: total system costs constantly dropping
Free Telephony Project 3 falling hardware costs are a good thing
(especially for the developing world) so rather than protecting IP we leverage these
trends
by giving away free hardware designs
and encouraging cloning!
Why Free Telephony Project?
• Hardware designs are free as in speech• Use FOSS and Open Hardware to drive
system costs to $0• Lower the cost of telephony for everyone on
the planet• A phone call should be a human right, not a
privilege
Why Embedded Asterisk
• Small size (DSL router)
• Low power 3W (battery, solar)!
• No moving parts (fans or disks)
• Quiet
• Reliability (parts count, connectors)
• Low cost (few hundred $)
• Just plain cool!
IP-PBX and Asterisk
• A open source PABX (PBX) that can route calls between the PSTN and VOIP
• Usual FOSS advantages – low cost and open• VOIP experiencing massive growth• Primary sponsor Digium but many
contributors• Hence alternatives such as FreeSwitch,
CallWeaver, etc, etc
Introduction
• Typical installation x86 PC plus PCI card to connect to the telephone lines/telephones.
• Paradigm shift away from x86/PCI cards
• History: Embedded = IP-only and no DSP (Echo cancellation and codecs not possible)
• Analog Devices Blackfin Processor has challenged this paradigm!
Blackfin Processor
• A powerful DSP (1 GMAC)
• AND runs uClinux
• Breaks the two processor (host/DSP) paradigm
• Low cost ($5 - $15 each)
• Well supported by vendor and community
• Open hardware and software
IP-PBX Hardware 101
PCI Bridge
FXO Port
x86 CPUDSP
hardware
Asterisk
Ethernet Card
FXS Port
Host PC PCI Card
Device Driver
IP-PBX Hardware 101
FXO Port
Blackfin CPU
DSP software
Asterisk
Device Driver
FXS Port
Embedded PBX
IP-PBX Hardware 101
• Many redundant parts removedLower costSmaller sizeLower powerEnhanced reliability
• Don’t need “hardware” DSP – Blackfin CPU is a DSP
Challenges
• Complex development environment– Cross compiler & tool-chain – Customized kernel and apps
• Learning Curve
• Low memory ~64MB
• uClinux (offset by partial MMU)
• Care and feeding of the cache
Motivation 1
• Various motivations across the people and companies involved in the project.
• Obvious business potential in a $200 IP-PBX with multiple ports.
• Enabler for service models.
• My motivation is Social & Geeky rather than Business.
Motivation 2
• I like building stuff• Would like to use my hardware/DSP skills
to improve the world a little• Open software like Linux and Asterisk has
been a great thing for the World.• Craig Newmark (Craigslist) : Nerd values
“Get yourself comfortable, then do something fun to change the world a little”
Open Hardware 1 reference designs that anyone is free to copy,
re-use, modify
CAD files, prototypes
differences from open software
atoms cost more than bits
you need a factory
Open Hardware 2
many advantages over closed development
similar to open software
many eyes
low bug count
dramatic reduction in R&D cost and time
Open Hardware 3
CVS/SVN for version control of designs
re-using hardware building blocks
helping each other get strange parts
blog instead of log book – share experience
chat to help debug hardware
Open Hardware 4
normal hardware costs include 70% overhead
exciting new business models, e.g. OLPC
dramatic price reductions
local manufacture
customisation, localisation, e.g. solar, wireless
How to Hack Telephony Hardware in Linux
• Schematic Entry (gschem)
• PCB Design (PCB)
• Verilog HDL (Icarus)
Port Asterisk to Blackfin
(gcc)
Design Schematics (gschem)
Design PCBs (PCB)
Assemble Prototype Hardware
Debug and Test Hardware
Write Verilog Code (Icarus)
Integrate and Test system
Design Process Flow
gschem Schematic Entry
Analog Hardware Example
Hardware Hacking is Getting Easier!!
• Build sophisticated surface mount circuits.• Order strange parts on-line e.g. Digikey• Prototype PCB costs dropping• Stereo Microscope + soldering tools < $500• Open hardware designs• Free CAD tools• Help from on-line communities
Open Hardware IP-PBX Products
• IP04 4-port Analog IP-PBX (production)
• IP08 8-port Analog IP-PBX (prototype)
• E1/T1 PRI-Appliance (prototype)
• BRI-Appliance (prototype)
Case Study - IP04 Switches analog and VoIP calls fanless, low power (5W), rugged, compact open hardware and software easy to customise, e.g. simple UI potential for very low cost ($100), compared to
$2,000 retail for similar products stable but not feature complete (CID, GUI)
Case Study – IP04
PRI Appliance (Astfin Team)
BRI Appliance (Astfin team)
'Free” Phone Call
• between Adelaide and Beijing using two IP04's
• open hardware design• designed with open CAD software• running uClinux and Asterisk• using VOIP ($0 call cost)• Freest phone call ever?
Demo
• Boots from a Battery• phone call• telnet, asterisk CLI• GUI
Credits
In no particular order:• Atcom (China) for putting the IP04 into mass
production• Astfin team for developing build system, PRI
and BRI-ISDN hardware• Analog Devices for Blackfin and great
uClinux support• Linux and Asterisk communities• Many others who contributed (e.g. drivers,
software fixes)
Questions?
For more information
rowetel.com/ucasterisk