[Frage] Wie von Linux-Rechner FAX über FRITZ!Box verschicken

Xantorix

Mitglied
Mitglied seit
19 Mrz 2009
Beiträge
466
Punkte für Reaktionen
9
Punkte
18
Hallo ihr Wissende,

ich mache hier ein Thema auf welches mich schon länger um treibt. Teilt mit mir Eure Erfahrungen. Ich selbst nutze dafür ein auf meinem NAS aufgesetzten Asterisk mit IAXmodem, Hylafax und Yajhfc Client.
Hier mal meine Vorgehensweise:
Code:
Zuerst wird Asterisk installiert.

sudo apt update
sudo apt -y upgrade
sudo reboot

apt-get install build-essential
apt-get install openssl libxml2-dev libncurses5-dev uuid-dev sqlite3 libsqlite3-dev pkg-config libjansson-dev

cd /usr/src/

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

tar xvf asterisk-16-current.tar.gz
cd asterisk-16*/

sudo contrib/scripts/install_prereq install

Ausgabe:

#############################################
## install completed successfully
#############################################

./configure

Ausgabe:


configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..    
            .$7$7..          .7$$7:.  
          .$$:.                 ,$7.7  
        .$7.     7$$$$           .$$77
     ..$$.       $$$$$            .$$$7
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
.777.   .$$$$$$77$$$77$$$$$7.      $$$,
$$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.  
$$$$             $$$$7         .$$$.  
7$$$7            7$$$$        7$$$    
$$$$$                        $$$      
  $$$$7.                       $$  (TM)    
   $$$$$$$.           .7$$$$$$  $$    
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$    
       $$$$$$$$$$$$$$$$.              

configure: Package configured for:
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

make
make install
make samples
make config
ldconfig

Rechte setzen:

sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk
sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk

Asterisk als user setzen.

$ sudo nano /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

$ sudo nano /etc/asterisk/asterisk.conf

runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

sudo systemctl restart asterisk

Beim booten starten.

sudo systemctl enable asterisk

Error:

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

Fix:

sed -i 's";\[radius\]"\[radius\]"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf

sudo systemctl restart asterisk
sudo systemctl status asterisk

reboot now

cd /etc/asterisk

Sichern der Conf Dateien.

mv /etc/asterisk/sip.conf sip.conf.backup
mv /etc/asterisk/extensions.conf extensions.conf.backup

Anlegen leerer Conf Dateien.

touch sip.conf
touch extensions.conf

Mit nano Dateien füllen.

sip.conf


[general]
context=unauthenticated
bindport=5070
bindaddr=0.0.0.0
localnet=192.168.170.0/255.255.255.0               ; Netzwerk und Maske Fritzbox
nat=force_rport,comedia instead
allowguest=no
alwaysauthreject=yes
qualify=no

language=de                                         ; Default language setting for all users/peers
                                                    ; This may also be set for individual users/peers
tonezone=de                                         ; Default tonezone for all users/peers
                                                    ; This may also be set for individual users/peers

register => asterisk:[email protected]/622

[622]
type=peer
qualify=no
host=192.168.170.1                                 ; IP der Fritzbox
fromdomain=fritz.box
fromuser=asterisk
defaultuser=asterisk
secret=geheim                                      ; Passwort: Ich verwende in asterisk immer das selbe
insecure=port,invite
directmedia=no
disallow=all
allow=alaw
allow=ulaw
context=fritz_in


extensions.conf

[general]
autofallthrough=no

[fritz_in]
exten => 622,1,Goto(siptrunk,${SIP_HEADER(To):11:7},1)                          ;622 ist das als Sip eingerichtete Telefoniegerät in der Fritzbox

[siptrunk]
exten => _X.,1,Dial(IAX2/iaxmodem)
exten => _X.,n,Hangup

[fax_out]

