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

Исходное сообщение
"Callback на нескольких модемах"

Отправлено Avr , 19-Ноя-03 20:02 
Настроен dial-in сервер на FreeBSD 5.1 mgetty+ppp
модемы на cuaa0,1,2
пытался настроить callback, но сервер пытается перезванивать с 1-го модема
(что вполне естественно, судя по ppp.conf)
Что мне поправить в своих конфигах, чтобы перезванивал тот модем на который пришёл звонок?

Файлы:

/usr/local/etc/mgetty+sendfax/mgetty.config

debug 4
fax-id 00 00 000000
speed 115200
direct NO
blocking NO
port-owner uucp
port-group uucp
port-mode 0660
toggle-dtr YES
toggle-dtr-waittime 500
data-only YES
fax-only NO
modem-type auto
init-chat "" ATS0=0Q0&D3&C1 OK
modem-check-time 3600
rings 3
answer-chat "" ATA CONNECT \c \r
answer-chat-timeout 80
autobauding NO
ringback NO
ringback-time 30
ignore-carrier false
issue-file /etc/issue
prompt-waittime 500
login-prompt @!login:
login-time 240
diskspace 1024
notify faxadmin
fax-owner uucp
fax-group modem
fax-mode 0660

--------------------------------
/usr/local/etc/mgetty+sendfax/login.config

/AutoPPP/ -    a_ppp   /etc/ppp/ppp-incoming

-----------------------------------------
/etc/ppp/ppp-incoming

#!/bin/sh
/usr/sbin/ppp -direct dialin

-----------------------------------
/etc/ppp/ppp.conf

default:
set log Phase Chat LCP IPCP CCP tun command CBCP
ident user-ppp VERSION (built COMPILATIONDATE)
set timeout 0
enable dns        
set device /dev/cuaa0
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 60 CONNECT"
set ifaddr 192.168.0.4 192.168.0.6 255.255.255.0
set device /dev/cuaa1
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 60 CONNECT"
set ifaddr 192.168.0.4 192.168.0.7 255.255.255.0                    
set device /dev/cuaa2
set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 60 CONNECT"
set ifaddr 192.168.0.4 192.168.0.8 255.255.255.0
dialin:
enable pap passwdauth
enable proxy
accept dns
set dns 192.168.0.1 192.168.0.5
set callback cbcp none
set cbcp *
enable utmp
enable lqr


Содержание

Сообщения в этом обсуждении
"Callback на нескольких модемах"
Отправлено Cheeto_McMourrell , 19-Ноя-03 21:15 
Спрашивали - отвечаем.
Ну это вполне очевидно. У вас в ppp.conf в секции default прописан set device /dev/cuaa0. Получается так, что входящий звонок mgetty передает ppp. Однако он(ppp), в свою очередь, делая исходящий (callback) изпользует установки ppp.conf.

Далее я думаю ход мысел как этого избежать должен быть ясен.



"Callback на нескольких модемах"
Отправлено Avr , 20-Ноя-03 06:07 
>Спрашивали - отвечаем.
Очевидность такого поведения мне понятна. Я спрашивал как раз о "ходе мысел" который не ясен.

"Callback на нескольких модемах"
Отправлено SysAnd , 20-Ноя-03 12:59 
>>Спрашивали - отвечаем.
>Очевидность такого поведения мне понятна. Я спрашивал как раз о "ходе мысел"
>который не ясен.

напиши


set device /dev/cuaa0 /dev/cuaa1 и т.д.

будет перезванивать с первого свободного, тоже парился пока не подсказали

Enjoy


SysAnd


"Callback на нескольких модемах"
Отправлено Cheeto_McMourrell , 20-Ноя-03 16:27 
>>Спрашивали - отвечаем.
>Очевидность такого поведения мне понятна. Я спрашивал как раз о "ходе мысел"
>который не ясен.
Спрашивали - отвечаем.
Для этого нужно создать несколько секций в ppp.conf, кажная из которых будет соответствовать определенному модему, например:
callback_cuaa0:
set device /dev/cuaa0
set callback cbcp
.....
callback_cuaa1:
set device /dev/cuaa1
.....
..........
Я думаю ясно.

Далее ход мысел такой. Вспоминаем, что ppp у нас вызывается не непосредственно из mgetty, а из некоторого скрипта. В Вашем случае /etc/ppp/ppp-incoming. Для чего это делается? Как раз для нашего случая! Теперь задача сводится к вызову из этого скрипта ppp с параметром callback_cuaax, а не с дефолтным dialin как было раньше.

Как это сделать? Ну например есть такая замечательная команда - /usr/bin/tty. Ее использование в этом скрипте позволит прояснить этот вопрос. Если выдернуть нужную часть имени из ее вывода, то скрипт будет достаточно простой и подходящий для любого количества cuaax (модемов).

Я думаю, теперь все стало ясно и еще подробнее объяснять не надо.


"Callback на нескольких модемах"
Отправлено Avr , 22-Ноя-03 13:55 

>Как это сделать? Ну например есть такая замечательная команда - /usr/bin/tty. Ее
Именно этого мне и не хватало. Премного благодарен