Архив за месяц: Декабрь 2019

Asterisk отправка факса.

Разберем возможность отправки факсов с сервера Asterisk. Статья не полная т.к. я ее в свое время не дописал , а теперь не помню что вообще делал 🙁 (будет случай когда надо будет поднять факс, допишу)
План действий такой:
— Установка сетевого виртуального принтера cups-pdf на сервер
— Для использования виртуального принтера, установить samba (годная статья про samba)

Устанавливаем принтер cups-pdf

sudo apt-get install cups-pdf

Устанавливаем samba

sudo apt-get install samba

Переименуем оригинальный конфигурационный файл samba

 mv /etc/samba/smb.conf /etc/samba/backup_smb.conf

Создадим новый конфигурационный файл samba

nano /etc/samba/smb.conf

Добавим следующие параметры

[global]

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

 sudo service smbd restart && service nmbd restart

Подключимся к серверу samba и посмотрим что у нас получилось, по итогам должен появится принтер pdf
Подключаем себе этот принтер, подойдут любые драйвера поддерживающие PostScript, в моем случае подошли HP Color LaserJet 2700 PS Class Driver.
Проверим есть ли печать, после отправки документа на этот принтер, в домашней директории на сервере, должен появится PDF файл, с посланным содержанием.
Теперь не плохо бы данный PDF файл отредактировать в TIFF формат. Для этого отконфигурируем файл cups-pdf.conf

nano /etc/cups/cups-pdf.conf

Отыщем и подправим следующие строки на следующее содержание

Out /var/spool/cups-pdf
AnonDirName /var/spool/cups-pdf
Spool /var/spool/cups-pdf

Так же, нам потребуется перевести PDF файл в TIFF, для этого следует изменить следующую строку.

PostProcessing /bin/bash /var/spool/cups-pdf/pdf_to_tifof.sh

Создадим сам скрипт

sudo nano /var/spool/cups-pdf/pdf_to_tifof.sh

Добавим в него следующие строки (по своему усмотрению можете расширить этот функционал, я делал урезанную версию только чтобы заработало)

#!/bin/sh
$1 #сюда получаем первый параметр а это путь нашего
/usr/bin/gs -dSAFER -dBATCH -dQUIET -sDEVICE=tiffg3 -sPAPERSIZE=a4 -r204x196 -dNOPAUSE -sOutputFile=/var/spool/cups-pdf/outfax.tiff $1

Сделаем наш скрипт исполняемым

sudo chmod +x /var/spool/cups-pdf/pdf_to_tifof

Перезапустим службу CUPS

sudo /etc/init.d/cups restart

Тут статья обрывается и скорей всего я что-то еще не дописал.

Например экстейшен отправки факса из Asterisk, я представлю его ниже. Факс должен быть в формате tiff.

[fax-tx]
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()