BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 27 апр 2024, 19:24

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: перенести в inet скриптом
СообщениеДобавлено: 22 дек 2014, 20:24 
Не в сети

Зарегистрирован: 31 дек 2009, 14:40
Сообщения: 46
Карма: 0
Добрый день, коллеги.

Цитата:
Сервер: вер. 6.0 сборка 1793 от 17.09.2014 01:45:13
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45

dialup вер. 6.0 сборка 406 от 12.09.2014 18:24:32
inet вер. 6.0 сборка 1453 от 07.10.2014 13:36:54


Задумали перенести все логины с Dialup'a в сервисы Inet'a простеньким скриптом пхп , который через базу все делает.
Последовательность действий скрипта такая:
- выбираем контракт, у которого статус "активный" и есть подключенный модуль dialup
- добавляем ему модуль Inet
- выбираем нужные для сервиса в договоре параметры из dialup'a
- заносим в таблицу inet_serv_10 эти данные:
Код:
  INSERT INTO inet_serv_10 (id,parentID,contractID,typeID,deviceID,interfaceID,vlan,identifier,macAddress,ipResourceID,
                    ipResourceSubscriptionID,addressFrom,addressTo,login,password,dateFrom,dateTo,contractObjectID,status,
                    sessionCountLimit,deviceState,accessCode,config,deviceOptions,comment,title)
                    VALUES (NULL,0," . $cid . ",1,6,-1,-1,'" . $ident . "',UNHEX(NULL),0,0,UNHEX(NULL),UNHEX(NULL),'" . $login . "','
                    " . $pass . "'," . $dateFrom . ",NULL,0,0,1,1,0,NULL,'','','PPPoE')


В "типах сервиса" этот сервис имеет тип адреса : "динамический или статический адрес".
Так вот, если использовать для выдаваемых IP-адресов динамику, регистрация под этим договором происходит нормально. А если пытаться в новоиспеченном сервисе добавить статические адреса, то ругается, мол "подходящий IP ресурс не найден".
Если удалить этот сервис, и добавить его ручками с такими же данными, как и скриптом, то статику IP добавляет нормально.
Подозреваю, что через "морду" при создании сервиса, что-то куда-то дополнительно прописывается, но вот куда - не найду концов.

Ресурсы IP прописаны для динамики в каждом NASe:
Код:
radius.realm.default.ipCategories=1


Для статики прописаны в родительской папке для NASов:
Код:
ip.resource.categoryId=6



Никто не знает, куда надо рыть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: перенести в inet скриптом
СообщениеДобавлено: 22 дек 2014, 20:52 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Предлагаю заводить сервисы не через базу, а через web-сервисы: http://forum.bitel.ru/viewtopic.php?f=1&t=9951&start=60#p83732

Через базу со статическим адресом куча заморочек.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: перенести в inet скриптом
СообщениеДобавлено: 22 дек 2014, 21:30 
Не в сети
Клиент

Зарегистрирован: 07 мар 2012, 15:02
Сообщения: 932
Откуда: Воронеж
Карма: 35
Вот пример php, который в цикле заводит сервисы. Адрес следующего сервиса на 4 больше адреса предыдущего (у меня подсети).
Код:
<?php
    $login = 'user';
    $password = 'pass';

    $client = new SoapClient(
        'http://1.2.3.4:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/27/InetServService?wsdl',
        array(
            'login' => $login,
            'password' => $password
        )
    );
    $client->__setLocation('http://1.2.3.4:8080/bgbilling/executer/ru.bitel.bgbilling.modules.inet.api/27/InetServService');

    // Вывод всех доступных методов, их параметров и возвращаемых значений в сервисе.
    var_dump($client->__getFunctions());

    echo "\n--- inetServGet ---\n";
    $params = array(
        'inetServId' => 1
    );
    $serv = $client->inetServGet($params)->return;
    print_r($serv);
    echo "AddrFrom: ".bin2hex($serv->addrFrom)."\n";
    echo "AddrTo:   ".bin2hex($serv->addrTo)."\n";
    var_dump(hexdec(bin2hex($serv->addrFrom)) + 4);

    for($i = 1; $i <= 2; $i++) {
        echo "\n--- New service ".$i." ---\n";
        $serv->id = '0';
        $serv->addrFrom = pack("H*", dechex(3107617792 + 4*$i));
        $serv->addrTo = pack("H*", dechex(3107617792 + 4*($i + 1) - 1));
        $serv->identifierList = array(
            'identifier' => $i.".2999"
        );
        echo "AddrFrom: ".bin2hex($serv->addrFrom)."\n";
        echo "AddrTo:   ".bin2hex($serv->addrTo)."\n";

        echo "\n--- InetServUpdate ---\n";
        $params = array(
            'inetServ' => $serv,
            'generateLogin' => true,
            'generatePassword' => true,
            'saWaitTimeout' => 0
        );
        $result = $client->inetServUpdate($params);
        print_r($result);
    }
?>

Здесь 3107617792 - это IP-адрес, который преобразован в long.

_________________

Клиент: вер. 6.2.873 / 04.12.2017 19:38:11
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_65
Сервер: вер. 6.2.1202 / 04.12.2017 19:39:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_91


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: перенести в inet скриптом
СообщениеДобавлено: 23 дек 2014, 12:42 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
можно еще глобальным скриптом..

Ну или как вариант можно попробовать добавить сервисы вашим скриптом, потом перегрузить access/accopning..Не уверен что будет работать, но возможно это поможет. Проблема в том что надо бросить событие для activemq. Я не знаю можно ли это сделать из php. Вот тут что-то про это есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: перенести в inet скриптом
СообщениеДобавлено: 25 дек 2014, 23:35 
Не в сети

Зарегистрирован: 31 дек 2009, 14:40
Сообщения: 46
Карма: 0
stark писал(а):
можно еще глобальным скриптом..

Ну или как вариант можно попробовать добавить сервисы вашим скриптом, потом перегрузить access/accopning..Не уверен что будет работать, но возможно это поможет. Проблема в том что надо бросить событие для activemq. Я не знаю можно ли это сделать из php. Вот тут что-то про это есть.


Не, не помогло... Эх, оставалось сделать маленький шажок, а теперь надо все переделывать, ладно буду пробовать...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.283s | 30 Queries | GZIP : On ]