AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Настройка FaxDispatch в Hylafax

Newbies/FAQ Forum 11 сообщений -
#1

Коллеги, помогите сообразить. Задача - настроить FaxDispatch таким образом, чтобы факс приходил не на стандартный почтовый адрес, а на почтовый ящик того абонента *, который перевел запрос приема факса на этот Fax-сервер.
Делаю так:
Код:
exten => 999,n,Dial(IAX2/iaxmodem0/${CALLERID(num)},20,r)

Но при этом CALLERID(num) - это получается номер того, кто "позвонил", оригинал, а не того, кто перевел звонок на 999.
А вот как достать здесь номер переводчика?
#2

Цитата:
а на почтовый ящик того абонента *, который перевел запрос приема факса на этот Fax-сервер.

так при переводе как раз и должен быть номер кто перевел!

А касательно отправки на email абонента, нада же где то достать, узнать этот самый email.

У меня используется выбор с АД, вы можете использовать как БД, так и astDB где заранее прописать email-ы, но для этого нада будет и править сам FaxDispatch, в зависимости от того какой способ вы выберете.
#3

У меня сделано несколько проще:

для начала выхватываю из переменной BLINDTRANFERER номер. Далее стартует свой perl-скрипт которому передаю имя файла факса и этот номер. Ну а далее два варианта можете делать:
1. если не много людей-получателей - вбейти их в сам скрипт
2. пропарсите voisemail.conf на предмет этого номера и получите адрес

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#4

Я правильно понял, что сработает так как мне надо код:
Код:
exten => 999,n,Dial(IAX2/iaxmodem0/${BLINDTRANFERER},20,r)

?
Будем пробовать...
-------------
Увы-с... Нет у меня в системе такой переменной. Где ее можно добыть, как поставить? Скрипт-то я любой напишу, было бы от чего отталкиваться, что анализировать... А вот переменная BLINDTRANSFER - есть. Это она и есть?


Последний раз редактировалось: Cruiser78 (Чт Янв 26, 2012 14:00)
#5

Вы посмотрите что Вам выдает ${BLINDTRANFERER}, может придется обработать CUT.
#6

Выдает то, что надо, правда в формате SIP/ID-000003bd. Словом, голосом кота Матроскина - заработало!!!
Пошел писать скрипты...
Теперь осталось протащить факс из внешнего мира. А то внутри локалки - ходит, а из внешнего мира - внешний не может повязаться с hylafaxом. Пишет, что нет ответа (хотя я свист ушами прекрасно слышу).
#7

смотрите логи самого hylafax.
#8

Словом, получилось так:

Код:
exten => 999,1,Set(FAXFROM=${IF($["${BLINDTRANSFER}"=""]?${CALLERID(num)}:${CUT(CUT(BLINDTRANSFER,-,1),/,2)})})
exten => 999,n,Dial(IAX2/iaxmodem0/${FAXFROM},20,r)

То есть, если прямой звонок, то подставить номер от прямого звонка (FaxDispatch потом разберется), если по переводу, то поставить номер переводящего.
и FaxDispatch в пару строк получился:

Код:

FILETYPE=pdf;
address=`/bin/grep $CALLID4 /etc/asterisk/voicemail.conf | /bin/awk -F , '{print $3}'`
if [ "x$address" == "x" ]; then
SENDTO="faxrecip@mycorp.ru"
else
SENDTO=$address
fi
#9

Пытаюсь сделать тоже самое только задача на первый взгляд вроде даже проще - у нас мыло пользователя= его экстеншену, т.е. у всех адреса вида ext@mydomain.com . Чую что задача по сравнению с задачей автора проще, но варианты в голову не лезут. Как можно в faxdispatch получить номер переключившего?
Подозреваю что должно быть как-то так
Код:
FILETYPE=pdf;
address=`${BLINDTRANSFER}@mycorp.ru`
if [ "x$address" == "x" ]; then
SENDTO="faxrecip@mycorp.ru"
else
SENDTO=$address
fi

Поправьте пожалуйста, если ошибаюсь.
Cruiser78, Если не сложно, поделитесь пожалуйста, окончательным работающим вариантом Faxdispatch с Вашим решением.[/code]

_________________
Shit happens
#10

переменная $CALLID1

и в диалплане определить в переменную значение BLINDTRANSFER и передать в Dial(IAX2/iaxmodem/${variable})
#11

Мой вариает прост как мычание
Код:
# cat /var/spool/hylafax/etc/FaxDispatch
FILETYPE=pdf

address=`/bin/grep $CALLID4 /etc/asterisk/voicemail.conf | /bin/awk -F , '{print $3}'`

message="CALLERID4=.$CALLID4., address=.$address."
/bin/logger -t FaxDispath $message

if [ "x$address" == "x" ]; then
SENDTO="corp@my.corp"
else
SENDTO=$address
fi