Where Does Asterisk Store Config and Voicemail?
Asterisk keeps dialplan, SIP peers and voicemail across /etc/asterisk and /var. Config files, sounds and logs.
Last updated
Asterisk keeps its configuration in /etc/asterisk as dozens of .conf files: extensions.conf for the dialplan, pjsip.conf for modern endpoints, voicemail.conf for mailboxes, plus musiconhold, queues and features siblings. Runtime state diverges elsewhere: sounds in /var/lib/asterisk, voicemail storage in /var/spool/asterisk, logs in /var/log/asterisk.
The config reloads live without restarts for most modules, which encourages cowboy edits; keep the tree in version control instead. Sample files ship with everything commented, so diff yours against samples when inheriting a system. The asterisk user must own the state directories or voicemail and recordings fail silently. Same layout on every distribution.
Where Asterisk stores this, by platform
/etc/asterisk/extensions.conf
extensions.conf holds the dialplan; pjsip.conf holds modern endpoints (sip.conf is legacy); voicemail.conf holds mailboxes. Sounds in /var/lib/asterisk, voicemail storage in /var/spool/asterisk, logs in /var/log/asterisk. Reload with asterisk -rx instead of restarting. Keep configs in version control.
Frequently asked questions
why is my asterisk dialplan not working
Reload the dialplan with asterisk -rx then dialplan reload and retest before touching files. Nine syntax errors in ten are a missing same => n priority line or a context typo. asterisk -rvvv shows the live parse on reload. Keep extensions.conf in version control; it is the file everyone breaks.
how do i move asterisk to a new server
Copy /etc/asterisk plus voicemail storage in /var/spool/asterisk/voicemail to the new machine, preserving ownership by the asterisk user. Sounds and prompts in /var/lib/asterisk/sounds only need copying for custom recordings. Rebuild endpoint passwords afterward rather than reusing weak ones.
sip.conf versus pjsip.conf which one
That is the old chan_sip driver alongside modern chan_pjsip. New installs should use pjsip.conf; sip.conf exists for legacy peers only. Running both is supported during migration, but every new endpoint belongs in pjsip.conf. The sample configs document the split inline.
Notice an outdated path? Let us know.