General Diaplan concepts
Let's briefly review some concepts that were first introduced in Chapter 5, Understanding the XML Dialplan. In general, a Dialplan helps generate a list of actions to take so that a caller can reach the person or people they want to talk to. A Dialplan module implements the decision-making process that powers this. While a Dialplan module is free to implement any concept it wants for organizing how calls are routed, three concepts, in particular, are generally used when processing a call. These three concepts can be broken down by asking the same three questions for every call:
Contexts: Where do we look for a general list of destinations (or features) that the current caller is allowed to reach?
Conditions: Whom, specifically, is the caller trying to reach?
Actions: What actions need to be taken to reach that party?
These three questions are generally answered by breaking the routing decisions into three concepts—caller context, condition matching, and actions. These...