Поступили по вашему совету, разбили задачу на несколько маленьких:
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 добавили:
На астериске в /etc/asterisk/udptl.conf добавили:
Код: Выделить всё
T38FaxUdpEC = t38UDPRedundancy
T38FaxMaxDatagram = 400
На Cisco SPA112 обновили прошивку до 1.3.3(015) и включили FAX Enable T38: yes и FAX Passthru Method: ReINVITE.
Факс работает.
Огромное спасибо за помощь!