# 2600hz/kazoo architecture

> Architecture diagram of the GitHub repository 2600hz/kazoo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/2600hz/kazoo
- Repository: https://github.com/2600hz/kazoo

## Overview

Kazoo is a distributed, API-based telecommunications platform for building hosted PBX and other voice, video, and SMS services. A user-facing workflow begins with an API client requesting a communications service; the repository includes API, callflow, call-control, and media components, alongside conferencing, messaging, and account-management capabilities. The tree supports identifying these subsystems, but the sampled source does not show their runtime wiring, so internal relationships are left unverified rather than presented as confirmed calls.

Main entry points: [`applications/ecallmgr`](https://github.com/2600hz/kazoo/tree/master/applications/ecallmgr) (Call Control), [`applications/crossbar`](https://github.com/2600hz/kazoo/tree/master/applications/crossbar) (Crossbar API), [`applications/callflow`](https://github.com/2600hz/kazoo/tree/master/applications/callflow) (Callflow), [`applications/stepswitch`](https://github.com/2600hz/kazoo/tree/master/applications/stepswitch) (Call Routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and Accounts"]
  node_crossbar["Crossbar API"]
  node_registrar["Registration"]
  node_comp128["SIM Authentication<br/>[comp128.c]"]
end

subgraph group_calls["Call Processing"]
  node_callflow["Callflow"]
  node_ecallmgr["Call Control"]
  node_stepswitch["Call Routing"]
end

subgraph group_services["Communications Services"]
  node_conference["Conferencing"]
  node_fax["Fax"]
  node_teletype["Notifications"]
  node_webhooks["Webhooks"]
  node_acdc["Queue Distribution"]
end

subgraph group_platform["Platform Internals"]
  node_couch[("CouchDB Data")]
  node_amqp["AMQP Messaging"]
  node_media["Media Management"]
  node_presence["Presence"]
end

node_client(("API Client"))

node_client -->|"requests services"| node_crossbar
node_crossbar -.->|"dispatches calls"| node_callflow
node_callflow -.->|"controls calls"| node_ecallmgr
node_ecallmgr -.->|"routes calls"| node_stepswitch
node_ecallmgr -.->|"uses media"| node_media

click node_crossbar "https://github.com/2600hz/kazoo/tree/master/applications/crossbar"
click node_registrar "https://github.com/2600hz/kazoo/tree/master/applications/registrar"
click node_comp128 "https://github.com/2600hz/kazoo/blob/master/applications/registrar/c_src/comp128.c"
click node_callflow "https://github.com/2600hz/kazoo/tree/master/applications/callflow"
click node_ecallmgr "https://github.com/2600hz/kazoo/tree/master/applications/ecallmgr"
click node_stepswitch "https://github.com/2600hz/kazoo/tree/master/applications/stepswitch"
click node_conference "https://github.com/2600hz/kazoo/tree/master/applications/conference"
click node_fax "https://github.com/2600hz/kazoo/tree/master/applications/fax"
click node_teletype "https://github.com/2600hz/kazoo/tree/master/applications/teletype"
click node_webhooks "https://github.com/2600hz/kazoo/tree/master/applications/webhooks"
click node_acdc "https://github.com/2600hz/kazoo/tree/master/applications/acdc"
click node_couch "https://github.com/2600hz/kazoo/tree/master/core/kazoo_couch"
click node_amqp "https://github.com/2600hz/kazoo/tree/master/core/kazoo_amqp"
click node_media "https://github.com/2600hz/kazoo/tree/master/applications/media_mgr"
click node_presence "https://github.com/2600hz/kazoo/tree/master/applications/omnipresence"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_crossbar,node_registrar,node_comp128,node_client toneBlue
class node_callflow,node_ecallmgr,node_stepswitch toneAmber
class node_conference,node_fax,node_teletype,node_webhooks,node_acdc toneMint
class node_couch,node_amqp,node_media,node_presence toneRose
```

## Components

### API and Accounts

- [Crossbar API](https://github.com/2600hz/kazoo/tree/master/applications/crossbar): `applications/crossbar`
- [Registration](https://github.com/2600hz/kazoo/tree/master/applications/registrar): `applications/registrar`
- [SIM Authentication](https://github.com/2600hz/kazoo/blob/master/applications/registrar/c_src/comp128.c): `applications/registrar/c_src/comp128.c`

### Call Processing

- [Callflow](https://github.com/2600hz/kazoo/tree/master/applications/callflow): `applications/callflow`
- [Call Control](https://github.com/2600hz/kazoo/tree/master/applications/ecallmgr): `applications/ecallmgr`
- [Call Routing](https://github.com/2600hz/kazoo/tree/master/applications/stepswitch): `applications/stepswitch`

### Communications Services

- [Conferencing](https://github.com/2600hz/kazoo/tree/master/applications/conference): `applications/conference`
- [Fax](https://github.com/2600hz/kazoo/tree/master/applications/fax): `applications/fax`
- [Notifications](https://github.com/2600hz/kazoo/tree/master/applications/teletype): `applications/teletype`
- [Webhooks](https://github.com/2600hz/kazoo/tree/master/applications/webhooks): `applications/webhooks`
- [Queue Distribution](https://github.com/2600hz/kazoo/tree/master/applications/acdc): `applications/acdc`

### Platform Internals

- [CouchDB Data](https://github.com/2600hz/kazoo/tree/master/core/kazoo_couch): `core/kazoo_couch`
- [AMQP Messaging](https://github.com/2600hz/kazoo/tree/master/core/kazoo_amqp): `core/kazoo_amqp`
- [Media Management](https://github.com/2600hz/kazoo/tree/master/applications/media_mgr): `applications/media_mgr`
- [Presence](https://github.com/2600hz/kazoo/tree/master/applications/omnipresence): `applications/omnipresence`

### Other components

- **API Client**

## Connections

- API Client → Crossbar API: requests services (evidence: `README.md`)
- Crossbar API → Callflow: dispatches calls
- Callflow → Call Control: controls calls
- Call Control → Call Routing: routes calls
- Call Control → Media Management: uses media
