В Астериске новичок, хотя диалплан понимаю и составляю по-немногу.
Задача в том, что есть несколько файлов и есть команда, которая преобразует их в tiff. Необходимо, преобразовать и передать их абоненту.
extensions.conf выглядит в данный момент так:
[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-м приоритетом. Но етого не происходит и диалплан зацикливается. Подскажите, в каком месте я ошибся? Огромная благодарность тому, кто скажет, как сделать такой диалплан по-умному, если мой напоминает бред сивой кобылы.
Действительно, с функцией STAT всё получилась обработка очереди. Однако, отправка факсом последовательно друг за другом файлов не получилась. Я, кажется, знаю почему. Скорее всего, после SendFAX факсимильная связь между аппаратами разрывается, и абонентский думает, что передача завершена. За сим разрывает связь. Астериску ничего другого не остаётся, как закончить выполнение макроса.
Решил не заморачиватся составлять единый файл из очереди. Если документ будет електронный, то обычно он в PDF. Данный формат обрабатывается скриптом в один файл. Если картинка, то как правило ето один лист. Если документ бумажный, то его легко отсканят в PDF и отправят, опять же, одним файлом.
P.S. а где собственно сама отправка факса ???
Должна была быть в закомментированной строке. По ошибке написал другую команду там.
проблема в том, что астериск будет матюкаться уже на втором. если надо несколько - прийдется их обьединить и послать ОДИН.
meral ( 2012-08-26 05:05:52 +0400 )редактировать