alexchip Posted June 27, 2014 (edited) · Report post Доброго времени суток. Принесли значит факс и приказали подключить, подключили, не работает. Имеем следующую схему: Провайдер МТТ(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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Bloodoff Posted July 1, 2014 · Report post снимите дамп со звонка с факсом, и выкладывайте аттачем Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alexchip Posted July 1, 2014 (edited) · Report post Приветствую вас, коллеги. По совету на форуме 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 Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Bloodoff Posted July 10, 2014 · Report post А еще в Астере появился t38gateway, позволяет транскодить t38<>g711 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...