Man вики
Нет описания правки
Нет описания правки
Строка 51: Строка 51:
   
 
очищаем оригинальный файл
 
очищаем оригинальный файл
root@FAX1C:~# echo ""> /etc/asterisk/iax.conf
+
echo ""> /etc/asterisk/iax.conf
   
 
открываем файл
 
открываем файл
Строка 79: Строка 79:
   
 
очищаем оригинальный файл
 
очищаем оригинальный файл
root@FAX1C:~# echo ""> /etc/asterisk/extensions.conf
+
echo ""> /etc/asterisk/extensions.conf
   
 
открываем файл
 
открываем файл

Версия от 05:24, 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

очищаем оригинальный файл

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

копируем оригинальный файл

cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.orig

очищаем оригинальный файл

echo ""> /etc/asterisk/extensions.conf

открываем файл

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