forum.bitel.ru
http://forum.bitel.ru/

Вытащить параметры из сервисов модуля Inet через API
http://forum.bitel.ru/viewtopic.php?f=19&t=10813
Страница 1 из 1

Автор:  Iriskin0 [ 20 авг 2015, 10:51 ]
Заголовок сообщения:  Вытащить параметры из сервисов модуля Inet через API

Здравствуйте.
Возникла необходимость вытащить IP-адрес контракта из сервиса в модуле Inet.
Как это можно сделать через API?
Версия биллинга 6.0.

Сам нашел, что через ContractServiceManager.getContractServiceList(int cid, int mid, java.util.Date date) можно вытащить список разрешенных сервисов на дату. Но что с этим делать потом? В списке методов нет возможности узнать IP-адрес.
Или вытащить модули через ContractModuleManager.getContractModules(int contractId), что тоже не привело меня к нужному результату.

Автор:  vkulakov [ 20 авг 2015, 12:35 ]
Заголовок сообщения:  Re: Вытащить параметры из сервисов модуля Inet через API

Если вы имеете в виду дин. код, то можно примерно таким кодом:
Код:
ServerContext context = ServerContext.get();   
InetServService iss = context.getService(InetServService.class, INET_MODULE_ID);
System.out.println(IPUtils.convertIpToString(Utils.convertBytesToInt(iss.inetServGet(INET_SERVICE_ID).getAddressFrom())));
System.out.println(IPUtils.convertIpToString(Utils.convertBytesToInt(iss.inetServGet(INET_SERVICE_ID).getAddressTo())));

Сам не запускал, но думаю, должно заработать.

Автор:  Iriskin0 [ 20 авг 2015, 12:53 ]
Заголовок сообщения:  Re: Вытащить параметры из сервисов модуля Inet через API

vkulakov писал(а):
Если вы имеете в виду дин. код, то можно примерно таким кодом:
Код:
ServerContext context = ServerContext.get();   
InetServService iss = context.getService(InetServService.class, INET_MODULE_ID);
System.out.println(IPUtils.convertIpToString(Utils.convertBytesToInt(iss.inetServGet(INET_SERVICE_ID).getAddressFrom())));
System.out.println(IPUtils.convertIpToString(Utils.convertBytesToInt(iss.inetServGet(INET_SERVICE_ID).getAddressTo())));

Сам не запускал, но думаю, должно заработать.


Код:
ERROR:
ru.tctr.scripts.RegisterTerminal.onEvent(RegisterTerminal.java:42)
ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener.runScriptImpl(DynamicScriptEventListener.java:196)
ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener.access$0(DynamicScriptEventListener.java:1)
ru.bitel.bgbilling.kernel.script.server.DynamicScriptEventListener$ThreadedScriptEventListener$1.call(DynamicScriptEventListener.java:254)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)


Ругается на iss.inetServGet(INET_SERVICE_ID).getAddressFrom();
Но за наводку спасибо :)

Автор:  vkulakov [ 20 авг 2015, 13:04 ]
Заголовок сообщения:  Re: Вытащить параметры из сервисов модуля Inet через API

А INET_SERVICE_ID заменили на свой идентификатор?

Автор:  Iriskin0 [ 20 авг 2015, 13:05 ]
Заголовок сообщения:  Re: Вытащить параметры из сервисов модуля Inet через API

vkulakov писал(а):
А INET_SERVICE_ID заменили на свой идентификатор?

А, пардон, разобрался. Заменил не на сервис айди, а на тип сервиса.
Спасибо!

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/