Как реализовать исполнение call файла в определенное время? Сделал скрипт, написал необходимые параметры – работает только в случае запуска из консоли, из самого астера – нет.
#!/bin/sh
number=$1 do #получаем значение из диалплана, тел на который звоним, что бы перезвонить ему
cat <<EOF > /var/spool/asterisk/$1.call
Channel: SIP/$1
Callerid: Admin
MaxRetries: 3
RetryTime: 20
WaitTime: 30
Context: out_voicemessage
Extension: s
Priority: 1
Archive: yes
EOF
DATE=<code>date '+%Y%m%d%H%M'</code>
NOW=<code>date +%s</code>
let NOW=$NOW+100
#echo "$DATE"
#echo "$NOW"
chown root:asterisk /var/spool/asterisk/$1.call
TOUCH_TMSP=<code>date -d "1970-01-01 $NOW sec GMT" +%Y%m%d%H%M%S</code>
#echo "$TOUCH_TMSP"
touch -m -t $TOUCH_TMSP $1.call
#stat $1.call
mv /var/spool/asterisk/$1.call /var/spool/asterisk/tmp/"$1"_"$TOUCH_TMSP".call
#mv /var/spool/asterisk/$1.call /var/spool/asterisk/outgoing/"$1"_"$TOUCH_TMSP".call
exit 0
Если самому забить номер на который звонить и поменять путь на /asterisk/tmp/… звоню, то при перемещении в эту папку, созданный кал-файл имеет время модификации на 100 секунд больше( и остальные параметры тоже, если поменять, в общем все работает). А когда меняю путь на /asteisk/outgoing/… звоню, то тогда, как только скрипт отработает, кал-файл попадает в outgoing, астер его тут же исполняет, при чем время модификации и др параметры УЖЕ изменены на настоящие(а не будущие), хотя если проводить аналогию с предыдущим примером, то все должно работать. Пробовал поставить touch и после перемещения файла в outgoing, это тоже не помогало. В чем может быть причина? я так понимаю, что touch просто не отрабатывает. Что касается формата записи touch, изгалялся по разному тоже – не помогло.