Preseed your PBX for Fun and Profit

Speaker: Chris Maj

Track: Embedded Applications

Type: Short talk (20 minutes)

Room: Petit amphi

Time: Jul 18 (Fri): 10:30

Duration: 0:20

What is a PBX ?

Private Branch eXchange (PBX) systems connect desk phones in your school or office to outside lines from the telephone company. Over the past 25 years, open source Asterisk-based systems like FreePBX replaced many proprietary competitors in phone closets around the world, by bridging calls between legacy analog copper lines, digital interfaces such as ISDN PRIs, and now ubiquitous Voice-over-IP (VoIP) solutions like SIP and WebRTC.

Why call a PBX an embedded application ?

PBX systems typically run around the clock, routing low latency audio streams and providing emergency calling capabilities to end users. Sangoma produces a line of hardware appliances, as well as cloud solutions, that offer curated FreePBX web interface experiences to help non-Linux users manage their systems effectively.

When did Sangoma start using Debian ?

For many years, Sangoma targeted CentOS for installations; but when the CentOS EOL date of July 2024 came up on the horizon, the decision was made to switch to Debian as the primary target for new FreePBX deployments. This overhaul involved migrating internal build pipelines and many pieces of custom code, including our ISO delivery mechanism.

Where is this talk going ?

During construction of the new FreePBX 17 Distro ISO, derived from Debian 12, we endeavored to make the install as simple as possible using both existing and potentially novel preseed customization ideas. Highlights of this talk will include:

  • Presentation of our GPLv2’d Ansible role “sngfd12 for quickly generating a custom preseeded ISO based on the upstream stock Debian ISO as input.
  • Controlling expression of preseed selection at GRUB installer prompt using a unique “spice level” concept.
  • Automatically partitioning, RAIDing, and resizing (sharing some clever insights for partman fans :-)
  • Novel approaches to randomized password generation during installation - a topic particularly relevant to embedded application developers w/r/t ongoing regulatory changes in this area.

URLs