我需要为一个虚拟呼叫中心创建一个Twilio,并提供一些基本的请求。
最初,我们通过OpenVBX提供了一个解决方案,尽管我不认为这是支持的(对Twilio平台进行了改进,从而产生了新的解决方案)。我尝试只使用Twilio托管平台(StudioFlow)和函数。
下面是当前通向StudioFlow的TaskRouter流。然后,TaskRouter工作流调用正在尝试连接到排队调用者的函数。

TaskRoute工作流回调是: /assignment
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
});
};然后是/代理-响应
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?
谢谢!
发布于 2020-02-11 09:33:30
这里有一个方法,我可以看到你的修复:
1)您不需要使用TaskRoute Workflow callback is: /assignment。您可以在工作流配置页面上设置所有需要的内容:

2)一旦您将调用排队到正确的队列,您将使用代理的预约(您可以阅读更多关于它的这里 )。
worker.on("reservation.created", function (reservation) {
reservation.conference(reservation.task.attributes.from, //在这里使用会议,但您可以使用Dequeue或Call代替。
"IDLE ActivitySid",
undefined,
`client:${Current Agent Client Key}`,
undefined,
{一些调用配置设置
});
});3)最后一步是使用Twilio.Device (可以读取完整的规范这里)来获取和启动这个调用:
Twilio.Device.incoming(function (conn) {
// accept the incoming connection and start two-way audio
conn.accept();
});如果你需要更多的支持来建设Twilio呼叫中心,请告诉我。
https://stackoverflow.com/questions/60160614
复制相似问题