![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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/6.jpg)
Cassandrahttp://cassandra.apache.org
» Subscriber data» Registration data» Channel history
![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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022043000/5f7726940b49f2060d6bace9/html5/thumbnails/23.jpg)
Questions?