UserSide

Skip to end of metadata
Go to start of metadata

О UserSide

Сайт системы
Документация системы
Статья об интеграции с Carbon Billing 5

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

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

Настройка доступа к API

Доступ к API разрешен только для определённых хостов при использовании пароля. Список хостов настраивается в биллинге:

  • В интерфейсе администратора откройте меню Настройки -> Настройки (в файле) -> network
  • В поле "Список IP для которых разрешено подключаться к системному API" через пробел укажите список ip-адресов или подсетей. Напрмер:
    169.254.80.82 10.0.0.0/8
При использовании Системных API или Billing Slave необходимо указывать отдельные ip адреса, а не подсети.
  • После изменения списка хостов, перезапустите веб-сервер биллинга следующей командой:
    chroot /app/asr_billing/ /etc/init.d/admin_web_server restart

Все вызовы до API биллинга имеют такой вид:
http://169.254.80.82:8082/system_api/?model=Abonents&context=userside&method1=userside_manager.<method>

Где "169.254.80.82" замените на ip-адрес Вашего сервера биллинга.

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

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

Если Вы обслуживаете абонентов из нескольких населенных пунктов, в которых совпадают названия улиц, в настройках оператора связи установите формат идентификатора улицы "Город, Населенный пункт, улица(с типами)"

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

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

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

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

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

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

В биллиге это дата последнего обновления счетчиков traf_counters (когда приходил последний трафик): в карточке абонента вкладка "Расход", поле "Время последнего сброса в Unixtime"

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

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

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

Дальнейшие настройки необходимо согласовывать со специалистами UserSide

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

Отладка

Все запросы UserSide к биллингу можно посмотреть в лог-файле веб-сервера:

grep -i 'context=userside' /app/asr_billing/var/log/admin_web_server.log

Замерить скорость выполнения и проверить что именно возвращает биллинг можно командами time и curl.
Например, отладим выполнение запроса получения списка пользователей:

Команда
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
Вывод
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
Если получите ошибку jq, возможно программа не установлена. Установить можно так:
yum install -y jq

В файле userside_2020-06-01_1400.json можно посмотреть что возвращает биллинг.

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

get_user_list

Список абонентов

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

get_house_list

Список домов (зданий, строений)

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

get_street_list

Список улиц

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

get_city_list

Список горогов.

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

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

Вероятно, нет данных по трафику. Он передаётся либо через Radius, либо в Netflow, в зависимости от настроек NAS. Если в UserSide дата активности не соответствует реальной, то отладьте передачу данных по трафику:

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.