SlideShare uma empresa Scribd logo
1 de 87
PRESENTED BY: 
Karl Anderson 
Work in Progress
#kazoocon14 
Presenters 
I’m Karl Anderson! 
Chief Technology Officer at 2600hz
#kazoocon14 
What Shall We 
Talk About?
#kazoocon14 
I Dream of what Kazoo will be… 
How are we getting there 
What We’ve Done 
What We’re Working On 
Where We’re Going
#kazoocon14 
What We’ve Done 
Past 12 Months in Summary
#kazoocon14 
Highlights 
Some of the highlights 
Bugs & Improvement in dependencies 
Installation 
Monster UI 
Provisioner 
Project Phonebook 
Internationalization
#kazoocon14 
Bugs & Improvements 
in dependencies
#kazoocon14
#kazoocon14 
Kamailio 
db_kazoo 
Significant work by Luis 
Far more powerful and flexible 
Addresses prior deficiencies
#kazoocon14 
Kamailio 
if(kazoo_query("callevt", $var(routing_key), $var(request))) { 
$du = $(kzR{kz.json,Switch-URL}); 
} 
event_route[kazoo:consumer-event-presence-update] 
{ 
kazoo_pua_publish($kzE); 
pres_refresh_watchers("$(kzE{kz.json,From})", 
"$(kzE{kz.json,Event-Package})", 
1 
); 
}
#kazoocon14 
Kamailio 
Version 4.2+ will include the Kazoo modules! 
Community requested rename 
db_kazoo -> kazoo 
After release we will depreciate kazoo-kamailio 
We will simply use the public Kamailio RPMs 
This work allows us to update kazoo-kamailio 
Shortly kazoo-kamailio bump to version 4.1.6
#kazoocon14 
Kamailio 
This work was important! Why? 
Paves the way for “smart” routing 
Route to the best media server 
Call processing Kamailio roles 
Improves performance dramatically 
Especially for features requiring redirects 
Call Park, Park Pickup, Call Pickup, etc.
#kazoocon14 
Kamailio 
But wait, there’s more! 
• Enhanced BLF 
• We can now XXX ??  Karl 
• Other Advanced SIP Routing Logic 
• SIP MESSAGE support 
• Etc.
#kazoocon14
#kazoocon14 
FreeSWITCH 
Customizations submitted upstream! 
Working with the FreeSWITCH team 
After acceptance our own kazoo-freeswitch RPM 
will be deprecated
#kazoocon14 
FreeSWITCH 
Fixed implementation issue with Erlang Interface 
Primarily affected large ring-groups 
status = ei_xreceive_msg_tmo(ei_node->nodefd, 
&received_msg->msg, 
&received_msg->buf, 
globals.receive_timeout 
);
#kazoocon14 
FreeSWITCH 
Look forward to… 
Round-robin channel events 
Full duplex eCallMgr connections 
Mod_verto?
#kazoocon14 
./install_kazoo
#kazoocon14 
Kazoo Install 
Alot of work going into automating 
and improving the install process 
ISO 
Installation is NOT just for a single server 
Helps us with QA also! 
Build Server Automation 
Auto-pushing and versioning packages 
repo.2600hz.com updates 
RPMs & Packages re-organized
Kazoo Install 
Kazoo Installer Script is the brains of the install 
#kazoocon14 
Available bundled in the ISO 
Current, always up-to-date net installer 
Can be a stand-alone installer 
Can be a stand-alone configuration tool 
With support for cluster configuration
#kazoocon14 
Kazoo Install
#kazoocon14 
Kazoo Install
#kazoocon14 
Kazoo Install
#kazoocon14 
Kazoo Install 
Look forward to… 
Offline capabilities 
Improved help 
Smarter support for cluster deployment
#kazoocon14 
Kazoo Install 
Kamailio and FreeSWITCH 
Already have cross-platform support 
They already generate RPMs and 
Thanks to this work, we now have our sights on 
supporting other operating systems.
#kazoocon14 
Monster UI
#kazoocon14 
Monster UI 
Released! 
Account Manager 
Number Manager 
Smart PBX 
Webhooks 
PBX Connector
#kazoocon14 
Monster UI 
Carrier App
#kazoocon14 
Monster UI
#kazoocon14 
Monster UI
#kazoocon14 
Monster UI 
We are creating a community app store 
Unleash the monster!
#kazoocon14 
Monster UI 
Look forward to… 
Carriers App 
Branding App 
User Portal 
Operator Console 
Callflow App
#kazoocon14 
Provisioner
#kazoocon14 
Provisioner 
We’ve split Provisioner into three concepts: 
Back-end of Provisioner. 
APIs and configuration generation 
SmartPBX / Provisioner Integration 
When adding a phone, it’s provisioned w/ defaults 
Advanced Provisioner 
We expose everything we can 
It’s not intuitive, but it is powerful
#kazoocon14 
Provisioner 
Progress! 
Improved template engine 
Added support for TFTP and HTTPS 
Moved to file-based provisioning from dynamic 
Added timezone support 
Added limited BLF support 
Tested Kazoo feature defaults
#kazoocon14 
Provisioner 
Why not improve the old provisioner? 
The old provisioner is in a scary state 
We thought dynamically updating configs would be 
a nice feature. That was a mistake. 
Any software rollouts which introduce a bug have 
the capability of knocking ALL provisioned phones 
on the system offline.
Provisioner 
We will be decommissioning the old provisioner 
#kazoocon14 
as soon as possible. 
We will also be moving to SRV records. 
Instead of primary/secondary proxies 
More industry standard at this point 
Phones are removing primary/secondary options
#kazoocon14 
Provisioner 
Look forward too… 
Enhanced security 
More makes and models 
Advanced firmware support 
End-user provisioning
#kazoocon14 
Project Phonebook
#kazoocon14 
Project Phonebook 
Unifies phone number management 
Aggregates multiple service providers 
One API set. All carriers.
#kazoocon14 
Project Phonebook 
Benefits 
Significantly faster number searches 
Support for contiguous numbers 
Much larger number pool 
Support for vanity numbers
#kazoocon14 
Project Phonebook 
Look forward to… 
Easy number acquisition 
The largest number pool in the US 
Fully automated porting
#kazoocon14 
Internationalization
#kazoocon14 
Internationalization 
Supporting Kazoo installs internationally 
has been a learning experience. 
Differing Phone Number Formats 
Both routing and displaying them in the GUI 
GUI Languages 
Prompt Languages 
API errors 
Differing timezones and changing DST rules
#kazoocon14 
Internationalization 
Still more to be done 
Date/Time Formats 
Currency Differences 
Differing rules for emergency services 
Differing procedures for Porting 
But it is now usable outside the United States!
#kazoocon14 
Internationalization 
Kazoo presents some unique challenges. 
We support multiple zones 
Zones of a cluster are in different countries 
Had to find a way to allow different processing 
mechanisms system-wide 
This is why E.164 is so important!!! 
REQUIRES conversions on the way in and out 
A lot of people are used to cheating here!
Internationalization 
Google has an awesome library for handling phone 
#kazoocon14 
numbers world-wide. 
Libphonenumber 
Used by Android and other tools 
Erlang port available! 
We are looking to integrate it into the porject
#kazoocon14 
Kazoo PHP SDK
#kazoocon14 
Kazoo PHP SDK 
Easier to use 
More APIs are supported 
More efficient 
Highly extensible
#kazoocon14 
Kazoo PHP SDK 
<?php 
require_once "vendor/autoload.php"; 
$options = array('base_url' => 'http://kazoo-crossbar-url:8000'); 
$authToken = new KazooAuthTokenUser('username', 'password', 'sip.realm'); 
$sdk = new KazooSDK($authToken, $options); 
$filter = array('filter_priv_level' => 'admin'); 
$users = $sdk->Account()->Users($filter); 
foreach ($users as $element) { 
$admin = $element->fetch(); 
$admin->require_password_update = true; 
$admin->save(); 
}
#kazoocon14 
Kazoo PHP SDK 
Look forward to… 
Complete API support 
Datatype casting from JSON schema 
Iteratiable validation exceptions 
Support for realtime events (webhooks/websockets)
#kazoocon14 
Screen Pop
#kazoocon14 
Screen Pop 
Big Thanks to Kirill! 
Support for major platforms 
Can be linked to any CRM 
Lots of convenience options 
A great sample of WebSockets
#kazoocon14 
Screen Pop
#kazoocon14 
Screen Pop 
Look forward to… 
No configuration downloads 
User profile management 
Enhanced user customizations
#kazoocon14 
What We’ve Done
#kazoocon14 
What We’ve Done 
There’s so much more. 
We only have so much time 
Come see me after if you have more questions 
or specific things of interest!
#kazoocon14 
What We’re Working On
#kazoocon14 
What We’re Working On 
Statistics & Performance
#kazoocon14 
What We’re Working On 
Statistics 
We need deep insight into the system. 
And so do you. 
SNMP Support Across the Board 
Dashboard with call completion statistics 
For us, and partners, too! In Monster! 
QA Automation & Simulations 
Including AUTOMATIC load testing
#kazoocon14 
What We’re Working On 
Federation
#kazoocon14 
What We’re Working On 
Allows separate isolated zones 
to operate as a single cluster. 
Loosely coupled highly cohesive 
Reduces load significantly 
Increases scalability dramatically 
Provides isolation
#kazoocon14 
What We’re Working On 
Federation has been code complete 
for a little while now! 
It needs testing 
There will be edge cases 
We welcome community contributions here
#kazoocon14 
What We’re Working On 
True Class 4 / 5 Hybrid
#kazoocon14 
What We’re Working On 
With our changes to Kamailio, we now can 
finally achieve a true Class 4 & 5 Hybrid. 
Class 4 is just “proxy/switching” 
Class 5 is features and media handling
#kazoocon14 
What We’re Working On 
Build & Release 
Transparency
#kazoocon14 
What We’re Working On 
Customers and community members want more 
transparency into changes and features 
We are working hard to make this a reality, but 
this is new territory for us 
Better tickets, better release notes and other 
automated build mechanisms are in the works!
#kazoocon14 
What We’re Working On 
Database Upgrades & 
Performance Improvements
#kazoocon14 
What We’re Working On 
Moving to Apache CouchDB 1.7.X 
Cloudant re-integration code complete 
No existing migration 
No apparent zone support 
Once packages are available kazoo-bigcouch will be 
deprecated.
#kazoocon14 
What We’re Working On
#kazoocon14 
What We’re Working On 
We are looking into replacing CouchBeam 
This is an internal library that handles all database 
communication 
Replacing it would lead to performance increase 
EVERYWHERE 
Provide application awareness to database 
connectors
#kazoocon14 
What We’re Working On 
Look forward to… 
Overall system performance improvements 
Many couch improvements 
Active development 
Support for R16B+
#kazoocon14
#kazoocon14 
Where We’re Going 
To a pool party!!!
#kazoocon14 
Where We’re Going 
Project Pool Party
#kazoocon14 
Where We’re Going 
Small Computers 
+ Low Power 
+ Massive Distribution 
= Big Possibilities
#kazoocon14 
Where We’re Going 
Moar Phonebook
#kazoocon14 
Where We’re Going 
We will continue to enhance project phonebook. 
International Number Inventory 
Cost control mechanisms 
Smarter search routines
#kazoocon14 
Where We’re Going 
International Coverage
Where We’re Going 
We will begin reaching out with all engineering 
and engagement programs internationally. 
#kazoocon14 
Why? Well, world domination, clearly. 
(More importantly… 
because people have asked us to)
#kazoocon14 
Kazoo Hosted
#kazoocon14 
Kazoo Hosted 
Hardware updates 
Monster UI 
Deploy updated Kamailio 
Adding email to fax and Google Printer 
Cluster expansion
#kazoocon14 
Kazoo Hosted 
Look forward to… 
Monster UI 
New provisioner 
Websockets 
SRV/DNS records 
Cluster expansion
#kazoocon14 
Contributing
#kazoocon14 
Contributing 
Test tools 
Documentation 
Fork/pull (github) 
Community Scripts 
Build! 
Couch DB dump
#kazoocon14 
... ........ 
......+OO=.. 
....IOOOO8?...... 
.:O,.8OO8OO7...... 
..IO.~OOOOO8O.. .. 
...O8.OOOOOOO8~... .. . 
...I8=,8OOOO8OO=........ 
....$O.:8OOOOOOO?....... 
... .8O.OOO8OOOOO8...... 
.....7O8.ZOOOOOO8O8,.... 
.. ...88I.8OOOOOOOO8:.... 
....:OO7,OOOOOOOOOO:... 
.=OO,$8OOOOOOOO8Z... 
..$O8.=OOOOOOOOO8O,....... 
...O8O.ZOOOOOOOO8OO,...... 
...OO8.$OO8OOOOOO8O:..... 
...?OOO.8OOOOOOOOO8O$... .. 
....8OOO.OOOOOOOOOOOO$.... . . . 
.....8OO7,8OOOOOOOOOO88......... 
. ...OO8:,OOOOOOOOOOO88..... . 
. ... +8OO++OOOOOOOOOOO88,..... 
......~8O8.:OOOOOOOOOOOOO.. .. 
...OO88,$OOOOOOOOOOOOO?... 
..8OO8.OOOOOOOOOOOO8O+.... ..... 
..:88O8.OOOOOOOOOOOOOO+............... 
...,OOOO.OOOOOOOOOOOOO88.:O8OO8O:..... 
...+OO88.O8OOOOOOOOOO8:Z8OOIIO8O8.... 
.....OO8O.8OOOOOOOOOZ+:8OO8~...=OOZ.. 
....:O88O.8OOOOOOOO?.?8OOO88~...8O:. 
......$OOOO.OOOOOOO.O.$O8O8O8O:..~8D. 
. ..?OOO?.8OOOO~.8,+OOI:OOO8...7O.. . 
..ZOOOZ,8OOO..8+,OO...8OO...:O: .. 
...7OO8~.8O8,.88.8O:..8O8:..,8+... 
.. .ZOOO+,OOO.$8~OOOOOOOO~..+8I.. 
.....8OOO,=88$:88,8O8OO88...8O,. 
.....OOO8.,OO=8OZ.O8OO8...8O8.. . 
......OOO8.I8OZ7O8.8OO?~O8O8,... 
. . ..$OO8.~OOOOOO.+OO88O?... 
...88OZ.=OOOOO88:....,..... 
...8OO8.OOOOOOOOOOOOOO... 
....ZOO7.?8OOO8OOOOOOO+.. 
....?OO$.=8OOOOOOOOOOO~... 
.......,OO8.,OO8OOOOOOOO8:.. 
..... ~OO+.+88OOOOOOOOOO....... 
........=8O$.IOOOOOOOOOOOO... .. 
....OO=.~8OOOOOOOOOO8. . 
.....OO,.78OOOOOOOO8O7.... 
... .O8+.~OOOOOOOOOO7.... 
.......D8..+OOOOOOOOO..... 
. ... .?8~.OOOOO8O8...... 
...... .?8:.?8OO8+....... 
. . ....8..I$........ 
. .. ............ . 
....
Thank You! 
#kazoocon14

