fax ist (noch) nicht tot - chemnitzer.linux-tage.de · fax ist (noch) nicht tot modernes fax over...

30
FAX IST (NOCH) NICHT TOT MODERNES FAX OVER IP MIT HYLAFAX Markus Lindenberg [email protected]

Upload: trandan

Post on 10-Aug-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

FAX IST (NOCH) NICHTTOT

MODERNES FAX OVER IP MITHYLAFAX

Markus [email protected]

TODO.TXTFax im allgemeinenFax over IP im besonderen HylaFAXSpanDSP, FreeSWITCH, HylaFAXGOfax.IP

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

FAX OVER IPFUNKTIONIERT, ODER?JA, ABER ES TUT MANCHMAL WEH.

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

MIT ISDN

ISDN-Anschluss ISDN-AnschlussPSTN

Faxservera/b-Wandler

ISDN-Karte

analog

ISDN

PCI

ISDN

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

HYLAFAX

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