×

Sign In

Sign in with your username and password to access your account.
×

SIP Telephony with IZPBX

Claude enabled me to work on projects with a speed never possible before. I would like to make the results public for other people to use that don't have access to sometimes expensive AI subscriptions. Furthermore, solving problems with AI does mean that the process is often not documented (chat just gets deleted without care). In the earlier days this information was often publicly visible because the work was done by a community in a forum or other form of textual chat. My intention is to fill this gap by uploading findings from AI chats to my website.

The information presented is not checked 100% for mistakes but was generated from a chat that lead to a confirmed working result.

Abstract



izPBX VoIP Setup Documentation — Abstract
Authors: Tobias OE3TEC, Claude (Anthropic)
==========================================

This document describes the complete setup of a self-hosted LAN VoIP system
based on izPBX (Asterisk 20 + FreePBX 16) running in Docker on a home server.

The guide covers the full process from software selection through to verified
HD audio calls, including all configuration decisions, the reasoning behind
them, and the troubleshooting steps encountered along the way.

SCOPE

The system consists of three components:

  - izPBX in Docker (Asterisk engine + FreePBX web GUI + MariaDB)
  - A Snom 715 SIP desk phone on the local LAN (extension 100)
  - Linphone softphone clients on Ubuntu, accessible both on the LAN
    and remotely over WireGuard VPN (extensions 101, 102)

No PSTN trunk is configured. This is a purely internal extension system
for home/lab use.

NOTE: The WireGuard + SIP integration has not been tested yet. The relevant
sections describe expected behaviour based on WireGuard's layer 3 VPN design
and should be verified before relying on them.

KEY TOPICS COVERED

  - Why izPBX was chosen over a bare Asterisk install on OpenWRT
  - Docker network architecture: the interaction between network_mode: host
    (izpbx container) and the bridge-networked MariaDB container, and how
    a fixed subnet solves the connectivity problem between them
  - Pre-deployment port conflict analysis and resolution
  - Annotated compose.yml and .env configurations with full reasoning
  - FreePBX codec configuration for G.722 HD audio
  - Snom 715 web interface registration and RTP settings
  - Linphone (linphone-desktop) account setup and codec priority configuration
  - Why G.722 reports as 8kHz in call stats despite being wideband (RFC 3551)
  - WireGuard considerations for remote SIP clients (untested)
  - Data persistence: what survives reboots, container restarts, and image
    updates — and what does not. All FreePBX configuration and module updates
    installed via the web UI are written to the /data Docker volume and are
    fully persistent. The volume is stored on the host at
    /home/tobias/izpbx/data/izpbx/ and is independent of the container image.
  - Management commands, upgrade procedure, and future Hamnet integration notes

INTENDED AUDIENCE

Anyone looking to reproduce this setup on a similar home server environment
running Docker, with a SIP desk phone and/or softphone clients. Basic
familiarity with Docker Compose and Linux is assumed.

Downloads

The full documentation can be found here.

izpbx-setup.pdf

last edited 20 hours ago