indatus / gopher
用于电信拨入应用自动测试的 CLI 工具。
Requires
- php: >=5.4
- aws/aws-sdk-php: 2.6.*@dev
- league/flysystem: 0.4.*
- symfony/console: 2.5.*@dev
- twilio/sdk: dev-master
Requires (Dev)
- mockery/mockery: 0.9.*@dev
- phpunit/phpunit: 4.2.*@dev
This package is not auto-updated.
Last update: 2024-09-24 02:43:45 UTC
README
用于测试电信拨入应用的独立 PHP 包。Gopher 提供一个简单的 CLI 接口,用于进行批量测试通话。它默认配置为使用 Twilio,但可以配置为使用任何类似的服务。感谢 brainwebb01 为此包的原型概念。
使用 Composer 安装
使用以下单行命令通过 Composer 安装 Gopher
$ composer create-project indatus/gopher --prefer-source
如果您需要将 Gopher 拉入现有项目,请将以下行添加到 composer.json 的 require 块中
"indatus/gopher": "dev-master"
然后运行 composer install
。
配置
Twilio 设置
- 注册一个免费的 Twilio 账户。
- 打开
config/callservice.php
并填写您的 Account SID 和 Auth Token。 - 输入您的 Twilio 号码作为默认的
from
号码,并使用您喜欢的时区更新timezone
。从 PHP 支持的时区列表中选择 这里。
Amazon S3 设置
Twilio 需要每个呼叫的公共 URL 位置上的 XML 脚本。此 URL 上的脚本告诉 Twilio 一旦电话被接听后要做什么。Gopher 默认配置为将您的脚本推送到 Amazon S3 存储桶。
- 注册一个 Amazon S3 账户。
- 在 S3 控制台中创建一个存储桶,并授予 Everyone "View" 权限。
- 打开
config/filesystem.php
并找到s3
配置部分。 - 输入您的访问密钥、秘密密钥和存储桶名称。
使用
根级 gopher
可执行文件用于运行三个不同的命令
以下是对每个命令的进一步描述和使用示例。
运行单个批次的通话
可以使用 call:single
命令运行具有相同通话脚本的单个批次通话。它需要两个参数
- 要拨打的电话号码的逗号分隔列表
- 相对于
gopher
可执行文件的通话脚本的本地路径
$ ./gopher call:single 5551234567,5551234561,5551234562 call-scripts/test-script.xml
call:single
使用您在 congig.php
中提供的默认 "from" 电话号码。您可以通过传递 from
选项来覆盖默认 "from" 号码
$ ./gopher call:single 5551234567 call-scripts/test-script.xml --from="5551234567"
根级
call-scripts
目录用于存储您的通话脚本。提供了一个示例脚本,以快速启动。示例脚本包含 TwiML (Twilio 标记语言),告诉 Twilio 如何处理外拨电话。您可以根据需要修改test-script.xml
并创建自己的通话脚本。您可以将脚本存储在全局位置,只需确保提供的路径相对于gopher
可执行文件即可。
运行多个批次的通话
可以使用 call:multi
命令运行多个批次的通话,每个批次都有自己的通话脚本。
设置
打开 batches.php
并查看提供的示例批次
'batches' => [
'example-1' =>
[
'to' => ['5551234567', '5551234567', '5551234567'],
'script' => 'call-scripts/test-script.xml'
]
]
批次有两个必需元素:to
和 script
。 to
是要拨打的电话号码数组,而 script
是用于批次的通话脚本的本地路径。
call:multi
使用您在 callservice.php
中提供的默认电话号码。您可以通过包含带有批次的 from
元素来覆盖默认号码。
'batches' => [
'example-1' =>
[
'to' => ['5551234567', '5551234567', '5551234567'],
'from' => '5557654321',
'script' => 'call-scripts/test-script.xml'
]
]
将所需数量的批次添加到 batches
数组中,然后运行。
$ ./gopher call:multi
运行特定批次
您可以将逗号分隔的批次名称列表传递给 call:multi
以指定要运行的特定批次。如果您想使用此功能,请确保为您的批次提供独特的名称。
$ ./gopher call:multi example-1,example-2
显示外拨电话的详细信息
可以使用 call:details
命令来显示外拨电话的详细信息。
使用 id
选项显示特定电话的详细信息
$ ./gopher call:details --id="UNIQUE_ID"
您可以使用 id
选项指定多个唯一的 ID。
$ ./gopher call:details --id="UNIQUE_ID_1,UNIQUE_ID_2,UNIQUE_ID_3"
使用过滤器缩小电话详细信息
可用过滤器
示例
获取 2014年4月5日 从 555-123-4567 发起的电话的详细信息
$ ./gopher call:details --on="2014-04-05" --from="5551234567"
获取在 2014年4月5日 上午 7:00 到 10:00 之间完成的电话的详细信息
$ ./gopher call:details --after="2014-04-05 07:00:00" --before="2014-04-05 10:00:00" --status="completed"
显示所有发往 555-123-4567 的 失败 电话的详细信息
$ ./gopher call:details --status="failed" --to="5551234567"