提问者:小点点

外呼的Twilio回调状态始终为“完成”


我正在尝试通过Salesforce(TwilioAPI)中的RESTAPI创建一个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个答案

匿名用户

Twilio开发者布道者在这里。

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

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

对于呼叫,您可以订阅“已发起”、“振铃”、“已接听”和“已完成”。所以尝试:

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