Tak jsem to rozchodil. Mám doma tak jako tak Asterisk, hlavní problém je v tom, že web je plný prehistorických a neúplných informací. Zkoušel jsem třeba Hylafax+iaxmodem (i když to je kombinace určená podle všeho hlavně pro Asterisk, který je připojený k POTS/E1/...). Faxy "procházely", ale vždy dorazily jen 2 prázdné stránky.
Nakonec to s čistým Asteriskem není složité. Do extensions.conf jsem přidal:
Kód: Vybrat vše
[fax_out]
exten => _X.,1,NoOp(--- sending fax to ${EXTEN} ---)
exten => _X.,n,Set(FAXOPT(ecm)=yes)
exten => _X.,n,Set(FAXOPT(minrate)=2400)
exten => _X.,n,Set(FAXOPT(maxrate)=9600)
exten => _X.,n,SendFAX(${TIFF},dfsz)
exten => _X.,n,Hangup()
exten => h,1,NoOp(FaxStatus : ${FAXSTATUS})
exten => h,1,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(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)})
exten => h,n,NoOp(DNIS: ${RECEIVER})
exten => failed,1,NoOp(--- failed sending fax ---)
A pro odeslání faxu kamsi jen vložím do /var/spool/asterisk/outgoing soubor s příponou .call, který zahájí hovor - propojí odchozí kanál s daným contextem/extension:
Kód: Vybrat vše
Channel: IAX2/odorik/123456789
Context: fax_out
Extension: 123456789
Prority: 1
SetVar: TIFF=/tmp/out.tif
Tiff soubor jsem si předem připravil v GhostScriptu. Jen otestování bylo poněkud složitější, protože když se pokusím poslat fax v rámci Odoriku, tak to selže (a na mail mi dorazí zpráva od Odorika s chybou T38_NEG_ERROR). Evidentně Odorik očekává faxy v rámci sitě jen přes T.38 (a nikoliv G.711), jenže T.38 současně u Odorika nefunguje (nepodporovaný kodek). Takže jsem to posílal na mobilní číslo, u kterého jsem nechal na chvíli přesměrovat všechny hovory zpět na faxové číslo u Odoriku.
Faxový hovor Odorik -> T-Mobile -> Odorik už uspěl a fax prošel na první pokus.