Загрузка данных производится загрузчиком load_*_cdr_file. cmd. Имя  загрузчика меняется в зависимости от коммутатора,  например: у коммутатора s12  - загрузчик  load_s12_cdr_file. cmd.

В качестве параметров загрузчику передаются:

    Полное имя  CDR-файла Код коммутатора, с которого поступил  CDR-файл Идентификатор сеанса загрузки (уникальный для каждой загрузки CDR) Строка соединения с БД *.ini — файл, содержащий описание формата CDR и формата файла *.ctl.

При загрузке инициируются следующие действия:

Вызывается программа CDRConvert. exe, выполняющая преобразование CDR-файла из бинарного формата  в обычный, пригодный для загрузки в БД. Эта программа создает файл *.ctl. Это управляющий файл, который содержит  загружаемые  данные и описание правил загрузки данных в БД.

При вызове CDRConvert. exe передаются следующие параметры:

    *.ini – файл Полное имя CDR-файла Код коммутатора, с которого поступил  CDR-файл Идентификатор сеанса загрузки.
Затем вызывается загрузчик SQL*Loader, который загружает  в БД данные  о звонках  из файла *.ctl.

В результате работы загрузчика создаются файлы со следующими расширениями:

    *.bad (*.dis) — файл, содержащий записи, при загрузке которых возникла ошибка *.err — файл, наличие которого говорит о том, что загрузка данных произведена с ошибками (при отсутствии ошибок файл  не создается) *.log — файл, описывающий шаги и результат работы SQL*Loader *.ech — файл, описывающий шаги и результаты работы программы загрузчика.

Схема процесса загрузки CDR-файлов  в АСР:

НЕ нашли? Не то? Что вы ищете?

После выполнения загрузки данные попадают в таблицу TR_T_CDR_*_RAW. Каждая ее запись содержит идентификатор соответствующего сеанса загрузки.

Идентификаторы записей, записываемых в таблицу TR_T_CDR_*_RAW, записываются также в таблицу TR_T_CDR_*_QUEUE.

В зависимости от  результата загрузки заносим в поле “RESULT_OF_LOAD “ таблицы TR_T_CDR_LOAD_LOG (таблица с – информацией о загрузке CDR-файлов ) либо ERROR, либо OK. При этом ERROR заносится, если программы CDRConvert. exe или SQL*Loader завершились с ненулевым кодом возврата, или если имеется файл *.err.

Описание экранной формы для выполнения и контроля  загрузки  файлов CDR приведено в разделе «Работа с файлами CDR».

Процесс обработки

Для обработки данных вызывается процедура Process_Raw_CDR  пакета  TR_P_CDR_*, которой передается код коммутатора (ExchangeCode) и параметр, определяющий характер обработки (bCharged). Последний параметр имеет значение TRUE, если тарификация должна производиться одновременно с обработкой данных, и FALSE, если тарификация должны быть выполнена после обработки данных.

Схема процесса обработки и тарификации данных о трафике:

Во время обработки для каждой записи в таблице TR_T_CDR_*_QUEUE  по коду коммутатора находится исходный CDR (соответствующая запись в R_T_CDR_*_RAW). Затем для найденного "сырого" CDR производится ряд действий, в результате которых формируются записи об обработанном звонке. Последних может быть несколько, так как для каждой услуги создается одна запись, а один CDR может содержать данные о нескольких фактах предоставления услуг.

При обработке трафика выполняются следующие действия для формирования записи о соединении (звонке):

    Подсчитывается  длительность звонка в секундах Из CDR выделяется входящий маршрут и по таблице tr_t_routes проверяется его  принадлежность множеству входящих и двунаправленных маршрутов, действительных на  момент даты звонка и принадлежащих текущему коммутатору. Кроме того, из этой таблицы извлекаются параметры входящего маршрута, используемые при обработке этого звонка Из CDR выделяется исходящий маршрут и по таблице TR_T_ROUTES проверяется его  принадлежность  множеству исходящих и двунаправленных маршрутов, действительных на момент даты звонка и принадлежащих текущему коммутатору. Кроме того, из этой таблицы извлекаются параметры исходящего маршрута, используемые при обработке этого звонка Определяется А-номер абонента Определяется Б-номер абонента Производится разбор типа записи (находятся услуги вызывающего абонента, услуги вызываемого абонента) В случае необходимости производится разбор Б-номера. Ищется сеть и тип соединения и по ним находится префикс. Если Б-номер содержит префикс, то он вырезается из Б-номера Ищется сеть и тип соединения и по ним определяется необходимость разбирать номер по коду направления. Если Б-номер содержит код направления, то он вырезается из Б-номера Количество цифр в Б-номере определяется параметром «Длина номера», зависящим от сети и типа соединения (в справочнике «Сети и типы соединений»). Если параметр не задан, то Б-номер не изменяется, в противном случае в Б-номере оставляется количество цифр, равное значению параметра Анализ и разбор А-номера

Разбор и анализ А-номера зависит от  значений следующих параметров, установленных в справочнике настроек - Параметры настройки:

"IS_CHRG_OUT=TRUE"  — тарифицировать все исходящие звонки;

