•Who are we, and how do we use Kazoo?
•Challenges in managing a global Network
•How Kazoo makes that easier, and how we work with it
globally (zones and clusters!)
•Contributions to Kazoo
Who are we? What do we
•Helping customers make better decisions since 2005
•Using Kazoo for 3-ish years, after building a very similar
stack, finding Kazoo, and realizing Kazoo was had
stronger architectural design
•Selling Hosted PBX to businesses, and helping
integrators and other technology companies sell VoIP
without as much derp-ery.
Custom GUI / 3rd Party
• Integrate with the likes of:
•Dyn, NSone, Freshbooks, Beanstream,
Salesforce.com, SugarCRM, etc.
•Built a custom GUI for managing reseller-level accounts
•Network-wide DID Manager, “Macro-based”
•We built a provisioner, too.
Where we exist
• International POPs:
•San Jose, CA
•Tokyo, JP is next!
What we’ve learned along
•General Architecture, Routing, Internationalization
(language, time, tones, numbering), Business
(Rating, pricing, etc)
•Zones, Clusters, DNS, Backups, Replication
• Monitoring, Alerting, Logging, Scaling, and
managing globally (sup, API, GUIs)
•E911, DID ownership can be challenging (and different
•Tone Zones, Time Zones, Language Settings, e.164
formatting is important and requires attention
•Routing inside of an international Kazoo cluster may not
behave as you expect – DNS is important!
• International call rating, invoicing, pricing has its own
challenges. Currency, “local calling areas”, taxes, oh
•Zones: Use them! They need to be set up properly
•Clusters: Make sure you can survive on the machines
in only that data center
•DNS: DNS SRV is your friend. Geo-aware DNS with
custom SRV responses is your best friend.
•Backups/Replication: Couch is revision based, but a
delete is not a revision. Be careful, and have a static
backup at the ready
•Monitoring: Diamond, InfluxDB, Graphite-API, Grafana,
SUP, Sensu, CrossBar, oh my!
•Alerting: Sensu, Pagerduty, even HipChat!
•Deployment: Puppet (FW, Auth, OS pkgs, roles)
•Logging: rsyslog, logstash, elasticsearch, Kibana
•Management Tools: Bash completion for sup!, patches
to some whapps for remote phone reboot, community
scripts on github
•Bash completion for sup
•SIP check_sync in ecallmgr
•Patch to support caller ID prepends with dashes
•Patch to have a callflow object to “set” CID
• find_account_by_id, check_initial_call,
•BigCouch shard/node updater
• We’re building:
•AMI <-> Kazoo Translation Bridge
• CNAM Lookup, ”On-net” (Offnet) Kazoo Query Tool
Let’s get everyone involved!
We’re not competing with each other, we’re competing
with the ILECs