Mais conteúdo relacionado

Mais procurados

A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeria
LINE Corporation
 
B 2 line game cloud - our personal ec2
B 2 line game cloud - our personal ec2B 2 line game cloud - our personal ec2
B 2 line game cloud - our personal ec2
LINE Corporation
 
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
Dragos Dascalita Haut
 
A 7 architecture sustaining line live
A 7 architecture sustaining line liveA 7 architecture sustaining line live
A 7 architecture sustaining line live
LINE Corporation
 

Mais procurados (20)

Home Automation with SMS and GPS
Home Automation with SMS and GPSHome Automation with SMS and GPS
Home Automation with SMS and GPS
 
NGINX.conf 2017 - Not all microservices are created equal ... some are server...
NGINX.conf 2017 - Not all microservices are created equal ... some are server...NGINX.conf 2017 - Not all microservices are created equal ... some are server...
NGINX.conf 2017 - Not all microservices are created equal ... some are server...
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeria
 
B 2 line game cloud - our personal ec2
B 2 line game cloud - our personal ec2B 2 line game cloud - our personal ec2
B 2 line game cloud - our personal ec2
 
Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)Using PHP Functions! (Not those functions, Google Cloud Functions)
Using PHP Functions! (Not those functions, Google Cloud Functions)
 
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
NGINX.conf 2016 - Fail in order to succeed ! Designing Microservices for fail...
 
