首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟呼叫中心的Twilio IVR

虚拟呼叫中心的Twilio IVR
EN

Stack Overflow用户
提问于 2020-02-11 01:05:23
回答 1查看 171关注 0票数 0

我需要为一个虚拟呼叫中心创建一个Twilio,并提供一些基本的请求。

  1. 传入呼叫连接并请求呼叫者输入。
  2. 根据数字输入或语音输入,创建对代理的出站呼叫。这既可以是同时呼叫,也可以是先入先入,先通过TaskRouter。
  3. 呼叫需要有机器检测或收集输入,以确保代理连接。主要目的是避免应答机,因为虚拟代表可能会忽略导致个人VM拾取的呼叫。
  4. 如果在超时时间内没有代理连接,则直接向语音信箱拨打入站呼叫,语音邮件将被转录并通过电子邮件发送到组邮件。

最初,我们通过OpenVBX提供了一个解决方案,尽管我不认为这是支持的(对Twilio平台进行了改进,从而产生了新的解决方案)。我尝试只使用Twilio托管平台(StudioFlow)和函数。

下面是当前通向StudioFlow的TaskRouter流。然后,TaskRouter工作流调用正在尝试连接到排队调用者的函数。

TaskRoute工作流回调是: /assignment

代码语言:javascript
复制
exports.handler = function(context, event, callback) {
    const taskAttributes = JSON.parse(event.TaskAttributes),
        workerAttributes = JSON.parse(event.WorkerAttributes),
        client = context.getTwilioClient();

    client.calls.create({
        machineDetection: 'Enable',
        url: 'https://' + context.DOMAIN_NAME + '/agent-response?ReservationSid='+event.ReservationSid+'&TaskSid='+event.TaskSid,
        from: taskAttributes.called,
        to: workerAttributes.contact_uri
    });
};

然后是/代理-响应

代码语言:javascript
复制
exports.handler = function(context, event, callback) {
    var status = '';
    console.log(JSON.stringify(event));

    if (event.AnsweredBy !== 'machine_start') {
        status = 'accepted';
    }

    if (status == 'accepted') {
        return callback(null, {
            'instruction': 'dequeue',
            'post_work_activity_sid': '<AVAILABLE-SID>'
        });
    } else {
        return callback(null,{
            'instruction': 'reject'
        });
    }
};

因此,目前的调用是通过机器检测向代理发出的。我不知道如何将出站代理调用与排队的TaskRouter调用连接起来。

是否有人建议如何更有效地完成这一任务和/或2)如何连接到排队的入站sid?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 09:33:30

这里有一个方法,我可以看到你的修复:

1)您不需要使用TaskRoute Workflow callback is: /assignment。您可以在工作流配置页面上设置所有需要的内容:

2)一旦您将调用排队到正确的队列,您将使用代理的预约(您可以阅读更多关于它的这里 )。

代码语言:javascript
复制
worker.on("reservation.created", function (reservation) {

            reservation.conference(reservation.task.attributes.from, 

//在这里使用会议,但您可以使用Dequeue或Call代替。

代码语言:javascript
复制
                "IDLE ActivitySid",
                undefined,
                `client:${Current Agent Client Key}`,
                undefined,
                {

一些调用配置设置

代码语言:javascript
复制
                }); 
        });

3)最后一步是使用Twilio.Device (可以读取完整的规范这里)来获取和启动这个调用:

代码语言:javascript
复制
Twilio.Device.incoming(function (conn) {
                // accept the incoming connection and start two-way audio
                conn.accept();
        });

如果你需要更多的支持来建设Twilio呼叫中心,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60160614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档