Search all guides
Documentation / Getting Started
Requirements and boundaries
The FreePBX module and the independent operator examples have different runtime requirements.
On the PBX
Use a controlled FreePBX 16 or 17 installation with PHP Sodium and HTTPS support through cURL. The module retains PHP 7-compatible syntax. Prepare a complete compatible HTTPS activation endpoint, operator-authorised service entitlements and an explicit outbound routing policy for a new neutral identity. Back up the PBX before evaluation.
On the operator side
The independent BYOT reference requires PHP 8.2+, Sodium, POSIX, JSON, HTTPS and a local filesystem supporting flock and atomic rename. Number-search integration requires PHP 8.2+, JSON, POSIX and persistent local locking; cURL is needed for the optional supplied transport. Run as a dedicated unprivileged account, not root.
Infrastructure is still your responsibility
Carrier connectivity, SIP edges, authentication, billing and number assignments must be supplied by the operator. A valid configuration response cannot establish a live telephone network. The website lab requires none of this infrastructure because it only uses local fixtures.
Runtime checklist
| Component | Runtime and prerequisites | Acceptance boundary |
|---|---|---|
| FreePBX module | FreePBX 16 or 17; PHP Sodium and cURL/HTTPS; secure Asterisk runtime state | Native FreePBX behaviour and live calls require controlled tests. |
| BYOT provider example | PHP 8.2+, Sodium, POSIX, JSON, HTTPS, local flock and atomic rename | Dedicated unprivileged account; default infrastructure is simulated. |
| Operator number search | PHP 8.2+, JSON, POSIX, persistent local locking; cURL for the supplied transport | Real customer, catalog, ordering, billing and carrier adapters required. |
| Website lab | A JavaScript-enabled browser; no credentials or carrier connection | Local fixtures demonstrate search behaviour only. |