Blog

В этой статье я опишу процесс создания простого кнопочного бота в Telegram, который позволяет выбрать действие - переключить на оператора либо "другое". По "другим" может быть все что угодно - запрос во внешнюю систему, проверка статуса заказа, заказ звонка и многое другое. Цель этой заметки - общие правила создания бота.

В предыдущем материале Чат на сайте с помощью Webitel вы найдете описание того, как создать входящую текстовую очередь и назначить на нее оператора.

Для создания нового бота, перейдем https://t.me/BotFather и придумаем название для бота. После создания вы должны получить API ключ:


Теперь в Webitel создаем простую схему: приветствие, кнопки выбора, проверка выбора и переход в очередь операторов:



Подключаем нашего бота указав API и схему:


Не забываем его включить после создания!

Теперь мы смело можем начать общение:

На оператора распределяется чат, вы видим канал, имя пользователя, историю общения с ботом и в какую очередь он поступил:

Вот так просто с помощью Webitel вы можете добавить дополнительный канал общения для ваших клиентов, а если немного разобраться в нашем конструкторе, то и создать довольно сложные меню самообслуживания 😊

В отличии от Webitel 3, где логин и пароль пользователя выступали авторизационными данными для SIP телефонов, в новой версии для звонков вам необходимо создать устройство. В нашем видео вы найдете описание процесса создания пользователя и устройства:

В этой заметке я опишу как правильно зарегистрировать SIP телефон пользователю Webitel.

Исходящие параметры

Для регистрации SIP устройства нам нужно:

  1. Домен, в который входит пользователь
  2. Внутренний номер пользователя
  3. Идентификатор связанного с пользователем устройства
  4. Пароль связанного с пользователем устройства
  5. Адрес SIP сервера Webitel

Domain

Домен - это та часть, которую вы вводите при логине после знака @

Extension

Внутренний номер пользователя находится в его карточке:

Auth User/Password

Из карточки устройства, связанного с пользователем, копируем значение из полей Идентификатор и Пароль:

SIP Proxy

Адрес SIP сервера не всегда совпадает с адресов веб-интерфейса. Если вы заходите в веб-приложение опубликованного по адресу https://stage.webitel.com/ , то это никак не означает, что SIP устройство нужно регистрировать именно на этот адрес. Самый правильный способ - уточнить эту информацию у технической поддержки. В моем случае это будет sw-ams1-01.webitel.com

Регистрационные данные

Теперь у нас есть вся необходимая информация для регистрации SIP телефона пользователю:

  1. SIP Domain/Realm: demo.webitel.com
  2. Username: 200
  3. Auth User: test
  4. Auth Pass: ctEKyaAQz61a
  5. SIP Proxy: sw-ams1-01.webitel.com

Прописываю на примере MicroSIP:

После сохранения устройство должно зарегистрироваться:




Homer - это простой способ беспрерывного мониторинга SIP и RTP протоколов. Поскольку мы сами очень часто прибегаем к данному инструменту, то я хотел бы поделиться с вами настройкой и использованиям Homer совместно с Webitel.

Установка

Здесь все довольно просто. Добавить репозиторий и установить пакеты:


curl -s https://packagecloud.io/install/repositories/qxip/sipcapture/script.deb.sh | sudo bash
apt install heplify-server
apt install homer-app


Настройка

Вначале нужно создать пользователя. Homer поддерживает разные базы данных, но мы будем использовать нашу текущую PostgreSQL, только создадим отдельного пользователя.

su postgres
createuser -P -s -e homer7

В конфигурационных файлах необходимо прописать нашего пользователя и пароль для подключения к PostgreSQL:

  • /etc/heplify-server.toml
  • /usr/local/homer/etc/webapp_config.json

Теперь можем запустить скрипты создания и наполнения стандартной конфигурации Homer 


homer-app -create-config-db -database-root-user=homer7 -database-host=localhost -database-root-password=webitel -database-homer-user=homer7
homer-app -create-data-db -database-root-user=homer7 -database-host=localhost -database-root-password=webitel -database-homer-user=homer7

homer-app -create-table-db-config 
homer-app -populate-table-db-config 
homer-app -upgrade-table-db-config


Если все прошло без ошибок, тогда включаем и запускаем сервисы:

