Конвертация и загрузка тарифов Телефонии в биллинг

Материал из BiTel WiKi

Перейти к: навигация, поиск

Ставится задача сконвертировать МГ и ВЗ тарифы телефонии в формат, пригодный для загрузки биллингом. В качестве исходных данных - CSV файлы следующего формата (разделитель - точка с запятой):

<Направление>;<Префикс>;<Стоимость льготная юр. лица>;<Стоимость обычная физ. лица>;<Стоимость льготная физ. лица>;<Стоимость обычная физ. лица>;<Тип связи>

Пример фрагмента файла:

Самарская (mob) - Билайн;7961392;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7961391;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7961390;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7961381;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7961380;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7960850;1,5;1,5;1,5;1,5;ВЗ связь
"ОАО ""ВымпелКоммуникации""";7960834;1,5;1,5;1,5;1,5;ВЗ связь
Самарская (mob) - Билайн;7960809;1,5;1,5;1,5;1,5;ВЗ связь

Льготное и обычное время описывается в справочнике типов времени биллинга.

Настройка типов времени

В справочнике карт зон создается карта Основная карта, в справочнике услуг модуля - услуги МГ и ВЗ связи.

Архив с программой конвертации: Медиа:phone_tariff_convert.zip Запускается Perl скрипт process.pl, генерирует в каталог result четыре файла:

  • codes.txt - Файл для загрузки в справочкник географических кодов
  • jur.xml - тарифный план для юридических лиц
  • phis.xml - тарифный план для физических лиц
  • zone_map.xml - карта зон

Принцип конвертации - выделение из файла с тарифами уникальных комбинаций цен и создание на их основе зон тарификаций для биллинга. Формат справочника географических кодов и карты зон сложностей не представляет, остановимся подробнее на файле с тарифом. Рассмотрим фрагмент файла jur.xml:

<?xml version="1.0" encoding="windows-1251"?>
<nodes>
	<use_map id="1" title="Основная карта"/>
	<config data="0;5;0:0:60"/>
	<zone zone="R0;0;0;0">
		<service_set regexp="^8" sid="14"/>
		<time_filter id="2" title="Выходные и праздники">
			<costout default="true" value="0"/>
		</time_filter>
		<time_filter id="1" title="Рабочее время">
			<costout default="true" value="0"/>
		</time_filter>
	</zone>
	<zone zone="R3.36;3.36;3.36;3.36">
		<service_set regexp="^8" sid="14"/>
		<time_filter id="2" title="Выходные и праздники">
			<costout default="true" value="3.36"/>
		</time_filter>
		<time_filter id="1" title="Рабочее время">
			<costout default="true" value="3.36"/>
		</time_filter>
	</zone>
........

Все числовые коды зашиты в скрипте, вам необходимо их скорректировать под вашу систему.

  • Атрибут id тега use_map должен быть равен id карты зон.
  • Атрибут sid тега service_set в данном примере соответсвует кодам услуг 14 - МГ связь, 15 - МН связь, 19 - зоновая связь. Также, следует заменить данные коды на свои.
  • Атрибут id тега time_filter соответствует коду типа времени.

Для загрузки файла с тарифом на корневом узле модульного поддерева телефонии правой мышью вызывается меню Выгрузка/Загрузка и выбирается файл для загрузки.

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

Загруженный тариф

Наиболее простой метод получения образца дерева для загрузки - создать тариф вручную, после чего выгрузить его в файл. Обратите внимание, что для идентификации зон и направлений используются их названия. Если при загрузке зона или направление не будет найдена - загрузчик создаст ее в справочнике. При загрузке сначала импортируется справочник географических кодов, далее карта зон и тарифные планы.

Личные инструменты