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

Asterisk Email2FAX

Unix Way 26 сообщений -
#1

Asterisk Email2FAX


Всем привет.
Да вопрос тривиальный и избитый, но я у меня всё равно есть белые пятна в этом вопросе
1) txfax - в Е1 справиться? Мне кажется что да отправит tiff с удовольствием
2) как мне принять email, где почитать можно, что тут делать то нужно? Как понять что мыло пришло, а если почтоый сервер, не сервер с Астериском, как проверять мыло или там сделать редирект на почтовую службу, которая на asterisk. - в общем осознания что делать нет, подскажите плиз.

P.S. консольные конверторы DOC в tiff или pdf есть? В офисе хотят прямо с ворда отправлять.
#2

Вы не правы, это fax2email несложен, а вот email2fax уже требует уровня эксперт в Linux.
_________________
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru
#3

Я и не говорил, что просто, я имел введу, что много кто делал, у всех супер, в целом понятно или TXFax или Hylafax или ещё как-то, пока я пытаюсь понять, как вообще мыло поймать, чем ловить, куда ловить...
#4

Походу понял, что нужно postfix ставить, потом email2fax цеплять, что бы он call файлы генерил... да новое всё это, главное дыр в postfix не оставить.
#5

Вот и началась радость Sad

Лог получения мыла с внешнего мыла
Код:
Apr 5 15:03:42 asterisk postfix/smtpd[28843]: connect from forward15.mail.yandex.net[95.108.130.119]
Apr 5 15:03:43 asterisk postfix/smtpd[28843]: NOQUEUE: reject: RCPT from forward15.mail.yandex.net[95.108.130.119]: 550 5.1.1 : Recipient address rejected: User unknown in local recipient table; from= to= proto=ESMTP helo=
Apr 5 15:03:43 asterisk postfix/smtpd[28843]: disconnect from forward15.mail.yandex.net[95.108.130.119]

Постфикс стартанул нормально , через него бегают исходящие факсы на почту нормально. Ставил yum
postfix-2.3.3-2.3.el5_6
postfix-pflogsumm-2.3.3-2.3.el5_6

Конфиг прикрепляю, md.kz - реальное имя, только я его изменил на выдуманное мною.
Ещё в по ману с email2fax есть такое в /etc/postfix/transport
Код:
sendfax@sip.md.kz localhost:astfax

Что делать и кто виноват у меня мыслей 0, подскажите плиз.

Added after 1 hours 18 minutes:

Добавил в /etc/postfix/users
sendfax OK

Получил новую ошибку, уже хорошо... хотя не очень...
Код:

Apr 5 17:30:39 asterisk postfix/smtpd[29875]: connect from forward9.mail.yandex.net[77.88.61.48]
Apr 5 17:30:45 asterisk postfix/smtpd[29875]: NOQUEUE: reject: RCPT from forward9.mail.yandex.net[77.88.61.48]: 450 4.1.1 : Recipient address rejected: unverified address: mail transport unavailable; from= to= proto=ESMTP helo=
Apr 5 17:30:45 asterisk postfix/smtpd[29875]: disconnect from forward9.mail.yandex.net[77.88.61.48]
#6

А помоему все очень просто:
User unknown

ваш постфикс, насколько я понимаю, не знает о существовании sendfax@sip.md.kz

Офтоп: ИМХО, постфикс зло. Быстрый и легкий для понимания: exim.
#7

Нашёл проблемы
1) Добавил юзверя
Код:
[root@asterisk ~]# cat /etc/postfix/users
sendfax OK

потом сделал postmap /etc/postfix/users
2) Потом верно заполнил транспорт, в примере на сайте ошибка, местами перпутанно хост и сервис
Код:
[root@asterisk ~]# cat /etc/postfix/transport | grep -v '#'
sendfax@sip.md.kz astfax:127.0.0.1

потом сделал postmap /etc/postfix/transport
3) Не туда внёс настройки запуска скрипта - сервис обработки писем, нужно в такое
Код:
[root@asterisk ~]# cat /etc/postfix/master.cf | grep -v '#'
..................................................................................
astfax unix - n n - 1 pipe
flags= user=asterisk argv=/usr/local/bin/email2fax

Не забыть перезапустить сервис. Теперь ставлю gs , кажеться это вот это http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl902.htm
#8

