Skip to content

Repository files navigation

DjangoPBX

DjangoPBX - A full-featured domain based multi-tenant PBX driven by Django and FreeSWITCH.

The objective of this project is to provide a GUI wrap around FreeSWITCH using Django and the Python language and also code all the support scripts in Python (freeswitch-mod-python3) to provide a platform that is easy to learn and code owing to it's use of just one programming language.

DjangoPBX basically does two things.

  1. It provides a portal for end users and device configuration.
  2. It generates FreeSITCH configuration from the data you provide in the Admin interface.

FreeSWITCH configuration can be delivered in 3 ways: dynamically with mod-xml_curl

<configuration name="xml_curl.conf" description="cURL XML Gateway">
  <bindings>
    <binding name="example">
      <param name="gateway-url" value="http://127.0.0.1/xmlhandler/" bindings="dialplan|directory"/>
    </binding>
  </bindings>
</configuration>

or semi-statically using wget (dialplan example):

<?xml version="1.0" encoding="utf-8"?>
<include>
    <X-PRE-PROCESS cmd="exec" data="wget -qO - http://127.0.0.1/xmlhandler/dialplan.xml" />
</include>

or statically by writing out the XML files to the filing system.

Key features

  • Simple, straight forward and un-complicated.
  • Use of Python leads to more robust applications through exception handling and strong types.
  • Uses the proven Django Application Framework, so upgrades and database migrations are handled for you.
  • Multi language, all user text is passed through the Django translation mechanism.
  • Easily extended by adding new application modules.
  • Full REST API provided by the Django REST Framework.

Under development

The code in this repository is not yet ready for download or testing.

About

DjangoPBX - A full-featured domain based multi-tenant PBX driven by Django and FreeSwitch.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages