URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 33603
[ Назад ]

Исходное сообщение
"Как включать и выключать автоответ у модема скриптом?"

Отправлено plumber , 19-Авг-03 09:54 
Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать и выключать автоответ в модеме.
Заранее благодарен!

Содержание

Сообщения в этом обсуждении
"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 11:05 
>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>и выключать автоответ в модеме.
>Заранее благодарен!

RTFM!
mgetty:
test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
touch /etc/nologin.cuaa0


"Как включать и выключать автоответ у модема скриптом?"
Отправлено daclip , 19-Авг-03 11:07 
>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>и выключать автоответ в модеме.
>>Заранее благодарен!
>
>RTFM!
>mgetty:
>test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
>touch /etc/nologin.cuaa0


echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
Не подойдет?


"Как включать и выключать автоответ у модема скриптом?"
Отправлено plumber , 19-Авг-03 11:25 
>>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>>и выключать автоответ в модеме.
>>>Заранее благодарен!
>>
>>RTFM!
>>mgetty:
>>test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
>>touch /etc/nologin.cuaa0
>
>
>echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
>Не подойдет?

В общем-то подходит. Попробовал echo "ATS0=1^M" > /dev/ttyd0 - зависает
echo "ATS0=1^M" > /dev/cuaa0 - не дает результата
Может что-то не так делаю?



"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 11:31 
>>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>>и выключать автоответ в модеме.
>>>Заранее благодарен!
>>
>>RTFM!
>>mgetty:
>>test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
>>touch /etc/nologin.cuaa0
>
>
>echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
>Не подойдет?

Не парься, plumber даже не знает где у него модем висит ;) А про наличие линка я вообще молчу.

imho, это делать вообще не нужно, а использовать mgetty вместо getty


"Как включать и выключать автоответ у модема скриптом?"
Отправлено plumber , 19-Авг-03 11:38 
>>>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>>>и выключать автоответ в модеме.
>>>>Заранее благодарен!
>>>
>>>RTFM!
>>>mgetty:
>>>test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
>>>touch /etc/nologin.cuaa0
>>
>>
>>echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
>>Не подойдет?
>
>Не парься, plumber даже не знает где у него модем висит ;)
>А про наличие линка я вообще молчу.
>
>imho, это делать вообще не нужно, а использовать mgetty вместо getty

Уважаемый xcenter! Подскажи пожалуйста по существу: как сделать?
с getty  все отлично работает, нужно только научиться отключать автоответ.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 12:02 
>>>>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>>>>и выключать автоответ в модеме.
>>>>>Заранее благодарен!
>>>echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
>>>Не подойдет?
>>
>>Не парься, plumber даже не знает где у него модем висит ;)
>>А про наличие линка я вообще молчу.
>>
>>imho, это делать вообще не нужно, а использовать mgetty вместо getty
>
>Уважаемый xcenter! Подскажи пожалуйста по существу: как сделать?
>с getty  все отлично работает, нужно только научиться отключать автоответ.

Для обмена с модемом нужно выставить линию DTR, модем ответит подъёмом DSR и только тогда будет реагировать на AT команды.
echo "ATS0=0 ^M" >/dev/cuaa0 с опущенной DTR работать не будет.
Для оси ещё нужна блокировка порта на монопольное использование, а getty держит порт.

А по существу: getty не заточена специально для работы с модемами, хотя и поддерживает их. В ней есть ещё некоторые болты, о которых я уже не помню, т.к. забил на dialin через getty ещё 6 лет назад.
Всё это время я пользуюсь mgetty под Lin и BSD, о чём ещё ни разу не пожалел, чего и тебе желаю.

mgetty делает ответ командой ATA в ответ на необходимое количество RING, как вообще-то принято делать в всём коммуникационном софте, а не использует регистр S0.

Напиши, если есть какие-то причины не использовать mgetty.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено daclip , 19-Авг-03 12:30 
>>>>>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>>>>>и выключать автоответ в модеме.
>>>>>>Заранее благодарен!
>>>>echo "ATS0=0 ^M" >/dev/modem - это для выкл, для вкл соответсвенно ATS0=1
>>>>Не подойдет?
>>>
>>>Не парься, plumber даже не знает где у него модем висит ;)
>>>А про наличие линка я вообще молчу.
>>>
>>>imho, это делать вообще не нужно, а использовать mgetty вместо getty
>>
>>Уважаемый xcenter! Подскажи пожалуйста по существу: как сделать?
>>с getty  все отлично работает, нужно только научиться отключать автоответ.
>
>Для обмена с модемом нужно выставить линию DTR, модем ответит подъёмом DSR
>и только тогда будет реагировать на AT команды.
>echo "ATS0=0 ^M" >/dev/cuaa0 с опущенной DTR работать не будет.
>Для оси ещё нужна блокировка порта на монопольное использование, а getty держит
>порт.
>
>А по существу: getty не заточена специально для работы с модемами, хотя
>и поддерживает их. В ней есть ещё некоторые болты, о которых
>я уже не помню, т.к. забил на dialin через getty ещё
>6 лет назад.
>Всё это время я пользуюсь mgetty под Lin и BSD, о чём
>ещё ни разу не пожалел, чего и тебе желаю.
>
>mgetty делает ответ командой ATA в ответ на необходимое количество RING, как
>вообще-то принято делать в всём коммуникационном софте, а не использует регистр
>S0.
>
>Напиши, если есть какие-то причины не использовать mgetty.

Ты вопрос видел?
re: Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать и выключать автоответ в модеме.
Как спроси, так я и предложил. Он что то про getty или mgetty спросил?
Хотел автоответ включить/выкл. - я ему сказал самый простой путь (по моему мнению). Спросил бы про dialin - другое дело. etc.

p.s: На счет DTR ты прав. Забыл.
Кстати некоторый софт помоему флажок тоже в 1 ставит для автоответа.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 13:45 
# skip
>Ты вопрос видел?
>re: Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном
>включать и выключать автоответ в модеме.
>Как спроси, так я и предложил.

А зачем, задумался? Переключение автоответа - частный случай передачи команд модему. Модем может быть совсем не хейс-совместимым. Его никто не использует. Линка /dev/modem может и не быть.

Я использовал теже допущения что и ты, только чуть побольше.

Такой вопрос здесь может задать определённая категория пользователей для хорошо известных целей. Все другие для _своих_ целей знают ответ на этот вопрос. Так как читают мануалы на своё железо и ось.

> Он что то про getty или mgetty спросил?

Нет, см. выше.

>Хотел автоответ включить/выкл. - я ему сказал самый простой путь (по моему мнению). Спросил бы про dialin - другое дело. etc.

Путь видимый, но не верный.
>
>p.s: На счет DTR ты прав. Забыл.
>Кстати некоторый софт помоему флажок тоже в 1 ставит для автоответа.

Убогий софт с отказоустойчивостью стремящейся к 0. Ты выставил на модеме (DCE), что на голосовом телефоне, на ночь ATS0=1 (ответ после 1-го сигнала RING), а ночью, к примеру, DTE умер, и утром уже некому переводить DCE в S0=0. Голосовой телефон нефункционален до твоего прихода и отключения DCE, если ты не сможешь воскресить DTE.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено daclip , 19-Авг-03 13:59 
># skip
>>Ты вопрос видел?
>>re: Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном
>>включать и выключать автоответ в модеме.
>>Как спроси, так я и предложил.
>
>А зачем, задумался? Переключение автоответа - частный случай передачи
нет. не задумался. мне не особо интересно зачем это ему. я предложил _вариант_. Ему только выбирать. Я же претедую на то что это лучший из вариантов и надо юзать именно его.