Ещё в скрипте переписал на абсолютные пути до gs и sendmail, а то этот баш скрипт их не ловил. Теперь имею вот такую радость...
Лог с email2fax:
Код:
email2fax v1.2beta started on Sunday, April 08 2012, at 11:56:26 with options:

/usr/local/bin/email2fax --debug --nofax

Variables used:

FAXMAIL: Asterisk FAX
LOGFILE: /var/log/asterisk/faxlog
VERSION: email2fax v1.2beta
TMPDIR: /tmp/email2fax
DATADIR: /tmp/email2fax/1333864586-239263404
EMAILFILE: /tmp/email2fax/1333864586-239263404/emailfile.eml
MESSAGEFILE: /tmp/email2fax/1333864586-239263404/message.txt
DATETIME: Sunday, April 08 2012, at 11:56:26

No e-mail message passed to email2fax, or message broken.
Removing old temporary files


Посмотрел ещё message.txt
Код:
[root@asterisk email2fax]# cat /tmp/email2fax/1333864586-239263404/message.txt
From: Asterisk FAX
To: h=To:Subject:MIME-Version:Message-Id:Date:Content-Type;
Subject: Fax problem

Dear sender,

The message you sent was broken or invalid.
Check if it had a proper attachment (must be one PDF or one TIFF attachment),
and if the fax number was correct, and try again.
If the problem persists, contact your administrator.

Fax number(s):
Date: Sunday, April 08 2012, at 11:56:26



Попробую tiff прицепить, ибо мыслей 0.
#9

Забедил поправил email2fax, так что бы оно работало, подправил поиск темы письма и кто и куда отправляет, из-за лишних строк, потом скину версию своего скрипта. Вот воткнул это [fax-tx] с http://asterisk-system.ru/asterisk/nastr ... aksov.html

Теперь вопрос, ибо пока что поиски не увенчались особым успехом сейчас, помогите советом, где взять консольный конвертор jpeg2tiff, bmp2tiff, png2tiff (думаю два последних найду, а вот первый ну ни как не получается), ещё хотят прямо *.doc отправлять, но там я понял нужно ставить openofficce, но там много что ещё хочется ставить на 900 метров , я так понял и гном, и можно как-то это без запуска X? Поставиться оно через yum, при этом не будет само по себе запускаться после установки, а то зачем X на сервере, не комильфо.

P.S.
Этим смогу победить графическую конвертацию
gs -v
GPL Ghostscript 9.02 (2011-03-30)
Copyright (C) 2010 Artifex Software, Inc. All rights reserved.
#10

Цитата:
Теперь вопрос, ибо пока что поиски не увенчались особым успехом сейчас, помогите советом, где взять консольный конвертор jpeg2tiff, bmp2tiff, png2tiff (думаю два последних найду, а вот первый ну ни как не получается)

ImageMagick не?
#11

Мне вот тоже вопрос doc2tiff или doc2pdf интересен Smile Без использования OpenOffice.
_________________
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru
#12

Решил проблему конвертации, установил ImageMagick, теперь JPEG, BMP, PNG будут с удовольствием конвертиться в ps.

Но тут стала проблема при конвертации из PS в tiff для отправки, получается плохо, качество очень падает
Код:
/usr/bin/convert $DATADIR/$ATTNAME $DATADIR/$ATTNAME.ps >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
cat $DATADIR/$ATTNAME.ps | /usr/local/bin/gs -q -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x196 -dNOPAUSE -sOutputFile=$DATADIR/$ATTNAME.tif - >>$LOGFILE

Вот это волшебное число менять ни как нельзя -r204x196, если поменять (умножив каждое на 2, а если удалить, то всё равно сделает а4, как и написанно, а по байтам размер файла будет совпадать, ну и по качеству) , то asterisk откажется передавать факс
Код:
-- Executing [s@ext-fax:5] ExecIf("Local/200402@outgoingfax-0498;2", "1?Set(FAXSTATUS="FAILED: error: Received a DCN while waiting for a DIS statusstr: Received a DCN while waiting for a DIS")") in new stack


Подскажите как на ёлку влезть и не ободрать? На принятиифакса качество не сильно падает, а вот на конвертации для отправки очень.

Added after 6 minutes:

s68 писал(а):
ImageMagick не?
Я о нём и не знал, пока друг не посоветовал... а там прямо одна радость, даже думать не надо, всё сам понимает.

Added after 2 minutes:

aven писал(а):
Мне вот тоже вопрос doc2tiff или doc2pdf интересен Smile Без использования OpenOffice.