; Festnetz Deutschland im eigenen Vorwahlbereich
exten => _Z.,1,Dial(SIP/*120#${EXTEN}@622,120)                                  ;*120# ist die eingerichtete Rufnummer für Fax

; Festnetz Deutschland außer Vorwahlbereich "01" (Sonderrufnummern und Handy)
exten => _0N.,1,Dial(SIP/*120#${EXTEN}@622,120)
exten => _0049N.,1,Dial(SIP/*120#${EXTEN}@622,120)

; International außer Deutschland
exten => _00X[1-8]Z.,1,Dial(SIP/*1214#${EXTEN}@622,120)                         ;*1214# ist ein Anbieter günstig ins Ausland faxen

; Premium Rate-Dienste verweigern
exten => _0900.,1,Hangup
exten => _0049900.,1,Hangup

[unauthenticated]


Portfreigabe:

nano /etc/asterisk/rtp.conf

rtpstart=30000
rtpend=30100

reboot now

Einbinden iax Modem

cd /etc/asterisk

mv iax.conf iax.conf.backup

touch iax.conf
nano iax.conf

[general]
bindport=4569
bindaddr=0.0.0.0
calltokenoptional=127.0.0.1/255.255.255.0

[iaxmodem]
port=4570
type=friend
host=dynamic
qualify=yes
secret=geheim                                  ;Mein Passwort für asterisk
requirecalltoken=no
disallow=all
  allow=ulaw
jitterbuffer=no
trunk=no
context=fax_out

apt-get install iaxmodem

touch /etc/iaxmodem/ttyIAX0
nano /etc/iaxmodem/ttyIAX0


device     /dev/ttyIAX0
owner      uucp:uucp
mode       660
port       4570
refresh    60
server     127.0.0.1
peername   iaxmodem
secret     geheim                               ;Mein Passwort für asterisk
codec      ulaw
nojitterbuffer


sudo systemctl restart iaxmodem
sudo systemctl enable iaxmodem

Kontrolle immer mit sudo systemctl status iaxmodem möglich.

Installation Hylafax

apt-get install hylafax-server

faxsetup

Wichtige Einstellungen:

CountryCode:        49                                   ;Ländercode ohne +
AreaCode:        xxxx                                     ;Vorwahl ohne Null
FAXNumber:        +49 xxxx XXXXX                           ;Faxnummernformat
LongDistancePrefix:    0
InternationalPrefix:    00
DialStringRules:    etc/dialrules
SessionTracing:        11
RingsBeforeAnswer:    1
SpeakerVolume:        off
GettyArgs:        "-h %l dx_%s"
LocalIdentifier:    Absendername Firma                  ;Faxkopfangabe
TagLineFont:        etc/lutRS18.pcf
TagLineFormat:        "Von %%l|%c|Seite %%P von %%T"      ;Kopfzele in deutsch
MaxRecvPages:        25

Modemtest ... Erkennung als Class 1.0 Modem alles bestätigen.

Do you want to run faxaddmodem to configure another modem [yes]? no         ;kein weiteres Modem

sudo systemctl restart hylafax
sudo systemctl enable hylafax

reboot now

Client yajhfc bekannt machen.

sudo faxadduser -a ADMINPASSWORT-p PASSWORT yajhfc

Damit kann ich prima von meinem Linuxrechner Faxe senden.

Was funktioniert nicht?
  1. Ich bekomme keinen Sendebericht.
  2. Mit Asterisk 18 funktioniert das so nicht mehr.
  3. Die Umstellung auf pjsip gelingt mir nicht.
Also wie macht ihr das? Erfahrungen bitte. Und falls jemand etwas an meiner Lösung verbessern kann und möchte: Immer raus damit.

Vielen Dank Gruß Xante
 
Zuletzt bearbeitet:
Hallo,
na einige haben diesen Beitrag gelesen. Hat jemand einen Faxserver mit diesem Beispiel nachgebaut?
Bestimmt hat es jemand besser gemacht.
Warum teilt niemand hier seine Ergebnisse?
Besonders der Punkt Sendebericht interessiert mich. Kann da wirklich niemand helfen?

Ok. Allen einen angenehmen Tag. Gruß Xante
 
Moin Moin


Nöh, unter Linux wandle ich per Skript irgendwas , vorzugsweise PDFs, in ein faxbares TIFF, leg es in /tmp als fax.tif ab und der Asterisk Wahlplan nimmt sich das dann für: SendFAX()
Rich (BBCode):
[fax]                                                                                                                                                                                      
exten => fax,1(sendfax),Goto(exit)                                                                                                                                                         
exten => fax,2(h-id),Set(LOCALSTATIONID=Fax)                                                                                                                                               
exten => fax,3(lh-i),Set(LOCALHEADERINFO=Asterisk)                                                                                                                                         
exten => fax,4(faxsend),SendFAX(/tmp/fax.tif)                                                                                                                                              
exten => fax,5(check),GotoIf($["${FAXERROR}" = ""]?success:error)                                                                                                                          
exten => fax,6(error),Verbose(1,STATUS: ${FAXSTATUS})                                                                                                                                      
exten => fax,7(info2),ExecIf($["${FAXERROR}" != ""]:Verbose(ERROR: ${FAXERROR}))                                                                                                           
exten => fax,8(success),Verbose(1,MODE: ${FAXMODE})                                                                                                                                        
exten => fax,9(info4),Verbose(1,PAGES: ${FAXPAGES})                                                                                                                                        
exten => fax,10(info5),Verbose(1,BITRATE: ${FAXBITRATE})                                                                                                                                   
exten => fax,11(info6),Verbose(1,RESOLUTION: ${FAXRESOLUTION})                                                                                                                             
exten => fax,12(info7),Verbose(1,ID: ${REMOTESTATIONID})                                                                                                                                   
exten => fax,13(exit),Verbose(1,...have a nice day)
Falls ein Sendebericht benötigt wird, dann können die Variablen auch in eine Textdatei oder Datenbank geschrieben werden, anstatt sie mit Verbose() nur auszugeben.
 
Zuletzt bearbeitet:
Moin,

bin da neu im Thema, aber unter Linux über die ffritzbox faxe schicken geht z.B. mit RogerRouter. Die Software installiert einen virtiellen druckertreiber, und da wird dann mit gefaxt, so ähnlich wie FritzFax unter Windows.
 
Ja RogerRouter ist sehr komfortabel. Den habe ich immer benutzt. Nur leider ist der nicht so stabil. Seit Asterisk habe ich da keine Sorgen mehr.
Nur das mit dem automatischen Sendebericht kann ich leider nicht lösen.

Gruß
 
sudo contrib/scripts/install_prereq install
Das ist optional und installiert wirklich Asterisk komplett mit allen Erweiterungen. Normal müssten Deine ersten beiden Zeilen zu „apt install“ ausreichen.
sudo apt install openssl […] sqlite3
Wozu jene beiden Packages?
Mit Asterisk 18 funktioniert das so nicht mehr.
Kannst Du genauer ausführen, was klemmt bzw. Fehlermeldung Du erhältst?
 
@ sonyKatze Danke für deine Mühe. Ich müsste mal wieder schauen. Ich nutze die Faxlösung nun schon ne Weile produktiv in meinem Server. Fehler hab ich in Asterisk 16 keine.
Nur das mit dem Sendebericht automatisch in einem Ordner... Na ja ich lebe damit.
Das mit evtl. unnötigen Paketen liegt an meinen mangelnden Kenntnissen.
Ich bin froh als IT Noop so weit gekommen zu sein.
Es läuft stabiler als RogerRouter je war. Und ja so langsam stirbt Fax tatsächlich aus. Like to have.

Gruß Xante

P.S. Wenn du einen Weg zum automatischen Sendebericht weißt gehe ich noch mal dran an Asterisk/ Hylafax.
 
koyaanisqatsi, hat bereits einen Ansatz gepostet. Du müsstest uns sagen, was daran klemmt.
Ich bin froh als IT Noop so weit gekommen zu sein.
Ist ja schön, nur würde ich an Deiner Stelle das dann aufsplitten; für alles einen eigenen Thread. Also:
  • Ich habe mein Asterisk so installiert. Irgendwelche Tipps? Ich habe nämlich folgende Fehlermeldung mit Asterisk 18. Hängt das zusammen?
  • Mir hat jemand den Tipp zu geben, etwas vom Asterisk Dialplan aus in eine Text-Datei zu schreiben. Ich weiß nicht wie das geht.
Es ist kein Problem etwas nicht zu wissen. Aber Du musst merken, ab wann Du etwas nur abschreibst/kopierst bzw. wann Du weitere Hilfe brauchst. Und dann stur einen neuen Thread genau damit aufmachen. Nachfragen, überprüfen. Mit einem neuen Thread mit neuer Überschrift, damit lockst Du neue Tipp-Geber an.
 
Danke. Bei Gelegenheit drösele ich das noch mal auf. Leider habe ich im Moment viel in meinem Geschäft zu tun.
Und an ein funktionierendes System dran zu gehen kann ich momentan nicht.

Gruß Xante
 
koyaanisqatsi, hat bereits einen Ansatz gepostet. Du müsstest uns sagen, was daran klemmt.
 
Hallo, leider kann ich koyaanisqatsi Ansatz nicht richtig verstehen. Ich benutze den Client YajHFC. Den hab ich soweit das ich bequem mit einem Druckertreiber arbeiten kann.
Wie ich mir da den Sendebericht ziehe weiß ich nicht.

Gruß Xante
 
leider kann ich koyaanisqatsi Ansatz nicht richtig verstehen
Kein Problem. Nur kannst Du uns sagen, was genau Du nicht verstehst bzw. wie es vielleicht zu verstehen ist? Dann wüssten wir, welches Puzzle-Teil zum Verständnis fehlt – und können das ergänzen.
 
Mein Ansatz ist mehr Handarbeit unter Zuhilfenahme von Shellscript Funktionen um faxbare TIFF's zu erzeugen.
Das TIFF leg ich dann in /tmp ab weil da jeder Benutzer reinschreiben darf.
Die Funktionen sind simpel und teil sie auch gerne...

#cat scripts/img2fax
Code:
#!/bin/sh
# Converting an image into faxable TIFF format
# Example: img2fax infile.png outfile.tif
img2fax () {
convert -define quantum:polarity=min-is-white -endian MSB -units PixelsPerInch -density 204x196 -monochrome -compress Fax -sample 1728 ${1} ${2}
}
if [ ${#} -eq 2 ]
then
img2fax ${1} ${2}
fi
#eof
#cat scripts/pdf2fax
Code:
#!/bin/sh
# Converting a PDF into faxable TIFF format
# Example: pdf2fax infile.pdf outfile.tif
pdf2fax () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=a4 -sOutputFile=${2} ${1}
#convert -define quantum:polarity=min-is-white -endian MSB -units PixelsPerInch -density 204x196 -monochrome -compress Fax -sample 1728 ${1} ${2}
}
if [ ${#} -eq 2 ]
then
pdf2fax ${1} ${2}
fi
#eof
Mit HylaFax und Konsorten hab ich nichts zu tun :cool:
 
Zuletzt bearbeitet:
@koyaanisqatsi Vielen Dank. Hast du da einen Automatismus zum Faxen.
Ich brauch das in meinem Büro frauenfreundlich :)
Ich möchte faxen mit der Druckerauswahl. Deswegen hylafax und Konsorten. Und auch ein wenig wegen meiner Unkenntnis.
 
Der Automatismus wäre, dass zum Beispiel mit der Druckerauswahl ein PDF nach /tmp/fax.pdf gedruckt wird und mit einer Fax Extension vor SendFax() das fax.pdf mit der Script/Funktion pdf2fax in das zu faxende fax.tif konvertiert wird.
Die Fax Extension macht dann auch, mit den SendFax Variablen (Siehe Post #3), einen Sendebericht.

Am End wäre produktiv dann nur noch...
1. Druck nach /tmp/fax.pdf
2. Faxempfänger anwählen
...von Nöten.
 
Zuletzt bearbeitet:
Danke aber ich glaube das wird zu aufwendig. Dann bleib ich doch bei Hylafax.
Vielleicht finde ich noch einen Weg zum Faxbericht bis es kein Fax mehr gibt.

Gruß Xante
 
Hallo @Xantonix,

ähm, mal eine frage, wenn Du "Asterisk mit IAXmodem, Hylafax und Yajhfc Client" benutzt, dann kannst Du doch bei Yajhfc einen Sendebericht "drucken". In der Übersicht bei gesendeten Faxen das entsprechende Fax mittels rechter "Maus-Taste" auswählen, dann erscheint doch ein Auswahlfenster mit u.a. Bericht drucken. Dort kann man dann auch einstellen/angeben was alles in dem Bericht gedruckt werden soll. So mache ich das immer und fkt. ohne Probleme. Ich drucke immer in einen "File" so wird dann eine *.ps Datei erstellt welche man dann in ein Verzeichnis seiner Wahl abspeichern kann. Und die *.ps Datei kann man unter Linux mit dem Dokumentenbetrachter sich auch wunderbar anzeigen lassen. Und mit ps2pdf kann man diese auch in ein PDF Format umwandeln, wenn gewünscht u. nötig. Ist zwar alles nicht "automatisch" aber so geht's auch.
Wobei der "Weg" den @koyaanisqatsi hier aufgezeigt hat auch ganz interessant ist.
 
Zuletzt bearbeitet:
Hallo @ fxb,

super danke das ist ein guter Ansatz. Wenn ich jetzt noch finde wo yajhfc das versteckt müsste das ja auch zu automatisieren gehen.

Gruß Xante
 
Die Fax Extension macht dann auch, mit den SendFax Variablen (Siehe Post #3), einen Sendebericht.

Hallo und gesundes neues Jahr. Sorry ich finde heute erst wieder etwas Zeit für meine Faxlösung.
Und sorry für mein geringes EDV Wissen.
Wenn ich deinen Post#3 einigermaßen verstehe, baust du den in deine extensions.conf?
Ich habe ja eine funktionierende extensions.conf mit Wahl über iax.
Wie kann ich das mit integrieren? Irgendwie muss es ja bei mir auch eine .ps oder tiff oder pdf geben.

Leider verstehe ich so wenig, das es mir schwer fällt euch zu sagen wo es genau klemmt.

Die Clientsoftware YAJHFC ist für mich sehr komfortabel. Die kann mir auch händisch den Sendebericht erstellen. Ich weis aber nicht wo und wie die gesendeten Faxe dort abgelegt werden.
Und die werden auch nicht dauerhaft gespeichert. Sind nach ner Weile weg.

Vielleicht schaffe ich es ja noch mit Eurer Hilfe die Berichte zu automatisieren bevor es kein Fax mehr gibt.

Gruß Xante
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.