README.md

August 24, 2026 ยท View on GitHub

The idea to have such software on the hand, has been in my mind for a long time.
Started developing projects such as: tSIP, HATS, I realized that I don't have a solution that I could be used as a base for the new ones and able to provide the basic VoIP functionality.
Freeswitch was not suitable in this case, since it should to be small, portable and ready for embedding as possible.
Baresip (as-is, witch I usually used), didn't suit in this time.
So I decided it's time to write something that would satisfy these needs.

Requirements for the first version:

  • Small, portable and configurable

    It should be able to work on devices with 512Mb RAM (such as: OrangePI One or MTK SoCs MT7621, as possible)
    Capable with: OpenWRT and FreeBSD

  • Supports protocols:

    - SIP (must be)
    - WebRTC (optional)

  • Telephony capabilities:

    - SIP registrar / locations (for local users)
    - External SIP gateways (for connecting FXO/FXS equipments)
    - Supports audio and video (as possible) calls
    - Calls routing, something similar to FreeSWITCH dialplan but simpler.

  • Management capabilities:

    - Web based management interface (optional)
    - JSON-RPC services for automation and integration purposes

v0.0.1

This is an experimental version, for testing purposes only.
Actually, it's a b2bua client with extra features.
Based on libre and baresip and implemented following functions:

  • SIP registrar and location server
  • SIP gateways
  • Inbound/Outbound/Intrecom calls routing
  • Simple dialplan with applications
  • Codecs: G711
  • Local users db

Build and run

Just perform script: build.sh, and wait a bit.
Default home path: /opt/empbx
If everything compiles without errors you can go there and try to start it: ./bin/empbxd -a debug
There is a single config file: /opt/empbx/configs/empbxd-conf.xml, you can describe users, gateways, dialplan and etc, there.