Demystifying Kafka
Demystifying KafkaDemystifying Kafka
Demystifying Kafka
 
Blending django, Sockjs, Twisted, Celery, FTP and some magic sauce into a bla...
Blending django, Sockjs, Twisted, Celery, FTP and some magic sauce into a bla...Blending django, Sockjs, Twisted, Celery, FTP and some magic sauce into a bla...
Blending django, Sockjs, Twisted, Celery, FTP and some magic sauce into a bla...
 
A 7 architecture sustaining line live
A 7 architecture sustaining line liveA 7 architecture sustaining line live
A 7 architecture sustaining line live
 
State in stateless serverless functions
State in stateless serverless functionsState in stateless serverless functions
State in stateless serverless functions
 
Docker and Pharo @ZWEIDENKER
Docker and Pharo @ZWEIDENKERDocker and Pharo @ZWEIDENKER
Docker and Pharo @ZWEIDENKER
 
Provisioning Q and A
Provisioning Q and AProvisioning Q and A
Provisioning Q and A
 
Don't roll your own HTTP server
Don't roll your own HTTP serverDon't roll your own HTTP server
Don't roll your own HTTP server
 
Pharo, Spec and GTK
Pharo, Spec and GTKPharo, Spec and GTK
Pharo, Spec and GTK
 
Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018Docker for Developers - PHP Detroit 2018
Docker for Developers - PHP Detroit 2018
 
