indatus/gopher

用于电信拨入应用自动测试的 CLI 工具。

v1.1 2014-08-02 16:10 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:43:45 UTC


README

Gopher Banner

用于测试电信拨入应用的独立 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 设置

  1. 注册一个免费的 Twilio 账户。
  2. 打开 config/callservice.php 并填写您的 Account SID 和 Auth Token。
  3. 输入您的 Twilio 号码作为默认的 from 号码,并使用您喜欢的时区更新 timezone。从 PHP 支持的时区列表中选择 这里

Amazon S3 设置

Twilio 需要每个呼叫的公共 URL 位置上的 XML 脚本。此 URL 上的脚本告诉 Twilio 一旦电话被接听后要做什么。Gopher 默认配置为将您的脚本推送到 Amazon S3 存储桶。

  1. 注册一个 Amazon S3 账户。
  2. 在 S3 控制台中创建一个存储桶,并授予 Everyone "View" 权限。
  3. 打开 config/filesystem.php 并找到 s3 配置部分。
  4. 输入您的访问密钥、秘密密钥和存储桶名称。

使用

根级 gopher 可执行文件用于运行三个不同的命令

以下是对每个命令的进一步描述和使用示例。

运行单个批次的通话

可以使用 call:single 命令运行具有相同通话脚本的单个批次通话。它需要两个参数

  1. 要拨打的电话号码的逗号分隔列表
  2. 相对于 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'
        ]
]

批次有两个必需元素:toscriptto 是要拨打的电话号码数组,而 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:0010: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"