1

我已经通过多个网站进行了高低研究,但在 Twilio 堆栈中没有找到一个完整记录的用于循环呼叫转发的解决方案;更不用说在 Twilio Studio 中了。上一次详细询问这个问题是在 2013 年,非常感谢您的帮助。我正在寻找解决以下问题的方法来教育自己和他人:

[轮循场景]

Phil Krnjeu 在 2013 年 8 月 1 日 23:04 提到,“我正在尝试创建一个网站,上面有一个电话号码(例如,学校的电话号码)。当你拨打那个号码时,它有不同的秘书办公室(A,B,C,D)。我想创建一个呼叫主号码的东西,然后它第一次拨打电话号码A,第二次有人拨打主号码,号码B被呼叫,C,然后 D。一旦 D 被调用(这将是第 4 次调用),第 5 次调用返回到 A。”

对上述问题的回答是使用 IVR 筛选和记录应用程序,该应用程序要求呼叫者选择一个不是真正的循环解决方案的代理。我正在寻找的解决方案和许多其他解决方案要求系统知道哪个座席在一个组中,以及哪个座席接下来接听电话。

[需要的主要功能]

  1. 能够将上述 A、B、C、D 标识的转接号码添加为组或 IVR 扩展,例如 1 = 管理、2 = 销售等...
  2. 设置随后的调用规则,该规则在某种数据库中进行注释。例如,呼叫者 A 到 D 等于 1 不成功。当呼叫者 A 被前转呼叫时,它现在等于 0 成功,然后脚本停止并允许用户或其语音邮件应答呼叫。然后下一个呼叫进来并转发给用户 B 并分配一个 0 成功值,然后脚本停止。
  3. 在呼叫者完成呼叫或完成留下语音邮件后,脚本需要结束呼叫。

[最终目的地]

循环应使用转发的电话号码语音邮件完成其呼叫。

[已知的问题]

  1. 当有人接听时,将呼叫转移到多个号码不会停止

[选项]

一旦发布了这个问题,我相信在不久的将来有人会问,如果我希望将呼叫转发到 Twilio 语音信箱,而不是使用转发的电话号码的语音信箱,比如手机,该怎么办。我不一定需要这个功能,但是,做一个额外的评论会对社区很有帮助。感谢您的时间。

除了能够查看其他用户发布的文章外,我的编程知识有限。我详细研究过的一篇对我没有用的文章是“IVR:使用 PHP 和 Laravel 进行筛选和记录”。

我首先要寻找的解决方案是通过新的 Twilio Studio 界面制作此代码,如果这是不可能的,那么任何其他解决方案都会对所有人都有帮助。

4

1 回答 1

0

来自 Twilio 支持团队的 Sam。您可以使用 Twilio 的运行时套件、Studio 和 Functions 构建您所描述的内容。

我在这里写了一篇博文,里面有详细的说明和截图,我也在下面提供了一个总结版本。

创建你的变量

首先,您需要创建一个将用作循环计数器的无服务器变量。变量必须在环境内部,环境在服务内部。这是应用程序中唯一需要您自己的笔记本电脑的部分。您可以在文档中了解如何使用任何 SDK 或使用 curl 创建这些。

请务必复制您的服务、环境和变量的 SID,因为您的函数需要这些 SID。

为方便起见,这就是您在 NodeJS 中创建变量的方式。

const accountSid = 'your_account_sid';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);

client.serverless.services('ZSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
                 .environments('ZEXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
                 .variables
                 .create({key: 'key', value: 'value'})
                 .then(variable => console.log(variable.sid));

创建您的功能

  1. 控制台中创建以下环境变量并将它们保存为您之前保存的相应 SID。
  • RR_SERVICE_SID
  • RR_ENV_SID
  • RR_VAR_SID_CTR
  1. 接下来,确保选中凭据下环境变量部分上方的启用 ACCOUNT_SID 和 AUTH_TOKEN 复选框。

  2. 确保 Dependencies 部分中的 Twilio Client 版本设置为最新版本,这样我们就可以确保它包含无服务器资源。在撰写本文时(2020 年 3 月),默认客户端版本不包括它们,因此我们升级到 3.41.1,这是最新的。

  3. 在控制台中转到此处并创建一个空白函数。

  4. 复制并粘贴以下代码,并将数字替换为您希望包含在循环中的数字(确保您刚刚创建的环境变量与代码中的内容匹配)。

exports.handler = function(context, event, callback) {

    // Number List
    let numbers = [
        "+18652142345", //Sam
        "+18651092837", //Tina
        "+19193271892", //Matt
        // Copy and paste line above to add another number.
    ];

    // Initialize Twilio Client
    let client = context.getTwilioClient();

    // Fetch Round Robin Ctr
    client.serverless.services(context.RR_SERVICE_SID)
         .environments(context.RR_ENV_SID)
         .variables(context.RR_VAR_SID_CTR)
         .fetch()
         .then(variable => {

                // Use counter value to determine number to call
                let number = numbers[variable.value];

                // Create var with new ctr value
                let ctr = variable.value;

                // Check if current counter value is less than RR length (i.e. the number of numbers in round robin)
                // If so, increment
                if(ctr == numbers.length-1) {
                    ctr = 0;
                }

                // Otherwise reset ctr
                else ctr++;

                // Update counter value
                client.serverless.services(context.RR_SERVICE_SID)
                     .environments(context.RR_ENV_SID)
                     .variables(context.RR_VAR_SID_CTR)
                     .update({value: ctr})
                     .then(resp => {

                         // Return number to call
                        let response = {number};

                        // Return our counter value and a null error value
                        callback(null, response);
                     });
        });

};

创建您的工作室流程

  1. 单击红色加号在此处创建一个新流。

  2. 为流命名,然后单击下一步。

  3. 滚动到模板的底部并单击“从 JSON 导入”,然后单击下一步。

  4. 粘贴此处显示的流 JSON ,然后单击下一步。

  5. 单击 RoundRobin 函数小部件并选择您刚刚在 Default 服务下创建的函数。

  6. 单击 FunctionError 小部件,单击 MESSAGING & CHAT CONFIG,然后将 SEND MESSAGE TO 号码更改​​为您希望在功能失败时通过文本通知的号码。

  7. 单击 DefaultNumber 小部件并更改在功能失败时将转发到的默认号码。

  8. 单击流顶部的发布按钮。

配置您的 TWILIO 号码

  1. 在控制台中转到此处。

  2. 单击要配置的 Twilio 编号。

  3. 向下滚动到 Voice 部分中的 A CALL COMES IN 下拉菜单,然后选择 Studio Flow。

  4. 在右侧的选择流程下拉列表中选择您的新流程。

  5. 点击底部的保存。

就是这样。您现在已经准备好进行测试了!

于 2020-06-22T16:36:07.320 回答