FAXT.30-ProtokollG3-Norm für analoge AnschlüsseG4 für ISDN zu ISDN (irrelevant)9.600 oder 14.400kbit/s, selten 33.6Schwarz/weiss, Farbe möglich aber irrelevant
MOTIVATIONAnalog/ISDN-Anschluss am Faxserver nicht mehrwirtschaftlich/verfügbarVirtualisierung/Konsolidierung von FaxservernLegacy-Hardware loswerden
SO WAR ES FRÜHER(UNGEFÄHR)
analogerTelefonanschluss
analogerTelefonanschlussPSTN
Faxmodem
Faxserver
analog analog1 Kanal
RS232
FAX OVER IP
ISDN-AnschlussPSTN
Faxserver
InternetVoIP-Provider
Media-Gateway
ATA (Analog Telephone Adapter)
Router/Firewall
VoIP
ISDN
VoIP
analog
VoIP
VoIP
VOICE OVER IPSignalisierung SIP (UDP oder TCP)
Media RTP (UDP)
Sicherheit SIPS (TLS), SRTP
Telefon/Faxgerät SIP User-Agent
Router SIP Proxy/Registrar
Firewall (Layer 7) Session Border Controller
FAX OVER IP - MEDIAT.30 Fax Passthrough in G.711 (Audio)T.37 Store-and-Forward mittles SMTP (irrelevant)T.38 Fax Relay
T.38Terminierung der Audioverbindung im MediagatewayIm IP-Netz digitale Übertragung der T.30 NutzdatenResistenter gegen Latenz und JitterKomplizierter, anfälliger für InkompatibilitätenAnbindung mittels Mediagateways (DSPs!)
T.38 - ABLAUFAufbau einer normalen VoIP-VerbindungSendendes Faxgerät sendet CNG-Ton (Calling StationIdentification)T.38-Gateway erkennt CNG-TonT.38-Gateway handelt auf IP-Seite den Medienstrom neuausZiel: Ersetzen von G.711 Audio durch T.38T.38-Gateway antwortet mit CED-Ton, Faxübertragungwird ausgehandelt
HYLAFAXFax-Lösung für UnixInitialer Release Juni 1991Entwicklung langsam, aber immer noch aktivArchitektur: Viele kleine ProzesseQueue für ausgehende Faxe: faxqNetzwerk-Server: hfaxdModems (tty): faxsend, faxgetty
HYLAFAX - STÄRKENStabil & zuverlässigFlexibel & anpassungsfähig durch ScripteNetzwerkprotokoll für FrontendsHohe Verbreitung & Skalierbarkeit
HYLAFAX - SCHWÄCHENGedacht für ModemsKein SIP, kein T.38Modem = Leitung = RufnummerNetzwerkprotokoll basiert auf (plain) FTP
WARUM SOLLTE MAN HYLAFAX MITFAX OVER IP BENUTZEN?
Weiternutzung von bestehenden Workflows und Tools
Niemand möchte seinen gesamten Fax-Workflow anfassenum Fax over IP zu unterstützen.
SPANDSPwww.soft-switch.orgSpandsp is a library of many DSP functions for telephony.These range from simple modules, such as DTMFdetection, to a complete software FAX machine.Softmodem / T.30 FaxmodemT.38-Gateway
FREESWITCHfreeswitch.orgCross-Platform Scalable FREE Multi-Protocol Soft SwitchSoftware-TelefonanlagePlattform für TelefonanwendungenSIPmod_spandspEvent Socket
FREESWITCH & SPANDSPIntegration durch SpanDSP-AutorAnaloge Faxmodem-Emulation: /dev/FS0 /dev/FS1 ...T.38-Gateway in SoftwareNative Faxfunktionenen für T.30 und T.38rxfax / txfax
o r i g i n a t e s o f i a / e x t e r n a l / 1 0 0 @ 1 0 . 1 0 . 1 0 . 1 0 & t x f a x ( / t m p / f o o . t i f f )
HYLAFAX & FREESWITCHHERKÖMMLICH
Kein natives T.38 möglichHylaFAX -> /dev/FS1 (Modem) -> Softmodem ->t38_gateway -> SIPEingeschränkte Interaktion durch Software-ModemsEine Telefonnummer per ModemSkalierung: Modem-Anzahl muss konfiguriert werden
GOFAX.IPGPL2, Interface zwischen HylaFAX und FreeSWITCHKeine Modem-Emulation / t38_gatewayKeine Device-Nodes in /dev/Nutzung aller in FreeSWITCH verfügbaren FaxfunktionenDesign/Idee angelehnt an CAPI4HYLAFAXfaxsend -> gofaxsendfaxgetty -> gofaxd
github.com/gonicus/gofaxip
GOFAX.IP UND FREESWITCHFreeSWITCH als User-AgentKein Dialplan, kein User Directory etc.9 Module aus >150Minimale KonfigurationKeine Anpassungen notwendig
HYLAFAX - ARCHITEKTURHylaFAX Document Handling
faxq
hfaxd
sendfax faxrcvd
qfile
"FTP"
HylaFAX Modem Handling
faxsendfaxgetty
faxgetty
ModemModem
qfile FIFO
UUCP Locking
exec
FIFO
tty tty
HYLAFAX - MODEM-EMULATIONHylaFAX Document Handling
faxq
hfaxd
sendfax faxrcvd
qfile
"FTP"
HylaFAX Modem Handling
faxsendfaxgetty
faxgetty
qfile
UUCP Locking
exec
FIFO
FreeSWITCH mod_spandsp
ModemModem
mod_spandspSoftmodem
t38_gateway
sofiaSIP
tty tty
HYLAFAX - ISDN MIT CAPI4HYLAFAXHylaFAX Document Handling
faxq
hfaxd
sendfax faxrcvd
qfile
"FTP"
capi4hylafax
c2faxsend c2faxrcvd
ISDNInterface
libcapi20
qfile
exec
FIFO
HYLAFAX MIT GOFAX.IPHylaFAX Document Handling
faxq
hfaxd
sendfax faxrcvd
qfile
"FTP"
GOfax.IP
gofaxsend gofaxd
qfile
FIFO
exec
FIFO
FreeSWITCH
event_socketoutbound
originate
txfax
sofiaSIP
rxfax
inlinedialplan
event_socket
TCP
TCP
GOFAX.IP - VORTEILEKeine feste Zuordnung von Modems/LeitungenDynamische Fax-Header/TSI/CSI/CalleridZentrales Logging in HylaFAX durch alle LayerKISS -> RobustheitEinfache Schnittstellen: Klartext in Queue-Files/TCPAlle "schwierigen" Probleme in FreeSWITCH gelöst
GOFAX.IP - NEUE MÖGLICHKEITENFallback von T.38 auf G.711DynamicConfig für ausgehende Faxe (Callerid, Header)
DANKE FÜR'S ZUHÖRENMARKUS LINDENBERG
GONICUS GmbH, Arnsberg
github.com/gonicus/gofaxip
www.gonicus.de
[email protected]/moreentropy