alexchip Posted June 27, 2014 Posted June 27, 2014 (edited) Доброго времени суток. Принесли значит факс и приказали подключить, подключили, не работает. Имеем следующую схему: Провайдер МТТ(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: В итоге когда нам с любого городского номера отправляют факс, то факс начинает приниматься и секунд через 8 сбрасывается. Если нужны будут логи sip debug с пакетами INVITE, то могу приложить. Пытались принять на софтовый факс по схеме: Провайдер МТТ --> Asterisk ver: 1.8.20.0 --> Ext 1000 (на него настроен hylafax iaxmodem). Модем настроен по инструкции http://www.sipring.ru/overview/asterisk-hylafax-iaxmodem/79-fax-asterisk-elastix-without-tears.html Но так же увенчались неуспехом. Пытались отправить внутри Asterisk’а, по схеме: hylafax → Asterisk ver: 1.8.20.0 → Cisco SPA112 → FAX Panasonic KX-FL423 При отправке с софтового факса, прямо из Elastix, на железный(не выходя на провайдера) факс проходит. Edited June 27, 2014 by alexchip Вставить ник Quote
Bloodoff Posted July 1, 2014 Posted July 1, 2014 снимите дамп со звонка с факсом, и выкладывайте аттачем Вставить ник Quote
alexchip Posted July 1, 2014 Author Posted July 1, 2014 (edited) Приветствую вас, коллеги. По совету на форуме http://forum.asterisk.ru/viewtopic.php?f=3&t=4500&p=49378#p49378 разбили задачу на несколько маленьких: 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 c 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. Факс работает. Всем спасибо за помощь! Edited July 2, 2014 by alexchip Вставить ник Quote
Bloodoff Posted July 10, 2014 Posted July 10, 2014 А еще в Астере появился t38gateway, позволяет транскодить t38<>g711 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.