Ответ в теме: Внутренняя голосовая почта в Asterisk
Сервисы Общения › Форумы › Общие вопросы › Внутренняя голосовая почта в Asterisk › Ответ в теме: Внутренняя голосовая почта в Asterisk
С предыдущей задачей справился, вроде не так сложно как оказалось:) а вот по следующей задаче есть вопросы!
Допустим, мы позвонили нашему внутреннему абоненту, он не ответил, и мы оставили ГС. Необходимо как то послать ему уведомления(автодозвон), что бы он догадался проверить ГП(не всегда обращаешь внимание ведь). Так вот, решил сделать все с помощью .call файлов и скриптов, идея такая: как только мы оставили ГС, запускается скрипт для создания текстового файла в котором будет номер куда мы звонили, далее запускается скрипт на создание .call файла, с указанием на текстовой файл с номером. Проблема состоит в том что Астер игнорирует команду System(/../test.sh) в экстеншене. Подскажите в чем проблема?
[internal]
exten => _XXX,1,Dial(SIP/${EXTEN},10)
same => n,GotoIf($[“${DIALSTATUS}” = “BUSY”]?busy:unavail)
same => n(unavail),VoiceMail(${EXTEN}@voicemail,u)
same => n,System(/var/…/test_txt_list.sh)
same => n,System(echo “${CALLERID(num)}” /var/spool/asterisk/temp1234/nomera.txt)
same => n,Hangup()
same => n(busy),VoiceMail(${EXTEN}@voicemail,b)
same => n,Hangup()
Скрипт на создание текстового файла:
#!/bin/bash
echo $1 > /var/spool/asterisk/temp1234/nomera.txt
exit 0
Скрипт на создание .call файла(сам скрипт не мой, я в нем только адреса файлов поменял под мои):
#!/bin/sh
while read number; do
cat <<EOF > /var/spool/asterisk/test1234/$number
Channel: SIP/voip_trunk/$number
Callerid: $number
MaxRetries: 5
RetryTime: 1800
WaitTime: 30
Context: out_voicemessage ;тут описан экстеншн с дозвоном и проигрыванием ГС о присутствии ГС
;на почте у абонента
Extension: s
Priority: 1
EOF
chown asterisk:asterisk /var/…/$number
mv /var/…/$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 “30” ]; then
sleep 10
return 0
else
return 1
fi
}
count_files
done
done < /var/…/nomera.txt
exit 0