Отправка факсов из User Panel во FreePBX
Электронная почта давно является основным способом обмена документами. Но после того, как я заменил во многих организациях в моем городе старые сименсы и панасы на Asterisk PBX, сталкивался с нежеланием отказываться от факсов(особенно в бюджетных организациях), и понятно — это быстрее и проще для сотрудника, чем возиться со сканером. Так как астер они ставили в основном вследствие расширения штата и с желанием сэкономить, то факсы для новых сотрудников необходимо также виртуализировать. С приемом факса на e-mail проблем возникнуть не должно, с простым и бесплатным способом отправки пришлось поломать голову.
На просторах интернета нашел простой способ отправки факса через веб-интерфейс FreePBX. Несложно настроить, работает на ура. Для активного использования факсов в крупном офисе вряд ли подойдет, но для небольшого офиса с небольшим факсовым трафиком или для новичков в астере или *nix — в самый раз.
Мы имеем виртуальную машина в небольшом офисе с Ubuntu 12.04 на борту. Установлен Asterisk 11 + FreePBX 2.11. Логинимся по ssh на сервер и приступаем.
1. Устанавливаем модуль факса. Также можно использовать модуль spandsp, в нем нет ограничений
Регистрируемся на сайте 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
4. Создаем контекст для исходящих факсов в файле /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
5. Перезапуск и проверка.
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 ящик, чревато дальнейшей невалидностью