Просмотр Исходного

{toc}

h1. О UserSide

[Сайт системы|https://www.userside.eu/ru/index.php]
[Документация системы|https://wiki.userside.eu/ERP_"USERSIDE"]
[Статья об интеграции с Carbon Billing 5|https://wiki.userside.eu/Carbon_Billing]


h1. Что нужно для интеграции

Для интеграции с *ERP UserSide* со стороны биллинга используется системное API. Из настроек необходимо только прописать IP-адрес(а) сервера с *ERP UserSide* в качестве разрешенного(ых) для подключения к системному API.

{include:CarbonBilling:API}
{info}
Все вызовы до API биллинга имеют такой вид:
{code}
http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.<method>
{code}
Где "169.254.80.82" замените на ip-адрес Вашего сервера биллинга.
{info}

h1. Настройки и прочая информация по интеграции

h2. Выбор формата улицы

Если Вы обслуживаете абонентов из нескольких населенных пунктов, в которых совпадают названия улиц, в [настройках оператора связи|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=63242421#%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8%D0%B1%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3%D0%B0%D0%B8%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0-%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0] установите формат идентификатора улицы "Город, Населенный пункт, улица(с типами)"
\\
\\ !userside_streetid2.png|border=0,width=400!

h2. Кто из биллинга попадёт в UserSide

* Все абоненты

h2. Кто из биллинга НЕ попадёт в UserSide

* Удалённые абоненты
* Операторы связи

h2. Дата активности абонента для отображения, когда они были онлайн

Дата, когда абонент был Online, передаётся в UserSide в поле "date_activity".

В биллиге это дата последнего обновления счетчиков traf_counters (когда приходил последний трафик): в карточке абонента [вкладка "Расход"|CarbonBilling:Счетчики услуг. Вкладка "Расход".], поле "*Время последнего сброса в Unixtime*"

h2. Нет улицы, только название населённого пункта, потом сразу дом. Как их выгружать в Юзерсайд?

В таких домах в [справочнике адресов|CarbonBilling:Добавление домов в справочник] вручную в поле "Улица" напишите "н/д" и сохраните, тогда в UserSide выгрузка будет правильная.

h2. Настройки со стороны UserSide

Дальнейшие настройки необходимо согласовывать со специалистами *UserSide*
{info}При импорте данных в Userside из биллинга (любого), верхний уровень адресации импортируемых данных - город.
Идёт проверка по текстовому названию города.
Соответственно, если город в userside уже есть и он к какому-то району/области привязан - то так дальше и будет. Этот город и будет использован.
Если же город с таким названием не найден, то он будет создан без области и района. Будет находиться в секции "Область не указана"{info}

h1. Отладка

Все запросы UserSide к биллингу можно посмотреть в лог-файле веб-сервера:
{code}grep -i 'context=userside' /app/asr_billing/var/log/admin_web_server.log{code}
Замерить скорость выполнения и проверить что именно возвращает биллинг можно командами time и curl.
Например, отладим выполнение запроса получения списка пользователей:
{code:title=Команда}cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.get_user_list&context=userside' |jq . > userside_$cur_date.json; ls -l userside_$cur_date.json; unset cur_date{code}
{code:title=Вывод}real 0m29.005s
user 0m0.002s
sys 0m0.007s
-rw-r--r-- 1 root root 4501068 Июн 1 14:00 userside_2020-06-01_1400.json
{code}
{info}Если получите ошибку jq, возможно программа не установлена. Установить можно так:
{code}yum install -y jq{code}{info}
В файле *userside_2020-06-01_1400.json* можно посмотреть что возвращает биллинг.

h2. Отладка различных запросов

h3. [get_user_list|https://wiki.userside.eu/API_-_usm_billing_-_get_user_list]

Список абонентов
{code}
us_method='get_user_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}


h3. [get_house_list|https://wiki.userside.eu/API_-_usm_billing_-_get_house_list]

Список домов (зданий, строений)
{code}
us_method='get_house_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}

h3. [get_street_list|https://wiki.userside.eu/API_-_usm_billing_-_get_street_list]

Список улиц
{code}
us_method='get_street_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}

h3. [get_city_list|https://wiki.userside.eu/API_-_usm_billing_-_get_city_list]

Список городов.
{code}
us_method='get_city_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}

h3. [get_user_state_list|https://wiki.userside.eu/API_-_usm_billing_-_get_user_state_list]

[Статусы абонентов|https://wiki.userside.eu/Статус_абонентов]
{code}
us_method='get_user_state_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}

h3. [get_tariff_list|https://wiki.userside.eu/API_-_usm_billing_-_get_tariff_list]

Тарифные планы.
{code}
us_method='get_tariff_list'; cur_date=`date +%Y-%m-%d_%H%M`; time curl -ss -XGET 'http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.'$us_method'&context=userside' |jq . > userside_${us_method}_${cur_date}.json; ls -l userside_${us_method}_${cur_date}.json; unset cur_date; unset us_method
{code}

h2. Не отображается активность абонента (=когда он был online)

Вероятно, нет данных по трафику. Он передаётся либо через Radius, либо в Netflow, в зависимости от настроек NAS. Если в UserSide дата активности не соответствует реальной, то отладьте передачу данных по трафику:
* для передачи трафика по Netflow, воспользуйтесь статьёй [CarbonBilling:Настройка и проверка netflow-потоков]
* для передачи трафика по RADIUS, воспользуйтесь документации по [отладке RADIUS-авторизации|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=164691974#АвторизацияпоRADIUS-Отладкаавторизации], посмотрите почему в пакетах Accounting-Update нет данных по трафику, или неверная дата, или они вообще не приходят.

h2. Userside не получает ответы на запросы от биллинга
# Убедитесь, что включена система фоновых задач
{code:title=Команда}grep background_daemon /app/asr_billing/cfg/config | grep enabled\'{code}
{code:title=Вывод}background_daemon['enabled']='1'{code}
В примере - система фоновых задач включена.
Если будет "0", значит система выключена. Включите её [в настройках биллинга|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=68845666], вкладка "*Настройка демона фоновых задач*", опция "*Включить систему фоновых задач*"

h2. В Userside не поступают данные от биллинга(например, не синхронизируется адрес абонента). При этом с биллинга данные отправляются.

Проверьте настройки со стороны Userside:
*Настройка* -> *Биллинги*
Выбран нужный биллинг и включены следующие опции:

* Этот биллинг учитывает трафик
* ФИО абонента обновляется биллингом
* Телефоны абонента обновляются биллингом
* Адрес абонента обновляется биллингом
* MAC-адреса абонента обновляются биллингом