WebRTC

Voice over Internet Protocol (VoIP) — сегодня это один из самых популярных стандартов для голосовых и видеозвонков в мире Интернет. В этой заметке я попробую на простых примерах рассказать, как работают голосовые и видеозвонок.

Почти каждый день мы с вами используем голосовые либо видеозвонка в различных приложениях, таких как Skype, Viber, Telegram, WhatsApp, Facebook Messenger или Webitel 🙂 В общем, передача аудио либо видео зависит от того, как приложение передаст медиапоток между двумя клиентами. И в большинстве случаем для потоковой передачи мультимедиа мы используем WebRTC.

WebRTC — это стандарт c открытым исходным кодом, который предоставляет браузеры и мобильные приложения возможности взаимодействовать в реальном времени (RTC) через простые API. Все компоненты WebRTC были оптимизированы именно для работы мультимедиа в различных сетях интернет.

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

  • Сигнальный протокол
  • STUN
  • TURN

Что такое сигнализация?

 

  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:

Если у Вас установлен 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.

Несколько дней назад возникла необходимость объединить пользователей bpm’online клиента с его офисной АТС Avaya IP Office 500.

Схема объединения

Для начала я разделил внутренние номера так, что пользователи bpm’online будут иметь номера на 2хх, а телефоны за Avaya — 1хх. Поскольку webitel находится в облаке, а IPO в локальной сети клиента, необходимо наличие статического IP адреса на маршрутизаторе, а так же, сделать проброс SIP и RTP портов. Здесь все зависит от конкретной модели интернет роутера.

Наша задача — разрешить пользователям звонить между собой по внутренним номерам, а пользователям bpm’online — выходить в мир через городские линий IPO. Рассмотрим настройки Avaya и Webitel в отдельности.

В предыдущих статьях мы обсудили основные преимущества и возможности Docker. Сегодня я хочу рассказать о реализации сервера Webitel Collaboration с помощью этой технологии. Напомню, что не так давно, с выходом bpm’online 7.4.1, был анонсирован новый продукт для бесплатных внутренних коммуникаций. Вот его мы сегодня и разберем по кирпичиках.

Микросервисы

Помните, микросервисы в основе приложения? Именно эта идеология и заложена в Collaboration. Мы разбили все компоненте на несколько небольших контейнеров в зависимости от выполняемой задачи. А какие основные задачи Collaboration? Если вкратце, то это внутренние звонки. Здесь нет статистики, нет записей разговоров, нет внешней маршрутизации и провайдеров связи.

Архитектура решения

Webitel Collaboration Cloud

Сегодня добавили новую фичу в библиотеку webitel для bpmonline — уведомления браузера. Для начала необходимо разрешить для сайта (на demo стенде уже можно опробовать):

allow

Теперь можем свернуть браузер и работать в другом приложение. При входящем вызове мы получим такое вот окошечко:

incoming call

А если звонок пропустили, тогда:

missed call

Работает в браузере Chrome, Opera и должно работать в FireFox (не проверял еще).

Бесплатные звонки — звучит как рекламный лозунг! Нет, это не реклама (хотя…).

Рады представить сообществу Terrasoft новый продукт Webitel Community, который позволяет бесплатно совершать видео и аудио звонки между пользователями bpmonline 7 с использованием технологии WebRTC. Каждой компании, которая оставит заявку на сайте, будут предоставлены 5 лицензий Webitel Community.

Что предлагает Webitel Community?

  • Бесплатные звонки между пользователями
  • Видеозвонки
  • Определение статусов сотрудников
  • Перевод звонка и удержание

Если Вас у Вас есть пожелания — пишите в комментариях.

PS: небольшое видео, как это все работает: https://vimeo.com/97131875

PPS: если Вы установите на свой bpmonline 7 пакет Webitel Community и в другой компании сделано то же самое, то Вы сможете позвонить им тоже бесплатно. Вот оно — Community!