Pull to refresh

Отправка факсов из User Panel во FreePBX

Reading time4 min
Views28K
Привет, хабр!


Электронная почта давно является основным способом обмена документами. Но после того, как я заменил во многих организациях в моем городе старые сименсы и панасы на Asterisk PBX, сталкивался с нежеланием отказываться от факсов(особенно в бюджетных организациях), и понятно — это быстрее и проще для сотрудника, чем возиться со сканером. Так как астер они ставили в основном вследствие расширения штата и с желанием сэкономить, то факсы для новых сотрудников необходимо также виртуализировать. С приемом факса на e-mail проблем возникнуть не должно, с простым и бесплатным способом отправки пришлось поломать голову.

На просторах интернета нашел простой способ отправки факса через веб-интерфейс FreePBX. Несложно настроить, работает на ура. Для активного использования факсов в крупном офисе вряд ли подойдет, но для небольшого офиса с небольшим факсовым трафиком или для новичков в астере или *nix — в самый раз.

Мы имеем виртуальную машина в небольшом офисе с Ubuntu 12.04 на борту. Установлен Asterisk 11 + FreePBX 2.11. Логинимся по ssh на сервер и приступаем.

1. Устанавливаем модуль факса. Также можно использовать модуль spandsp, в нем нет ограничений, напоминает нам Malamut, тогда этот пункт можно пропустить

Регистрируемся на сайте Digium, идем на страницу модуля, жмем «Get 1 Free license» оформляем заказ, ждем письмо с кодом.
Отсюда скачиваем утилиту для регистрации нашего модуля, кладем в /tmp, отмечаем выполнение для владельца и запускаем.

cd /tmp
wget http://downloads.digium.com/pub/register/x86-32/register
chmod 500 register 
./register

Вы увидите текстовое меню с приглашением для ввода:

Digium Product Registration - Version 3.0.5
Copyright (C) 2004-2007, Digium, Inc.
Use the '-l' option to see license information for software
included in this program.

Please select a category

1 - Digium Products
2 - Cepstral Products

0 - Quit

Your Choice: 

Выбираем 1, затем 9, вводите ключ, который пришел на почту, соглашаетесь и заполняете данные.
Сам модуль берем тут, выбираем версию под свой сервер, забираем по ссылке внизу, распаковываем и кладем res_fax_digium.so в ваш ${ASTMODDIR}. Например, у меня

cd /tmp
wget http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-11.0/x86-64/res_fax_digium-11.0_1.3.1-generic_64.tar.gz
tar -xvf res_fax_digium*
cd res_fax_digium*
cp res_fax_digium.so /usr/lib/asterisk/modules/

2. Скачаем нужные нам файлы и распакуем их во временный каталог.

cd /tmp && wget http://faxgui-ari-module.googlecode.com/files/faxgui-ari-module.tar.gz && tar xvf faxgui-ari-module.tar.gz

3. Копируем все на свои места и устаналиваем права.

cp faxgui-ari-module/sendfax.module /var/www/recordings/modules/ # проверьте ваш параметр %AMPROOT%
cp faxgui-ari-module/sendfaxnotify.php /var/lib/asterisk/bin/  # проверьте ваш параметр ${ASTVARLIBDIR}
chown asterisk:asterisk /var/www/recordings/modules/sendfax.module
chown asterisk:asterisk /var/lib/asterisk/bin/sendfaxnotify.php
dos2unix /var/lib/asterisk/bin/sendfaxnotify.php # перекодировка файла, установите пакет dos2unix

3. Создаем контекст для исходящих факсов в файле /etc/asterisk/extensions_custom.conf.


[outboundfax]
exten => s,1,Set(FAXOPT(filename)=${FAXFILE})
exten => s,n,Set(FAXOPT(ecm)=yes)
exten => s,n,Set(FAXOPT(headerinfo)=${FAXHEADER})
exten => s,n,Set(FAXOPT(localstationid)=${LOCALID})
exten => s,n,Set(FAXOPT(maxrate)=14400)
exten => s,n,Set(FAXOPT(minrate)=2400)
exten => s,n,SendFAX(${FAXFILE},d)
exten => s,n,System(${ASTVARLIBDIR}/bin/sendfaxnotify.php INIT "${EMAIL}" "${DESTINATION}" "${TIMESTAMP}" "NO_STATUS" "NO_PAGES")
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => h,n,NoOp(FaxStatus : ${FAXSTATUS})
exten => h,n,NoOp(FaxStatusString : ${FAXSTATUSSTRING})
exten => h,n,NoOp(FaxError : ${FAXERROR})
exten => h,n,NoOp(RemoteStationID : ${REMOTESTATIONID})
exten => h,n,NoOp(FaxPages : ${FAXPAGES})
exten => h,n,NoOp(FaxBitRate : ${FAXBITRATE})
exten => h,n,NoOp(FaxResolution : ${FAXRESOLUTION})
exten => h,n,System(${ASTVARLIBDIR}/bin/sendfaxnotify.php NOTIFY "${EMAIL}" "${DESTINATION}" "${TIMESTAMP}" "${FAXSTATUSSTRING}" "${FAXPAGES}")
; end of outboundfax context

3. Перезапуск и проверка.

amportal restart

Идем в User Panel нашего сервера, ip_aster/recordings, входим под любым пользователем, вводим пароль от голосовой почты. Слева появился пункт Send Fax. Проверяем отправку.



Для удобства и скорости обучения пользователей я отметил алгоритм отправки цифрами, так намного понятнее.

Вот и все, надеюсь, мой пост помог кому-либо с настройкой VoIP-сервера.
В будущем планирую регулярно описывать такие небольшие и тонкие моменты с настройкой.

При написании статьи были использованы материалы:

hiousi.tumblr.com/post/2745684940/a-freepbx-ari-module-to-send-fax-from-the-user-portal
trentdev.blogspot.ru/2013/04/send-fax-using-asteriskfreepbx-with.html
www.digium.com/en/products/software/fax-for-asterisk
wiki.freepbx.org/display/ST/Faxing+and+T38

Небольшое дополнение
Сейчас настраивал отправку клиенту по своему мануалу, вспомнил еще несколько моментов.

1. Для поддежки PDF установите пакет ghostscript

aptitude install ghostscript # мой случай


2. Не забудьте про опции в sip.conf, либо в веб-интерфейсе

t38pt_udptl=yes,redundancy,maxdatagram=400
faxdetect=no


3. При проверке посмотрите лицензию в CLI

fax show licenses


Не регистрируйте несколько ключей на 1 ящик, чревато дальнейшей невалидностью
Tags:
Hubs:
Total votes 15: ↑15 and ↓0+15
Comments8

Articles