Skip to main content


Table of Contents (click to expand)


Kazoo is an API-based platform that lets you use your existing phones, programming languages and IT skills to build voice, video and SMS services.


Steps are documented on github's project page:

Comparison with mod_erlang_event

From a thread on "erlang-questions" forum in 2015:

(click to expand)

[erlang-questions] telephony

James Aimonetti <>
Thu Jul 30 20:38:28 CEST 2015


Le 07/30/2015 12:34 AM, Kukosa Tomáš a écrit :

On 30.7.2015 0:39, James Aimonetti wrote:

Hi List, Is there any open source application out there that provides an Erlanginterface for programming a voip router? Or is it the asterisk ecosystem(for instance with Erlang using AGI) that comes the closest to theoriginal mission? S. FreeSWITCH has two modules, moderlangevent and modkazoo, which present FreeSWITCH as a C-Node to other Erlang VMs. We built and use modkazoo for Kazoo, but it is generic in purpose; I know several folks using moderlangevent in production as well. Different use cases for each. Is there any simple description of difference between modkazoo and moderlangevent together with hints which use cases they are good for? ____ _erlang-questions mailing list

Its been a while that I've looked at mod_erlang_event, but the main differences I recall are:

mod_kazoo supports multiple connections from multiple VMs; mod_erlang_event supports one.

mod_kazoo opens many TCP sockets for streaming events out of FreeSWITCH to the Erlang VM; mod_erlang_event streams them over the same connection as everything else.

mod_erlang_event allows you to take control during the dialplan processing; mod_kazoo does not. Both support being in control of the call from the start (similar to mod_xml_curl if you're familiar with that).

mod_kazoo runs more threads and seems more performant internally.

I would say (without having seen recent commit history) that mod_kazoo is a more maintained module with a company being behind it (2600Hz), while mod_erlang_event is more community supported at this point (again, could be heresy).

We built Kazoo on mod_erlang_event initially, but decided we needed to rewrite it from scratch once we hit a certain level of call volume; mod_kazoo is the result of that effort.

James Aimonetti Lead Systems Architect / Impressionable Scallywag "I thought I fixed that"

2600Hz | sip: tel:415.886.7905 irc:mc_ @ freenode -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird -

iQEcBAEBCAAGBQJVum8kAAoJENTKa+JPXCVgSj8H/2zFV5JF6kqP9nMX5azd3lcG pIc1N9euxi8/aP7Kn0eug4cMCPf8Aik31oPS3OQzB7U/Mr743R8dQq9YeFtl/RPw DSBF++VQR1GhBnZwa7eToiVzBxylrFlSz4mOAbBueg0rflqr0qZLGARgGOMXUHi9 AYKurAoeT2hsehti83eiBpY6L+fqeTxy7SqkBA+t250MbuiW8AEdUZ9AgkrS2HHX eQ/pHqaWurnLME943JK3Z28AS5Nx7eSsmv1XyEfb6sKYyT8oi8aP64BmFBqsE2gM ObwslOJK4E3uQ5rb5tEGHIlF5/9ZjZWtbJStoit1p+MeyWWt+Svw5WOPpTXqGqA= =W3e/ -----END PGP SIGNATURE-----

From the #2600hz freenode IRC channel (11/18/2019):

Click here to expand...


mod_kazoo is a different approach than mod_erlang_event

we use mod_kazoo

it offers setting up separate TCP connections for event streams out of freeswitch
mod_erlang_event only supported multiple connections via DistErl by accident

mod_kazoo explicitly allows multiple connections there

and the new mod_kazoo offers even more good stuff over the existing mod_kazoo