Описание работы HOCS
Приложение HOCS (Hydra Online Charging System) загружает в биллинг обработанные CDR, поступающие с HMED-M.
Настройка загрузки в биллинг
amqp:
# входная очередь, являющаяся выходной очередью HMED-M
ocs:
exchange: hocs
exchange_type: fanout
queue: ocs
# настройки соединения с биллингом
billings:
hydra:
main:
name: tns # база данных
user: username # пользователь
password: password # пароль
sources:
amqp:
ocs:
consumer: amqp/ocs
fields:
# поля CDR, сохраняемые в биллинг
# тип/поле
- string/service_code
- string/ext_id
- string/station_a
- string/station_b
- string/route_a
- string/route_b
- date/call_begin
- date/call_end
- integer/duration_sec
- string/termination_cause
# параметры запускаемых процессов тарификатора
workers:
# будет запущен один процесс-обработчик
- sources: [amqp/ocs] # список используемых источников CDR
rater: local/main # компонент, занимающийся определением стоимости CDR
charger: local/main # компонент, тарифицирующий и загружающий CDR в биллинг
# эти параметры изменять не нужно
raters:
local:
main:
billing: hydra/main
chargers:
local:
main:
billing: hydra/main
default.yml
В процедуре EX_AAA_PKG.CDR_PUT для защиты от дублей нужно передавать флаг b_SkipOnExistingExtUniqId, в процедуре ET_CDR_LOADING_PKG.CDR_PUT для этого нужно передавать параметр num_EXT_ID_LOOK_AROUND_HOURS.
Параметры работают так:
- Если в процедуру не передан num_N_CDR_ID, но передан num_EXT_ID_LOOK_AROUND_HOURS, то Гидра пытается искать существующий звонок в рамках переданного окна в часах. Делает она это по vch_VC_EXT_UNIQ_ID.
- Если в процедуру не передано значение num_EXT_ID_LOOK_AROUND_HOURS, но передано b_SkipOnExistingExtUniqId, то Гидра пытается искать существующий звонок по vch_VC_EXT_UNIQ_ID среди всех звонков. Никакого окна поиска в часах не используется.