mod_kazoo - Crossing Language Barriers for Fun and Profit

Karl Anderson
Senior Bit Herder

Kazoo is an ambitious project, by 2600hz, to provide a complete large scale VoIP and telecommunications platform for everyone. Released under the OSI-approved MPL 1.1 open source software license, we're building upon strong FOSS components like Linux, Erlang, FreeSWITCH, CouchDB (specifically BigCouch), and RabbitMQ. Our project is a great example of the wonderful things that can happen when software is open.
Originally leveraging a module built by Andrew Thompson to expose FreeSWITCH as an Erlang C-node, as we grew, a use case mismatch began to cause issues. Taking lessons from writing primarily Erlang for the last few years we developed another C-Node FreeSWITCH module better suited for Kazoo, called mod_kazoo.
This talk will go over our experience coding a C-Node and applying Erlang principles to C code. Removing mutexes, passing messages between threads and functional decomposition allowed us to scale throughput as well as lower the impedance between FreeSWITCH and Kazoo.

Talk objectives:

- We would like to share our experience creating a C-node, details of the Erlang Interface library, and how we applied Erlang principles to C code.

Target audience:

- This talk should appeal to individuals interesting in creating a C-node and those who want to see the influence Erlang programming can have in coding other languages. Additionally, anybody interested in Kazoo, FreeSWITCH, or VoIP may find it illuminating.


Karl Anderson is CTO and chief architect at 2600hz, an engineering company specializing in massively scalable open source telecom solutions for carriers and the enterprise. He led the design and engineering of the 2600hz open source Kazoo Platform, which is mainly written in Erlang. He was also the core designer of the product, an open source PHP based Voip switch configuration tool for SOHO. When he is not busy writing code he serves as a Kamailio and FreeSWITCH expert as well as a general problem solver. Karl’s 13 years of experience in electrical engineering and computer science include developing an entire hosted carrier network from the ground up, managing a large fiber backbone, and leading several successful design teams. In short, he is the jack-of-all-trades for all things distributed VoIP. A robotics fanatic and a lover of all things technical, he enjoys building gadgets, taking things apart, and fiddling with expensive equipment.

Back to conference page