Страница 1 из 1

Проблемы с приемом факса

Добавлено: 26 июн 2014, 15:37
alex-chipmunk
Всем хорошего настроения!

Принесли значит факс и приказали подключить, подключили, не работает.

Имеем следующую схему:

Провайдер МТТ(http://www.mtt.ru) --> Asterisk ver: 1.8.20.0 --> Cisco SPA112 --> FAX Panasonic KX-FL423
МТТ поддерживает протоколы: SIP, H.323; кодеки: G.711a, G.711u, G.729, G.723;

Так как явно не указано, что провайдер поддерживает кодек T.38 отключили его, в надежде, что по дефолту подключится G.711.

Код: Выделить всё

[root@ATS asterisk]# cat /etc/asterisk/sip_general_custom.conf
t38pt_udptl=no
t38pt_rtp=no
t38pt_tcp=no 
В итоге получили вот такую конфигурацию:

Код: Выделить всё

[root@ATS asterisk]# asterisk -rx 'sip show settings' | grep T.38
  T.38 support:           No
  T.38 EC mode:           Unknown
  T.38 MaxDtgrm:          -1


[root@ATS asterisk]# asterisk -rx 'core show codecs' | grep G.711
                  4 (1 <<  2)                (0x4)  audio       ulaw   (G.711 u-law)
                  8 (1 <<  3)                (0x8)  audio       alaw   (G.711 A-law)
    140737488355328 (1 << 47)     (0x800000000000)  audio    testlaw   (G.711 test-law)


[root@ATS asterisk]# asterisk -rx "module show like fax"
Module                         Description                              Use Count 
res_fax.so                     Generic FAX Applications                 1         
res_fax_spandsp.so             Spandsp G.711 and T.38 FAX Technologies  0         
2 modules loaded
Настройки cisco-112:

SIP configuration:
RTP-Start-Loopback Codec: G.711a
G711a Codec Name: PCMA

Line configuration:
post-144-0-45135400-1403779272.png
В итоге когда нам с любого городского номера отправляют факс, то факс начинает приниматься и секунд через 8 сбрасывается.

Если нужны будут логи sip debug с пакетами INVITE, то могу приложить.


Пытались принять на софтовый факс по схеме:

Провайдер МТТ --> Asterisk ver: 1.8.20.0 --> Ext 1000 (на него настроен hylafax iaxmodem). Модем настроен по инструкции ttp://www.sipring.ru/overview/asterisk-hylafa ... tears.html

Но так же увенчались неуспехом.

Пытались отправить внутри Asterisk’а, по схеме:

hylafax → Asterisk ver: 1.8.20.0 → Cisco SPA112 → FAX Panasonic KX-FL423
При отправке с софтового факса, прямо из Elastix, на железный(не выходя на провайдера) факс проходит.

Re: Проблемы с приемом факса

Добавлено: 26 июн 2014, 15:51
ded
Если у вас есть

Код: Выделить всё

-rx "module show like fax"
Module                         Description                              Use Count
res_fax.so                     Generic FAX Applications                 1         
то не пытайтесь решить сразу сложную задачу из двух плеч
Провайдер МТТ(http://www.mtt.ru) --> Asterisk ver: 1.8.20.0 --> Cisco SPA112 --> FAX Panasonic KX-FL423
попробуйте принять факс в файл (который можно потом распечатать!) самим Астериском с помощью приложения Generic FAX Applications
Провайдер МТТ(http://www.mtt.ru) --> Asterisk ver: 1.8.20.0
iaxmodem в этом плече вообще не нужен.

Код: Выделить всё

*CLI> core show application ReceiveFAX 

  -= Info about application 'ReceiveFAX' =- 

[Synopsis]
Receive a FAX and save as a TIFF/F file. 

[Description]
This application is provided by res_fax, which is a FAX technology agnostic
module                          that utilizes FAX technology resource modules to complete a FAX
transmission.
Session arguments can be set by the FAXOPT function and to check results
of the ReceiveFax() application.

[Syntax]
ReceiveFAX(filename[,options])

[Arguments]
options
    d: Enable FAX debugging.

    f: Allow audio fallback FAX transfer on T.38 capable channels.

    s: Send progress Manager events (overrides statusevents setting in
    res_fax.conf).

Re: Проблемы с приемом факса

Добавлено: 26 июн 2014, 17:28
alex-chipmunk
Спасибо, попробуем, о результатах отпишемся чуть позже.

Re: Проблемы с приемом факса

Добавлено: 01 июл 2014, 20:04
alex-chipmunk
Поступили по вашему совету, разбили задачу на несколько маленьких:

1. Попробовали принять факс в файл самим Астериском. По схеме: Провайдер МТТ --> Asterisk ver: 1.8.20.0. Принять не удалось, после чего позвонили провайдеру SIP, что бы уточнить действительно ли они поддерживают кодек G.711 для работы с факсом, на что они ответили, что для отправки/приема факса используют кодек T.38. Включили T.38 по протоколу UDPTL, все прекрасно заработало, факс принимался Астериском в виде файликов, дописали ещё отправку на почту как временный вариант.
Может ещё кому-то понадобится, использовали вот такой диал план:

Код: Выделить всё

exten => 20,1,NoOp(-------------------Call from ${CALLERID(number)} to ${EXTEN}------------------)
exten => 20,n,Goto(fax-rx,receive,1)

[fax-rx]
exten => receive,1,NoOp(**** FAX RECEIVE ****)
exten => receive,n,Set(FAXFILE=${ASTSPOOLDIR}/fax/fax-${STRFTIME(${EPOCH},,%Y%m%d-%H%M)}-rx.tif)
exten => receive,n,Set(PDFFILE=${ASTSPOOLDIR}/fax/fax-${STRFTIME(${EPOCH},,%Y%m%d-%H%M)}-rx.pdf)
exten => receive,n,Set(FAX_RX_EMAIL=******@gmail.com)
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNUM)=${CALLERID(num)})
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNAME)=${CALLERID(name)})
exten => receive,n,NoOp(**** SETTING FAXOPT ****)
exten => receive,n,Set(FAXOPT(ecm)=yes)
exten => receive,n,Set(FAXOPT(headerinfo)=RTK FAX RX)
exten => receive,n,Set(FAXOPT(localstationid)=********)
exten => receive,n,Set(FAXOPT(maxrate)=14400)
exten => receive,n,Set(FAXOPT(minrate)=2400)
exten => receive,n,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => receive,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => receive,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => receive,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => receive,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => receive,n,NoOp(FAXOPT(rate) : ${FAXOPT(rate)})
exten => receive,n,NoOp(FAXOPT(modem) : ${FAXOPT(modem)})
exten => receive,n,NoOp(**** RECEIVING FAX : ${FAXFILE} ****)
exten => receive,n,ReceiveFAX(${FAXFILE})
exten => h,1,System(/usr/bin/tiff2pdf ${FAXFILE} -o ${PDFFILE})
exten => h,n,System(/usr/bin/mutt -s "Факс от ${CALLERID(num)}" -a ${PDFFILE} ${FAX_RX_EMAIL} < ${ASTSPOOLDIR}/fax/mailmessege.txt)
;exten => h,n,System(${ASTVARLIBDIR}/bin/fax-process.pl --to "${FAX_RX_EMAIL}" --from "ats@******.com" --dest "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERID(name)})} ${URIENCODE(<${CALLERID(number)}>)}" --attachment ${PDFFILE} --type application/pdf --file ${FAXFILE})
exten => h,n,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => h,n,NoOp(FAXOPT(filename) : ${FAXOPT(filename)})
exten => h,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => h,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => h,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => h,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => h,n,NoOp(FAXOPT(pages) : ${FAXOPT(pages)})
exten => h,n,NoOp(FAXOPT(rate) : ${FAXOPT(rate)})
exten => h,n,NoOp(FAXOPT(modem) : ${FAXOPT(modem)})
exten => h,n,NoOp(FAXOPT(remotestationid) : ${FAXOPT(remotestationid)})
exten => h,n,NoOp(FAXOPT(resolution) : ${FAXOPT(resolution)})
exten => h,n,NoOp(FAXOPT(status) : ${FAXOPT(status)})
exten => h,n,NoOp(FAXOPT(statusstr) : ${FAXOPT(statusstr)})
exten => h,n,NoOp(FAXOPT(error) : ${FAXOPT(error)})
2. Проверили факсимильный аппарат Panasonic KX-FL423 через аналоговую телефонную линию, работает.

