scale that sip out - kamailio · goals »ability to add capacity quickly »scale out instead of up...

23
Scale that SIP Out Erik Davidson Gary Kramlich

Upload: others

Post on 27-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Scale that SIP Out

Erik Davidson Gary Kramlich

Page 2: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

About Corvisa» Based in Milwaukee» Carrier-class network» Enterprise telephony software

› PBX› Inbound and Outbound Contact Center› Softphone› Smart phone apps

» Summit PaaS› Powered by FreeSWITCH› We handle config, maintenance, hosting, scaling› Tools for testing, debugging, simulating apps› Stop by our table for a demo!

Page 3: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Goals» Ability to add capacity quickly» Scale out instead of up» Multiple data centers» Redundancy within/between data centers» Global view of call state» Run our SIP stack the same as our other

applications

Page 4: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Mesoshttp://mesos.apache.org/

» Basis of our application infrastructure» Pools multiple servers into a single resource

pool» Docker containers can be schedule to run

using some of the pooled resources

Page 5: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Kamailiohttp://www.kamailio.org

» FAST!» Active developer community» Very configurable» Modular for adding features

Page 6: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Cassandrahttp://cassandra.apache.org

» Subscriber data» Registration data» Channel history

Page 7: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Logstashhttp://www.logstash.net

» Runtime logging

Page 8: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Node Types

Page 9: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Load Balancer» Edge layer of the topology» Uses a static IP for SBC to connect to» Lightweight, does limited processing» No access to Cassandra

Page 10: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Dispatcher» Workhorse node» Receives traffic from Load Balancer nodes» Sends traffic to other nodes based on SIP

method and other factors» Authenticates INVITEs» Logs SIP dialogs

Page 11: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Registrar» Authenticates REGISTER requests» Saves location information on successful

REGISTER

Page 12: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Media» Handles media streams» FreeSWITCH node

Page 13: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Outbound» Uses registration data to determine

destination for outgoing INVITEs» Exists so internal infrastructure doesn’t need

to know where subscribers are registered from

Page 14: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

How does it all fit together?

Page 15: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Data Center

Page 16: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

INVITE Flow

Page 17: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Service Discovery

Page 18: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Deploying Nodes» Manual time consuming process» Ties up many resources» Requires address management» Requires monitoring

Page 19: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

What if we could make it easier...

Page 20: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

What the heck just happened?!?!

Page 21: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Carna» Supervises Kamailio and Freeswitch» Publishes connection details to ZooKeeper» Updates the Kamailio Dispatcher database

with the details in ZooKeeper

Page 22: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Carna Wiring / Flow

Page 23: Scale that SIP Out - Kamailio · Goals »Ability to add capacity quickly »Scale out instead of up »Multiple data centers »Redundancy within/between data centers »Global view of

Questions?