Fax for Asterisk

Aus Line5 Wiki
Wechseln zu: Navigation, Suche

Die Asterisk-Herstellerfirma Digium bietet ein Faxmodul für den Asterisk-Server an. Unter bestimmten Bedingungen ist eine Lizenz für einen Faxkanal kostenlos erhältlich. Zum Lieferumfang gehört eine Detaillierte Installationsanleitung. Einige Konfigurations-Kniffe finden Sie hier.

<adsense>a</adsense>

Faxempfang mit Asterisk

Das Faxmodul arbeitet mit der Asterisk-Funktion ReceiveFax und speichert eingehende Faxe als .tif-Datei im angegebenen Verzeichnis. Digium stellt im Netz ein Handbuch zur Verfügung, das einen passenden Abschnitt für die extensions.conf enthält. Wir hatten Schwierigkeiten mit dem vergebenen Dateinamen: Die Sequenz-Nr. würde bei jedem Neustart des Asterisk bei 0 beginnen. Daher fügen wir einen Timestamp in den Dateinamen mit ein.

[fax-rx]
exten => receive,1,NoOp(**** FAX RECEIVE ****)
exten => receive,n,SET(FAXUNIQUENAME=FAX${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)}-${EXTEN})
exten => receive,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
exten => receive,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => receive,n,Set(FAXFILE=fax-${FAXUNIQUENAME}-${FAXCOUNT}-rx.tif)
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)=LINE5)                          ; Hier Firmennamen eintragen
exten => receive,n,Set(FAXOPT(localstationid)=767718420)                  ; Hier Faxnummer eintragen
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(**** RECEIVING FAX : ${FAXFILE} ****)
exten => receive,n,ReceiveFAX(/my/fax/incoming/directory/${FAXFILE})      ; Hier Verzeichnisnamen eintragen

Im Standard-Kontext muss nun noch ein Verweis auf diesen fax-rx Kontext eingefügt werden:

exten => 4912345688,1,Goto(fax-rx,receive,1)

Soweit sollten die Faxe jetzt zwar ankommen, es erfolgt aber keinerlei Benachrichtigung. Behelfsweise kann man sich per iwatch eine Email zuschicken lassen, wann immer eine neue Datei im Faxverzeichnis entsteht. Iwatch ist nicht etwa ein Produkt einer bekannten Obstfirma, sondern ein tief in Linux verwurzeltes System zur Verzeichnisüberwachung. Eine Konfigurationsdatei /etc/iwatch/iwatch.xml könnte in etwa so aussehen:

<?xml version="1.0" ?>
<!DOCTYPE config SYSTEM "/etc/iwatch/iwatch.dtd" >

<config>
 <guard email="root@localhost" name="IWatch"/>
 <watchlist>
   <title>Fax Monitor</title>
   <contactpoint email="mail@line5.tv" name="NewFax"/>
   <path type="single" syslog="off">/my/fax/incoming/directory</path>
 </watchlist>
</config>

Nach einer Änderung der Konfigurationsdatei muss iwatch neu geladen werden: /etc/init.d/iwatch reload.

Testfax versenden

Mit den folgenden Diensten lassen sich Testfaxe versenden, um die nagelneue Konfiguration des Asterisk Faxservers zu testen: