Принцып работы ее такой:
-Звоню на телефон с номером 698
-продектовываю сообщение (в 6-00 обьявлен сбор сотрудников по сигналу, для подтверждения нажмите цифру 1)
-нажимаю #
-прослушиваю надиктованное сообщение и кладу трубку
-звонок инециализирует запуск скрипта call_list.sh
-скрипт с готового заранее файла List.txt готовит call-файлы и по одному скармливает их Asterisk
-Asterisk обрабатывае call-файлы, прозванивает все телефоны и надиктовывает им сообщения.
Все хорошо Все счастоивы - НО хотелось бы получить подтверждение что сотрудники оповещены посредством SMS сообщения на первый номер сотового телефона из списка List.txt, в нашем случае 89271111111
В связи с тем что НЕОПОВЕЩЕНЫ обычно бывает 1-3 человека, то SMS лучше указывать неоповещенные номера
SMS:
neopoveshen:
89271111113
89271111117
Файл List.txt с номерами телефонов (телефонов до 10 шт)
89271111111
89271111112
89271111113
89271111114
-------
89271111110
скрипт /var/spool/asterisk/call_list.sh запускается при звонке на номер 698. Формирует call файлы и по одному его скармливает Asteriskу
сам скрипт call_list.sh
Код: Выделить всё
#!/bin/sh
while read number; do
cat <<EOF > /var/spool/asterisk/$number
Channel: Dongle/dongle0/$number
Callerid: $number
MaxRetries: 1
RetryTime: 20
WaitTime: 30
Context: outboundmsg1
Extension: s
Priority: 1
EOF
chown root:root /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 "1" ]; then
sleep 10
return 0
else
return 1
fi
}
count_files
done
done < /var/spool/asterisk/list.txt
exit 0
Код: Выделить всё
exten => _698,1,Answer()
exten => _698,n,Wait(2)
exten => _698,n,Record(/tmp/trevoga:wav)
exten => _698,n,Wait(1)
exten => _698,n,Playback(/tmp/trevoga)
exten => _698,n,Wait(1)
exten => _698,n,System(/var/spool/asterisk/call_list.sh start)
exten => _698,n,Hangup()
[outboundmsg1]
exten => s,1,Set(TIMEOUT(digit)=5)
exten => s,2,Set(TIMEOUT(response)=10)
exten => s,3,Answer
exten => s,4,Wait(1)
exten => s,5,Background(/tmp/trevoga)
exten => s,6,WaitExten(5)
exten => 1,1,Goto(s,5)
exten => 2,1,Goto(msgack,s,1)
exten => t,1,Hangup
[msgack]
exten => s,1,Hangup