Edge architecture ieee international conference on cloud engineering
Edge architecture   ieee international conference on cloud engineeringEdge architecture   ieee international conference on cloud engineering
Edge architecture ieee international conference on cloud engineering
 
Asterisk 11to16, What could go wrong
Asterisk 11to16, What could go wrongAsterisk 11to16, What could go wrong
Asterisk 11to16, What could go wrong
 
No REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIsNo REST - Architecting Real-time Bulk Async APIs
No REST - Architecting Real-time Bulk Async APIs
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
 

Semelhante a KazooCon 2014 - Kazoo Scalability

Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014 Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014
John Willis
 

Semelhante a KazooCon 2014 - Kazoo Scalability (20)

Continuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeedContinuous Delivery and Zero Downtime: What your architecture needs to succeed
Continuous Delivery and Zero Downtime: What your architecture needs to succeed
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015SIPLABS - Hard Rocking Kazoo - KazooCon 2015
SIPLABS - Hard Rocking Kazoo - KazooCon 2015
 
Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014 Devopsdays State of the Union Amsterdam 2014
Devopsdays State of the Union Amsterdam 2014
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
 
Continuously serving the developer community with Continuous Integration and...
Continuously serving the developer community with  Continuous Integration and...Continuously serving the developer community with  Continuous Integration and...
Continuously serving the developer community with Continuous Integration and...
 
