FusionPBX initial setup — domains, tenants, gateways, first dialplan
Your LYLIX PBX VPS provisioned with FusionPBX® came up with FreeSWITCH® running, FusionPBX accessible, admin credentials set, and PostgreSQL and ESL passwords regenerated per-VM. This article walks the first hour: signing in, configuring your default domain, creating a tenant if you'll be multi-tenant, adding a gateway (SIP trunk), and routing your first call.
1. Sign in to the FusionPBX admin GUI
Open https://<your-VPS-IP>/ — FusionPBX serves its admin interface directly at the root path. Accept the self- signed cert warning (or install a real cert first via the Let's Encrypt article).
Username: admin. Password: from your welcome email. The cloud-init that built your VM set the GUI password to your customer-portal password at first boot. It's not kept in sync after that — change it immediately under Accounts → Users → admin.
2. Set your default domain
FusionPBX is multi-tenant by design — every account, extension, and dialplan belongs to a domain. Even single-tenant installs have one domain. The cloud-init named your default domain after the VM's public IP; rename it to something sensible:
- Advanced → Domains
- Click your existing domain (the IP-named one).
- Change the name to your real PBX hostname, e.g.
pbx.yourcompany.com. - Save.
You can keep operating without a real DNS entry pointing at the VPS, but most SIP devices want a hostname rather than an IP, and TLS certificates need a hostname too. Set up the DNS A record sooner rather than later.
3. Single-tenant or multi-tenant?
If you're hosting one organization's PBX, you're single-tenant — the default domain is all you need. Skip to step 4.
If you're hosting multiple organizations on one VPS (an MSP running PBXes for several customers, for example), create one domain per tenant:
- Advanced → Domains → +.
- Enter the tenant's domain (each should be a real DNS name pointing at the VPS, e.g.
tenant1.yourpbx.com). - Save. Repeat for each tenant.
Each domain gets its own extensions, voicemail boxes, dialplans, gateways. Tenant A can never see Tenant B's anything. This is FusionPBX's killer feature relative to FreePBX, which is single- tenant by design.
Switch between domains in the upper-right dropdown of the admin UI.
4. Create your first extension
- (Switch to the target domain in the upper-right dropdown if multi-tenant.)
- Accounts → Extensions → +.
- Fill in:
- Extension: a number, e.g.
1001 - Password: long random — write it down for the softphone
- Effective Caller ID Name / Number: how the extension identifies itself outbound
- Outbound Caller ID Name / Number: what your trunk uses externally (your DID)
- Extension: a number, e.g.
- Save.
5. Register a softphone
Linphone or Zoiper for first-pass testing. In the account setup:
- Username: your extension (1001)
- Password: the extension password
- Domain / Server: your default domain (the FusionPBX domain you set in step 2 — usually a hostname or IP)
- Transport: UDP for first test; TLS once you have a cert
Back in FusionPBX, Status → SIP Status → Registrations should show the extension as registered within a few seconds.
6. Add a gateway (the SIP trunk)
FusionPBX calls SIP trunks gateways. Each gateway points at one carrier endpoint.
- Accounts → Gateways → +.
- Fill in:
- Gateway: a memorable name, e.g.
telnyx - Username: carrier-provided (for credential auth)
- Password: carrier-provided
- Proxy: carrier's SIP server hostname (e.g.
sip.telnyx.com) - Register: True (for credential auth)
- Enabled: True
- Profile: external
- Gateway: a memorable name, e.g.
- Save.
For IP-auth carriers (Flowroute), set Username/Password to something placeholder and Register to False, then on the carrier side register your VPS IP.
For the specific carrier walkthroughs, see the FreePBX articles in this category — most of the configuration is the same; just the field names differ between FreePBX (Connectivity → Trunks) and FusionPBX (Accounts → Gateways).
7. Outbound routes — the dialplan
FusionPBX uses regex-based dialplans rather than FreePBX's match-pattern UI. The default Outbound Route dialplan is added under Dialplan → Outbound Routes:
- Dialplan → Outbound Routes → +.
- Fill in:
- Gateway: pick
telnyx - Dialplan Expression: a regex like
^(1?[2-9]\d{9})$for US/Canada with optional leading 1 - Prefix:
1(the digit to prepend if missing — depends on your carrier format requirements) - Description: human label
- Gateway: pick
- Save.
FusionPBX shows the generated XML dialplan after save — useful to verify it'll match what you expect.
8. Inbound routes
FusionPBX inbound routing is also dialplan-based.
- Dialplan → Inbound Routes → +.
- Fill in:
- Destination: your DID, e.g.
15551234567 - Action: pick the destination extension, IVR, or ring group
- Destination: your DID, e.g.
- Save.
9. Test outbound then inbound
From your registered softphone, dial your mobile. Then call your DID from your mobile. Watch live in Status → SIP Status → Calls or via FreeSWITCH's fs_cli:
fs_cli
# At the prompt:
console loglevel debug
show calls
help
FreeSWITCH variables to know
FusionPBX edits /etc/freeswitch/vars.xml at first boot to set the SIP binding addresses based on your VPS IP. If you ever change the public IP (rare — LYLIX VPS IPs are static), you need to update:
nano /etc/freeswitch/vars.xml
# Look for:
# bind_server_ip
# external_rtp_ip
# external_sip_ip
# Change to the new IP, then:
systemctl restart freeswitch
Setting bind_server_ip=auto and external_*_ip=$${local_ip_v4} tells FreeSWITCH to auto-detect, which is what cloud-init configured. You usually don't need to touch this.
Hardening before production use
- Admin password changed (step 1).
- fail2ban active on SIP — see SSH hardening for the install pattern; FusionPBX also has a built-in SIP intrusion-detection toggle.
- Firewall — restrict SIP/RTP to your carrier's peering IPs and your own endpoints.
- TLS for SIP after Let's Encrypt is set up. SIP over UDP/5060 is fine internally; TLS for trunk-to- carrier and remote phones.
- Snapshot the VPS once everything's working (see snapshots article).
FusionPBX® is a registered trademark of FusionPBX, LLC. FreeSWITCH® is a registered trademark of SignalWire, Inc. LYLIX hosts FusionPBX and FreeSWITCH but is not affiliated with either project.
Also Read
Powered by WHMCompleteSolution