d4rkstar / pagi
PHP 的 Asterisk Gateway Interface (AGI) 客户端,适用于使用呼叫流程节点制作电话应用
Requires
- php: >=5.3.3
- pear-log4php/apache_log4php: >=2.1.0
This package is auto-updated.
Last update: 2024-09-12 10:22:31 UTC
README
此框架旨在通过 Asterisk 的 AGI 简单地制作 IVR 应用程序,为开发者提供良好的抽象级别,以了解 IVR 应该是什么样子。
资源
- 主站
- 深入教程
- 这里有一个包含单元测试的示例 IVR 应用程序
- API
- [CI (Jenkins)](http://ci.marcelog.name/ 提供API、指标和可分发文件)。
- Packagist 主页
联系我
如果您有任何问题、问题、功能请求,或者只想报告您的“成功故事”,或者甚至打个招呼,请发送电子邮件至 marcelog@gmail.com
包含示例
请参阅 docs/examples 了解所有包含的示例。
您可以从 docs/examples/quickstart 开始,这是一个非常基础的示例。您需要在您的 dialplan 中添加类似以下内容
[default]
exten => 1,1,AGI(/path/to/PAGI/docs/examples/quickstart/run.sh,a,b,c,d)
exten => 1,n,Hangup
通过 Composer 可用
只需添加包 "marcelog/pagi"
{
"require": {
"marcelog/pagi": "dev-master"
},
"repositories": [
{
"type": "pear",
"url": "http://pear.apache.org/log4php/"
}]
}
Packagist URL: (https://packagist.org.cn/packages/marcelog/pagi)
通过 PEAR 可用
现在您可以通过以下命令轻松安装 PAGI
pear channel-discover pear.marcelog.name
pear install marcelog/PAGI
或
pear install marcelog/PAGI-X.Y.Z
只需将 X.Y.Z 替换为您想要安装的版本即可 :)
查看 pear channel
作为 PHAR 提供
只需访问 Jenkins 服务器 并从 PAGI 作业中获取最新的 phar 发行版。
测试 IVR 应用程序
包含模拟 pagi 客户端以轻松测试您的 ivr 应用程序。请参阅 docs/examples/mock 了解如何使用它的示例。
节点
有关节点的教程,请参阅 此文章
提供简单的呼叫流程节点(请参阅 docs/examples/node/example.php)。使用节点可以将您构建和测试 ivr 应用程序的方式简化。节点是 pagi 客户端之上的抽象层,并支持
- 混合声音文件的提示,播放数字/数字/日期时间。
- 取消和输入结束数字。
- 输入验证回调,可以在验证失败时可选地指定一个或多个要播放的声音文件。
- 无效和有效输入的回调。
- 无输入时的可选声音。
- 最大有效输入尝试次数。
- 达到最大尝试次数时的可选声音。
- 每个输入至少/最多/正好 N 位数字。
- 多数字输入中数字之间的超时。
- 每个输入尝试的超时。
- 有效输入的重试尝试。
- 还有很多其他功能!
NodeController 允许您通过根据节点结果注册节点和操作来控制应用程序的呼叫流程。因此,您可以在取消或完成输入时从一个节点跳转到另一个节点,挂断电话,执行回调等。示例请参阅 docs/examples/nodecontroller/example.php
有关节点控制器的文章可在 此处 获取
自动拨号
支持 CallFiles。您还可以安排将来的电话。
传真
使用 spandsp(SendFax 和 ReceiveFax 应用程序)支持发送和接收传真。
可用的外观
- PAGI\Client\CDR:用于访问 CDR 变量。
- PAGI\Client\ChannelVariables:用于访问通道变量和 Asterisk 环境变量。
- PAGI\Client\CallerID:用于访问主叫 ID 变量。
- PAGI\Client\Result:用于封装 agi 命令的结果。
- PAGI\CallSpool\CallFile:呼叫文件外观。
- PAGI\CallSpool\CallSpool:呼叫队列外观。
- PAGI\Logger\Asterisk:提供对 Asterisk 日志记录器的访问(请参阅您 Asterisk 安装中的 logger.conf)。
结果
对于每个操作,都提供一个结果。一些操作会装饰这个结果以添加功能,如 PlayResult、ReadResult 等。例如,一个流文件将返回一个 PlayResult,它装饰了一个 ReadResult,而 ReadResult 又装饰了一个 Result。
- PAGI\Client\DialResult
- PAGI\Client\ExecResult
- PAGI\Client\ReadResult
- PAGI\Client\PlayResult
- PAGI\Client\FaxResult
调试、日志记录
您需要 log4php。只需确保将其复制到 include_path 中,PAGI 就会从那里获取它(需要包含在 include_path 中的目录是 src/main/php)。
开发者
- build.xml 是一个 phing 构建文件,而不是 ant。
- 您可能需要编辑 build.properties。
- 可用主要目标:all、build、test、report。
- 运行工具:phpdoc、phploc、phpcs、phpmd、phpcpd、phpdepend、phpunit。
- 通过在 build.properties 中编辑 pear 和 php 路径来设置您的安装。
- 运行 phing install-dependencies,这将安装 pear 以及运行 phing 测试和指标所需的一切。
- 将 resources/php.ini.example 复制到 resources/php.ini 并进行编辑。
- 运行 phing all
许可证
版权所有 2011 Marcelo Gornstein marcelog@gmail.com
根据 Apache 许可证 2.0 版(“许可证”);除非您根据许可证的规定或书面同意,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或经书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。