This site is no longer updated.Go to new Conversational Cloud docs

Перевод на оператора


Для перевода звонка на оператора используйте $response.replies с типом switch.


Синтаксис

$response.replies
     .push({
        type: "switch",
        phoneNumber: "01234567",                         // номер телефона для перевода
        headers:{                                        // SIP заголовки
             "Remote-Party-ID": remotePartyId ,
             testheader:"header"
             },
        transferChannel : "237-test-237-VDQ-28334674",    // botId
        continueCall: false,
        continueRecording: false
        });

Параметры перевода на оператора для телефонного канала:

Параметр Тип Описание
phoneNumber string Номер телефона, на который будет переведен звонок.
headers оbject При переводе на оператора для телефонного канала можно установить SIP заголовки, которые будут передаваться в invite сообщении на указанный номер. Данная возможность, как правило, используется для передачи АОН информации клиента.
transferChannel string Укажите в поле botId для перевода вызова через SIP-транк, который относится к данному каналу. При этом будут применены параметры подключенного SIP-транка.
continueCall boolean При true, абонент будет возвращен к диалогу с ботом после разговора со оператором, а также, если оператор недоступен.

По умолчанию false.
continueRecording boolean При true, разговор продолжает записываться, в том числе с оператором и при повторном возвращении абонента в диалог с ботом.

Запись звонка будет доступна в логах диалогов.

По умолчанию false.

Подробнее о переводе на оператора


Статус перевода на оператора

При помощи метода $dialer.getTransferStatus() вы можете отслеживать статус перевода абонента на оператора.

Метод $dialer.getTransferStatus() возвращает объект с полями:

  • status: "SUCCESS" | "FAIL" — статус перевода на оператора.
  • hangup: true | false — при true абонент завершил звонок. При false абонент ещё на линии и возвращен в диалог с ботом, если continueCall: true.
  • number — номер телефона, на который переводился звонок.

Например:

theme: /

    state: Start
        q!: *start
        a: Start new call

    state: SwitchStateContinue
       q!: перевод на оператора
       script:
        $response.replies
        .push({
           "type":"switch",
           "phoneNumber":"12345",
           "continueCall":true,
           "continueRecording":true
            });

    state: TransferEvent
        event: transfer
        script:
            var status = $dialer.getTransferStatus();
            log(status);

В лог будет добавлена запись формата:

17:14:40.459 [main] INFO  js - {"status":"SUCCESS","hangup":false,"number":"12345"}
17:14:40.482 [main] INFO  js - {"status":"FAIL","hangup":true,"number":"12345"}

Оператор недоступен

При неуспешном переводе на оператора, например, номер для перевода занят, абонент может быть возвращен в диалог с ботом. Для этого укажите в $response.replies параметр continueCall: true и отслеживайте event: transfer в сценарии.

Например:

theme: /

    state: Start
        q!: *start
        a: Start new call

    state: SwitchStateContinue
       q!: перевод на оператора
       script:
        $response.replies
        .push({
           "type":"switch",
           "phoneNumber":"12345",
           "continueCall":true,
           "continueRecording":true
            });

    state: TransferEvent
        event: transfer
        script:
            if ($dialer.getTransferStatus().status === 'FAIL') {
                $reactions.answer("Оператор сейчас не может ответить на ваш вопрос. Мы обязательно свяжемся с вами позже")
            } else {
                $reactions.answer("Спасибо, что связались с нами. Оцениите, пожалуйста, качество обслуживания")
            }

Обратите внимание, что абонент будет возвращен в стейт, где отслеживается событие event: transfer. Здесь вы можете добавить реплики или реакции бота.


Отображение номера телефона при переводе на оператора

При переводе звонка на оператора можно настроить отображение фактического номера клиента, а не номера бота. Для этого необходимо создать телефонное подключение и настроить SIP-транк без регистрации и пароля:

  • перейдите на вкладку Настройка телефонии в боковом меню > Создать новое подключение;
  • в меню Общие настройки > Пароль оставьте поле пустым;
  • в меню Расширенные настройки > Требуется регистрация переведите переключатель в неактивное положение;
  • заполните остальные поля в соответствии с инструкцией.

Обратите внимание, что SIP-транки провайдера Билайн не позволяют использовать настройки в таком виде. Поэтому отображение фактического номера клиента для них недоступно.