В инете есть doc2html, гы а вот html2pdf можно уже поискать.... Хотя может кто и подскажет doc2tiff....

Added after 11 minutes:

Вот мой файлик немного правленый, для моего контекста, с принятием других форматов файлов, с абсолютными путями до gs и sendmail и convert, протестирова bmp и jpeg, png - ещё нужно смотреть, что там в заголовке письма. Так же разбор заголовков мало-мало переделан, что бы отлавливало начало строки, а то мусор в исходном файле попадался, и отрезал имя пользователя, а то если на русском, там кроказябли, и назад хорошо не приходило... а знания в этой теме нет.
#13

Как то удалось вывести гугол на чистую воду, вот на этом форуме нашёл
http://asteriskforum.ru/viewtopic.php?t=6131
Код:
fax_is_jpeg()
{
# Extract JPEG/BMP/PNG attachment
ATTNAME=`munpack -C "$DATADIR" "$EMAILFILE" | cut -f1 -d " "`
# Convert JPEG attachment to PS, and then to TIFF in a right format
# send an explanation if conversion wasn't successful
/usr/bin/convert $DATADIR/$ATTNAME $DATADIR/$ATTNAME.tif >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
convert -define quantum:polarity=min-is-white -rotate "90>" -density 204x196 -resize 1728x -compress Group4 -type bilevel -monochrome $DATADIR/$ATTNAME.tif $DATADIR/$ATTNAME.tif
[ $? -ne 0 ] && send_msg 1 && exit 1
}

Прямо по качеству земля и небо!
#14

Вот так получить лучше всего tif из pdf, сначала в tif, причём с хорошим качеством, чем больше качество тем дольше конвертиться, и если взять 1200, то серые тона потеряются и станет всё чёрным, опытным путём пришёл к 600. И что бы не потерять в качестве потом обрабатываю convert, если сразу convert из pdf в tif, там ужасные искажения букв, начинают плясать вниз вверх и т.д. и т.п. Может кому и пригодятся мои выводы, мне же чьи-то пригодились.

Код:

fax_is_pdf()
{
# Extract PDF attachment
ATTNAME=`munpack -C "$DATADIR" "$EMAILFILE" | cut -f1 -d " "`

# Convert PDF attachment to TIFF in a right format
# Send an explanation if conversion wasn't successful
cat $DATADIR/$ATTNAME | /usr/local/bin/gs -q -sDEVICE=tiffg3 -r600 -dNOPAUSE -sOutputFile=$DATADIR/$ATTNAME.tif - >>$LOGFILE
[ $? -ne 0 ] && send_msg 1 && exit 1
convert -define quantum:polarity=min-is-white -rotate "90>" -density 204x196 -resize 1728x -compress Group4 -type bilevel -monochrome $DATADIR/$ATTNAME.tif $DATADIR/$ATTNAME.tif
[ $? -ne 0 ] && send_msg 1 && exit 1

}
#15

всегда делал вот так и работало нормально и качество было ок
Код:
gs -q -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x196 -dNOPAUSE -sOutputFile=$TIFFDIR/$FAXNAME.tif -

_________________
нанотехнолигии в области Asterisk
#16

Слишком блекло получается. У меня по крайней мере...

Added after 2 hours 17 minutes:

Нашёл такой способ конвертации http://www.togaware.com/linux/survivor/Convert_MS_Word.html
По ссылке написано такое:
Цитата:
First, start up OpenOffice.org, perhaps as oowriter. Then, from the Tools menu, select Macros, Organize Macros, OpenOffice.org Basic. A window will popup. Navigate, in the Macro from area, to My Macros, Standard, Module1. Click on Edit to edit the Main module to include just the following code

На сколько я понял, нужно запустить под X-ми и уже править макрос, как выкручиваться под консолью?

Added after 1 hours 59 minutes:

Код:
https://github.com/mirkonasato/pyodconverter/blob/master/README.md

Рабочее решение, doc конвертит, X запускать не нужно.
#17

А docx ?
_________________
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru
#18

И его, единственное в тестовом документе с не понятном форматированием, он одну страницы разбил на две... но сиё не в моих силах, и я решил забить, как сконвертит, так сконвертит, по возможности потом опенофисе обновлю, когда новый будет, думаю станет лучше.. На буке с win 7 опен офис с docx иногда странно работает, ну а что поделать, думаю бесплатного 100%-ого решения нет.
#19

