Back to the article Lynks - Поддержка факсов T.38 в TBE Embedded, IP телефония и телефоны, цифровые мини IP АТС и VoIP на основе Asterisk

Поддержка факсов T.38 в TBE Embedded

Все, кто работал с IP телефонией вообще и с Asterisk в частности знают, что необходимость обеспечить надежную передачу факсов по VoIP может надолго испортить настроение. Факс, как технология, весьма чувствительна к неравномерностям и задержкам в передаче голоса, что в TDM сетях доставляет немало хлопот, а уж в пакетных сетях – подавно. В локальной сети с минимальными расстояниями и задержками факсы исправно ходят из городских аналоговых линий и обратно по протоколу SIP с использованием кодека G.711 (без сжатия), однако когда идет речь о передаче на дальние расстояния, например, через провайдера IP телефонии, то появляется серьезная проблема: большие задержки не дают возможности начать передачу двум аппаратам.

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

Однако эта идиллия омрачается неполной поддержкой T.38 в сервере Asterisk: в версии 1.4 возможно только прозрачное пропускание факсовых пакетов без возможности терминации и преобразования. На деле это создает такие ограничения в передаче факса по схемам:

 [FAX]==sip.t38==>[Asterisk]==>Email
 [FAX]==sip.t38==>[Asterisk]==>TDM (E1)
 [FAX]==sip.t38==>[Asterisk]==sip==>[FAX]

В большинстве случаев это не создает помех, однако теряется удобная функция факс-сервера.

Пакет Attrafax

Существует несколько решений, но лишь одно из них можно назвать достаточным для практического применения. Речь идет о пакете Attrafax, который недавно стал открытым и бесплатным для всех. Уникальный продукт добавляет поддержку терминации T.30, T.38, а также преобразования TDM<=>SIP_T.38. Поддерживаемые стандарты:

  • ITU-V V.21 V.27ter V.29 V.17
  • V.27ter (2400 and 4800bps)
  • V.29 (7200 and 9600bps)
  • V.17 (7200, 9600, 12000 and 14400bps)
  • ITU-T T.4 T.30

Установка

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

 #перейдем в каталог обновлений
 cd  /flash/sysconfig/updates/
 #скачаем пакет
 wget http://lynks.ru/file_download/24/updateb-20100910.tgz
 #перезагрузим систему
 reboot

После перезагрузки можно проверить наличие дополнительных приложений из пакета Attrafax:

 asterisk -rx "show application TXFAX_T38P" 

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

Использование

Использование весьма просто: необходимо включить несколько опций в конфигурационных файлах:

 udptl.conf 
 T38FaxUdpEC = t38UDPRedundancy  

zapata.conf faxdetect = both sip.conf t38pt_udptl = yes

Также в системе появляется несколько приложений для работы с факсами:

  • RXFAX_T30: T.30 прием факса в файл
  • RXFAX_T38: T.38 прием факса в файл
  • RXFAX_T38P: T.38 прием факса в файл с таймингом от ZAP устройств
  • TXFAX_T30: T.30 передача факса из файла
  • TXFAX_T38: T.38 передача факса из файла
  • TXFAX_T38P: T.38 fax передача факса из файла с таймингом от ZAP устройств

Приложения T30 применяется для приема/передачи факсов через ZAPTEL устройства, такие как FXO/FXS порты и каналы E1. Приложения T38 предназначены для приема факсов из SIP каналов по протоколу Т.38. Дополнительно есть приложения, использующие тайминг ZAPTEL платы для синхронизации, что в некоторых случаях может дать существенное улучшение качества приема и отправки. К сожалению приложения Т30 плохо принимают и отправляют факсы по SIP каналу через кодек без сжатия, т.е. в режиме Т.30, но для этого можно использовать встроенное в Asterisk rxfax/txfax или iaxmodem.

Все приложения приема должны предварять инструкция Answer() для перевода вызова в отвеченное состояние:

 [sip-in]
 exten => 123,1,Answer()
 exten => 123,n,RXFAX_T38P(/tmp/input_file.tiff,123456)
 exten => 123,n,Noop(Fax status is ${FAXSTATUS}, number of pages ${PAGENUM)
После приема факса и сохранения файла его нужно преобразовать с помощью программы fax2tiff например вот так:
 fax2tiff -3 -1 -o output_file.tiff input_file.g3

Дополнительную информацию можно найти в файле AttraFaxUserGuide.txt .
Сайт разработчика: http://www.zoiper.com/foip/
Обсуждение пакета Attrafax: http://asteriskforum.ru/viewtopic.php?t=5943

  • 24/09/10
  • 0
  • Оценка: 2.39/5, голосов: 718

Комментарии

Оставить комментарий

Статьи

Корзина (0)

Корзина

Корзина пуста

Последние новости