>команд модему. Модем
>может быть совсем не хейс-совместимым. Его никто не использует.
это уже вопрос другой. Он опять же не уточнил про модем ничего. поэтому получил _один из вариантов_.
Линка /dev/modem
>может и не быть.
см выше. он не уточнял на каком порту модем. понял он верно, что имеется ввиду порт модема.
>
>Я использовал теже допущения что и ты, только чуть побольше.
>
>Такой вопрос здесь может задать определённая категория пользователей для хорошо известных целей.
>Все другие для _своих_ целей знают ответ на этот вопрос. Так
>как читают мануалы на своё железо и ось.
>
>> Он что то про getty или mgetty спросил?
>
>Нет, см. выше.
>
>>Хотел автоответ включить/выкл. - я ему сказал самый простой путь (по моему мнению). Спросил бы про dialin - другое дело. etc.
>
>Путь видимый, но не верный.
may be. Я так юзал (правда для своих целей), нужный результат был достигнут, стабильность тоже.
>>
>>p.s: На счет DTR ты прав. Забыл.
>>Кстати некоторый софт помоему флажок тоже в 1 ставит для автоответа.
>
>Убогий софт с отказоустойчивостью стремящейся к 0. Ты выставил на модеме (DCE),
>что на голосовом телефоне, на ночь ATS0=1 (ответ после 1-го сигнала
>RING), а ночью, к примеру, DTE умер, и утром уже некому
>переводить DCE в S0=0. Голосовой телефон нефункционален до твоего прихода и
>отключения DCE, если ты не сможешь воскресить DTE.

Я понимаю что софт может и убогий, но это уже на совести авторов. Я вообще для примера сказал, а не для спора про софт.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено Serg , 19-Авг-03 14:47 
>Уважаемый xcenter! Подскажи пожалуйста по существу: как сделать?
>с getty  все отлично работает, нужно только научиться отключать автоответ.

Посмотри вот тут:
http://www.opennet.me/openforum/vsluhforumID1/4912.html#2
Смысл в том, чтобы по крону обновлять /etc/ttys из двух заранее подготовленных файлов с разными статусами порта, в одном on, в другом off.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено Grey , 19-Авг-03 12:11 
>>Подскажите плиз как подойти к проблеме. Операционка FreeBSD 4.8 Нужно кроном включать
>>и выключать автоответ в модеме.
>>Заранее благодарен!
>
>RTFM!
>mgetty:
>test -f /etc/nologin.cuaa0 && rm /etc/nologin.cuaa0
>touch /etc/nologin.cuaa0

!!! Пашет.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено админ , 19-Авг-03 15:06 
Народ маны уже не читает ?

man 5 gettytab

Getty provides some basic intelligent modem handling by providing a chat
     script feature available via two capabilities:

       ic         Chat script to initialize modem.
       ac         Chat script to answer a call.

     A chat script is a set of expect/send string pairs.  When a chat string
     starts, getty will wait for the first string, and if it finds it, will
     send the second, and so on.


"Как включать и выключать автоответ у модема скриптом?"
Отправлено plumber , 19-Авг-03 18:24 
УУУ! Ну и страсти разгорелись из-за пустячного вопроса!
Действительно, man gettytab я незаслуженно обошел стороной...
Однако сделав по писаному в разделе default:\
:ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
:ac=RING\r ATA\r CONNECT:
затем killall -HUP getty
результата не получил... Все равно не берет трубку, гад! Хоть ATS0=1, хоть в раздел std.38400 (так в ttys прописал) добавляй!
Через ppp > term выставишь ATS0=1 тогда берет...
Цитаты: gettytab
default:\
        :rt#0:
        :ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
        :ac=RING ATA\r CONNECT:
        :pp=/usr/local/bin/ppplogin:\
        :cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
        :if=/etc/issue:
std.38400|38400-baud:\
        :rt#0:
        :ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
        :ac=RING ATA\r CONNECT:
        :np:sp#38400:

