Revin cu o intrebare pusa acum ceva timp:
Am instalat vgetty pe un Slack 9.0. Am facut diverse scriptulete care merg
dar au o singura problema. In momentul in care apelantul inchide telefonul
modemul meu extern Rockwell nu trimite nici un eveniment.
Intrebari:
1. a folosit cineva vgetty fara sa-i apara aceasta problema cu modem
extern Rockwell? daca da poate-mi spune si mie unde gresesc.
2. daca a folosit alt modem sa-mi spuna si mie ce tip.
Iata un ex. de script:
#! /usr/local/bin/vm shell
#**************************************
# robot telefonic interactiv *
#**************************************
# defineste functia ce primeste raspunsuri de la "voice library"
function receive
{
read -r INPUT <&$VOICE_INPUT;
echo "$INPUT";
}
# defineste functia ce trimite comenzi catre "voice library"
function send
{
echo $1 >&$VOICE_OUTPUT;
kill -PIPE $VOICE_PID
}
# verifica daca "voice library" poate comunica cu scriptul
ANSWER=`receive`
if [ "$ANSWER" != "HELLO SHELL" ]; then
echo "$0: voice library nu raspunde" >&2
exit 1
fi
# raspunde mesajului trimis de "voice library"
send "HELLO VOICE PROGRAM"
# Verifica daca mesajul a fost receptionat de "voice library"
ANSWER=`receive`
if [ "$ANSWER" != "READY" ]; then
echo "$0: initializare imposibila" >&2
exit 1
fi
#activeaza evenimentele
send "ENABLE EVENTS"
ANSWER=`receive`
if [ "$ANSWER" != "READY" ]; then
echo "$0: nu a activat evenimentele" >&2
exit 1
fi
# Setez partenerul cu care va comunica "voice library"
send "DEVICE DIALUP_LINE"
# Verific daca a fost setat partenerul
ANSWER=`receive`
if [ "$ANSWER" != "READY" ]; then
echo "`date` - $0: nu a putut fi setat partenerul" >&2
exit 1
fi
# Ruleaza fisierul de intampinare
if [ -f /var/spool/voice/messages/intampinare.rmd ]; then
send "PLAY /var/spool/voice/messages/intampinare.rmd"
fi
while true; do
ANSWER=`receive`
case $ANSWER in
PLAYING)
ANSWER=`receive`
case $ANSWER in
READY)
echo "`date` - $0: ruleaza intimpinare.rmd">&2
send "PLAY /var/spool/voice/messages/intampinare.rmd"
;;
RECEIVED_DTMF)
echo "`date` - $0: a apasat o tasta DTMF" >&2
send "STOP"
receive;
send "GOODBYE";
receive;
exit 0
;;
LOOP_BREAK|BUSY_TONE|BONG_TONE)
echo "`date` - $0: a detectat ton de ocupat" >&2
send "STOP";
receive;
send "GOODBYE";
receive;
exit 0
;;
esac
esac
done
# Ne deconectam de la "voice library"
#
send "GOODBYE"
# Verificam daca "voice library" a primit mesajul
ANSWER=`receive`
if [ "$ANSWER" != "GOODBYE SHELL" ]; then
echo "$0: nu a putut trimite GOODBYE" >&2
exit 1
fi
exit 0