This document provides a summary of Karl Anderson's presentation at Kazoocon14. Some of the key areas discussed include improvements to Kamailio and FreeSWITCH dependencies, the Kazoo installation process, the Monster UI, Provisioner, Project Phonebook, internationalization efforts, and upcoming work on statistics, federation, and hosted Kazoo services. The presentation outlines progress made over the past year and outlines an ambitious roadmap for further developing and enhancing the Kazoo platform.
6. #kazoocon14
Highlights
Some of the highlights
Bugs & Improvement in dependencies
Installation
Monster UI
Provisioner
Project Phonebook
Internationalization
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
);
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.
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
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
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!
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
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
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
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!
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+
78. #kazoocon14
Where We’re Going
We will continue to enhance project phonebook.
International Number Inventory
Cost control mechanisms
Smarter search routines
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)