Нет описания правки |
Нет описания правки |
||
Строка 2: | Строка 2: | ||
Имеется внешний почтовый ящик pop3 (email, логин, пароль); |
Имеется внешний почтовый ящик pop3 (email, логин, пароль); |
||
+ | |||
Внешний voip сервер имеющий выход на ТФОП; |
Внешний voip сервер имеющий выход на ТФОП; |
||
+ | |||
Файл письма отвечающего требования формата названия файла |
Файл письма отвечающего требования формата названия файла |
||
Версия от 05:16, 7 июня 2012
Исходные данные:
Имеется внешний почтовый ящик pop3 (email, логин, пароль);
Внешний voip сервер имеющий выход на ТФОП;
Файл письма отвечающего требования формата названия файла
Логика работы:
Fetchmail забирает письма с внешнего почтового ящика по протоколу pop3 и передает их обработчику почтовых сообщений Procmail;
Первый шаг Procmail передает тело письма программе ripmime;
Ripmime извлекает из письма прикрепленные файлы;
Второй шаг Procmail запускает скрипт обработки файлов;
Задача скрипта: проверить формат названия файла, извлечь из него телефонный номер получателя, передать файл на отправку Hylafax, записать в лог присвоенный номер задания по отправке факса и имя передаваемого файла;
Hylafax получив задание подключается к iaxmodem, набирает номер получателя факса;
Asterisk выполняет подключение к voip серверу имеющему выход в ТФОП; Дозвонившись Asterisk проговаривает голосовое приветствие;
Asterisk соединяет iaxmodem с факсовым аппаратом получателя; Информацию об удачном прохождении или об ошибке Hylafax сохраняет в системный файл.
apt-get update apt-get install asterisk iaxmodem hylafax-server procmail fetchmail
Настраивается пакет libvpb0 7
Postfix Configuration Без настройки
Нужно заранее подготовить почтовый ящик с доступом по pop3 на внешнем почтовом сервере
Настройка Asterisk
Необходимо создать учетную запись IAX а так-же транк для подключения к провайдеру IP телефонии по SIP протоколу для совершения исходящих вызовов.
копируем оригинальный файл
cp /etc/asterisk/iax.conf /etc/asterisk/iax.conf.orig
очищаем оригинальный файл
root@FAX1C:~# echo ""> /etc/asterisk/iax.conf
открываем файл и прописываем следующий конфиг
nano /etc/asterisk/iax.conf
[general] allow=alaw [iaxprovider] type=peer host=ip username=user fromuser=user secret=1233 qualify=yes
[910] host=dynamic type=friend secret=faxfax123 requirecalltoken=no context=from-internal
nano /etc/asterisk/extensions.conf
[from-internal] exten => _.,1,Dial(iax2/iaxprovider/${EXTEN})
Перезапускаем Asterisk
/etc/init.d/asterisk restart
Настройка IAXMODEM
Создаем конфигурацию виртуального модема
nano /etc/iaxmodem/iaxmodem-cfg.ttyIAX1
device /dev/ttyIAX1 owner uucp:uucp mode 660 port 4570 refresh 300 server 127.0.0.1 peername 910 secret faxfax123 codec alaw
Запускаем виртуальный модем
/etc/init.d/iaxmodem start
Проверяем лог запуска
cat /var/log/iaxmodem/iaxmodem
Настройка hylafax Server
Запускаем мастер настройки
faxsetup
Отвечаем на все вопросы по умолчанию пока не появится вопрос:
Serial port that modem is connected to [ttyS0]?
Пишем имя порта ttyIAX1 и продолжаем отвечать на вопросы мастера, пока не появится запрос о добавлении второго модема Do you want to run faxaddmodem to configure another modem [yes]? . На него отвечаем No Перезапускаем hylafax
/etc/init.d/hylafax restart
Настройка сбора почты
Настройка окружения
Добавим пользователя
adduser efax
Добавим папки для факсов
cd /home/efax mkdir IN PROC ERR OK
ripmime
Соберем пакет ripmime для извлечения атачментов из писем.
cd /tmp wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.10.tar.gz cd /usr/src tar zxvf /tmp/ripmime-* cd ripmime-* make make install
fetchmail
nano /etc/default/fetchmail
START_DAEMON=yes
nano /etc/fetchmailrc
set daemon 10 set no bouncemail defaults: antispam -1 batchlimit 100 sslproto "" poll mail.local proto pop3 user user pass 123 is efax here mda 'procmail -d %T'
procmail
nano /etc/procmailrc
DEFAULT=/home/efax/
:0 * ^From:.* { :0 fbw | ripmime -i - --no-nameless -d /home/efax/IN/
:0 Afhw | /home/efax/mailtofax } # Все остальные письма отправить в /dev/null :0 * ^From:.* /dev/null
Скрипт пересылки письма на факс
nano /home/efax/mailtofax namefile=`ls -t /home/efax/IN| grep -P ".+_.+_.+\.pdf"|tail -n1` mv /home/efax/IN/$namefile /home/efax/PROC/$namefile faxnum=`ls /home/efax/PROC/$namefile|awk -F "_" '{print $3}'` id=`sendfax -n -d $faxnum /home/efax/PROC/$namefile` echo "`date` $id file: $namefile" >> /var/log/mailfax.log
Делаем его исполняемым
chmod +x /home/efax/mailtofax