Разберем возможность отправки факсов с сервера Asterisk. Статья не полная т.к. я ее в свое время не дописал , а теперь не помню что вообще делал 🙁 (будет случай когда надо будет поднять факс, допишу)
План действий такой:
— Установка сетевого виртуального принтера cups-pdf на сервер
— Для использования виртуального принтера, установить samba (годная статья про samba)
Устанавливаем принтер cups-pdf
Устанавливаем samba
Переименуем оригинальный конфигурационный файл samba
Создадим новый конфигурационный файл samba
Добавим следующие параметры
server string = %h server (Samba, Ubuntu)
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
server role = standalone server
workgroup = WORKGROUP
security = user
map to guest = bad user
usershare allow guests = yes
#printing = cups
#printcap name = /etc/printcap
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700
Данная конфигурация позволит нам подключаться к серверу без ввода логина и пароля
Перезагрузим сервис samba
Подключимся к серверу samba и посмотрим что у нас получилось, по итогам должен появится принтер pdf
Подключаем себе этот принтер, подойдут любые драйвера поддерживающие PostScript, в моем случае подошли HP Color LaserJet 2700 PS Class Driver.
Проверим есть ли печать, после отправки документа на этот принтер, в домашней директории на сервере, должен появится PDF файл, с посланным содержанием.
Теперь не плохо бы данный PDF файл отредактировать в TIFF формат. Для этого отконфигурируем файл cups-pdf.conf
Отыщем и подправим следующие строки на следующее содержание
AnonDirName /var/spool/cups-pdf
Spool /var/spool/cups-pdf
Так же, нам потребуется перевести PDF файл в TIFF, для этого следует изменить следующую строку.
Создадим сам скрипт
Добавим в него следующие строки (по своему усмотрению можете расширить этот функционал, я делал урезанную версию только чтобы заработало)
$1 #сюда получаем первый параметр а это путь нашего
/usr/bin/gs -dSAFER -dBATCH -dQUIET -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x196 -dNOPAUSE -sOutputFile=/var/spool/cups-pdf/outfax.tiff $1
Сделаем наш скрипт исполняемым
Перезапустим службу CUPS
…
Тут статья обрывается и скорей всего я что-то еще не дописал.
Например экстейшен отправки факса из Asterisk, я представлю его ниже. Факс должен быть в формате tiff.
exten => send,1,NoOp(------------------- FAX from ${CALLERID(number)} ------------------)
same => n,Wait(1)
same => n,Set(DT=${TIMESTAMP}-${CALLERIDNUM}-${UNIQUEID})
same => n,Set(FAXOPT(headerinfo)=Received by ${CALLERID(number)} ${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
;same => n,Set(FAXOPT(localstationid)=Name)
;same => n,Set(FAXOPT(maxrate)=14400)
;same => n,Set(FAXOPT(minrate)=2400)
same => n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
same => n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
same => n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
same => n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
same => n,NoOp(**** RECEIVING FAX : ${DT} ****)
same => n,SendFAX(/var/spool/cups-pdf/faxout.tiff,d)
same => n,NoOp(${FAXSTATUS})
same => n,NoOp(number is ${CALLERID(number)})
same => n,System(sendEmail -f fax@fax.fax -t info@gars.pro -u 'Fax отправлен' -o message-charset=utf-8 -m 'Номер:${CALLERID(number)}\nStatus:${FAXSTATUS}' -s localhost -l /var/log/fax.log)
same => n,HangUp()