Asterisk SendFax

Ossie

Neuer User
Mitglied seit
22 Nov 2019
Beiträge
36
Punkte für Reaktionen
2
Punkte
8
Hallo Asterisk-Freaks,

ich versuche, mit "normalem" Asterisk per "Sendfax" Faxe zu verschicken.

Ich habe intensiv gegurgelt, habe die Asterisk-Bibeln von O'Reilly durchstöbert, bin aber nicht wirklich weitergekommen.

Der "Sendfax"-Befehl enthält ja keinerlei Möglichkeit, die Nummer des Empfängers irgendwo anzugeben.
Also muß ja im Dialplan vorher irgenwo ein "Dial" abgesetzt werden.
Wie geht es dann weiter? Woher weiß Asterisk, daß mit diesem "Dial" ein Fax verschickt werden soll?
Wohin im Dialplan wird gesprungen, wenn das Empfängerfax abhebt?

Hat jemand ein rudimentäres Beispiel für mich, aus dem ich die Zusammenhänge erkennen kann?

Das wäre toll - danke!
Gruß Ossie
 
Moinsen


In diesem Fall dient das Dial nur zur Vermittlung.
Befindet sich das Zielfaxgerät im Kanal kann der "Anrufer" das Feld räumen.
Dazu kann ein Flag im Dial() genutzt werden.
Also: Dial(SIP/FAXNUMMER,,G(fax,fax,1))
G() oder M() können das bewerkstelligen und mein Sendfax() Kontext sieht dann so aus...
Rich (BBCode):
osmc*CLI> dialplan show fax
[ Context 'fax' created by 'pbx_config' ]
  'fax' =>          1. Goto(exit)                                 [extensions.conf:19]
     [h-id]         2. Set(LOCALSTATIONID=Fax)                    [extensions.conf:20]
     [lh-i]         3. Set(LOCALHEADERINFO=Asterisk)              [extensions.conf:21]
     [faxsend]      4. SendFAX(/tmp/fax.tif)                      [extensions.conf:22]
     [check]        5. GotoIf($["${FAXERROR}" = ""]?success:error) [extensions.conf:23]
     [error]        6. Verbose(1,STATUS: ${FAXSTATUS})            [extensions.conf:24]
     [info2]        7. ExecIf($["${FAXERROR}" != ""]:Verbose(ERROR: ${FAXERROR})) [extensions.conf:25]
     [success]      8. Verbose(1,MODE: ${FAXMODE})                [extensions.conf:26]
     [info4]        9. Verbose(1,PAGES: ${FAXPAGES})              [extensions.conf:27]
     [info5]        10. Verbose(1,BITRATE: ${FAXBITRATE})         [extensions.conf:28]
     [info6]        11. Verbose(1,RESOLUTION: ${FAXRESOLUTION})   [extensions.conf:29]
     [info7]        12. Verbose(1,ID: ${REMOTESTATIONID})         [extensions.conf:30]
     [exit]         13. Verbose(1,...have a nice day)             [extensions.conf:31]

-= 1 extension (13 priorities) in 1 context. =-
Der Anrufer landet in Priorität 1 und wird direkt wieder rausbefördert.
Der Angerufene landet in Priorität 1+1 (2) und bekommt im/über den Channel das Fax.

Siehe: http://das-asterisk-buch.de/1.6/applications-dial.html

Ein anderer Weg wäre zum Beispiel den Anruf direkt in der Konsole zu tätigen.
Beispielsweise so...
Code:
osmc*CLI> channel originate SIP/1005 application SendFAX /tmp/fax.tif
[Jun  4 12:10:37]   == Using SIP RTP CoS mark 5
[Jun  4 12:10:37]     -- Called 1005
[Jun  4 12:10:39]     -- SIP/1005-0000002a answered
[Jun  4 12:10:39]     -- Channel 'SIP/1005-0000002a' sending FAX:
[Jun  4 12:10:39]     --    /tmp/fax.tif
Die laufende Übertragung kann mit...
Code:
osmc*CLI> core show channels
Channel              Location             State   Application(Data)             
SIP/1005-0000002a    (None)               Up      SendFAX(/tmp/fax.tif)         
1 active channel
0 active calls
27 calls processed
osmc*CLI> sip show channels
Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry     Peer      
192.168.188.1    1005             32dcb5ad672c1f3  (alaw)           No       Tx: ACK                    1005      
1 active SIP dialog
...verfolgt werden.
 
