出站呼叫的Twilio回调状态始终为“已完成”

时间:2018-11-21 09:12:38

标签: callback salesforce twilio

我正在尝试通过Salesforce(Twilio API)中的REST API创建IVR电话树。问题是,除了“已完成”之外,我无法捕获任何其他回调状态。

如果呼叫被取消或对此呼叫没有响应,则Twilio始终以“完成”状态发送呼叫响应。

此外,在呼叫尝试失败后,客户会收到一条带有已记录的“欢迎”消息和第一个电话树问题的语音邮件。

有一个有关如何创建呼叫的代码示例:

TwilioRestClient client = new TwilioRestClient(TwilioSID, TwilioToken);
Map<String,String> params = new Map<String, String>(); 

String webURL = webServerURL;

params.put('To', phone);  
params.put('From', phoneFrom);   
params.put('Url', webURL); 
params.put('Method', 'GET'); 
params.put('FallbackUrl', webURL);
params.put('FallbackMethod', 'GET');
params.put('StatusCallback', webURL);
if (!System.Test.isRunningTest()) {
    try {
        TwilioCall call = client.getAccount().getCalls().create(params);
    } catch(Exception ex) {
    }
}

此外,我试图添加'StatusCallbackEvent'参数(链接到Twilio文档-https://www.twilio.com/docs/voice/twiml#callstatus-values):

params.put('StatusCallbackEvent', 'busy canceled completed failed no-answer');

// and other optiions like :
// params.put('StatusCallbackEvent', 'busy');
// params.put('StatusCallbackEvent', 'canceled');
// params.put('StatusCallbackEvent', 'completed');
// params.put('StatusCallbackEvent', 'failed');
// params.put('StatusCallbackEvent', 'no-answer');

但是通话失败后,回叫状态没有任何区别。

我应该如何拨打电话以获取具有所有最终状态(“忙”,“失败”,“无应答”等)的Twilio呼叫响应?

1 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

当您为StatusCallback设置URL时,默认情况下,仅在呼叫“完成”时才会收到回调。完成的呼叫可能有不同的完成原因,例如“忙”,“失败”,“无人接听”或简单的“完成”,您可以从发送到的CallStatus参数中读取该值。网址。

不过,您可以像尝试的那样订阅其他事件。唯一的事情是您试图订阅潜在状态,而不是事件本身。

用于通话you can subscribe to "initiated", "ringing", "answered" and "completed"。因此,尝试:

params.put('StatusCallbackEvent', 'initiated ringing answered completed');