То, что косячит иногда это понятно, ничего не сделать с этим Sad
_________________
Gentoo Linux || Asterisk 13.1-cert2
Решения телефонии на базе Asterisk || http://it-need.ru
#20

Возможно глупый вопрос, где взять файл - sendfax_success.pl ,??
ну вот нету у меня его
#21

а почему никто не хочет заморочиться с cups2pdf ? По моему это самый правильный путь и самый простой, отправить факс/подготовить pdf монжно будет из любой софтины которая умеет отправлять документы на печать
_________________
Jabber конференция
сервер: conference.jabber.ru
комната: asterisk
#22

По вопросу CUPS2PDF - Нет предела совершенству.

По поводу sendfax_success (в прочем тоже самое по аналогии касается sendfax_failed)
Собственно вот, для немного переделанного скрипта email2fax.

sendfax_success.bash:

Код:
#!/bin/bash
#
#
# SENDAFAX SUCCESS SCRIPT
# Alexey A. Astashov
#
FROM=`cat $1 | grep From | sed s/"^Set: From= "//g`
TO=`cat $1 | grep To | sed s/"^Set: To="//g`
FILE=`cat $1 | grep File | sed s/"^Set: File="//g`
PATH=`cat $1 | grep PATH | sed s/"^Set: PATH="//g`LOGFILE=/var/log/asterisk/fax-success

MESSAGEFILE="$PATH/message-success.txt"

NEWSUBJECT="FAX to number $TO successfully sended"

FAXMAIL="asterisk@domain.com"

ASTERISKUSER=asterisk

DATETIME=`/bin/date +"%A, %B %d %Y, at %R:%S"`

VERSION="SENDFAX SUCCESS v0.0.2beta"

#Готовим письмо
/bin/cat h,n(failed),system(/var/lib/asterisk/agi-bin/fax/sendfax_failed.bash ${FINDATA})
exten => h,n(failed),Hangup()
exten => h,n(success),system(/var/lib/asterisk/agi-bin/fax/sendfax_success.bash ${FINDATA})


тогда запрос будет приходить следующего формата:

Executing [h@fax-tx:4] System("SIP/to-mycontext-00000000", "/var/lib/asterisk/agi-bin/fax/sendfax_success.bash /tmp/email2fax/1339602092-778645992/fax-1339602093-153095079.call.copy") in new stack



где FINDATA и есть "Set: FINDATA="

Где собственно номер: 11111111111 – этот тот самый номер на котрый идет отправка факса.

Изменения в файле email2fax:
Код:
# Create a .call file for asterisk
FAXDATE=`date +%s-%N`
cat
#23

Сделали новую версию email2fax собственно назвали v1.10 Smile В новой версии включена поддержка русского языка, теперь все сообщения приходят на русском языке, даже если вы отправили файл с русским именем, теперь в отчете будет понятно что именно было доставлено в конечно итоге. Единственное потребуется для работы программы установить в систему base64 и qprint соответственно.
в общем-то пользуйтесь.
senfax_success.bash и sendfax_failed.bash прилагается, для них потребуется наличие iconv.
#24

Clap 2
#25

Новая версия модуля email2fax 1.30beta

Изменения:
1. Теперь полностью на русском языке, в том числе и тема в сообщениях
2. Время и дата в отправленных факсах также выводятся по русски
3. Добавлена опция идентификации номера факса для CDR
4. Добавлена информация об отправляемом/отправленном файле по факсу - в ответных письмах по email.
5. Немного переработа extension_custom.conf - добавлена опция оповещения принимающую сторону фразой "Примите пожалуйста факс" 2 раза подряд (файл имеется).

6. В состав включен php модуль для FreePBX 2.11, в том числе и модуль хелпера email (добавлено return $str; для отмены автоматического перевода строки, ибо freepbx с юникодом не дружит и длинные строки разбиваются), т.е. теперь и на входящих факсах для удобства письма по email приходят по русски.

-------
P.S. Если кто поможет дописать диалплан таким образом, чтобы система определеляла тип сигнала со стороны которая ответила и если это не факс, только тогда проигрывать сообщение - "примите пожалуйста факс", былобы круто, а то сейчас система полюбому сначала говорит в линию это сообщение.
#26

А как собственно добавить модуль в FreePBX 2.11 , через Module Admin добавляю , получаю сообщение You need to enable the module using local module administration to make it available , но во вкладке Module Admin он не показан . Что собственно не так сделано ?
Спасибо .