JAICP

Обработка неудачного звонка


При разработке сценария нужно учитывать, что бот не всегда может дозвониться до клиента. Например, клиент не взял трубку или номер был занят. Такие звонки попадают в статистику по телефонии, но не обрабатываются в сценарии.

Для того чтобы обработать неудачный звонок и, например, запланировать новый, нужно предусмотреть в сценарии обработчик события 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 будет запланирован повторный звонок через час.