Я пытаюсь создать телефонное дерево IVR через REST API в Salesforce (Twilio API).Проблема в том, что я не могу поймать любой другой статус обратного вызова, кроме «завершен».
Если вызов был отменен или не было ответа на этот вызов, 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 со всеми окончательными состояниями («занято», «не удалось »,« нет ответа »и т. д.)?