如何在客户之前将代理连接到Twilio呼出电话



我正在尝试为Twilio Flex设置无缝的出站呼叫体验。我有拨号板出站功能,以及以前交付的回叫/语音邮件请求任务的回叫功能(代理可以接受任务并在内进行出站(。

我通过部署的Twilio功能打电话,看起来像这样:

client.calls
.create({
url: callHandlerCallbackURL, // to another Twilio function
to: event.To,
from: event.From,
statusCallback: statusCallbackURL,
statusCallbackEvent: ["ringing", "answered", "completed"]
})

当连接调用时,Twilio会调用另一个函数,该函数是通过上面的url属性提供的。在这个函数中,我用一些任务属性将调用排队,它看起来像这样:

let twiml = new Twilio.twiml.VoiceResponse();
let enqueue = twiml.enqueue({
workflowSid: `${context.TWILIO_WORKFLOW_SID}`, 
waitUrl: ''
});
enqueue.task(JSON.stringify(taskAttributes));
callback(null, twiml);

但问题是,在应答呼叫后,任务进入Flex(到代理(,这会导致代理错过几秒钟的呼叫。于是,客户打开电话,开始说话,但对方有一段时间没有人。

有没有直接的方法可以防止这种情况发生?

我能够通过使用Flex中名为StartOutboundCall的内置操作来解决这个问题。

通过此操作,代理在呼叫开始之前被转移到呼叫画布,并且在客户应答之前已经在呼叫中。总的来说,这是一个更多的";天然的";流来启动出站呼叫,并防止我上面提到的混乱。

它也更简单,因为你可以用几行代码开始一个出站呼叫:

function clickToDial(destinationNumber) {
Flex.Actions.invokeAction("StartOutboundCall", {
destination: destinationNumber
});
}

您可以在此处找到更多信息:https://www.twilio.com/docs/flex/developer/voice/dialpad-click-to-dial#the-界外全能-1

最新更新