今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k
 
Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?Windows Server AppFabric Caching - What it is & when you should use it?
Windows Server AppFabric Caching - What it is & when you should use it?
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
ISTA 2019 - Migrating data-intensive microservices from Python to Go
ISTA 2019 - Migrating data-intensive microservices from Python to GoISTA 2019 - Migrating data-intensive microservices from Python to Go
ISTA 2019 - Migrating data-intensive microservices from Python to Go
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the Cloud
 
Techfest design patterns
Techfest design patternsTechfest design patterns
Techfest design patterns
 
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails Apps
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
10 Lessons Learned from using Kafka in 1000 microservices - ScalaUA
 

Mais de 2600Hz

KazooCon 2014 - Ziron, SMS for voice people
KazooCon 2014 - Ziron, SMS for voice peopleKazooCon 2014 - Ziron, SMS for voice people
KazooCon 2014 - Ziron, SMS for voice people
2600Hz
 
KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile
2600Hz
 

Mais de 2600Hz (15)

Kamailio and VoIP Wild World
Kamailio and VoIP Wild WorldKamailio and VoIP Wild World
Kamailio and VoIP Wild World
 
Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015Telnexus - Quote to Cash – KazooCon 2015
Telnexus - Quote to Cash – KazooCon 2015
 
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
VirtualPBX - Back Office, Delivering Voice in a Competitive Market - KazooCon...
 
2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo2600Hz - Billing Data with Kazoo
2600Hz - Billing Data with Kazoo
 
2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits2600Hz - Telecom Rating and Limits
2600Hz - Telecom Rating and Limits
 
2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud2600Hz - Detecting and Managing VoIP Fraud
2600Hz - Detecting and Managing VoIP Fraud
 
2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA2600hz WebRTC Meetup at WeWork, San Francisco, CA
2600hz WebRTC Meetup at WeWork, San Francisco, CA
 
KazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo GloballyKazooCon 2014 - Deploying Kazoo Globally
KazooCon 2014 - Deploying Kazoo Globally
 
KazooCon 2014 - Ziron, SMS for voice people
KazooCon 2014 - Ziron, SMS for voice peopleKazooCon 2014 - Ziron, SMS for voice people
KazooCon 2014 - Ziron, SMS for voice people
 
KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile KazooCon 2014 - Range Networks, the Future of Mobile
KazooCon 2014 - Range Networks, the Future of Mobile
 
KazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIsKazooCon 2014 - Control Cellular Service via APIs
KazooCon 2014 - Control Cellular Service via APIs
 
KazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom LawKazooCon 2014 - A Primer on Telecom Law
KazooCon 2014 - A Primer on Telecom Law
 
KazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka StyleKazooCon 2014 - Playing Kazoo Dudka Style
KazooCon 2014 - Playing Kazoo Dudka Style
 
KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!KazooCon 2014 - Building Your Business: Behind the Numbers!
KazooCon 2014 - Building Your Business: Behind the Numbers!
 
2600hz CTO Karl Anderson speaks at Kamailio World 2014
2600hz CTO Karl Anderson speaks at Kamailio World 20142600hz CTO Karl Anderson speaks at Kamailio World 2014
2600hz CTO Karl Anderson speaks at Kamailio World 2014
 

