配色: 字号:
11-James
2015-12-25 | 阅:  转:  |  分享 
  
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?

献花(0)
+1
(本文系Alpha911首藏)