an elegant distributed open-source stack for telecom
TRANSCRIPT
![Page 1: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/1.jpg)
An Elegant Distributed Open-Source Stack for Telecom
![Page 2: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/2.jpg)
Hello!
James Aimonetti
– Senior Programmer at 2600hz
– mc_ on Freenode (#2600hz and others)
– Erlang Enthusiast
![Page 3: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/3.jpg)
– Founded in 2009 in San Francisco, CA
– Open Source
– 2 main projects: blue.box and Kazoo
– 20+ employees now
2600hz
![Page 4: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/4.jpg)
Let’s talk about telephony!
![Page 5: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/5.jpg)
– Setup Asterisk/FreeSWITCH/FreePBX
– Get first customers
– Things are going well! Add more customers!
What we see people doing...
![Page 6: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/6.jpg)
This is what your architecture looks like
![Page 7: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/7.jpg)
– Set up a redundant server + load balancer
– Hook up to a database
– Set up Master/Slaves
Server crashes…Customers are angry!
![Page 8: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/8.jpg)
The whole data center is down…for 4 hours!
![Page 9: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/9.jpg)
– Load balancer setup must be modified
– Server setup must be modified
– Database setup must be redesigned
You've earned TONS of work
Redundant Datacenter setup
![Page 10: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/10.jpg)
– How do you go international?– How do you monitor all these servers?– How do you manage database growth?– How do you track usage?– Reporting?– Add New Features?– Manage Upgrades? Versions?– Software builds?– Operating System Upgrades?– Data Backups?– IPTables and Security– Encryption– …
But wait there is more!
![Page 11: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/11.jpg)
– Broadsoft / Metaswitcho Reliability = HIGHo Cost = $$$$
– Asterisk/FreeSWITCH/FreePBXo Reliability = LOWo Cost = $
What to do?
![Page 12: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/12.jpg)
Enter:
![Page 13: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/13.jpg)
– Designed and tested to be:o Redundanto Distributedo Scalable
– 100% configurable via API
– Extensive Feature Set
Kazoo to the rescue!
![Page 14: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/14.jpg)
– Easy to install: Chef
– Easy to use: pre-built GUI
– Easy to differentiate: Open Source
Our goals
![Page 15: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/15.jpg)
– SIP engine: Kamailio
– Media engine: FreeSWITCH
– Erlang/Javascript stack: Kazoo/KazooUI
– Messaging Bus: AMQP via RabbitMQ
– Distributed NoSQL database: BigCouch
How does it work?
![Page 16: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/16.jpg)
![Page 17: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/17.jpg)
Our architecture
![Page 18: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/18.jpg)
Kamailio!
– Receives SIP traffic
– Load balancing
– Fixes NAT / SDP
– Handles Registration / BLF / Options
Load Balancer
![Page 19: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/19.jpg)
Why We Like Kamailio
– Friendly Naming Conventions
– Active Development
– Integrations!
Load Balancer
![Page 20: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/20.jpg)
Specifically, we are building a module for Kamailio to:
- Connect directly to AMQP- Allow Kazoo to communicate to Kamailio- Generate SIP packets from Kazoo * Control BLF * Control Registrations * Control OPTIONS pings
Load Balancer - EVOLVED
![Page 21: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/21.jpg)
FreeSWITCH
– Media Server
– Handles SIP Invites and Media
– No local configuration
Media Engine
![Page 22: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/22.jpg)
Written in Erlang
– Abstracts and clusters FreeSWITCH
– Feeds AMQP queues
– Sends commands to FreeSWITCH
Erlang Call Manager
![Page 23: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/23.jpg)
Written in Erlang
– Brain of the operation
– Responds to requests (API, Calls, etc...)
– Designed to be redundant
Whapps
![Page 24: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/24.jpg)
Written and maintained by Cloudant
– Based on Apache CouchDB
– Distributed NoSQL database (Dynamo)
– HTTP Requests
BigCouch
![Page 25: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/25.jpg)
Our architecture
![Page 26: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/26.jpg)
Written in Javascript
– Easy drag-and-drop
– Interacts via API
– Next Project: Monster
Simple as possible: our web interface
![Page 27: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/27.jpg)
– Everything is configurable via API
– Versioned (dev friendly!)
– Real Time
100% API based
![Page 28: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/28.jpg)
Thank you
![Page 29: An Elegant Distributed Open-Source Stack for Telecom](https://reader035.vdocuments.site/reader035/viewer/2022071602/613d6044736caf36b75c9858/html5/thumbnails/29.jpg)
Web: http://www.2600hz.com
IRC: #2600hz @Freenode
Mailing Lists: 2600hz-dev 2600hz-users
Code: https://github.com/2600hz/kazoo
How to contact us?