LINUX.ORG.RU
ФорумAdmin

Диалап из шелл(я чайник!)


0

0

Плиз, как из командной строки бех всяких там икс-серверов и оконных менеджеров соединится с провом по диалапу? (ЗАСТАВИТЬ МОДЕМ ЗВОНИТЬ)

anonymous

Как два байта обослать:)
/root/bin/ppp:
#!/bin/bash
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
nodetach noauth user guest defaultroute nodeflate nobsdcomp \
connect "/usr/bin/perl /root/bin/chat.pl $1 $2"

Заместо user guest поставь чего у тебя там.

/root/bin/chat.pl:
#!/usr/bin/perl

sub usage{
print << "EOHELP";
Usage:
$0 [phonenumber] [speed] [-h]
-h -- this help screen
[phonenumber] -- default is 12345;
[speed] -- default is 9600, available values are:
33600, 31200, 28800, 26400, 21600, 19200, 16800,
14400, 12000, 9600, 7200.
EOHELP
};

%spidz = (
'p33600' => '&N16',
'p31200' => '&N15',
'p28800' => '&N14',
'p26400' => '&N13',
'p24000' => '&N12',
'p21600' => '&N11',
'p19200' => '&N10',
'p16800' => '&N9',
'p14400' => '&N8',
'p12000' => '&N7',
'p9600' => '&N6',
'p7200' => '&N5'
);

# Сюда поставь свой дефолтовый телефон.
$phone = '12345';
if( $#ARGV >= 0 ) {
$phone = $ARGV[ 0 ];
}

# Сюда поставь нужную дефолтовую скорость.
# Если у тебя 56k, то дополни таблицу spidz.
if( $#ARGV >= 1 ) {
$speed = "p".$ARGV[ 1 ];
} else {
$speed = 'p9600';
}

$spd = $spidz{ $speed };
if( $spd eq '' ) {
print STDERR "Wrong speed\n";
exit( 1 );
}

$speed =~ s/^p(\d+)$/$1/;
exec '/usr/sbin/chat', '-v',
'TIMEOUT', '4',
'ABORT', 'BUSY',
'ABORT', 'NO ANSWER',
'SAY', "Initializing modem...\n",
'', 'AT',
'OK', "AT \&B1 \&N0",
'TIMEOUT', '80',
'SAY', "Dialing $phone on a speed $speed...\n",
'OK', "ATDT$phone",
'CONNECT', '';

exit( 0 );


Из-под рута говоришь:
ppp <телефонный номер> <скорость соединения>
Если просто ppp, то он дозвонишься до 12345 на скорости 9600.
Если ppp <номер>, то дозвонишься до <номер> на скорости 9600.

Да, еще: в /etc/ppp/pap-secrets добавь свой логин-пароль.

anonymous
()
Ответ на: комментарий от anonymous

Упс, вкралась очепятка.
Строку 'OK', "AT \&B1 \&N0", можно заменить на
'OK', "AT \&B1 $spd",
А можно и не заменять.

anonymous
()
Ответ на: комментарий от anonymous

Можно в /etc/ppp/peers положить файлик с настройками для pppd, который будет вызывать chat с нужными параметрами (можно и chat-скрипт положить где-нить рядом, чтобы не было слишком громоздко). А потом вызывать просто pppd call <provider>. У меня вокруг chat ещё и скриптик обёрнут, который перебирает телефоны из списка в файле :)

Rock
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.