Как организовать работу с факсом на IP АТС Asterisk? На каком уровне находится реализация поддержки работы с факсами в системах IP-телефонии в целом. И нужна ли вообще передача факсов в VoIP-сетях? Если IP-инфраструктура уже существует, то не проще ли в данном случае использовать что-то другое, например e-mail?
По меньшей мере, одна из «приятных» для делопроизводства функций присутствует. Не секрет, что многие предприятия еще используют то что называется — «факсо-граммы», или что то в этом роде. Объем данной информации может быть значительный(копии платежек,подписание договоров, срочное извещения о совещании, «прайсы», счета …), для чего иногда выделяют не один факс. Всю эту «кипу документов» необходимо принять, зарегистрировать, перевести в электронный вид и присоединить в виде файла к регистрационной записи в базе делопроизводства. В этот момент заканчивается термобумага или тонер в картридже, а стоимость рулончиков для факса на месяц приводит «главбуха» в ужас…
Кроме того, Президент РФ Дмитрий Медведев предложил в обязательном порядке проверять госслужащих на компьютерную грамотность при их аттестации и заявил, что электронный документооборот между органами власти должен стать реальностью уже к 2010 году.
Если Ваши партнеры еще не используют электронный документооборот, как Вы догадываетесь, на помощь приходит Asterisk. 🙂
Если быть точнее — Fax For Asterisk. Это коммерческое решение от Digium. Fax For Asterisk состоит из двух компонентов res_fax и res_fax_digium. Res_fax обеспечивает взаимодействие с Asterisk, а res_fax_digium -функционал факс-модема — V.21, V.27ter, V.29, и V.17 — на скорости до 14400bps.
Fax For Asterisk позволяет передавать и принимать факсы через TDM каналы и IP с использованием кодека G.711 (64 кВ), а затем сохранять в формате TIFF. Используем — Free Fax For Asterisk, бесплатный продукт от Digium с лицензией на 1 факс.
Для получения лицензионного ключа необходимо:
- зарегистрироваться на сайте производителя,
- выбрать в магазине Free Fax For Asterisk,
- получить по почте ключ.
Установка проходит в несколько этапов:
- загрузить (http://downloads.digium.com/pub/register) и выполнить утилиту ‘register’ для формирования лицензионного файла
- загрузить (http://downloads.digium.com/pub/telephony/fax/benchfax) и выполнить утилиту ‘benchfax‘ для выбора оптимального модуля под конкретную производительность Вашего сервера
- Использовать web-утилиту(http://www.digium.com/en/docs/FAX/faa-download.php) ‘Fax Selector‘ для загрузки необходимых пакетов
- загрузить и инсталлировать модуль ‘res_fax‘
- загрузить и инсталлировать модуль ‘res_fax_digium‘
Процедура инсталляции:
# cd /root
# wget http://downloads.digium.com/pub/register/x86-32/register
# chmod 500 /root/register
# /root/register
# wget http://downloads.digium.com/pub/telephony/fax/benchfax/x86-32/benchfax-1.1.0-x86_32 -O benchfax
# chmod 500 /root/benchfax
# /root/benchfax
# wget http://downloads.digium.com/pub/telephony/fax/res_fax/asterisk-1.6.0.14/x86-32/res_fax-1.6.0.14_1.1.6-x86_32.tar.gz
# tar xzvf res_fax-1.6.0.14_1.1.6-x86_32.tar.gz
# cp /root/res_fax-1.6.0.14_1.1.6-x86_32/res_fax.so /usr/lib/asterisk/modules
# wget http://downloads.digium.com/pub/telephony/fax/res_fax_digium/asterisk-1.6.0.14/x86-32/res_fax_digium-1.6.0.14_1.1.6-pentium4m_32.tar.gz
# tar xzvf res_fax_digium-1.6.0.14_1.1.6-pentium4m_32.tar.gz
# cp /root/res_fax_digium-1.6.0.14_1.1.6-pentium4m_32/res_fax_digium.so /usr/lib/asterisk/modules
# asterisk -rx "restart now"
В двух словах- формируем лицензию, получаем модули, размещаем в директории — /usr/lib/asterisk/modules. Проверяем — fax show stats:
Поддерживаемые команды:
- «fax show capabilities»
- «fax show hostid»
- «fax show licenses»
- «fax show session»
- «fax show sessions»
- «fax show stats»
- «fax show version»
Если все в порядке, переходим к плану набора. Если пришел факс обрабатываем его в контексте [fax-rx].
- exten => fax,1,Goto(fax-rx,receive,1)
и соответственно
- exten => receive,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
- exten => receive,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
- exten => receive,n,Set(FAXFILE=fax-${FAXCOUNT}-rx.tif)
Подсчитываем количество принятых факсов, номер используем в названии сохраняемого файла. В данном фрагменте все зависит от Вашей фантазии — как формировать название файла.
- exten => receive,n,Set(FAXOPT(ecm)=yes)
- exten => receive,n,Set(FAXOPT(headerinfo)=MY FAXBACK RX)
- exten => receive,n,Set(FAXOPT(localstationid)=1234567890)
- exten => receive,n,Set(FAXOPT(maxrate)=14400)
- exten => receive,n,Set(FAXOPT(minrate)=2400)
Устанавливаем опции для приложения — ReceiveFAX.
- Maxrate, minrate — минимальная и максимальная скорость передачи.
- Ecm =yes — включаем корректор ошибок.
- Headerinfo -заголовок факса.
- Localstationid — локальный идентификатор (идентификация отправителя).
Сама функция приема факса и сохранения принятого файла.
- exten => receive,n,ReceiveFAX(/var/spool/asterisk/fax/${FAXFILE})
Вот и все. Осталось определиться с директорией где будут сохраняться документы. Хотя давайте автоматически отправим принятый факс на электронную почту. Дополним контекст [fax-rx].
- exten => receive,n,System(echo «Принят факс» | mailx -s «fax» -a /var/spool/asterisk/fax/*.tif user@user_mail.ru)
- exten => receive,n,System(rm /var/spool/asterisk/fax/*.tif)
Теперь после приема факса, документ будет отправлен на электронную почту пользователя. При желании можно вызвать выполнение сценария AGI и записать файл сразу в базу данных…