Пример интеграции Webitel и Single Page Application

Этот документ описывает основы интеграции Webitel с любым одностраничным веб-приложением (SPA).

Основные пункты интеграции:

Важно!

Webitel и SPA должны использовать HTTPS-соединение с действительными SSL-сертификатами, подписанными известными ЦС.

Общие настройки интеграции Webitel:

Для целей интеграции, вам нужно сохранить на стороне SPA следующие 4 настройки:

  1. Конечная точка Webitel REST API. Например: https://cloud.webitel.com/api/

  2. Конечная точка Webitel Web Socket. Например: wss://cloud.webitel.com/ws/

  3. Токен интеграции Webitel.

  4. Домен пользователей Webitel. Внутренний домен Webitel, например: my-company.lo

Создание пользователя и сохранение токена интеграции.

  1. Name - имя пользователя.

  2. Login - логин пользователя. Он может совпадать с внутренним номером пользователя.

  3. Password - случайная строка.

  4. Extension - внутренний телефонный номер пользователя.

  5. Product license key - лицензионный ключ продукта (пользователи без лицензии не могут войти в Webitel).

  6. WebRTC device - устройство WebRTC (пользователи без устройства не могут использовать звонки WebRTC из браузера).

Создание устройства.

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

POST https://cloud.webitel.com/api/devices { "name": "device for user 1", "account": "sipUser1", "password": "BNZdVLryFwcB" }

В ответе мы получим тело с новым идентификатором устройства:

{ "id": "7287", "name": "device for user 1", "account": "sipUser1", "password": "BNZdVLryFwcB", "user": {}, "logged_in": "1682943253855", "created_at": "1682943253855", "created_by": { "id": "130", "name": "Administrator" }, "updated_at": "1682943253855", "updated_by": { "id": "130", "name": "Administrator" } }

Создание пользователя.

Теперь мы создадим пользователя с устройством WebRTC, используя конечную точку Webitel REST API и токен интеграции:

POST https://dev.webitel.com/api/users { "name": "User1", "email": "user1@gmail.com", "username": "2020", "password": "dl75lfLcOLLL", "extension": "2020", "roles": [ { "id": 4 } ], "device": { "id": "7287" }, "license": [ { "id": "95309f22-0d7c-4fb9-baab-9911898019c4" } ], "devices": [ { "id": "7287" } ] }

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

Создание токена пользователя.

Последнее, что нам понадобится, - токен интеграции для нового пользователя:

В ответе вы получите токен для пользователя:

Таким образом, внутри вашей SPA для каждого пользователя вам необходимо сохранять:

  • Идентификатор пользователя (user ID).

  • Идентификатор устройства (device ID).

  • Токен пользователя (user token).

Использование клиентской библиотеки Webitel JavaScript для звонков WebRTC или функционала Click-To-Call.

Webitel имеет свою собственную библиотеку на JavaScript, которая поддерживает следующие функции:

  • Инициирование звонка;

  • Ответ на входящий звонок (только с использованием WebRTC);

  • Удержание звонка;

  • Перенаправление звонка;

  • Отправка DTMF-сигнала;

  • Завершение звонка.

Вы можете найти пример web-phone по этой ссылке: https://git.webitel.com/projects/WEP/repos/vue-phone-example/browse

Если вам не нужны звонки с использованием WebRTC и вы будете использовать аппаратный телефон, вы можете использовать Click-To-Call HTTP REST API: https://swagger.webitel.com/#/CallService

Создание агента контакт-центра для расширенной функциональности маршрутизации звонков (необязательно).

Если вы используете очереди колл-центра и авто-набор номеров (дайлер), вам необходимо создать агента для каждого пользователя. Вы можете создать его с помощью REST API-интерфейса Webitel и токена интеграции: https://swagger.webitel.com/#/AgentService/AgentService_CreateAgent

Использование Webitel REST API для синхронизации истории звонков (необязательно).

Если вы хотите получить историю всех звонков с Webitel на SPA, вы можете использовать точку доступа Webitel REST API и токен интеграции: https://swagger.webitel.com/#/CallService/CallService_SearchHistoryCall

Также вы можете получить записи звонков: https://swagger.webitel.com/#/MediaFileService/MediaFileService_ReadMediaFile

Работа з дайлером (необязательно).

Эта часть описана на странице: Webitel REST API Usage Examples.