ttys:
ttyd0   "/usr/libexec/getty std.38400"  dialup  on  insecure

ppplogin:
#! /bin/sh
exec /usr/sbin/ppp -direct dialin


"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 18:34 
>УУУ! Ну и страсти разгорелись из-за пустячного вопроса!
>Действительно, man gettytab я незаслуженно обошел стороной...
>Однако сделав по писаному в разделе default:\
>:ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
>:ac=RING\r ATA\r CONNECT:
>затем killall -HUP getty
>результата не получил...

И правильно, ясный пень, надо kill -HUP 1
именно init - он gettytab обрабатывает.

Все равно не берет трубку, гад! Хоть ATS0=1, хоть
>в раздел std.38400 (так в ttys прописал) добавляй!
>Через ppp > term выставишь ATS0=1 тогда берет...
>Цитаты: gettytab
>default:\
>        :rt#0:
>        :ic="" ATE0Q0V1\r OK\r ATS0=0\r
>OK\r:
>        :ac=RING ATA\r CONNECT:
>        :pp=/usr/local/bin/ppplogin:\
>        :cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
>        :if=/etc/issue:
>std.38400|38400-baud:\
>        :rt#0:
>        :ic="" ATE0Q0V1\r OK\r ATS0=0\r
>OK\r:
>        :ac=RING ATA\r CONNECT:
>        :np:sp#38400:
>
>ttys:
>ttyd0   "/usr/libexec/getty std.38400"  dialup  on  insecure
>
>ppplogin:
>#! /bin/sh
>exec /usr/sbin/ppp -direct dialin



"Как включать и выключать автоответ у модема скриптом?"
Отправлено plumber , 20-Авг-03 06:48 

>
>И правильно, ясный пень, надо kill -HUP 1
>именно init - он gettytab обрабатывает.
>
Ну все, приехали!
xcenter, попробуй хотя бы

man init | grep gettytab
man getty | grep gettytab


"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 20-Авг-03 19:26 
>
>>
>>И правильно, ясный пень, надо kill -HUP 1
>>именно init - он gettytab обрабатывает.
>>
>Ну все, приехали!
>xcenter, попробуй хотя бы
>
>man init | grep gettytab
>man getty | grep gettytab

Ну описалось - имелось в виду содержимое ttys(5) с загрузкой getty(8), всё равно надо kill -HUP 1 делать чтобы getty(8) перечитывал gettytab(5).

man init:

...
In multi-user operation, init maintains processes for the terminal ports
found in the file ttys(5).  The init utility reads this file and executes
the command found in the second field, unless the first field refers to a
device in /dev which is not configured.  The first field is supplied as
the final argument to the command.  This command is usually getty(8);
getty opens and initializes the tty line and executes the login(1) pro-
gram.  The login program, when a valid user logs in, executes a shell for
that user.  When this shell dies, either because the user logged out or
an abnormal termination occurred (a signal), the init utility wakes up,
deletes the user from the utmp(5) file of current users and records the
logout in the wtmp(5) file.  The cycle is then restarted by init execut-
ing a new getty for the line.
...


"Как включать и выключать автоответ у модема скриптом?"
Отправлено xcentner , 19-Авг-03 18:56 
В догонку:

# skip

Чего стандартные классы мучать - создал бы свой и там всё прописал:
gettytab:
# The default gettytab entry, used to set defaults for all other
# entries, and in cases where getty is called with no table name.
#

>Цитаты: gettytab
>default:\
>        :rt#0:
>        :ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
>        :ac=RING ATA\r CONNECT:
>        :pp=/usr/local/bin/ppplogin:\
>        :cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
>        :if=/etc/issue:

gettytab:
#    The "std.NNN" names are known to the special case
#    portselector code in getty, however they can
#    be assigned to any table desired.

>std.38400|38400-baud:\
>        :rt#0:
>        :ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:
>        :ac=RING ATA\r CONNECT:
>        :np:sp#38400:
>

# skip