Это репозиторий для конфигурации 1C Платформы 1С 8.3
- Содержит подсистему UIScom со всеми нужными объектами.
- получения внешних POST-запросов от UIScom на адрес <ВнешнийАдрес>/<ИмяБазы>/hs/UIScom/<Метод>
- Методы: /in /out /rec
- и переотправка данных в Канал на сервер Centrifugo (настройка подключения через Константы).
- Сервер Centrifugo - адрес в локальной сети <ИмяКомп:8000> или во вне
- API KEY Centrifugo - ключ авторизации "api-key" из файла config.json сервера 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