LINUX.ORG.RU
решено ФорумAdmin

Asterisk, как передать несколько файлов по факсу?


0

1

В Астериске новичок, хотя диалплан понимаю и составляю по-немногу.

Задача в том, что есть несколько файлов и есть команда, которая преобразует их в 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-м приоритетом. Но етого не происходит и скрипт зацикливается. Подскажите, в каком месте я ошибся? Огромная благодарность тому, кто скажет, как сделать такой диалплан по-умному, если мой напоминает бред сивой кобылы.

Чувак, ты хочешь, чтоб zgen тебя проклял? Кроме него же почти и некому-то и отвечать на такие вопросы.

Пожалей старика, зарегься уже на asterisk-support.ru

anonymous
()
Ответ на: комментарий от anonymous

Как только подучу астериск - а по работе мне ето просто необходимо сделать - стану на его сторону :) За ссылку спасибо!

abr_linux
() автор топика

я один из астерисководов не понимаю экстеншены, ибо они из себя представляют ад? что это за циферки аля бейсик? гоуту в 21 веке? чем это лучше ael?

Turbid ★★★★★
()
Ответ на: комментарий от Turbid

Цитата с хабра:

Справедливости ради следует сказать, что астериск преобразует конфигурацию ael в «обычный» формат и работает уже с ним (можно проверить через asterisk -rx «dialplan show»), так что его синтаксис тоже знать обязательно.

Формат и вправду почитабельнее, но конфиг уже сделан в обычном формате. Время на его переделку в ael никто не даст..

abr_linux
() автор топика

Версии астериска мы угадывать будем или что?

Судя по документации

Ссылку на неё дайте заодно.

zgen ★★★★★
()

А так?

[macro-fax-tx]
exten => s,1,NoOp(dial_fax)
    same => 2,Answer()
    same => 3,Playback(hello-world)
    same => 4(pq),System(/home/astmsk/proceed-fax-queue.sh)
    same => 5,System(rm /var/spool/asterisk/fax/outgoing.tif)
    same => 6,GotoIf($[ "${SYSTEMSTATUS}" = "SUCCESS" ]?pq)
    same => 7,Hangup()

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

Наверное, можно и так, но я через STAT сделал. Очередь стала обрабатыватся.

abr_linux
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.