Summary:ASTERISK-11031: Issue #10690 breaks compatibility with FreePBX and other types of configurations.
Reporter:Francesco Romano (francesco_r)Labels:
Date Opened:2007-12-13 17:00:18.000-0600Date Closed:2007-12-13 17:30:07.000-0600
Versions:Frequency of
Description:From release 1.4SVN 92696 asterisk can't load any configuration files with an #include to a non-existent file. All FreePBX and TrixBox installations are affected. For example, the sip.conf of FreePBX  start with:

#include sip_general_additional.conf

bindport = 5060           ; Port to bind to (SIP is 5060)
bindaddr =    ; Address to bind to (all addresses on machine)

The file sip_general_additional.conf it's not present when you do a fresh FreePBX installation so the sip module is not loaded at all. And all the config files have at the beginning an include to a non-existent file (sip_custom.conf, extensions_custom.conf, manager.conf iax.conf etc.) used to put custom changes and separate from the config files generated from the gui. So practically no config files is loaded. Can you revert to the previous behavior? I think that many people used this type of configuration in asterisk and especially FreePBX/Trixbox...
Comments:By: Tilghman Lesher (tilghman) 2007-12-13 17:19:37.000-0600

I don't see a problem with that.  If the file does not exist, then trying to #include it is indeed an error that should be detected and avoided.

By: Russell Bryant (russell) 2007-12-13 17:30:05.000-0600

This change was intentional, to point out places where people may have a typo in their configuration.  We do not want to allow partial-configuration of a module.  If we find a problem, we just refuse to load it at all.  Partial configuration of a module could cause many types of problems, up to and including gaping security holes in the system.

For anyone that is packaging configuration files in this way, it's a simple change.  The default configuration files need to include blank files that are listed to be included.  Any system that provides some sort of automatic upgrade should just ensure that all of those files exist.