AnElegantDistributedOpen-SourceStackforTelecom
Hello!
JamesAimonetti
–SeniorProgrammerat2600hz
–mc_onFreenode(#2600hzandothers)
–ErlangEnthusiast
–Foundedin2009inSanFrancisco,CA
–OpenSource
–2mainprojects:blue.boxandKazoo
–20+employeesnow
2600hz
Let’stalkabouttelephony!
–SetupAsterisk/FreeSWITCH/FreePBX
–Getfirstcustomers
–Thingsaregoingwell!Addmore
customers!
Whatweseepeopledoing...
Thisiswhatyourarchitecturelookslike
–Setuparedundantserver+loadbalancer
–Hookuptoadatabase
–SetupMaster/Slaves
Servercrashes…Customersareangry!
Thewholedatacenterisdown…for4hours!
–Loadbalancersetupmustbemodified
–Serversetupmustbemodified
–Databasesetupmustberedesigned
You''veearnedTONSofwork
RedundantDatacentersetup
–Howdoyougointernational?
–Howdoyoumonitoralltheseservers?
–Howdoyoumanagedatabasegrowth?
–Howdoyoutrackusage?
–Reporting?
–AddNewFeatures?
–ManageUpgrades?Versions?
–Softwarebuilds?
–OperatingSystemUpgrades?
–DataBackups?
–IPTablesandSecurity
–Encryption
–…
Butwaitthereismore!
–Broadsoft/Metaswitch
oReliability=HIGH
oCost=$$$$
–Asterisk/FreeSWITCH/FreePBX
oReliability=LOW
oCost=$
Whattodo?
Enter:
–Designedandtestedtobe:
oRedundant
oDistributed
oScalable
–100%configurableviaAPI
–ExtensiveFeatureSet
Kazoototherescue!
–Easytoinstall:Chef
–Easytouse:pre-builtGUI
–Easytodifferentiate:OpenSource
Ourgoals
–SIPengine:Kamailio
–Mediaengine:FreeSWITCH
–Erlang/Javascriptstack:Kazoo/KazooUI
–MessagingBus:AMQPviaRabbitMQ
–DistributedNoSQLdatabase:BigCouch
Howdoesitwork?
Ourarchitecture
Kamailio!
–ReceivesSIPtraffic
–Loadbalancing
–FixesNAT/SDP
–HandlesRegistration/BLF/Options
LoadBalancer
WhyWeLikeKamailio
–FriendlyNamingConventions
–ActiveDevelopment
–Integrations!
LoadBalancer
Specifically,wearebuildingamodulefor
Kamailioto:
-ConnectdirectlytoAMQP
-AllowKazootocommunicatetoKamailio
-GenerateSIPpacketsfromKazoo
ControlBLF
ControlRegistrations
ControlOPTIONSpings
LoadBalancer-EVOLVED
FreeSWITCH
–MediaServer
–HandlesSIPInvitesandMedia
–Nolocalconfiguration
MediaEngine
WritteninErlang
–AbstractsandclustersFreeSWITCH
–FeedsAMQPqueues
–SendscommandstoFreeSWITCH
ErlangCallManager
WritteninErlang
–Brainoftheoperation
–Respondstorequests(API,Calls,etc...)
–Designedtoberedundant
Whapps
WrittenandmaintainedbyCloudant
–BasedonApacheCouchDB
–DistributedNoSQLdatabase(Dynamo)
–HTTPRequests
BigCouch
Ourarchitecture
WritteninJavascript
–Easydrag-and-drop
–InteractsviaAPI
–NextProject:Monster
Simpleaspossible:ourwebinterface
–EverythingisconfigurableviaAPI
–Versioned(devfriendly!)
–RealTime
100%APIbased
Thankyou
Web:http://www.2600hz.com
IRC:#2600hz@Freenode
MailingLists:2600hz-dev2600hz-users
Code:https://github.com/2600hz/kazoo
Howtocontactus?
|
|