Asterisk Development with Adhearsion
Recently, a new bit of technology has come along which has the potential to change the way we create dialplans.[128]
A New Approach to Dialplans
Asterisk has matured both in technological innovation and in popularity, but as one becomes more and more immersed in this wonderful world, one cannot help but bump into limitations. When you handle a lot of complex, enterprise-grade scripting with Asterisk alone, you will face many obstacles using dialplan logic. As flexible and powerful as the dialplan is, as a programming language it is quite odd, and much less flexible than most modern scripting languages. When one needs to provide advanced logic, the dialplan, the GUI, and even the more advanced AEL can become very frustrating.
As you build more and more complexity into your dialplans, some of the following may cause you some head-scratching:
Conditional looping and branching
Variables
Complex data structures
Database/LDAP integration
Use of third-party libraries
Exchanging and distributing VoIP functionality
Extending the configuration languages
Poor error handling
Poor date and time handling
Pattern matching
Usage consistency
Source code organization
Many people addressed these matters by writing the advanced logic in external programs such as Perl and PHP, and connecting to Asterisk via AMI and AGI. Unfortunately, while the desired power was now available, these interactions did not always simplify things for the developer. To the contrary, they often made development ...