В Астериске новичок, хотя диалплан понимаю и составляю по-немногу.
Задача в том, что есть несколько файлов и есть команда, которая преобразует их в tiff. Необходимо, преобразовать и передать их абоненту.
Скрипт выглядит в данный момент так:
[macro-fax-tx]
exten => s,1,NoOp(dial_fax)
same => 2,Answer()
same => 3,Playback(hello-world)
same => 4,System(/home/astmsk/proceed-fax-queue.sh)
same => 5,System(rm /var/spool/asterisk/fax/outgoing.tif)
; same => n,Read(faxQueue,/var/spool/asterisk/tmp/fax-queue,255)
same => 6,Goto(s,4)
same => 7,Hangup()
same => 106,System(logger 'Files not found')
same => 107,Hangup()
Скрипт proceed-fax-queue.sh представляет собой:
#!/bin/bash
logger 'Message from asterisk...............'
SPOOL=/var/spool/asterisk/fax
NEXT_FILE=$SPOOL/`ls $SPOOL | head -n1`
convert ... $NEXT_FILE $SPOOL/outgoing.tif #Длинная строка преобразования файла
rm $NEXT_FILE
Судя по документации, если происходит ошибка в System(), то выполняется команда с приоритетом n+101. В моём случае, когда все файлы отправляются, команда System с пятым приоритетом должна получить ошибку, ведь все файлы уже отправлены и, по-идее, перейти на команду System со 106-м приоритетом. Но етого не происходит и скрипт зацикливается. Подскажите, в каком месте я ошибся? Огромная благодарность тому, кто скажет, как сделать такой диалплан по-умному, если мой напоминает бред сивой кобылы.