350 likes | 1.14k Views
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
E N D
How to Build an Embedded Asterisk IP-PBXrowetel.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 Host PC PCI Card Asterisk Device Driver PCI Bridge FXO Port x86 CPU Ethernet Card DSP hardware FXS Port
IP-PBX Hardware 101 Embedded PBX Asterisk Blackfin CPU FXO Port DSP software Device Driver FXS Port
IP-PBX Hardware 101 • Many redundant parts removed • Lower cost • Smaller size • Lower power • Enhanced 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 • 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)
Design Process Flow Design Schematics (gschem) Write Verilog Code (Icarus) Design PCBs (PCB) Assemble Prototype Hardware Debug and Test Hardware Port Asterisk to Blackfin (gcc) Integrate and Test system
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
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)
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)
Demo • Boot from a Battery • Make a phone call • telnet in • GUI • NAND flash
Questions? For more information rowetel.com/ucasterisk
demo? Maybe ask Mike, Idea: battery powered, or photo of Alberto's miniPC to compare. New GUI? Hook up battery in front of them and boot? Telnet in?intro some sticky new ideas and geeky experiences Notes