Почти в каждом внедрение Webitel мы настраиваем создание Активности или Лида в bpm’online при звонке в нерабочее время. Сегодня я решил описать простой механизм создания Лида с помощью веб-службы DataService. Что бы было интересней, мы воспользуемся средствами преобразования текста в голос и распознавания голоса в webitel. Приступаем к реализации!

В справочнике Тип потребности bpm’online я создам новую запись с названием Заказ обратного звонка:

А в справочнике Каналы Лида добавлю наш номер, что бы было легче идентифицировать на какой номер звонил клиент:

Теперь перейдем к настройкам маршрутизации в webitel. Наша схема состоит из нескольких блоков.

Не так давно наша компания начала активно использовать Slack в качестве внутреннего корпоративного чата. Одним из больших преимуществ данного приложения (как и в webitel) – множество механизмов для веб-интеграций. Сегодня рассмотрим пример уведомления пользователей о пропущенных звонках.

Первое, что необходимо сделать – настроить входящий WebHook:

Настройте изображением, название и скопируйте сгенерированный входящий URL.

Дальше, в public маршрутизации нашего городского номера на событие OnDisconnect добавляем:

В статье переводим bpm’online на HTTPS я описал процесс перевода сайта приложения на использование безопасного протокола https. Но, не так давно, центр сертификации StartCom был заблокирован основными браузерами и больше не считается надежным. Не спешите покупать платный сертификат, в этой статье я опишу, как бесплатно получить надежный сертификат и забыть о проблеме раз и на долго 🙂

Let’s Encrypt – это OpenSource центр сертификации, который предоставляет API для получения бесплатных сертификатов на 90 дней. Вам не нужно заходить на сайт, регистрироваться, покупать сертификаты. Достаточно выполнить один запрос и настроить автоматическое обновление. В официальной документации весь процесс автоматизирован для Linux\Unix платформ и в будущей версии webitel Вы найдете инструменты для получения и продления сертификатов.

Как быть с Windows? Я нашел несколько утилит, но одна мне особенно понравилась своей простотой – letsencrypt-win-simple. Все, что Вам нужно – это скачать архив с последней версией, распаковать его и запустить в консоли PowerShell утилиту:

LetsEncrypt

Вам будет предложено только 2 действия: ввести свой email и выбрать сайт для установки нового сертификата из списка доступных сайтов. Утилита автоматически сгенерирует сертификат и установит его на выбранном вами сайте:

Перезапускаем приложение и проверяем наш сайт:

 

  1. Setup FreeSWITCH
    1. Install FreeSWITCH with mod_verto.
    2. Setup mod_verto
    3. For screen sharing, please, add new extension in the default context:
      <extension name="screen_sharing">
            <condition field="destination_number" expression="^(\d )-screen$">
              <action application="set" data="effective_caller_id_number=${caller_id_number}-screen"/>
              <action application="transfer" data="$1 XML default"/>
            </condition>
          </extension>
      
  2. Install chrome Application and Extension.
  3. Setup Your login, password and WebSocket Uri:
  4. Make a call:

Сегодня уже никого не удивишь функцией синтеза речи в различных приложениях. Вот и webitel мы решили научить говорить в новом релизе.

Тестировали и выбирали из нескольких поставщиков услуги Text-To-Speech. Основные требование – качество синтеза речи и наличие основных языков. Очень понравился облачный сервис IVONA, он и стал первым кандидатом на реализацию. Так же, мы добавили поддержку Microsoft Bing Text To Speech.

Протестировать в живую, что у нас получилось, можете на нашем IVR. Набирайте любой наш номер (есть на сайте), услышите приветствие и голосовое – нажамайте 9, там вас ждет IVONA.

Время от времени возникает вопрос – как быстро получить информацию пропущенном или переведенном звонке, когда я не в офисе? Раньше я предлагал отправлять SMS сообщение, но сейчас с этой задачей прекрасно справляются Push-уведомления. Давайте посмотрим, как это работает в webitel.

В качестве клиентского приложения для получения Push я использую универсальный клиент Pushover, который доступен для всех мобильных платформ. После регистрации и установки приложения, вы должны получить User Key.

Создаем свое приложение и получаем Token Key.

