...
Code Block | ||
---|---|---|
| ||
sources:
amqp:
mediation:
# входная очередь разобранных CDR
# значение должно совпадать с выходной очередью HMED-C
consumer: amqp/mediation
destinations:
amqp:
ocs:
# выходная очередь обработанных CDR
# обработанные CDR передаются в тарификатор (HOCS)
producer: amqp/ocs
error:
# выходная очередь CDR, обработанных с ошибкой
producer: amqp/error
handlers:
default:
destinations:
# список выходных очередей
- amqp/ocs
error:
destinations:
# список выходных очередей для CDR, обработанных с ошибкой
- amqp/error
constants:
# константы, доступные для использования в спецификациях фильтров через переменную $consts
number_length: 11
routes: # константа может быть хэшем
C26052: COMSTAR
C26053: COMSTAR
skip_trunks_b: # или массивом
- C30052
- C30055
- C30056
workers:
# список воркеров
- processor: base/switch # воркер реализует процессор base со спецификацией switch |
...
Code Block | ||
---|---|---|
| ||
processors: # тип процессора base: # спецификация процессора switch: # валидатор (тип/спецификация) validator: base/main # цепочка фильтров filters: - skip/if_duration_is_0 # тип/спецификация - set/short_trunk_a_name - set/full_trunk_a_name - set/route_a_by_trunk_a - replace/dash_in_station_a_with_zeros - if/station_a_length_is_7 - prepend/pl_922_station_a_with_7499 # в скобках передаются аргументы, доступные в фильтре через переменную $args # $args[1] - первый аргумент, $args[2] - второй и т.д. - prepend/station_a_with('7495') - prepend/station_a_with('7') - replace/leading_string_in_station_a('8495', '7495') - replace/cut_international_prefix_in_station_b ... map: # поля выходной CDR, формируемой после обработки # эти поля проверяются валидатором trunk_a: $cdr.trunk_a trunk_b: $cdr.trunk_b route_a: $cdr.route_a route_b: $cdr.route_b station_a: $cdr.station_a station_b: $cdr.station_b duration_sec: $cdr.duration_sec termination_code: $cdr.termination_code call_begin: $cdr.call_datetime service_code: "'M200'" |
Настройка валидации
Настройка валидации
Code Block | ||
---|---|---|
| ||
validators:
base:
# спецификация валидатора
main:
fields:
call_begin: # проверяемое поле
type: float # тип значения (integer - целое число, float - десятичная дробь, string - строка)
required: true # признак обязательности присутствия поля в CDR
station_a:
type: string
required: true
length: # проверка длины строки
min: 11
max: 15
service_code:
type: string
required: true
value: M200 # проверка значения (только для строк)
... |