Вход:  Пароль:  
FreeSource: Asterisk/Настройка/Факс ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

FAX и Asterisk

Введение

В этой заметке я описываю технологии, о практической полезности которых мне точно известно и которые были опробованы мною (всё касаемо SIP), а также найденная мной информация, которая пока не была опробована на практике (всё касаемо Zap).


Основная часть функциональности, требуемой для приёма и передачи факса в Asterisk требует, во-первых библиотеки spandsp, и во-вторых – отдельных приложений Asterisk, его использующих. Они собственно и содержат команды 'rxFax' и 'txFax'.


Кроме того в коде Asterisk уже есть код, достаточный для автоматического определения сигналов вызывающего факса. К сожалению этот код на настоящий момент вызывается только из chan_zap, посему автоопределение факса работает только с физическими линиями (платы от Digium, а также, например, плата Sangoma
E1).

FAX через Zap channels

Сразу после выполнения команды Answer на ZAP-интерфейсах начинает выполняться код, автоматически определяющий тоновый сигнал вызывающего факса. При обнаружении выполнение передаётся на extension 'fax', если он существует.


В остальном приём факсов через Zap-каналы ничем не отличается от приёма через SIP (за исключением того, что по E1, разумеется, качество будет выше). И проблем с настройкой и выбором кодеков нет :)

FAX через SIP channels

В настоящий момент для приёма факсов в Asterisk через SIP существует только один способ: в аппаратном шлюзе при прохождении факса должны быть полностью отключены VAD и подавление эха, и должен быть установлен кодек G.711.


К сожалению протокол T.38 до сих пор не поддерживается.

spandsp

spandsp это специализированная библиотека, содержащая весь необходимый код для приёма и передачи факсов. В некотором роде программный эмулятор факса.


Эта библиотека необходима для сборки app_rxfax и app_txfax.

Приём факса

После сборки и установки app_rxfax и app_txfax в Asterisk добавляется две новых команды — rxFax и txFax. Обе принимают один единственный параметр — название файла.


Я рекомендую делать это название уникальным (используя соответствующие переменные Asterisk), чтобы не иметь проблем при одновременном приёме нескольких факсов.

Просмотр факса

Принятый tiff-файл будет иметь разную плотность по вертикали и по горизонтали, поэтому большинство обычных просмотрщиков покажут его сжатым по вертикали.


Можно либо воспользоваться специализироваными программами для просмотра факсов, либо просто сконвертировать принятый tiff в pdf или Post Script?, с помощью
утилит из libtiff-utils.


При просмотре факсов в Gimp необходимо отключить в меню 'View' параметр 'Dot for dot'.

Обработка факса утилитами из libtiff-utils

tiffinfo — покажет всю информацию из заголовка документа


tiff2ps — сконвертирует в Post Script?. Я рекомендую использовать её как минимум с параметром '-2', иначе получившийся Post Script? будет неприлично большим, а также '-a', для обработки многостраничных факсов.


tiff2pdf — конвертирование в PDF-формат. Наиболее удобный для пользователя формат просмотра факсов. Я предпочитаю использовать с ключами '-p a4 -z'.

Особенности

Восьмибайтные tiff-файлы

Если факс не прошёл, то создаётся tiff-файл длиной 8 байт. Естественно если он обрабатывается каким-либо скриптом, разумнее всего не пытаться этот файл конвертировать и отсылать получателю.


В моём скрипте я не отсылаю даже уведомления о плохо прошедших факсах.


При желании можно обрабатывать этот случай отдельно, и посылать уведомление вида «факс с номера <...> пытались отправить, но он не прошёл».

Грабли


Thanks To

Nickolay Kondrashov <knu coбaka avtomatikarus.com> за активную помощь в написании этой статьи


Страницы, ссылающиеся на данную: Asterisk/Команды/NVBackgroundDetect



 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]