|
- Vladimir Afanasiev, 17.08.2000. -
Имеем: Acorp 56IMS, подключенный к /dev/ttyS3. Наш hostname - "hus".
hostname удаленной машины считаем как "ppphost".
Хотим: автоответчик, ждущий 4 звонка, берущий трубку,
играющий записанное сообщение и пишуший абонента.
Если абонент после сигнала молчит 5 секунд, то он - комп с модемом :).
Коннектимся и даем ему PPP.
Скажу сразу - здесь я ничего пояснять не буду (почти не буду :),
просто приведу свои настройки. Я не гарантирую, что они подойдут всем.
Более того - я НЕ РЕКОМЕНДУЮ тупо копировать их. Вместо этого советую
читать man mgetty, man vm, man pppd, man inittab, man hosts, /usr/doc/ppp-x.x.x/,
/usr/doc/mgetty+sendfax-x.x.x/, применять /dev/head и /dev/hands,
изредка поглядывая сюда.
Настраиваем vgetty:
Правим /etc/mgetty+sendfax/voice.conf
В /etc/mgetty+sendfax/login.config правим строчку с /AutoPPP/
/AutoPPP/ - a_ppp /etc/ppp/ppplogin
В /etc/mgetty+sendfax/mgetty.config пишем
В /etc/inittab пишем (у меня 4 виртуальных консоли mingetty)
5:2345:respawn:/sbin/vgetty ttyS3
В /etc/hosts пишем
192.168.0.1 hus
192.168.0.2 ppphost
Настраиваем pppd:
В /etc/ppp/options пишем
-detach
crtscts
kdebug 4
netmask 255.255.255.0
asyncmap 0
modem
refuse-chap
require-pap
noccp
noauth
noproxyarp
Создаем /etc/ppp/options.ttyS3
В /etc/ppp/pap-secrets пишем
Создаем /etc/ppp/ppplogin
#!/bin/sh
mesg n
tty
/usr/sbin/pppd noauth noccp -chap +pap kdebug 4 login
Пишем скрипты:
/usr/local/bin/playmsg - слушаем все сообщения
#!/bin/sh
cd /var/spool/voice/incoming
for i in `ls -x1 *.[Rr][Mm][Dd] 2> /dev/null`; do
dm_date=$(date -r $i +Msg-%d%m%y-%H%M%S.wav)
/usr/bin/rmdtopvf -b $i _tmp.pvf > /dev/null 2>&1
/usr/bin/pvftowav _tmp.pvf $dm_date > /dev/null 2>&1
done
for i in `ls -x1 *.[Ww][Aa][Vv] 2> /dev/null`; do
echo "Playing "$i"..."
/usr/bin/play $i
/usr/bin/play /etc/mgetty+sendfax/phrases/space.wav
done
rm -f *.[Pp][Vv][Ff]
rm -f *.[Rr][Mm][Dd]
/usr/local/bin/msgclear - стираем все сообщения
#!/bin/sh
rm -f /var/spool/voice/incoming/*.[Ww][Aa][Vv] > /dev/null 2>&1
rm -f /var/spool/voice/incoming/*.[Pp][Vv][Ff] > /dev/null 2>&1
rm -f /var/spool/voice/incoming/*.[Rr][Mm][Dd] > /dev/null 2>&1
/usr/local/bin/recgreetmsg - записываем приветствие с микрофона на модеме
#!/bin/sh
cd /var/spool/voice/messages
/usr/bin/vm record -m -l ttyS3 -v standard.rmd
/usr/bin/rmdtopvf standard.rmd tmp.pvf
/usr/bin/pvftowav tmp.pvf tmp.wav
rm -f *.pvf
/usr/bin/play tmp.wav
Пользователям пишем в ~/.profile - проверка автоответчика при логине
Внимание! Переносы строк.
MES_COUNT=`ls /var/spool/voice/incoming/*.[Rr][Mm][Dd] 2>
/dev/null | wc -l`
if [ $MES_COUNT != "0" ]; then
echo You have $MES_COUNT message(s) on
the answering machine.
fi
|