FreeSWITCH uses XML files to configure the core as well as all modules. As you can imagine the configuration can grow quite big and complex. The default configuration provides a good starting point for new users. If you would like to just jump in and starting using FreeSWITCH see Configuring FreeSWITCH for a quick overview of the default configuration and the changes you need to make when you start. However if you would like to do any serious project with FreeSWITCH we would strongly recommend you take the time to get a deeper understanding of how the configuration files work. In this page we will do an in-depth overview of the configuration system. If you are feeling brave, you might want to completely remove the default configuration and start from scratch.
The configuration files are written in XML, check out the XML Basics page if you are new to XML. If you are new to XML, take the time to read up. See the Configuration Modules section below for more advanced ways of doing configuration. The configuration is named freeswitch.xml and by default it's located at /etc/freeswitch, although you can specify an alternate file path as a command line argument.
The XML file is divided into multiple sections, as you can see below in the basic schema of the configuration file. Each section has it's own subsections and schema, in the following sections we will explore the schema of each individual section.
In the configuration section you can configure the FreeSWITCH core and most modules. Within the configuration section are many configuration elements, usually one for each module. Most configuration elements use the following XML schema.
Some modules use different XML elements and/or additional XML attributes, refer to each module's confluence page for details on the specific parameters, elements and attributes it uses.
In addition to the configuration elements for individual modules, there are 2 special configuration elements that are used to configure the FreeSWITCH core itself.
This is where you configure settings for the FreeSWITCH core. The full list of parameters is documented on the XML Switch Configuration page.
This section tells FreeSWITCH which modules to load at startup. You can always load other modules from the command line at a later time. For more info see the module configuration page. When FreeSWITCH starts up, it first loads switch.conf, then modules.conf. As each module is loaded, FreeSWITCH will parse and load the configuration element used by that module.
The Dialplan section is where you setup all your call-routing rules. See the Dialplan page for more information.
Here you setup routing rules for SMS and other chatting platorms. See mod_sms for more.
XML files are plain text, there are no programming logic functionalities built-in to XML. While it has the advantage of being easy to read, there are some drawbacks too.
For such a large and flexible system such as FreeSWITCH, the configuration file can be huge. The default configuration runs close to 15,000 lines in total.
If you have special values you want to use in many places in the configuration, you have to duplicate it by hand. This can cause problems when you want to change it.
To address these issues, FreeSWITCH uses custom pre-processor directives that. There is a pre-processor engine that runs on the original configuration file and creates a new configuration file using the results of the pre-processor directives. The processed file is stored in the log directory (by default /var/log/freeswitch) and is named freeswitch.xml.fsxml, this is the file that's actually loaded by FreeSWITCH. The pre-processor is run at startup as well as when you reload the configuration file. If you are running into issues with pre-processor directives, it can be helpful to review the processed file.
There are 2 ways you can specify pre-processor directives.
Within an XML comment you can prefix the directive with a #.
Following are all the available pre-process directives. Include and Set are by far the most commonly used.
This pre-process command allows us to break up the configuration into multiple files. The include directive specifies the path of the additional files and the pre-processor will replace the included directive with the contents of the specified file(s). The path can be a single file, or it can be a wildcard, by using a wildcard you can pull in all files in a directory. In the default configuration, the main configuration file (freeswitch.xml) is just a set of include directives, one for vars.xml (more on that soon) and one for each of the configuration sections. This allows us to build a clean directory hierarchy for the various system configurations.


Myanmar's victory at 4 - 1.
Myanmar (FIFA rank 141th) who came to Cambodia (170th place in FIFA ranking) for the first match at the Mandalay stadium in the second Myanmar city.
Cambodia is deprived of the preliminary points in the first half 24 minutes, but in the second half it is a big reversal of four goals in a row.
Cambodia's coach Honda thinks he should have regretted, but I personally am happy I won one !
Anyway, the point that I could win in the first game is great.
The next opponent is Laos, 181th in FIFA rank. I want you to sustain this momentum and aim for the group league breakthrough.
Victory in Malaysia in 3 - 1.
This game was a tough battle where 1-1 stalemate continued until 10 minutes before the end.
However, Malaysia (169th) scored 1 goal in 86 minutes.
Add one goal for a rush to the loss time, 3-1.
Malaysia has fallen to Laos (181th place) at the last minute, and now won the sixth consecutive victory in the tournament 6 point.
Such Malaysia's next race partner is the winning candidate Vietnam for the tournament (102th).
For Malaysia it is a strong enemy and it is a game of away (Midin national stadium in Hanoi), so if it goes well, it is likely to be a victory for Vietnam, is it ...?
In Group A, three countries finished two games, and the current course has become like this.
Malaysia won the second consecutive victory 6 points.
Because Cambodia and Laos are two consecutive defeats, it seems likely that at this point the breakthrough of the group league will be two of "Malaysia", "Myanmar" and "Vietnam". Myanmar, also win the next! ! ! !