我正在尝试通过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呼叫响应的所有最终状态(忙、失败、无应答等)?
Twilio开发者布道者在这里。
当您为StatusCallback
设置URL时,默认情况下,您只会在呼叫“完成”时收到回调。完成的呼叫可能有不同的完成原因,例如“忙”、“失败”、“无应答”或简单的“完成”,您可以从发送到URL的CallStatus
参数中读取该值。
不过,您可以尝试订阅其他事件。唯一的问题是您试图订阅潜在的状态,而不是事件本身。
对于呼叫,您可以订阅“已发起”、“振铃”、“已接听”和“已完成”。所以尝试:
params.put('StatusCallbackEvent', 'initiated ringing answered completed');