"IS_CHRG_CL_OUT=TRUE" — тарифицировать все исходящие звонки абонентов;

"IS_CHRG_CL_LOC_OUT =TRUE" — тарифицировать все исходящие местные звонки абонентов.

Также зависит от полей, характеризующих входящий маршрут:

"IS_CHARGE_IN = 'Y'" таблицы TR_T_ROUTES — поле «Тар. А-аб.» справочника «Маршруты»;

"IS_LOCAL = 'Y'" таблицы TR_T_ROUTES — поле «Абонентский?» справочника «Маршруты».

Если все эти условия выполняются, то:

Обрезается префикс А-номера (поле «А-преф.» входящего маршрута справочника  «Маршруты») Наращивается А-номер (поле «А-прист.» входящего маршрута справочника «Маршруты») Ищется А-номер в номерной емкости.
    Анализ и разбор Б-номера

Разбор и анализ Б-номера зависит от  значений следующих параметров, установленных в справочнике настроек - Параметры настройки:

" IS_CHRG_INC=TRUE"  — тарифицировать все входящие звонки

"IS_CHRG_CL_INC =TRUE" — тарифицировать все входящие звонки абонентов.

Также зависит от полей, характеризующих исходящий маршрут:

"IS_CHARGE_OUT='Y'" таблицы TR_T_ROUTES - поле «Тар. В-аб.» справочника «Маршруты»

"IS_LOCAL = 'Y'" таблицы TR_T_ROUTES - поле «Абонентский?» справочника «Маршруты».

Если все эти условия выполняются, то:

Обрезается префикс Б-номера (поле «Б-преф.» входящего маршрута  справочника  «Маршруты») Наращивается В-номер (поле «В-прист.» входящего маршрута справочника «Маршруты») Ищется В-номер в номерной емкости.

Затем выполняются действия для формирования записей о фактах оказания услуг:

    По исходящему телефону и потоку последовательно определяются все услуги звонящего абонента (эти действия не выполняются для звонков или потоков, которые не обрабатываются) Для каждого факта оказания услуги определяется тип дня, ищется версия тарифного плана для объекта договора, ищется тарифная зона, определяется услуга, формируются и обрабатываются записи о начислениях По входящему телефону и потоку последовательно определяются  все услуги  вызываемого абонента (эти действия не выполняются  для звонков или потоков, которые не обрабатываются) В зависимости от входящего параметра bCharged (указывающего на условие, производить тарификацию или нет), услуги по звонку либо тарифицируются, либо нет.

Далее производится проверка существования  записей в TR_T_CDR_DATA и TR_T_SERVICE_FACTS, соответствующих обработанным данным. Если такие записи существуют, то они удаляются.

В таблицу TR_T_CDR_DATA вставляются записи об обработанном звонке, а в таблицу  TR_T_SERVICE_FACTS вставляются записи с найденными фактами оказания услуг.

Если предусмотрена схема последовательной обработки и тарификации трафика, то во время вставки записи о факте оказания услуги  в таблицу TR_T_SERVICE_FACTS  ее идентификатор  вставляется в таблицу TR_T_SERVFACTS_P_QUEUE.

После того, как CDR, найденный по записи из таблицы  TR_T_CDR_*_QUEUE, прошел обработку, эта  запись из TR_T_CDR_*_QUEUE удаляется в независимости от результата обработки (успешного или неуспешного).

Если на каком-либо этапе обработки и тарификации возникает ошибка, то запись об ошибке вставляется в таблицу ошибок TR_T_CDR_ERRORS с  соответствующей характеристикой типа ошибки.

Описание экранной формы контроля обработки трафика приведено в разделе «Обработка».

Процесс тарификации

Во время тарификации для каждой записи о факте предоставления услуги выполняются следующие действия:

Формируются данные, влияющие на расчет стоимости этих услуг Отыскивается услуга в договоре Определяется, тарифицируется ли услуга (признаком тарифицируемости услуги служит поле "Is_chargeable" таблицы CT_T_CONTR_SERV). Если услуга не тарифицируется, то  дальнейшие действия не имеют смысла, и АСР переходит к тарификации следующей услуги Определяется, приостановлена ли  услуга на  момент даты звонка. Если предоставление услуги приостановлено, то происходит переход на тарификацию следующей услуги и при этом  генерируется ошибка Последовательно производится поиск:
    Объекта договора Клиента Тарифной категории клиента Данных, характеризующих статус абонента - юридического статуса, тарифной категории Если какой-либо из параметров не найден, то генерируется ошибка, и АСР переходит к тарификации следующей услуги.
Определяется льгота тарифа и стоимость оказанной услуги Рассчитывается количество услуги Определяется стоимость услуги.

Если на каком-либо этапе  тарификации возникает ошибка, то запись об ошибке вставляется в таблицу ошибок TR_T_CDR_ERRORS  с  соответствующей характеристикой типа ошибки.

Если  тарификация производится как отдельный процесс, то после того, как запись об услуге  обработана, информация о ней удаляется из таблицы TR_T_SERVFACTS_P_QUEUE.

Описание экранной формы контроля тарификации  приведено в разделе «Тарификация».

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10