User Key и Token Key будут нам нужен для отправки сообщений.

А дальше, все элементарно просто – воспользуемся приложением httpRequest для отправки сообщений из ACR маршрутизации. К примеру, я уже по номеру телефона из bpm’online получил имя клиента и теперь могу отправить себе эту информацию на телефон:

{
        "httpRequest": {
            "url": "https://api.pushover.net/1/messages.json",
            "method": "POST",
            "headers": {
                "Content-Type": "application/x-www-form-urlencoded"
            },
            "data": {
                "html": 1,
                "user": "hGvdrtgFDvsgtrfBBFgvfff",
                "token": "HGGtyteg66gbGFfggtdgbgG",
                "message": "<font color=blue>входящий звонок от </font> <b>${effective_caller_id_name}</b> с ${caller_id_number}"
            }
        }
    }

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

В своих старых вебинарах я рассказывал о реализации функции “звонк на ответственного” через разработку дополнительного web-сервиса без авторизации в bpm’online. Данный сервис позволяет определить контакта по номеру телефона, найти внутренний номер сотрудника, закрепленного за этим контактом и направить звонок непосредственно на него. Только если он не ответил на протяжение n-секунд, отправить по общему правилу.

В представленной мною реализации было несколько проблем:

  1. Сервис без авторизации, а значит, к нему легко получить доступ. Ничего, кроме внутреннего номера ответственного по заданному номеру клиента не увидят. Но, это все же не безопасный метод.
  2. Есть основание полагать, что после очередного обновления bpm’online, этот сервис перестанет работать и нужна будет повторная его установка.

В документации по разработке bpm’online 7.8 появилось описание интеграции с помощью веб-службы DataService. Как уверяют меня коллеги, этот функционал был давно, но, описание появилось только начиная с 7.8 🙂 Вот на него и будем переводить нашу функцию “Звонок на ответственного”.

Для реализации поставленной задачи, нужна сборка ACR от 27.06.2016 или старше (начиная с релиза webitel v3.3.0), где была добавлена функция реверса строки и работы с Cookie. Так же, нам понадобиться логин и пароль пользователя bpm’online, у которого есть доступ на чтение в разделе Контакты.

Если у Вас установлен bpm’online on-site и Вы хотите использовать webitel с WebRTC, то без наличия HTTPS это сделать у Вас не получиться. Я уже описывал процесс перевода webitel на использование сертификатов безопастности, а сегодня поговорим о bpm’online.

Процесс получения бесплатного сертификата такой же, как и для webitel, единственное отличие – это создание PFX файла для IIS:

pfx

Сертификат необходимо загрузить в хранилище “Веб-служб” в меню “Сертификаты сервера” IIS:

сертификат

Назначим сертификат на нужный нам сайт с bpm’online через меню “Привязки”:

Для того, что бы корректно работали WebSocket на HTTPS, нам необходимо перевести сайт на использование Microsoft WebSocket сервера. Для этого сайт должен быть размещен минимум на Windows 8 или Windows 2012 Server и компонент WebSocket – установлен:

WebSocket

Теперь, когда у нас уже есть сертификат и установлены WebSocket, перейдем к конфигурации сайта bpm’online. Все указанные ниже изменения я делаю на сайте версии 7.8.0.1005.

Очень сильно раздражает, если для поиск нужного звонка в статистике любой АТС нужно ждать десятки секунд, а то и минуты. А теперь представьте, что Вы постоянно работаете со статистикой… Каждый поиск, каждый новый фильтр – потерянные минуты, которые собираются в часы 🙁 Вы можете увеличить вычислительные ресурсы сервера, можно удалить старые записи… А можно перейти на полнотекстовый поиск. Вот это последние мы и решили испытать в ожидающем нас новом релизе webitel.

Те, кто пользовался админкой в webitel 3.0 или 3.1, очень хорошо помнят ее ограничения при работе со статистикой – только фильтры по дате. Я сам неоднократно не мог найти нужный мне звонок:

Старая статистика звонков

В релизе 3.2 мы презентовали новый Webitel WebClient, который обзавелся не только новым видом, но и новым конструктором фильтров:

Конструктор фильтров