Skip to content

транслятор уведомлений UIScom через hs - в канал сервера Centrifugo

License

Notifications You must be signed in to change notification settings

yarsergo/UIScomToCentrifugo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 

Repository files navigation

UIScom To Centrifugo

1C-транслятор уведомлений UIScom в канал сервера Centrifugo.

Это репозиторий для конфигурации 1C Платформы 1С 8.3

  • Содержит подсистему UIScom со всеми нужными объектами.
  • получения внешних POST-запросов от UIScom на адрес <ВнешнийАдрес>/<ИмяБазы>/hs/UIScom/<Метод>
  • Методы: /in /out /rec
  • и переотправка данных в Канал на сервер Centrifugo (настройка подключения через Константы).

Константы:

  • Сервер Centrifugo - адрес в локальной сети <ИмяКомп:8000> или во вне
  • API KEY Centrifugo - ключ авторизации "api-key" из файла config.json сервера Centrifugo

Поля, которые передаются в канал Centrifugo:

  • "channel": соответствует полю Канал = "Внутренний номер оператора" (extension_phone_number)
  • "user": фиксированный пользователь UIScom
  • "text": соответствует полю ВызываемыйНомер (calling_phone_number) или полю ТелоЗапроса При событии:

Начало разговора - только для входящих звонков - отправляется ВызываемыйНомер из UIScom/in Завершение звонка - отправляется поле ТелоЗапроса по звонку из UIScom/rec

История звонков

Все уведомления записываются в регистр сведений "ИсторияЗвонков"

  • ВремяНачала - заполняется из поле "Start_time" в виде строки "2016-07-24 23:59:07.863",
  • Входящий - признак Входяшего / Исходящего звонка - соответствует полю "direction": ("in"/"out"),
  • ИдСессии - "call_session_id" - число(12) - уникальный идентификатор сессии звонка,
  • Номер - заполняется из поля "virtual_phone_number" - строка(11) - может быть разный/единый для SIP-номеров,
  • Канал - это внутренний номер сотрудника "extension_phone_number" - строка(4)

Важные поля регистр сведений "ИсторияЗвонков"

  • Период - дата и время уведомления или начала звонка (в зависимости от параметра ДобавлятьСобытия см.ниже)
  • ИмяСобытия - "notification_name" это название уведомления, заданное в личном кабинете UIScom,
  • ТелоЗапроса - содержит полный JSON входящего POST-запроса

Настройка Соответствие всех полей - полям UIScom достаточно жесткая и определена

  • в общем модуле UIScomСервер -> ПолучитьСоотвПолей()

Параметр - ДобавлятьСобытия

Находится в модуле менеджера рег.св."ИсторияЗвонков" как второй параметр в процедуре:

  • СоздатьЗапись( структураПолей, ДобавлятьСобытия = Истина)

Если этот параметр включён(по умолчанию), тогда при получении нового уведомления тогда создаётся новая запись с учётом всех предыдущих данных по измерениям (ИдСессии, Номер) Иначе данные - переобновляются в одной и той же записи с датой начала звонка!!!


При получении уведомления - проверяется наличие предыдущей записи именно по вышеперечисленным полям (измерениям),

  • и добавляются / заменяются данные в новой/старой записи (в зависимости от признака ДобавлятьСобытия)
  • При записи Потерянного исходящего звонка - получаем старые данные по call_session_id и НЕ затираем Канал
  • Если поле Канал заполнен - то происходит отправка данных в Centrifugo

About

транслятор уведомлений UIScom через hs - в канал сервера Centrifugo

Resources

License

Stars

Watchers

Forks

Packages

No packages published