How Dialplan processing works
Understanding the Dialplan is easier if you can visualize what happens when a call comes in. Often, we hear expressions like "the call traverses the Dialplan" or "the call hits the Dialplan". What exactly does that mean? Let's walk through the processing of a call, so that we can really understand what XML Dialplan is doing.
The Dialplan has two phases: parsing and executing. The Dialplan parser looks for extensions to execute. When it finds a matching extension, it then adds the actions (or anti-actions) to a list of tasks. When the parser finishes looking for extensions, the execution phase begins, and the actions in the task list are performed.
A good way to see all of this in action is to watch the FreeSWITCH console in debug mode while making a test phone call. Launch fs_cli
, make a test call to 9196 (music on hold), and then hang up the phone. Scroll back in your terminal and look for a line that looks something like the following:
2009-12-09 22:23:16.727746...