Linux

Where Does FreeSWITCH Store Config and Data?

FreeSWITCH keeps XML config in /etc/freeswitch on Linux packages, with SQLite data, recordings and logs in neighboring trees. Docker mounts config.

Last updated

FreeSWITCH lays out like a small city. Config root with XML districts for autoload, dialplan, directory and profiles. Data boroughs for SQLite, recordings, voicemail and sounds. A log quarter with main, compiled and CDR streets. Packages pave it under system paths while source builds keep a prefixed twin.

Docker keeps the map by mounting host config over container config. Databases default to SQLite files with external engines as configured options. Exact per-module filenames vary too much to list, so district paths are the quotable unit.

Where FreeSWITCH stores this, by platform

Linux
/etc/freeswitch/freeswitch.xml

XML config root with autoload, dialplan, directory and profile subtrees plus vars and module files. Package layout quoted with source prefix twin noted. Sample vanilla trees seed new installs.

Linux
/var/lib/freeswitch/db

SQLite data with recordings and voicemail in neighboring package trees. External databases configure through connection strings. Module filenames vary and stay unquoted.

Linux
/var/log/freeswitch/freeswitch.log

Main log with compiled config and CDR companions in the package log tree. CSV and XML call records branch beneath. Custom destinations configure through the same tree.

Frequently asked questions

How do I back up FreeSWITCH?

Archive /etc/freeswitch with its autoload, dialplan, directory and profile trees plus the database and recordings folders. Entry config is freeswitch.xml with vars and module files beneath. Source builds mirror the tree under the install prefix instead.

How do I run FreeSWITCH in Docker?

Mount the host configuration folder over /etc/freeswitch in the container with a scratch tmp volume beside it. Host networking with the documented port ranges is mandatory. Health checks poll the status command for the UP marker.

Where are FreeSWITCH logs and CDRs?

Read the main log with its compiled-config and CDR companions in the log tree. Default SQLite data sits in the db folder with PostgreSQL and ODBC as configured alternatives. Module-specific database filenames vary and stay unlisted.

Notice an outdated path? Let us know.