Architecture

DjangoPBX is written in Python using the Django Framework.

The main component is of course FreeSWITCH which is a very powerful and highly scalable multi-platform voice and video switch.

uWSGI serves the DjangoPBX output to both FreeSWITCH and a NGINX web server.

PostgreSQL provides the database back end.

RabbitMQ is used as a message broker for more advanced clustering operations.

All services are protected by nftables which provides a firewall that can be dynamically configured from within the DjangoPBX application.