Zuletzt bearbeitet:
Hallo @koyaanisqatsi,

danke für deine Hilfe.
Das hat geholfen - im Dialplan läuft nun alles richtig.
Asterisk schickt das Fax los. Mein (analoges) Faxgerät legt zwar nach einer Weile kommentarlos wieder auf (Codec-Problem?), aber das werde ich jetzt als nächstes untersuchen.

Danke und schöne Woche!
Gruß Ossie
 
Stell sicher, dass Asterisk fürs faxen den alaw Codec nutzen kann.
Der muss mindestens unter (bei mir noch sip.conf) [general] als allow=!all,alaw geführt werden.
Versuch nicht auf "Teufel komm raus" T-38 zu erzwingen.
 
Hallo zusammen,
bin gerade erst über diesen Thread "gestolpert" und habe die Lösung von @koyaanisqatsi (fast) erfolgreich nachbauen können. Vielen Dank dafür.
Was bei mir leider nicht funktioniert, ist, dass der Dialplan manchmal hinter dem sendFax - Befehl hängen bleibt. Und damit der Rest für einen Faxbericht auch leider nicht angezeigt wird.
Nachvollzogen habe ich das an 2 Fritzboxen als Gegenstelle. Sowohl innerhalb des gleichen Asterisk als auch nach "extern".
Ich nutze den Asterisk in Version 16.16.1 aus den Debian Bullseye Repositories.
Bezogen auf obigen Dialplan-Ausschnitt erhalte ich folgende Meldung auf der Konsole:

Code:
    -- Executing [2010@context:1] Dial("PJSIP/2001-00000116", "PJSIP/2010,,G(fax,fax,1)") in new stack
    -- Called PJSIP/2010
    -- PJSIP/2010-00000117 answered PJSIP/2001-00000116
    -- Executing [fax@fax:2] Set("PJSIP/2010-00000117", "LOCALSTATIONID=....") in new stack
    -- Executing [fax@fax:1] Goto("PJSIP/2001-00000116", "exit") in new stack
    -- Goto (fax,fax,14)
    -- Executing [fax@fax:14] Verbose("PJSIP/2001-00000116", "...have a nice day") in new stack
...have a nice day
    -- Auto fallthrough, channel 'PJSIP/2001-00000116' status is 'ANSWER'
    -- Executing [fax@fax:3] Set("PJSIP/2010-00000117", "LOCALHEADERINFO=...) in new stack
    -- Executing [fax@fax:4] SendFAX("PJSIP/2010-00000117", "/tmp/fax.tif") in new stack
    -- Channel 'PJSIP/2010-00000117' sending FAX:
    --    /tmp/fax.tif
  == Spawn extension (fax, fax, 4) exited non-zero on 'PJSIP/2010-00000117'

"Gefühlt" würde ich sagen, sobald ein "richtiges" Fax an der Leitung hängt, funktioniert es einwandfrei, mit den Fritzboxen manchmal. Die Faxe werden immer komplett übertragen. Habe sowohl 1 als auch mehrere Seiten ausprobiert.

Irgendwelche Ideen?

Zusätzliche Fragen:
- unter der "LOCALSTATIONID" hätte ich mir meine lokale Faxnummer im Faxkopf vorgestellt. Da kommt beim Gegenüber nur "unknown" an.
- wo finde ich die ganzen Faxoptionen? Sind das die, die ich unter FAXOPT(item) finde?

Btw: Frohe Ostern Euch allen.

-- Zusammenführung Doppelpost gemäß Boardregeln by stoney

Und noch eine Ergänzung/Frage:

Mit obiger Lösung bekommt mein Gegenüber (die Fritzbox) als Absender natürlich die Gegenstelle angezeigt, von der das Fax initiiert wurde. Kann ich das ändern, so dass als Absender die Fax-Gegenstelle drinsteht? Benutze (wie man oben sieht) PJSIP.
 
Zuletzt bearbeitet von einem Moderator:
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.