Dialplan overview
The Dialplan engine in FreeSWITCH is an incredibly flexible piece of software. If you have a background of using other switching systems, you are probably familiar with Dialplan concepts being tied to a somewhat flat and static set of logic statements—you pre-program a set of decisions in the switch's native language (that is, answer calls, play files, collect digits, and transfer calls) and this happens for every call. Anything that cannot be done using the pre-built commands and logic statements available in that switch, well, they just cannot be done.
In FreeSWITCH, Dialplan processing is actually done by loadable modules. The logic in these modules is utilized every time a call is handled, and you can load multiple Dialplan modules to process calls in different ways, depending on the logic you need. This is a very important distinction between FreeSWITCH and other systems, and it is often overlooked. By making Dialplan processing modular, a new form of freedom is introduced...