Описание REST хуков¶
Общие сведения¶
WCS может взаимодействовать с бэкенд-сервером, используя REST хуки. WCS будет отправлять бэкенд-серверу данные о клиентских соединениях, звонках, видеопотоках и т.д.

REST хуки могут быть использованы для следующих целей:
- Аутентификация клиентских соединений к серверу по IP-адресу, токену, паролю и т.п.
- Получение в реальном времени информации о коннектах, дисконнектах, начале и завершении потоков, звонков и т.д.
- Переопределение данных, переданных с клиента. Например, можно переопределить и скрыть реальное имя потока или направление звонка
- Реализация кастомного сигналинга с передачей данных через Websocket, например рассылка текстового сообщения в чате всем подключенным клиентам
Начиная со сборки 5.3.392, полная автоматически генерируемая техническая документация по REST хукам доступна на официальном сайте Flashphoner: REST hooks
REST хуки должны быть реализованы в виде простых HTTP / HTTPS скриптов, которые работают с JSON в теле HTTP-запроса и отдают JSON в теле HTTP ответов.
Request¶
| Protocol | HTTP/HTTPS |
| URL | `http://path/hook` or `https://path/hook` |
| Method | POST |
| Content-Type | application/json |
| Body | JSON |
Response¶
В ответ WCS должен получить стандартный HTTP ответ с телом JSON
| status | 200 |
| Reason phrase | OK |
| Body | JSON |
Настройка WCS¶
Отключение REST хуков¶
По умолчанию, обработка REST хуков включена. Для отключения необходимо установить в файле flashphoner.properties следующий параметр
Обработка задержек при ответе back-end сервера¶
При больших нагрузках возможны задержки ответов бэкенд сервера на запросы WCS. Контролировать максимальную длительность таких задержек можно при помощи настройки в файле flashphoner.properties
По умолчанию, максимальная длительность задержки ответа бэкенд сервера установлена в 15 секунд. Если в течение этого времени ответ не был получен, в логе сервера будет зафиксировано исключение
09:05:17,012 ERROR RestClient - API-ASYNC-pool-12-thread-2 Got exception in REST
java.net.SocketTimeoutException: Read timed out
Ошибка будет обработана в соответствии с настройкой restClientConfig.
Рекомендуется задавать максимальную длительность задержки при ответе сервера в пределах от 1 до 60 секунд. Значение
полностью отключает контроль задержки.
Обработка исключений при отправке запросов¶
Начиная со сборки 5.2.1475, если при попытке отправить запрос к бэкенд серверу возникает ошибка, будет предпринято указанное число повторных попыток, по умолчанию 3:
Обработку ошибок можно отключить при помощи настройки
В этом случае, если отправить запрос не удалось, в лог сервера сразу будет выведено соответствующее исключение, например
10:32:43,072 ERROR RestClient - API-ASYNC-pool-13-thread-15 Got exception in REST
org.apache.http.NoHttpResponseException: localhost:8081 failed to respond
Интервал закрытия соединения с бэкенд сервером¶
Начиная со сборки 5.3.157, можно настроить интервал закрытия соединения с бэкенд сервером в секундах:
По умолчанию, HTTP соединение с бэкенд сервером закрывается, если через него не отправлялись запросы в течение 5 минут.
Настройка портов для исходящих соединений¶
Начиная со сборки 5.3.159, можно настроить диапазон портов, используемых для исходящих HTTP соединений:
WCS будет использовать порты из этого диапазона для установки иходящих соединений к бэкенд серверу.
Настройка IP адреса для исходящих соединений¶
Начиная со сборки 5.3.251, можно настроить IP адрес, используемый для исходящих HTTP соединений:
По умолчанию, для исходящих соединений к бэкенд серверу используется IP адрес, указанный в параметре ip_local.