3. Сбросили настройки Cisco SPA112 в дефолт. Подключили Cisco SPA112 сразу к Провайдеру МТТ в итоге получилась схема: Провайдер МТТ --> Cisco SPA112 --> FAX Panasonic KX-FL423. На прием факса не заработало, а вот отправка факса по данной схеме осуществляется исправно.
Очевидно, что проблема в Cisco SPA112. Версия прошивки 1.0.2(006), на данной прошивке пробовали включать FAX Enable T38: yes и FAX Passthru Method: ReINVITE, но факс не проходил.
Так как на соседнем форуме http://www.asteriskforum.ru/viewtopic.php?p=68344 была подобная проблема и им помогло обновление прошивки. Обновили прошивку на 1.3.3(015) и так же включили FAX Enable T38: yes и FAX Passthru Method: ReINVITE, и наконец-то факс пошел и в одну и в другую сторону.


В итоге схема такая:
Провайдер МТТ --> Asterisk ver: 1.8.20.0 --> Cisco SPA112 --> FAX Panasonic KX-FL423
Кодек: T.38
Протокол: UDPTL
На астериске в /etc/asterisk/sip_general_custom.conf добавили:

Код: Выделить всё

t38pt_udptl=yes
t38pt_rtp=no
t38pt_tcp=no
На астериске в /etc/asterisk/udptl.conf добавили:

Код: Выделить всё

T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 400
На Cisco SPA112 обновили прошивку до 1.3.3(015) и включили FAX Enable T38: yes и FAX Passthru Method: ReINVITE.
Факс работает.

Огромное спасибо за помощь!

Re: Проблемы с приемом факса

Добавлено: 01 июл 2014, 20:43
ded
T.38 - это не Кодек, это протокол.

Re: Проблемы с приемом факса

Добавлено: 02 июл 2014, 14:17
alex-chipmunk
Спасибо за поправку.

На сколько я понял T.38 - протокол передачи факсов, а UPDTL - способ упаковки данных в пакеты UDP.

Re: Проблемы с приемом факса

Добавлено: 26 авг 2016, 12:51
PONTera
Давайте я более детальней распишу людям, чтобы понимали куда что прописывать.

В итоге схема такая:
Провайдер --> Asterisk 11 --> Cisco SPA112 --> FAX Panasonic
У кого установлен FreePBX:
Изображение
В самом низу данного меню вводим вот как тут
Изображение
t38pt_udptl=yes
t38pt_rtp=no
t38pt_tcp=no

На сервере по ssh в nano /etc/asterisk/udptl.conf добавили:
КОД: ВЫДЕЛИТЬ ВСЕ
T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 400
Изображение

В SPA112 вкладка Voice - Line 1 (Line 2 ....) ищем и ставим значения, так же не забываем чтобы обе линии имели порт подключения 5060:
FAX Enable T38: yes
FAX Passthru Method: ReINVITE

Устанавливать кодеки на астериск не надо, так же не надо ни каких модулей.
По умолчанию астериск имеет один модуль и его достаточно для работы с факсом через Voip шлюз. У меня все прекрасно работает с модулем.
asterisk -rx "module show like fax"
Изображение

В терминале ssh где установлен прописываем команду и сохраняем, чтобы после перезагрузки сервера она осталась работать.
iptables -A INPUT -p udp -m udp -m multiport --dports 4000:4999 -j ACCEPT
service iptables save

Если после этого у вас не заработает, то звоните провайдеру и говорите что у вас они режут порты и протоколы работы.