Call Storage (callstore)
Описание
Хранилище активных звонков и их контекстов.
Накапливает и агрегирует события жизненного цикла звонка.
Отслеживает диалоги и дополняет поток событий в случае падения процесса или сервера, обслуживающего диалог.
Формирует и сохраняет комплексную CDR в коллекцию модели данных `cdr/COPM3_dialogs` мастер-домена.
Путем доработки может быть дополнена сохранением данных, например, об инициированных звонках (invites), вызовах (forks), удержаниях (holds) и расширенных диалогах и связях между ними.
Исполняет сервис восстановления разговоров при обнаружении потери серверов SIP-сигнализации.
Разделена на микросервисы по доменам. Данные автоматически синхронизируются между сайтами, обслуживающими домен.
Резервируется в режиме Active-Passive. Масштабируется разделением доменного дерева.
Код |
|
Режим работы |
|
Режим резервирования |
|
Типы сайтов |
|
Слой |
|
Размещение |
|
Сохранение и восстановление состояния при перезагрузке |
|
Приложение |
|
Собственное хранилище |
|
Параметры
Имя | Тип | Умолчание | Описание |
---|---|---|---|
|
|
required |
Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы. |
|
|
required |
Тип роли. Возможные значения: |
|
|
empty |
Дополнительные опции роли. Содержит json объект или список. |
|
|
empty |
Флаг активности роли. При установке в false роль не участвует в валидации и не запускается. |
|
|
required |
Номер группы. В настоящее время в рамках роли callstore работают мастер-сервисы cdr и sip-restore. Это накладывает ограничение на возможности горизонтального разделения (роадмап). |
|
|
required |
Порядок экземпляра роли в рамках группы. |
|
|
empty |
Список имен доменов, которые обслуживает данная группа. |
|
|
Выключатель режима отслеживания CDR всех вызовов.
|
|
|
|
Выключатель операции создания и размещения в коллекции 'cdr/COPM3/dialogs' агрегированной информации по каждому вызову. |
|
|
|
Выключатель режима восстановления SIP-диалогов при обнаружении недоступности внутренних SIP-серверов. ЭКСПЕРИМЕНТАЛЬНЫЙ РЕЖИМ Режим работает через функции callmanager, организовывая вызов обоих абонентов с подменой (INVITE+Replaces) или опционально с интеркомом. Необходима включенная опция 'cdr_enabled'. При падении сервера/ноды с микросервисом шлюза SG, после восстановления регистрации от абонента, осуществляется его вызов подменой и, возможно, интеркомом (настройка 'sip_restore_mode'). Все время, пока восстановление не произошло, звук продолжает поступать, если медиашлюз остался доступен. Если абонент использует встроенный webrtc-софтфон, то медиатрафик также продолжает обрабатываться вплоть до перерегистрации, а попытка переподключения начинается сразу. В случае, если оказывается недоступен связанный со звонком микросервис ESG, то при наличии резервного в сторону аплинка (за учетной записью провайдера) также отпраляется INVITE+Replaces. При падении сервера/ноды с микросервисом обслуживания конференции (conf), создается новая конференция и все участники переводятся в нее. При падении сервера/ноды с микросервисом обслуживания IVR (ivr), создается новый обработчик и абонент потерянного диалога с IVR переключается в него. Если при этом в исполнявшихся сценариях IVR применялось сохранение контекста, то вызов начнет обрабатываться с последней сохраненной позиции и состояния, в том числе на любом уровене вложенности. Если теряется несколько или все серверы сигнализации, это не мешает полному восстановлению обоих плечей. Восстановление осуществляется активным микросервисом callstore. Хранение информации о диалогах производится в распределенной БД. Подробное описание работы восстановления диалогов в статье. |
|
|
|
Устанавливает режим восстановления разговора при обнаружении падения микросервиса SG.
Применяется только при включенной опции 'sip_restore_enabled'. |
|
|
|
Время в секундах, как долго может инициированный процесс восстановления диалога ожидать появления возможности осуществить вызов (наличия требуемых микросервисов, регистраций, коннектов). На восстановление каждого разговора отводится одна попытка (параметр sip_restore_mode). Значение может быть увеличено и до нескольких минут, учитывая что:
Применяется только при включенной опции 'sip_restore_enabled'. |
|
|
|
|
Возможные варианты: |
|
|
|
транзакций). При одновременной перезагрузке/выключении всех экземпляров группы данные теряются. |
|
|
takeover |
bool |
Пример конфигурации
Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.
Конфигурация содержит раздел для описания всех экземпляров всех ролей. Параметры определяются для каждого конкретного экземпляра роли.
{
"name": "callstore1",
"roletype": "callstore",
"group": 11010,
"order": 1,
"include_domains": []
}