我正在尝试通过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呼叫响应?
答案 0 :(得分:0)
这里是Twilio开发人员的传播者。
当您为StatusCallback
设置URL时,默认情况下,仅在呼叫“完成”时才会收到回调。完成的呼叫可能有不同的完成原因,例如“忙”,“失败”,“无人接听”或简单的“完成”,您可以从发送到的CallStatus
参数中读取该值。网址。
不过,您可以像尝试的那样订阅其他事件。唯一的事情是您试图订阅潜在状态,而不是事件本身。
用于通话you can subscribe to "initiated", "ringing", "answered" and "completed"。因此,尝试:
params.put('StatusCallbackEvent', 'initiated ringing answered completed');