custompbx / custompbx

API server and Web GUI for FreeSwitch written in Golang and Angular

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CustomPBX

CustomPBX (currently in development) is an API server and Web GUI for FreeSwitch, offering a pure FreeSWITCH experience. It can be installed on existing systems, allowing for the import of existing configurations. The system is encapsulated within a single binary file.

Please note that this project is still in development, has not undergone extensive testing, and may potentially have security vulnerabilities.

The Backend is developed using Golang v.1.19 and is located in the src/custompbx directory.

The Frontend, built with Angular v.17, can be found in the src/cweb-app directory.


System Requirements:

  • Linux OS (amd64)
  • FreeSWITCH
  • Postgres Database

Build Process

To initiate the build process, execute the following command:

make install

For rebuilding after resolving dependencies, use:

make build

To locally run the frontend, perform the following steps: build and test the project, set the backend websocket URL using the command export WS_BACKEND_OVERRIDE=wss://HOST:PORT/ws, and finally execute:

make front-serve

Additional options can be found in the Makefile.

The compiled binary file is located in the bin/ directory and can be used as outlined in the Documentation.

Alternatively, you can utilize the precompiled binary available on the Releases Page.


Build with Docker (TEST ONLY)

A Docker version of the project is also available, currently intended for testing purposes only. In the docker-compose.yml file:

  • Replace the token with yours - SIGNALWIRE_TOKEN=<YOUR_TOKEN_HERE>
  • Start the containers and open https://127.0.0.1:8080/cweb (or your Docker host), making sure to allow self-signed certificates.

You can start Docker with PostgresDB + Freeswitch + Custompbx by using the command:

docker compose up -d

Documentation

For detailed instructions on Installation and Configuration, please refer to the project's Wiki Page.

If you have any questions or feedback, don't hesitate to get in touch through the discussions or by opening an issue!

system diagram


GUI Demo

demo

About

API server and Web GUI for FreeSwitch written in Golang and Angular

License:MIT License


Languages

Language:TypeScript 55.5%Language:Go 33.1%Language:HTML 9.6%Language:CSS 1.5%Language:Dockerfile 0.2%Language:Makefile 0.0%Language:JavaScript 0.0%