KazooCon 2014 - Kazoo Scalability

  • 1. PRESENTED BY: Karl Anderson Work in Progress
  • 2. #kazoocon14 Presenters I’m Karl Anderson! Chief Technology Officer at 2600hz
  • 3. #kazoocon14 What Shall We Talk About?
  • 4. #kazoocon14 I Dream of what Kazoo will be… How are we getting there What We’ve Done What We’re Working On Where We’re Going
  • 5. #kazoocon14 What We’ve Done Past 12 Months in Summary
  • 6. #kazoocon14 Highlights Some of the highlights Bugs & Improvement in dependencies Installation Monster UI Provisioner Project Phonebook Internationalization
  • 7. #kazoocon14 Bugs & Improvements in dependencies
  • 9. #kazoocon14 Kamailio db_kazoo Significant work by Luis Far more powerful and flexible Addresses prior deficiencies
  • 10. #kazoocon14 Kamailio if(kazoo_query("callevt", $var(routing_key), $var(request))) { $du = $(kzR{kz.json,Switch-URL}); } event_route[kazoo:consumer-event-presence-update] { kazoo_pua_publish($kzE); pres_refresh_watchers("$(kzE{kz.json,From})", "$(kzE{kz.json,Event-Package})", 1 ); }
  • 11. #kazoocon14 Kamailio Version 4.2+ will include the Kazoo modules! Community requested rename db_kazoo -> kazoo After release we will depreciate kazoo-kamailio We will simply use the public Kamailio RPMs This work allows us to update kazoo-kamailio Shortly kazoo-kamailio bump to version 4.1.6
  • 12. #kazoocon14 Kamailio This work was important! Why? Paves the way for “smart” routing Route to the best media server Call processing Kamailio roles Improves performance dramatically Especially for features requiring redirects Call Park, Park Pickup, Call Pickup, etc.
  • 13. #kazoocon14 Kamailio But wait, there’s more! • Enhanced BLF • We can now XXX ??  Karl • Other Advanced SIP Routing Logic • SIP MESSAGE support • Etc.
  • 15. #kazoocon14 FreeSWITCH Customizations submitted upstream! Working with the FreeSWITCH team After acceptance our own kazoo-freeswitch RPM will be deprecated
  • 16. #kazoocon14 FreeSWITCH Fixed implementation issue with Erlang Interface Primarily affected large ring-groups status = ei_xreceive_msg_tmo(ei_node->nodefd, &received_msg->msg, &received_msg->buf, globals.receive_timeout );
  • 17. #kazoocon14 FreeSWITCH Look forward to… Round-robin channel events Full duplex eCallMgr connections Mod_verto?
  • 19. #kazoocon14 Kazoo Install Alot of work going into automating and improving the install process ISO Installation is NOT just for a single server Helps us with QA also! Build Server Automation Auto-pushing and versioning packages repo.2600hz.com updates RPMs & Packages re-organized
  • 20. Kazoo Install Kazoo Installer Script is the brains of the install #kazoocon14 Available bundled in the ISO Current, always up-to-date net installer Can be a stand-alone installer Can be a stand-alone configuration tool With support for cluster configuration
  • 24. #kazoocon14 Kazoo Install Look forward to… Offline capabilities Improved help Smarter support for cluster deployment
  • 25. #kazoocon14 Kazoo Install Kamailio and FreeSWITCH Already have cross-platform support They already generate RPMs and Thanks to this work, we now have our sights on supporting other operating systems.
  • 27. #kazoocon14 Monster UI Released! Account Manager Number Manager Smart PBX Webhooks PBX Connector
  • 28. #kazoocon14 Monster UI Carrier App
  • 31. #kazoocon14 Monster UI We are creating a community app store Unleash the monster!
  • 32. #kazoocon14 Monster UI Look forward to… Carriers App Branding App User Portal Operator Console Callflow App
  • 34. #kazoocon14 Provisioner We’ve split Provisioner into three concepts: Back-end of Provisioner. APIs and configuration generation SmartPBX / Provisioner Integration When adding a phone, it’s provisioned w/ defaults Advanced Provisioner We expose everything we can It’s not intuitive, but it is powerful
  • 35. #kazoocon14 Provisioner Progress! Improved template engine Added support for TFTP and HTTPS Moved to file-based provisioning from dynamic Added timezone support Added limited BLF support Tested Kazoo feature defaults
  • 36. #kazoocon14 Provisioner Why not improve the old provisioner? The old provisioner is in a scary state We thought dynamically updating configs would be a nice feature. That was a mistake. Any software rollouts which introduce a bug have the capability of knocking ALL provisioned phones on the system offline.
  • 37. Provisioner We will be decommissioning the old provisioner #kazoocon14 as soon as possible. We will also be moving to SRV records. Instead of primary/secondary proxies More industry standard at this point Phones are removing primary/secondary options
  • 38. #kazoocon14 Provisioner Look forward too… Enhanced security More makes and models Advanced firmware support End-user provisioning
  • 40. #kazoocon14 Project Phonebook Unifies phone number management Aggregates multiple service providers One API set. All carriers.
  • 41. #kazoocon14 Project Phonebook Benefits Significantly faster number searches Support for contiguous numbers Much larger number pool Support for vanity numbers
  • 42. #kazoocon14 Project Phonebook Look forward to… Easy number acquisition The largest number pool in the US Fully automated porting
  • 44. #kazoocon14 Internationalization Supporting Kazoo installs internationally has been a learning experience. Differing Phone Number Formats Both routing and displaying them in the GUI GUI Languages Prompt Languages API errors Differing timezones and changing DST rules
  • 45. #kazoocon14 Internationalization Still more to be done Date/Time Formats Currency Differences Differing rules for emergency services Differing procedures for Porting But it is now usable outside the United States!
  • 46. #kazoocon14 Internationalization Kazoo presents some unique challenges. We support multiple zones Zones of a cluster are in different countries Had to find a way to allow different processing mechanisms system-wide This is why E.164 is so important!!! REQUIRES conversions on the way in and out A lot of people are used to cheating here!
  • 47. Internationalization Google has an awesome library for handling phone #kazoocon14 numbers world-wide. Libphonenumber Used by Android and other tools Erlang port available! We are looking to integrate it into the porject
  • 49. #kazoocon14 Kazoo PHP SDK Easier to use More APIs are supported More efficient Highly extensible
  • 50. #kazoocon14 Kazoo PHP SDK <?php require_once "vendor/autoload.php"; $options = array('base_url' => 'http://kazoo-crossbar-url:8000'); $authToken = new KazooAuthTokenUser('username', 'password', 'sip.realm'); $sdk = new KazooSDK($authToken, $options); $filter = array('filter_priv_level' => 'admin'); $users = $sdk->Account()->Users($filter); foreach ($users as $element) { $admin = $element->fetch(); $admin->require_password_update = true; $admin->save(); }
  • 51. #kazoocon14 Kazoo PHP SDK Look forward to… Complete API support Datatype casting from JSON schema Iteratiable validation exceptions Support for realtime events (webhooks/websockets)
  • 53. #kazoocon14 Screen Pop Big Thanks to Kirill! Support for major platforms Can be linked to any CRM Lots of convenience options A great sample of WebSockets
  • 55. #kazoocon14 Screen Pop Look forward to… No configuration downloads User profile management Enhanced user customizations
  • 57. #kazoocon14 What We’ve Done There’s so much more. We only have so much time Come see me after if you have more questions or specific things of interest!
  • 59. #kazoocon14 What We’re Working On Statistics & Performance
  • 60. #kazoocon14 What We’re Working On Statistics We need deep insight into the system. And so do you. SNMP Support Across the Board Dashboard with call completion statistics For us, and partners, too! In Monster! QA Automation & Simulations Including AUTOMATIC load testing
  • 61. #kazoocon14 What We’re Working On Federation
  • 62. #kazoocon14 What We’re Working On Allows separate isolated zones to operate as a single cluster. Loosely coupled highly cohesive Reduces load significantly Increases scalability dramatically Provides isolation
  • 63. #kazoocon14 What We’re Working On Federation has been code complete for a little while now! It needs testing There will be edge cases We welcome community contributions here
  • 64. #kazoocon14 What We’re Working On True Class 4 / 5 Hybrid
  • 65. #kazoocon14 What We’re Working On With our changes to Kamailio, we now can finally achieve a true Class 4 & 5 Hybrid. Class 4 is just “proxy/switching” Class 5 is features and media handling
  • 66. #kazoocon14 What We’re Working On Build & Release Transparency
  • 67. #kazoocon14 What We’re Working On Customers and community members want more transparency into changes and features We are working hard to make this a reality, but this is new territory for us Better tickets, better release notes and other automated build mechanisms are in the works!
  • 68. #kazoocon14 What We’re Working On Database Upgrades & Performance Improvements
  • 69. #kazoocon14 What We’re Working On Moving to Apache CouchDB 1.7.X Cloudant re-integration code complete No existing migration No apparent zone support Once packages are available kazoo-bigcouch will be deprecated.
  • 71. #kazoocon14 What We’re Working On We are looking into replacing CouchBeam This is an internal library that handles all database communication Replacing it would lead to performance increase EVERYWHERE Provide application awareness to database connectors
  • 72. #kazoocon14 What We’re Working On Look forward to… Overall system performance improvements Many couch improvements Active development Support for R16B+
  • 74. #kazoocon14 Where We’re Going To a pool party!!!
  • 75. #kazoocon14 Where We’re Going Project Pool Party
  • 76. #kazoocon14 Where We’re Going Small Computers + Low Power + Massive Distribution = Big Possibilities
  • 77. #kazoocon14 Where We’re Going Moar Phonebook
  • 78. #kazoocon14 Where We’re Going We will continue to enhance project phonebook. International Number Inventory Cost control mechanisms Smarter search routines
  • 79. #kazoocon14 Where We’re Going International Coverage
  • 80. Where We’re Going We will begin reaching out with all engineering and engagement programs internationally. #kazoocon14 Why? Well, world domination, clearly. (More importantly… because people have asked us to)
  • 82. #kazoocon14 Kazoo Hosted Hardware updates Monster UI Deploy updated Kamailio Adding email to fax and Google Printer Cluster expansion
  • 83. #kazoocon14 Kazoo Hosted Look forward to… Monster UI New provisioner Websockets SRV/DNS records Cluster expansion
  • 85. #kazoocon14 Contributing Test tools Documentation Fork/pull (github) Community Scripts Build! Couch DB dump
  • 86. #kazoocon14 ... ........ ......+OO=.. ....IOOOO8?...... .:O,.8OO8OO7...... ..IO.~OOOOO8O.. .. ...O8.OOOOOOO8~... .. . ...I8=,8OOOO8OO=........ ....$O.:8OOOOOOO?....... ... .8O.OOO8OOOOO8...... .....7O8.ZOOOOOO8O8,.... .. ...88I.8OOOOOOOO8:.... ....:OO7,OOOOOOOOOO:... .=OO,$8OOOOOOOO8Z... ..$O8.=OOOOOOOOO8O,....... ...O8O.ZOOOOOOOO8OO,...... ...OO8.$OO8OOOOOO8O:..... ...?OOO.8OOOOOOOOO8O$... .. ....8OOO.OOOOOOOOOOOO$.... . . . .....8OO7,8OOOOOOOOOO88......... . ...OO8:,OOOOOOOOOOO88..... . . ... +8OO++OOOOOOOOOOO88,..... ......~8O8.:OOOOOOOOOOOOO.. .. ...OO88,$OOOOOOOOOOOOO?... ..8OO8.OOOOOOOOOOOO8O+.... ..... ..:88O8.OOOOOOOOOOOOOO+............... ...,OOOO.OOOOOOOOOOOOO88.:O8OO8O:..... ...+OO88.O8OOOOOOOOOO8:Z8OOIIO8O8.... .....OO8O.8OOOOOOOOOZ+:8OO8~...=OOZ.. ....:O88O.8OOOOOOOO?.?8OOO88~...8O:. ......$OOOO.OOOOOOO.O.$O8O8O8O:..~8D. . ..?OOO?.8OOOO~.8,+OOI:OOO8...7O.. . ..ZOOOZ,8OOO..8+,OO...8OO...:O: .. ...7OO8~.8O8,.88.8O:..8O8:..,8+... .. .ZOOO+,OOO.$8~OOOOOOOO~..+8I.. .....8OOO,=88$:88,8O8OO88...8O,. .....OOO8.,OO=8OZ.O8OO8...8O8.. . ......OOO8.I8OZ7O8.8OO?~O8O8,... . . ..$OO8.~OOOOOO.+OO88O?... ...88OZ.=OOOOO88:....,..... ...8OO8.OOOOOOOOOOOOOO... ....ZOO7.?8OOO8OOOOOOO+.. ....?OO$.=8OOOOOOOOOOO~... .......,OO8.,OO8OOOOOOOO8:.. ..... ~OO+.+88OOOOOOOOOO....... ........=8O$.IOOOOOOOOOOOO... .. ....OO=.~8OOOOOOOOOO8. . .....OO,.78OOOOOOOO8O7.... ... .O8+.~OOOOOOOOOO7.... .......D8..+OOOOOOOOO..... . ... .?8~.OOOOO8O8...... ...... .?8:.?8OO8+....... . . ....8..I$........ . .. ............ . ....

Notas do Editor

  1. Keep kazooing