Skip to end of metadata
Go to start of metadata

include and exec


You might have arrived here looking for Include Statements specific to Asterisk dialplan.

There are two other constructs we can use within all of our configuration files. They are #include and #exec.

The #include construct tells Asterisk to read in the contents of another configuration file, and act as though the contents were at this location in this configuration file. The syntax is #include filename, where filename is the name of the file you'd like to include. This construct is most often used to break a large configuration file into smaller pieces, so that it's more manageable. The asterisk/star character will be parsed in the path, allowing for the inclusion of an entire directory of files.

The #exec takes this one step further. It allows you to execute an external program, and place the output of that program into the current configuration file. The syntax is #exec program, where program is the name of the program you'd like to execute.

#exec and #include constructs don't work in the following configuration files:

  • asterisk.conf
  • modules.conf



Enabling #exec Functionality

The #exec construct is not enabled by default, as it has some risks both in terms of performance and security. To enable this functionality, go to the asterisk.conf configuration file (by default located in /etc/asterisk) and set execincludes=yes in the [options] section. By default both the [options] section heading and the execincludes=yes option have been commented out, you you'll need to remove the semicolon from the beginning of both lines.


Let's look at example of both constructs in action. This is a generic example meant to illustrate the syntax usage inside a configuration file.

Here is a more realistic example of how #exec might be used with real-world commands.

  • No labels