Обработка неудачного звонка
При разработке сценария нужно учитывать, что бот не всегда может дозвониться до клиента. Например, клиент не взял трубку или номер был занят. Такие звонки попадают в статистику по телефонии, но не обрабатываются в сценарии.
onCallNotConnected
.Настройка chatbot.yaml
Прежде чем использовать обработчик события в сценарии, укажите флаг onCallNotConnected
в файле chatbot.yaml
:
additionalEvents:
- onCallNotConnected
Теперь при неудачном звонке в сценарий бота будет приходить событие onCallNotConnected
.
Пример использования
Рассмотрим пример, в котором боту не удалось дозвониться до клиента.
state: OnCallNotConnected
event: onCallNotConnected
script:
$dialer.setCallResult("Не дозвонился. Причина: " + $dialer.getCallNotConnectedReason());
var now = new Date();
$dialer.redial({
startDateTime: new Date(now.getTime() + 60 * 60000), // Повторный звонок через час
maxAttempts: 2, // 2 попытки дозвониться
retryIntervalInMinutes: 5 // Пауза между попытками 5 минут
});
Когда сработает событие onCallNotConnected
, метод $dialer.getCallNotConnectedReason
вернет причину неудавшегося звонка, а $dialer.setCallResult
проставит его результат в отчетах по обзвону и сессиям. Например, Не дозвонился. Причина: NO_ANSWER.
$dialer.getCallNotConnectedReason
. Метод вернет одну из двух строк: BUSY
, если абонент занят, или NO_ANSWER
, если не ответил.Затем с помощью метода $dialer.redial
будет запланирован повторный звонок через час.