Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An example of a PAGI IVR application, including unit tests
PHP Shell
Branch: master


An example PAGI IVR application (for asterisk and php, of course),
including unit tests with phpunit. This is the source code for
the article at:

The code
* src/php/App.php is the IVR application itself.
* test/php/App/AppTest.php is a phpunit test case for the ivr application. It
contains 2 unit tests.

The other files serve as a skeleton for running everything.

1.- Copy the directory "config.example" (and its contents)
to "config".
2.- Edit config/php.ini if you need to change xdebug extension
3.- Edit config/ Change "php" and "pear" to match the
paths in your filesystem (usually /usr/bin/php and /usr/bin/pear).

That's it.

Install dependencies (pagi, log4php, and phpunit)
This will download the dependencies and install them in the "vendor" directory:

$ bin/setup/

Run the tests
$ bin/

The coverage will be generated as html in runtime/coverage.
You can find resulting logs from tests in runtime/log/dev.log

Run the IVR
In your extensions.conf, put these lines (modify to suit your paths):
exten => 123,1,AGI(/home/ivr/bin/
exten => 123,n,Hangup

Run the application by calling 123 (or the extension you've configured).
Resulting logs are in runtime/log/production.log

Something went wrong with that request. Please try again.