- О UserSide
- Что нужно для интеграции
- Настройка доступа к API
- Настройки и прочая информация по интеграции
- Выбор формата улицы
- Кто из биллинга попадёт в UserSide
- Кто из биллинга НЕ попадёт в UserSide
- Дата активности абонента для отображения, когда они были онлайн
- Нет улицы, только название населённого пункта, потом сразу дом. Как их выгружать в Юзерсайд?
- Настройки со стороны UserSide
- Отладка
О 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; unset us_method
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; unset us_method
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; unset us_method
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; unset us_method
get_user_state_list
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
get_tariff_list
Тарифные планы.
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
Не отображается активность абонента (=когда он был online)
Вероятно, нет данных по трафику. Он передаётся либо через Radius, либо в Netflow, в зависимости от настроек NAS. Если в UserSide дата активности не соответствует реальной, то отладьте передачу данных по трафику:
- для передачи трафика по Netflow, воспользуйтесь статьёй Настройка и проверка netflow-потоков
- для передачи трафика по RADIUS, воспользуйтесь документации по отладке RADIUS-авторизации, посмотрите почему в пакетах Accounting-Update нет данных по трафику, или неверная дата, или они вообще не приходят.
Userside не получает ответы на запросы от биллинга
- Убедитесь, что включена система фоновых задач
Команда
grep background_daemon /app/asr_billing/cfg/config | grep enabled\'
Выводbackground_daemon['enabled']='1'
В примере - система фоновых задач включена.
Если будет "0", значит система выключена. Включите её в настройках биллинга, вкладка "Настройка демона фоновых задач", опция "Включить систему фоновых задач"
В Userside не поступают данные от биллинга(например, не синхронизируется адрес абонента). При этом с биллинга данные отправляются.
Проверьте настройки со стороны Userside:
Настройка -> Биллинги
Выбран нужный биллинг и включены следующие опции:
- Этот биллинг учитывает трафик
- ФИО абонента обновляется биллингом
- Телефоны абонента обновляются биллингом
- Адрес абонента обновляется биллингом
- MAC-адреса абонента обновляются биллингом