Kazoo in part is the Apps, all written in erlang. This gives the functionality to the PBX such as call queues, callflows, conferences, user authentication, call rating etc. Below are a list of the apps available inside the open source version of Kazoo and a rough idea of what they do.
The paid version of 2600hz Kazoo has a better maintained “Callcenter” module. This is the older module, no longer actively developed. It tracks “Agents” (which represent users with devices), tracks their status and figures out who to connect the call to.
I have not used this app yet, but it appears to be a method of having your Voicemail call you. It periodically attempts to call the voicemail box owner (up to a limit) and play the missed calls. If anyone has better information on this module, please leave a comment.
This is a sort of event listener. You can use blackhole to connect your 3rd party code or app to the Kazoo system and receive events. Kind of like webhooks, but instead of the system sending a specific event to an endpoint, you instead connect to blackhole and listen for events.
Online payment processor. Documentation on this is very light and since all my customers are post-pay, I’ve not needed Braintree yet.
- Call Inspector
An app to perform centralized call inspection, instead of grepping logs across multiple servers. Another app I’ve not yet used as I use Heplify and Homer sip capture server for my call inspection.
The callflow app itself holds modules for DND, callerid manipulation and routing to other apps, like ACDC.
Documentation on this app is very thin. All I know of it, is it provides functionality to a caller to wait for a user/device to become available.
- Calling Card Callback Platform (CCCP)
Again, documentation for this application is a bit thin. From my understanding, it allows for an external caller to dial your system and then make a call out but could functionally be used for other cases (like setting up conference calls with multiple participants with a series of API calls).
- Call Detail Records (CDR)
Should be obvious, on a CHANNEL_DESTROY event (meaning the end of a call), it records details of the call to the accounts MODB (Monthly Database).
Supplies config for conference rooms to Freeswitch/mod_conference, controls discovery of conferences and manages participants.
The HTTP Rest API.
Handles SMS and MMS routing.
Manages call control. Acts as a layer of abstraction for various apps, but is the main layer of interaction with freeswitch.
Gets EDR events out of Kazoo.
Runs virtual fax machines for both sending and receiving faxes.
Communicates with Kamailio to provide access lists and incoming packet rate limits.
Monitors for hangup causes, sets which to ignore and sets hangup metrics for when a volume of hangups should trigger an alert. Since some hangups can be benign in low volumes, an increase in timeouts or similar hangups can indicate a problem.
Rates calls against your ratedeck.
Maintains limits, like trunk, credit or minutes limits.
Listens to dial codes like DTMF tones and triggers actions, like transfers, call recordings, etc
- Media Manager
Manages media for playback to freeswitch. Also generates TTS media files.
RTP echo and tone testing.
Sends notifications via SMTP or JSON to url (or both). Handles notifications for faxes, hangup causes, system alerts, etc. Replaced by Teletype.
Handles/tracks Subscriptions and Notify messages for Kamailio to handle things like BLF and Presence.
During a callflow, it can send the call information to a HTTP/HTTPS endpoint of your choice. You can process the sent XML or JSON data and respond with the same to manipulate the call (like changing caller ID, callflow routing, etc).
Handles push notifications to wake up devices on an incoming call bridge.
Handles caller authentication.
If a call hits Kazoo with a destination number that isn’t assigned to an account, it sends a SIP response that it can’t be completed.
Skeleton App. More or less a demo app showing how to listen to the AMQP message bus and respond.
Eavesdrop on calls.
Collect event, memory, process stats among other statistics.
Manage your carriers for inbound and outbound routing.
Holds and manages most of the Kazoo Configuration.
Runs background jobs, like importing ratedecks, performing monthly rollovers and MODBs.
Replaces the Notify application. Listens for events and notifies via email.
Manages connectivity to existing PBXs.
Send HTTP/HTTPS data in response to events within Kazoo