forum.bitel.ru http://forum.bitel.ru/ |
|
перенести в inet скриптом http://forum.bitel.ru/viewtopic.php?f=44&t=10036 |
Страница 1 из 1 |
Автор: | optimous [ 22 дек 2014, 20:24 ] |
Заголовок сообщения: | перенести в inet скриптом |
Добрый день, коллеги. Цитата: Сервер: вер. 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 Никто не знает, куда надо рыть? |
Автор: | vkulakov [ 22 дек 2014, 20:52 ] |
Заголовок сообщения: | Re: перенести в inet скриптом |
Предлагаю заводить сервисы не через базу, а через web-сервисы: http://forum.bitel.ru/viewtopic.php?f=1&t=9951&start=60#p83732 Через базу со статическим адресом куча заморочек. |
Автор: | vkulakov [ 22 дек 2014, 21:30 ] |
Заголовок сообщения: | Re: перенести в inet скриптом |
Вот пример 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. |
Автор: | stark [ 23 дек 2014, 12:42 ] |
Заголовок сообщения: | Re: перенести в inet скриптом |
можно еще глобальным скриптом.. Ну или как вариант можно попробовать добавить сервисы вашим скриптом, потом перегрузить access/accopning..Не уверен что будет работать, но возможно это поможет. Проблема в том что надо бросить событие для activemq. Я не знаю можно ли это сделать из php. Вот тут что-то про это есть. |
Автор: | optimous [ 25 дек 2014, 23:35 ] |
Заголовок сообщения: | Re: перенести в inet скриптом |
stark писал(а): можно еще глобальным скриптом.. Ну или как вариант можно попробовать добавить сервисы вашим скриптом, потом перегрузить access/accopning..Не уверен что будет работать, но возможно это поможет. Проблема в том что надо бросить событие для activemq. Я не знаю можно ли это сделать из php. Вот тут что-то про это есть. Не, не помогло... Эх, оставалось сделать маленький шажок, а теперь надо все переделывать, ладно буду пробовать... |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |