Показать страницуСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== СОРМ Омега ====== {{:billing:configuration:omega_logo.png?300|}} https://st-sorm.ru/sorm-3/ ===== Реализованные выгрузки ===== * 1.1.1 ABONENT * 1.1.2 ABONENT_IDENT * 1.1.3 ABONENT_SRV * 1.1.4 ABONENT_ADDR * 1.2.1 PAYMENTS * 1.3.1 REGIONS * 1.3.2 SUPPLEMENTARY_SERVICE * 1.3.3 PAY_TYPE * 1.3.4 DOC_TYPE * 1.3.5 IP_PLAN * 1.3.7 GATEWAY * 1.3.8 IP_GATEWAY * 1.3.14 SWITCHES ===== Настройка в биллинге ===== <note tip> https://admin.isp.demo/json/index/omega/?key=XXXX&request=ABONENT&file=true где https://admin.isp.demo заменить на ваш домен </note> Переходим в меню системных опций, выбираем СОРМ Омега Включаем "Разрешить", придумываем пароль в поле Секрет (в дальнейшем в скриптах API_KEY) При желании можно настроить фильтр выгрузок по тарифам если необходимо выгружать данные частично {{:billing:configuration:omega_sysopt.png?400|}} ===== Настройка файла конфигурации ===== Редактируем под себя данные для справочников: regions, doc_type, radius. <code> { "regions":[ { "ID":"1", "BEGIN_TIME":"2012-12-31 21:59:59", "DESCRIPTION":"ООО \"Пупкин\" г. Москва" } ], "doc_type":[ { "DOC_TYPE_ID":"1", "BEGIN_TIME":"2012-12-31 21:59:59", "DESCRIPTION":"Паспорт", "REGION_ID":"1" } ], "radius":[ { "BEGIN_TIME":"2012-12-31 21:59:59", "END_TIME":"2024-12-31 21:59:59", "REGION_ID":"1", "GATE_TYPE":"7", "ADDRESS_TYPE_ID":"1", "ADDRESS_TYPE":"3", "UNSTRUCT_INFO":"г.Москва, ул Ленина, 47А, офис 1", "DESCRIPTION":"AAA Сервер (Авторизация)", "IP_TYPE":"0", "IPV4":"C0A801F7", "IP_PORT":"0714" }, { "BEGIN_TIME":"2012-12-31 21:59:59", "END_TIME":"2024-12-31 21:59:59", "REGION_ID":"1", "GATE_TYPE":"7", "ADDRESS_TYPE_ID":"1", "ADDRESS_TYPE":"3", "UNSTRUCT_INFO":"г.Москва, ул Ленина, 47А, офис 1", "DESCRIPTION":"AAA Сервер (Аккаунтинг)", "IP_TYPE":"0", "IPV4":"C0A801F7", "IP_PORT":"0715" } ] } </code> Затем проверяем отредактированные данные на сайте https://jsonformatter.curiousconcept.com/ . Если все ок то должны получить - зеленую надпись VALID. Сохраняем полученнное содержимое в файл config.json. Данный файл ложим на сервере с админкой по пути ../modules/omega/config.json относительно admin/index.php. т.е. рядом с папкой admin/ надо создать (если еще нет) modules/omega/. Если все верно сделали то в СОРМЕ должны подтягиваться данные из конфига при выгрузке указанных справочников. ===== Скрипт выгрузки[Обновлен 2020-04-14] ===== <note important>Скрипты дорабатываются и могут изменяться!</note> В данном скрипте необходимо подставить свои данные в переменные:\\ **ADMIN_URL**, **API_KEY**, **FTP_ADDRESS**.\\ Так же, если по требованиям необходимо несколько аккаунтов ftp под каждый тип выгрузки (cdr, dict, abon, pay),\\ в скрипте необходимо заменить пароль **FTP_PASS** под каждый такой аккаунт.\\ Скрипт запуска **unloading.sh** <file sh> #!/bin/bash # в этой директории должен находится downloader.php WORK_DIR="/root/" ADMIN_URL="https://admin.isp.demo" API="omega" API_KEY="0123456789" EXTENSION="txt" EXTRA="" FTP_ENABLED=1 FTP_ADDRESS="192.168.0.1" FTP_DIR="/" WGET=$(which wget) PHP=$(which php) FTP=$(which ftp) ftpupload() { $FTP -n $FTP_ADDRESS <<END_SCRIPT quote USER $FTP_USER quote PASS $FTP_PASS binary put $FILE quit END_SCRIPT } if [ "$#" -gt 0 ]; then # особые параметры if [ "$1" == "ACTIVATE" ]; then REQUESTS=( PAYMENTS ) EXTRA="&full=true" else REQUESTS=$1 fi else # обычный запуск REQUESTS=( ABONENT ABONENT_SRV ABONENT_ADDR ABONENT_IDENT DOC_TYPE REGIONS PAY_TYPE PAYMENTS IP_PLAN GATEWAY SUPPLEMENTARY_SERVICE IP_GATEWAY ) fi cdr="CONNECTION_AAA" dict="REGIONS DOC_TYPE PAY_TYPE IP_PLAN SWITCHES GATEWAY SUPPLEMENTARY_SERVICE IP_GATEWAY" abon="ABONENT ABONENT_ADDR ABONENT_ID ABONENT_SRV" pay="PAYMENTS" if [ ! -z $WGET ]; then cd $WORK_DIR for REQUEST in ${REQUESTS[*]} do URL="$ADMIN_URL/ajax/index/$API/?key=$API_KEY&request=$REQUEST&file=true$EXTRA" RESULT=$($PHP downloader.php $URL) echo "$RESULT" if [ "$RESULT" == "1" ]; then echo "error" exit 1 else FILE="$RESULT" fi if [ "$FTP_ENABLED" -eq 1 ]; then work=0 if echo $cdr | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="cdr" FTP_PASS="1234567890" fi if echo $dict | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="dict" FTP_PASS="1234567890" fi if echo $abon | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="abon" FTP_PASS="1234567890" fi if echo $pay | grep -w $REQUEST > /dev/null; then work=1 FTP_USER="pay" FTP_PASS="1234567890" fi if [ "$work" -eq "1" ]; then if [ ! -z $FILE ]; then echo "`date` $FTP_ADDRESS $FTP_USER, SEND FILE: $FILE" ftpupload fi fi fi if [ ! -z $FILE ]; then rm -f $FILE fi done else echo "command 'wget' not found!" fi exit 0 </file> ===== Скрипт загрузчика ===== **downloader.php** должен находится в **WORK_DIR** скрипта **unloading.sh** <file php> <?php if( isset($argv[1]) AND count($argv) == 2 ) { $URL=$argv[1]; $ch = curl_init($URL); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($data, 0, $header_size); $body = substr($data, $header_size); curl_close($ch); $filename = explode ("filename=", $header); if( isset($filename[1]) ) { $name = str_replace('"', "", $filename[1]); $name = str_replace(array("\n", "\r"), '', $name); file_put_contents($name, $body); echo "{$name}"; } } else { echo 0; } </file> ===== CRON ===== <code> # ежедневная выгрузка 00 06 * * * root /root/unloading.sh # выгрузка сессий каждые 15 мин. */15 * * * * root /root/unloading.sh CONNECTION_AAA </code> ===== Первый запуск ===== Так как при первом запуске необходима полная выгрузка платежей (далее ежедневная), \\ необходимо вручную запустить скрипт с параметром **ACTIVATE**:\\ <code> /root/unloading.sh ACTIVATE </code> ===== Режим отдладки ===== Для запуска режима чекера данных запустить в браузере: <code> https://admin.isp.demo/json/index/omega/?key=XXXX&request=ABONENT&debug=true </code> billing/configuration/omega.txt Последнее изменение: 16 мес. назад — alexd