Fax over IP ist von Voice over IP getrennt zu betrachten, da die Übertragungsrate von VoIP zum Versenden von Faxdaten zu gering ist, bzw. Komprimierung und Verbindungsoptimierung für menschliche Sprache die Übertragung stören1). Aufgrund alter Struktuen und der Nutzung von Fax im täglichen Geschäftsverkehr sind jedoch verschiedene Szenarien der Nutzung nötig. Wie die meisten VoIP-Provider bietet die Telekom jedoch das Protokoll T.38 nicht an, weshalb man mit Asterisk eine Schnittstelle einrichten muss.
Für Asterisk stehen verschiedene Faxerweiterungen zur Verfügung2)3). Im folgenden sollen zwei Möglichkeiten der Faxnutzung mit Asterisk Telefonserver erläutert werden.
Als Fax-Server kann Asterisk eingehende Faxe annehmen mit der Methode ReceiveFax()
und auch Faxe senden mit SendFax()
. Die Faxe können dann auf dem Server weiterverarbeitet werden.
Für Faxfunktionen nutzt Asterist die Bibliothek SpanDSP4) und bietet damit die Applikationen app_rxfax
und app_txfax
5).
Auf der SpanDSP Bibliothe aufbauend, existiert eine Asterisk Faxlösung von Inter76)
Damit die scripte fax2mail und email2fax Benutzt werden können, müssen diverse Pakete installiert/compilliert werden.
Zuallererst müssen die folgende Pakete über apt heruntergeladen und installiert werden:
libtiff* libaudiofile* fftw* fltk1.3-*
Danach muss SandSP kompilliert werden. Die Aktuellste Version kann unter http://www.soft-switch.org/downloads/spandsp/ heruntergeladen werden.
Das Paket muss dann mit den Befehlen:
tar -xzf [paketname] cd [paketname] ./configure make make install
entpackt und installiert werden.
Ein funktionierender E-Mail-Server wird vorausgesetzt, diese Anleitung baut auf einem postfix auf.
Zum Emfangen und per E-Mail weiterversenden von eingehenden Faxen wird das fax2mail7) Script von Generationd.com genutzt.
Damit das Script aufgerufen werden kann muss über FreePBX unter „Admin“ ⇒ „Custom Destinations“ eine Benutzerdefiniterter Dialplan erstellt werden. Dieser muss noch bei einer Incomming Route als Ziel gesetzt werden.
Schließlich muss in der Datei /etc/asterisk/extenstions_custom.conf
folgender Dialplan hinzugefügt werden:
[asterisk_fax] ;Dieser Dialplan wird aufgerufen, wenn auf der Faxtrunk ein Anruf ankommt. ;Ueber FreePBX leitet die Incomming Route alle Anrufe auf diese custom Destination um. ; exten => s,1,Set(FAXFILE=/var/spool/asterisk/fax/${CALLERID(num)}.tif) exten => s,n,Set(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERID(num)}) exten => s,n,Set(DEST_MAIL=info@hopf-hof.de) exten => s,n,Set(DEST_NAME=\"${CALLERID(num)}\") exten => s,n,ReceiveFax(${FAXFILE}) exten => s,n,System(/var/lib/asterisk/fax2mail -f ${FAXFILENOEXT} --cid-number ${CALLERID(num)} --cid-name ${CALLERID(name)} --dest-mail ${DEST_MAIL} --dest-name ${DEST_NAME} -p)
Hier muss noch der Pfad des fax2mail-Scripts angepasst werden.
Außerdem müssen diverse Änderungen am fax2mail-Script durchgeführt werden:
98 FROMEMAIL="[Faxnummer] <[absender@email.adresse]>" 99 DEFAULTTO="[absender@email.adresse]"
260 echo "You have just received a $COUNT page fax from $CID_NAME <$CID_NUMBER>, at phone number $DEST_EXTEN, on $DATETIME. The original fax document is attached in $FORMAT format.">>$INFOFILE 261 echo >>$INFOFILE 262 echo >>$INFOFILE 263 echo >>$INFOFILE 264 cat $DESTFILE | mime-construct --subpart --attachment $CID_NUMBER.$FORMAT --type application/$FORMAT --file - >$FILE.part1 265 cat $INFOFILE | mime-construct --header "From: $FROMEMAIL" --to $DEST_EMAIL --subject "$CID_NUMBER" --subpart-file $FILE.part1 --file -
Ein komplettes Skript wie es beutzt wurde ist HIER zu finden.
Ein funktionierender E-Mail-Server wird vorausgesetzt, diese Anleitung baut auf einem postfix auf.
Eine Neuimplementierung des email2fax
-Scripts wurde von WPKG8) vorgenommen, das auch Faxe im PDF Format verarbeiten kann.
Unter http://wpkg.org/email2fax/index.php/An_other_way_for_postfix_user_without_procmail findet sich eine Anleitung, um das email2fax
Script an Postfix anzubinden.
Anbindung der E-Mails an Asterisk via http://das-asterisk-buch.de/call-file.html
… to be continued …
Einige Fax-Nebenstellen unterstützen lediglich den SIP-Standard T.38. Da dieser aber von den meisten SIP-Providern nicht angeboten wird, muss Asterish als Gateway fungieren und zwischen T.30 und T.38 mitteln.
Ab Asterisk Version 1.10 ist eine direkte Umwandlung eines T.30 Anrufs in einen T.38 Anruf möglich9).
Für frühere Versionen existieren einige Workouts:
Mit Version 1.8 konnte david auch mit den gefundenen Anleitungen nicht als VoIP-Nebenstelle mit T.38 angebunden werdem.