Collect a safe source profile
Use the matching RelayPBX read-only export script against the FusionPBX PostgreSQL or VitalPBX MySQL/MariaDB source. Prefer a tenant-scoped, anonymized configuration snapshot instead of a full database dump.
- Keep CDRs, recordings and password material out of the profile unless separately approved.
- Record source version, tenant/domain and object counts.
- Encrypt the transfer and remove the working copy after the migration evidence is approved.
Run the dry test
Upload the normalized snapshot, select the source platform and run the dry test. RelayPBX maps extensions, users, voicemail, trunks, DIDs and the typed destination graph without changing live configuration.

- Resolve duplicate extensions, domains and DID ownership.
- Inspect every ambiguous destination in IVRs, time conditions, ring groups and queues.
- Compare source counts with created, skipped and failed projections.
Apply and accept
Create the migration checkpoint and apply only in the approved tenant and maintenance window. Keep the generated report with source identifiers and target IDs.
- Verify registrations, voicemail, trunks and every imported call-flow branch.
- Place one simple extension call and one call through a multi-module imported route.
- Confirm another tenant cannot read the source bundle, report or imported records.
- Use the audited migration rollback action when acceptance fails; do not edit the database manually.