Добрый день.
Имеется задача построить оповещение ответственных лиц (сотрудников предприятия) в случае ЧС.
Пытаюсь решить задачу следующим образом:
При звонке на номер 3911:
exten => 3911,1,Goto(opovechenie-4S,s,1)
звонок переходит в контекст
[opovechenie-4S]
exten => s,1,Answer
exten => s,n,Wait(2)
exten => s,n,Playback(pa-welcome) ; сообщение приветственное
exten => s,n,Wait(1)
exten => s,n,Record(pa-message.wav) ; запись сообщения для отправки
exten => s,n,Wait(1)
exten => s,n,Playback(pa-welcome) ; Сигнал ГОТОВО
exten => s,n,Wait(1)
exten => s,n,Background(pa-confirm) ; нажмите 1 для отправки сообщения
exten => s,n,WaitExten(10)
exten => s,n,Hangup()
exten => 1,1,System(/usr/local/bin/opovechenie.sh)
exten => 1,n,Hangup()
;end opovechenie_4S
После чего должен запускаться bash-файл.
usr/local/bin/opovechenie.sh // исполняемый скрипт
#!/bin/sh
while read number; do
cat <<EOF > /usr/local/bin/$number
Channel: SIP/multifon4S/$number
Callerid: 79374550819
MaxRetries: 1
RetryTime: 50
WaitTime: 45
Context: start-opovechenie
Extension: 911
Priority: 1
EOF
chown asterisk:asterisk /var/spool/asterisk/$number
mv /var/spool/asterisk/$number /var/spool/asterisk/outgoing/
echo "$number"
number=`expr $number + 1`
while [ "$?" -eq "0" ]
do
count_files ()
{
count_f=`ls /var/spool/asterisk/outgoing | wc -l`
if [ "$count_f" -eq "5" ]; then
sleep 10
return 0
else
return 1
fi
}
count_files
done
done < /usr/local/bin/list4S.txt
exit 0
который читает
номера из файла
/usr/local/bin/list4S.txt // пример файла с номерами
89XXXXXXX03
89XXXXXXX30
И запускает до д них дозвон и проигрывание записанного сообщения о ЧС:
[start-opovechenie]
exten => 911,1,Answer()
exten => 911,n,Wait(1)
exten => 911,n,Playback(pa-message)
exten => 911,n,Wait(1)
exten => 911,n,Hangup()
Судя по логам, [opovechenie-4S] проходит чётко, но скрипт автообзвон не запускается. Не понимаю почему. Прошу помочь в решении проблемы.