|
 |
| Основные функции системы WideCoup Mediation |
О продукте | Основные функции | Запуск системы | Системные требования | Прайс
Основными функциями системы являются разбор исходных данных о соединениях или услугах и обработка полученных данных. Для этого используются принципы работы, основанные на протоколах разбора записей, логики обработки и структура результата обработки - универсальная запись Data Record.
Протокол разбора записей
Для создания нового протокола лучше использовать WideCoup Protocol Editor, хотя может быть использован любой XML-редактор. Готовый файл описания представляет собой XML файл с расширением .protocol, который непосредственно под требуемую задачу можно исправить в обычном Notepad.
Пример готового протокола для станции Panasonic KX-TD500 (Рис. 1):

Рис. 1. Пример готового протоколов для простого формата станции Panasonic KX-TD500

Рис. 2. Пример описания протокола разбора исходных данных
Для удобства тестирования написанного протокола, в Protocol Editor встроен модуль, который позволяет визуально увидеть процесс разбора строки взятой из локального файла-примера.

Рис. 3. Результат разбора строки исходного файла
Логика протокола Сall Logic
Протокол представляет собой набор правил, которые в свою очередь содержат описания полей. На уровне протокола задается:
- Название протокола и номер устройства в БД;
- Признак первой строки и количество строк в записи (для многострочных протоколов, например со станции Meridian);
- Глобальный фильтр попадания записей для разбора (все остальные складываются отдельно);
- Регистры - специальные автоматы, существующие независимо и хранящие в себе информацию единую для нескольких строк.
Правила необходимы для распределения записей по статическим типам и для отсеивания мусора станций (дубликатов строк, трассировки и т.п.).
Отдельно фиксируется алгоритм агрегации записей, а также наполнения текущей записи результатами или историей обработки других записей. Это позволяет стоить логические цепочки при обработке сложных и зависимых друг от друга структур и создавать на основе агрегации результирующие записи для минимизации кол-ва исходных данных.
Сама процедура описания полей, получаемых из строки, представляет собой написание соответствующих регулярных выражений для каждого из полей, а также ввода особых алгоритмов разбора, индивидуальных для каждого поля.
Структура DataRecord
С целью стандартизации исходных записей был разработан единый протокол представления обработанных данных - DataRecord. В нем хранятся результаты обработки исходных данных – либо в БД, либо во внешних системах. Относительно этой структуры происходит процесс сериализации или десериализации объектов WideCoup Medation.
Данные, хранимые в DataRecord:
- cid - уникальный идентификатор услуги.
- NumberAts - уникальный идентификатор устройства коммутации.
- pkt_ID - идентификатор пакета услуги. Почти всегда создается автоматически. При загрузке из файлов поддерживается назначение фиксированных пакетов, чтобы потом облегчить их обработку.
- TariffMode - режим тарификации. К примеру: тарифицировать (0) или перетарифицировать (1).
- DurationRing - длительность инициализации услуги в секундах. К примеру, для звонков через АТС - время дозвона.
- DateTimeStartCall - дата/время начала предоставления услуги. К примеру, для звонков через АТС - точка во времени, когда начался разговор.
- DurationCall - длительность предоставления услуги или количество фиксированных единиц объема услуги, предоставленных по данной записи. К примеру, для звонков через АТС - время разговора. Для конвергентного биллинга - количество единиц объема услуги, например факт перевода 24 страниц текста на английский язык.
- InitiatorNumber - уникальное значение инициирующего вызов пользователя. К примеру, для звонков через АТС: для внутреннего и исходящего типов - внутренний номер, для входящего и транзита – АОН и т.д.
- RecipientNumber - уникальное значение пользователя-получателя услуги. К примеру, для звонков через АТС: для внутреннего типа - набранный внутренний номер, для исходящего типа - набранный номер из сети ТСОП, для входящего типа - внутренний номер, для транзита - набранный исходящий номер и т.д.
- Route - уникальное значение группы каналов устройства коммутации использованной. К примеру, для звонков через АТС: для услуги исходящего или транзитного типа – магистраль.
- Trunk - уникальное значение канала устройства коммутации. К примеру, для звонков через АТС: для услуги исходящего или транзитного типа - физическая линия в магистрали.
- Trunk2 - уникальное значение канала устройства коммутации, используется аналогично Trunk, но фиксируемого дважды – например, для транзитного типа звонка. К примеру, для звонков через АТС - физическая линия в магистрали, через которую выходит транзитный звонок.
- InitiatorAbonentName - уникальное дополнительное значение пользователя-инициатора услуги. Для АТС – некоторые АТС и маршрутизаторы могут сбрасывать ФИО абонента из корпоративных справочников.
- RecipientAbonentName - уникальное дополнительное значение пользователя-получателя услуги. Для АТС - некоторые АТС и маршрутизаторы могут сбрасывать ФИО абонента.
- StaticType - уникальный идентификатор статического типа услуги. К примеру, для звонков через АТС - входящий, исходящий, внутренний, транзитный.
- DynamicType - уникальный идентификатор динамического подтипа услуги. К примеру, для звонков через АТС - город, межгород и т.п. Если нет задачи определять его на этапе разбора, то будет определн в процессе тарификации по набранному номеру.
- Cost - стоимость услуги, если она уже известна. К примеру, для звонков через АТС - когда мы получаем уже протарифицированные данные (например из счета оператора моб. связи).
- AuthCode - уникальное значение персонального кода пользователя-инициатора, использованного для получения услуги. К примеру, для звонков через АТС - код авторизации.
- SourceString - сериализация самого себя.
Поскольку система является конвергентной, но назначение тех или иных полей структуры может быть изменено. Например, для услуг IP телефонии в отличие от обычной телефонии ряд полей представляют иной смысл:
- DurationCall - объем данных в байтах;
- InitiatorNumber и RecipientNumber - IP адреса источника и назначения;
- AuthCode - логин абонента, который инициировал IP сессию;
- Trunk и Trunk2 - направление передачи данных (IP шлюзы);
- DynamicType - тип трафика.
О продукте | Основные функции | Запуск системы | Системные требования | Прайс
|