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

Telnet (CRM)
http://forum.bitel.ru/viewtopic.php?f=19&t=4436
Страница 1 из 1

Автор:  stanislav [ 16 авг 2010, 13:54 ]
Заголовок сообщения:  Telnet

Помогите, пожалуйста, разобраться с телнетом.
Хотел написать скрипт для автоматического отключения должников и "уперся" в самом начале.
Код:
import java.io.*;
import java.net.*;
import bitel.billing.server.util.telnet.*;



TelnetSession t1 = new TelnetSession("192.168.1.1", 6000);
try {t1.connect();}
catch (IOException e) {print("Connection Error");};


print ("END");

Соединение с сервером при выполнении скрипта происходит, это видно через "netstat -a".
Пишет 192.168.1.1:6000 ESTABLISHED.
Но дальше скрипт не выполняется. Лога выполнения нет. В server.log и server.error.log записей нет.

Автор:  stark [ 16 авг 2010, 18:35 ]
Заголовок сообщения:  Re: Telnet

stanislav писал(а):
Помогите, пожалуйста, разобраться с телнетом.
Хотел написать скрипт для автоматического отключения должников и "уперся" в самом начале.
Код:
import java.io.*;
import java.net.*;
import bitel.billing.server.util.telnet.*;



TelnetSession t1 = new TelnetSession("192.168.1.1", 6000);
try {t1.connect();}
catch (IOException e) {print("Connection Error");};


print ("END");

Соединение с сервером при выполнении скрипта происходит, это видно через "netstat -a".
Пишет 192.168.1.1:6000 ESTABLISHED.
Но дальше скрипт не выполняется. Лога выполнения нет. В server.log и server.error.log записей нет.


скрипт скорее всего висит, ожидая конечного символа .

соединитесь в консоли и покажите что вам выводит telnet (какое приглашение ) . Берете последний символ( symbol ) , укажите его в
t1.setEndString( symbol );

до вызова connect() ..


Вообще у вас он по ходу выполнения может меняется и эту нужно отслеживать ..Скорее всего там вам вначале нужно ":" , потом вводите логин , потом снова ждете ":", потом вводите пароль , потом уже ждать "#" и т.п . Т.е каждый раз нужно в правильных местах ставить setEndString. Если символ не меняется (обычно при вводе команд в конце всегда # ) , то можно уже не указывать setEndString.

И еще бывают ньюансы при работе с конкретным оборудованием . например mikrotik очень любит использовать команды для форматирования ansi-терминала - они вырезаются , но там нет чёткого конечного символа Приходится использовать setRegexp.

Автор:  stanislav [ 17 авг 2010, 12:18 ]
Заголовок сообщения:  Re: Telnet

Дело в том, что я подключаюсь не к телнет серверу, а АТС (HUAWEI C&C08).
Приглашение не выводиться вообще.
В терминале сразу после комманды telnet 192.168.1.1 6000 нужно ввести
LGI:OP=****, PWD=****;
И станция выводит ответное сообщение заканчивающееся ---END.
А в следующей строке только маркер.
Я поставил t1.setEndString( "" );.
Скрипт прошел до конца, и в логах появился отчет о выполнении.

Спасибо за консультацию.

Автор:  stark [ 17 авг 2010, 13:29 ]
Заголовок сообщения:  Re: Telnet

stanislav писал(а):
Дело в том, что я подключаюсь не к телнет серверу, а АТС (HUAWEI C&C08).
Приглашение не выводиться вообще.
В терминале сразу после комманды telnet 192.168.1.1 6000 нужно ввести
LGI:OP=****, PWD=****;
И станция выводит ответное сообщение заканчивающееся ---END.
А в следующей строке только маркер.
Я поставил t1.setEndString( "" );.
Скрипт прошел до конца, и в логах появился отчет о выполнении.

Спасибо за консультацию.


занятно ..с отсутствием строки приглашения я еще не сталкивался . Наверное они специально заточили так чтобы было удобнее программно управлять . mikrotik в этом плане ,наоборот , менее всех приспособлен для управления по telnet программным способом

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