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

Xantorix

Mitglied
Mitglied seit
19 Mrz 2009
Beiträge
378
Punkte für Reaktionen
3
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:

Xantorix

Mitglied
Mitglied seit
19 Mrz 2009
Beiträge
378
Punkte für Reaktionen
3
Punkte
18
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
 

koyaanisqatsi

IPPF-Urgestein
Mitglied seit
24 Jan 2013
Beiträge
13,389
Punkte für Reaktionen
462
Punkte
83
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 geschrieben werden, anstatt sie mit Verbose() nur auszugeben.
 
Zuletzt bearbeitet:

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

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.
oder via