systemctl start heplify-server
systemctl enable heplify-server
systemctl start homer-app
systemctl enable homer-app

Webitel

Для того, чтобы Webitel начал отправлять логи звонков на сервер Homer, нужно выполнить следующие настройки.

OpenSIPS

В стандартном конфигурационном файле opensips.cfg открываем строку с hep_udp, указав с какого IP должен OpenSIPS отправлять пакеты в Homer:

Открыть строки модуля и указать IP адрес нашего Homer сервера:

Включить перенаправление SIP трафика в новый роут:

Активировать этот роут:

rtpengine

Дополнительно по каждому звонку мы можем собирать статистику качества голоса. Для этого нужно в файле rtpengine.conf указать куда направлять логи:

Использование

Web интерфейс будет доступен по адресу http://HOMER-SERVER-IP:9080/ 

Стандартный логин admin , а пароль - sipcapture (не забудьте изменить)

  1. Область поиска нужного звонка
  2. Область фильтра по дате и времени
  3. Область отображения найденных пакетов

Если просто нажать на поле SIP Method, тогда откроем данный пакет:

Если нажать на Session ID, тогда сможете просмотреть весь диалог:

Сводная информация по сессии:

Что касается RTP, то на вкладке QoS вы найдете информацию по RTP протоколу - потери пакетов, значения Jitter и MOS, а также многое другое, что поможет найти проблемные места во время отладки качества связи:


В новой версии появилась возможность создавать чат для сайта и принимать сообщения вместе со звонками в едином окне оператора. В этой заметке я расскажу о том, как правильно создать свой чат для сайта.

Подготовка

Создадим в справочнике Навыки операторов новый навык - Чат

Перейдем в раздел Очереди и добавим новую Входящую очередь чатов:

Укажем рабочий календарь, назначим навык Чат для подбора операторов и активируем запись.

Так же назначим навык Чат нужным операторам: 

Перейдем в раздел Flow schemas и создадим простую схему, которая напишет приветственный текст, дождется ответа клиента и направит на созданную выше очередь:

Создание чата

В разделе Текстовые шлюзы создаем новую запись Web chat:

В настройках нужно указать созданную выше схему:

На вкладке Вид - настроить цвет, размещение и, если хотим, автоматическое открытие через определенное время. Тогда мы будем сами инициировать диалог:

Чат с сайта

Скопируйте код и добавьте на ваш сайт (ваш сайт должен работать с использованием https протокола):

После ввода текста клиентом:

Система распределить чат на свободного оператора с навыком Чат:

Ответ оператора отображается на сайте:

Так же, при необходимости, у оператора есть возможность отправить клиенту файл.

С помощью стандартного конструктора схем Webitel вы можете создавать чат-ботов любой сложности, анализировать ответы, выполнять запросы во внешнюю базу и многое другое!

Среди пользователей Webitel есть компании, который предоставляют сервис через доступ в личный кабинет. Многие из них реализовали авторизацию клиентов по телефону с помощью нашей платформы.

Есть 2 способа реализации данного функционала:

  1. Звонок с представлением случайного номера, где клиент должен ввести последние 4 цифры номера
  2. Звонок с одного номера, а клиент должен нажать 1 для входа

Рассмотрим концепцию реализации на втором примере.

Gliffy Macro Error

An error occurred while rendering this diagram. Please contact your administrator.

  • Name: login-web

Нам нужно подготовить схему, где будет воспроизводиться звуковой файл: «Для входя в личный кабинет, нажмите 1» и проверка, если нажали единицу, тогда отправляем http запрос на веб-сервис личного кабинета, в котором отдаем идентификатор веб-сессии:

Создаем исходящий IVR дайлер, с круглосуточным календарем и нашей схемой звонка.

Из личного кабинета на авторизации система должна отправить запрос на добавление в дайлер абонента, у которого в переменной будет задан идентификатор веб-сессии.

POST  /api/call_center/queues/1/members

{
    "communications": [
        {
            "destination": "380631111111",
            "type": {
                "id": "1"
            }
        }
    ],
    "name": "VIP Client",
    "variables": {
        "session_id": "4bbfbd54-4fc2-4535-ad55-fe1bbc8ccbc6"
    }
}

Все довольно просто, а главное, работает из коробки 😎