.titleBar { margin-bottom: 5px!important; }

[gelöst] Faxe empfangen mit Asterisk über SIP-Protokoll

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Ber5erker, 20 Okt. 2004.

  1. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Gemeinde!

    Nachdem nun mein Asterisk soweit rund und zuverlässig läuft wollte ich mich mal ans faxen wagen.

    Vorweg: ich habe keinen Festnetzanschluß und auch kein Faxgerät!

    Asterisk ist der vom bri-stuff-0.1.0-RC4a installierte, dazu noch ein spandsp-0.0.2pre4 mit app_rxfax und app_txfax. System ist Debian Sarge, Kernel 2.4.27.

    Kompiliert ist alles ohne Fehler.

    Problem:
    Asterisk sendet und empfängt keine Faxe über das SIP-Protokoll.
    Ausnahme: sende ich ein Fax vom Notebook aus (XP mit XP-eigener Faxsoftware) über den ATA-286 an den Asterisk kommt das Fax an - umgekehrt funzt es komischerweise nicht..

    Die Verbindung findet grundsätzlich über ALAW statt.

    Weiß jemand Rat oder hat solch ein Konstrukt zum laufen bekommen? Google ist diesmal leider nicht mein Freund gewesen...
     
  2. rajo

    rajo Admin-Team

    Registriert seit:
    31 März 2004
    Beiträge:
    1,958
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Re: Faxe empfangen mit Asterisk über SIP-Protokoll

    Wie hast Du das getestet (von wo nach wo)? Versucht Asterisk wenigstens irgendwas zu empfangen (mal auf der Konsole mitlesen).

    Wenn was ankommt, dann aber fehlschlägt (und du übers Netz das ganze empfängst) kann das durchaus daran liegen, dass sich Übertragungsfehler (wg. fehlender Bandbreite etc.) eingeschlichen haben und tja... dann tut es halt nicht.

    Was ich mir auch noch vorstellen könnte ist, dass Du keine wirkliche Nummer fürs Faxen definiert hast und Asterisk normal bei Zap-Channels das ganze versucht selber zu erkennen und in den Fax-Kontext zu stecken. Bei SIP macht Asterisk IIRC keine Erkennung ob der Anruf Sprache oder Fax ist.
     
  3. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi rajo,

    Getestet habe ich in und aus alle(n) Richtungen. Von Extern blieb mir nur die Free-Fax-Seite http://www.logotown.de/gratis_fax.html , da ich sonst im Moment niemanden kenne, der sich auf ein Testen-Abenteuer einlassen würde.

    Die extensions.conf hat eine eigene Nummer/Bereich für Fax:
    Code:
    [incoming]
    exten => 72xxxxx,1,Goto(fax,s,1)
    
    [fax]
    exten => s,1,Answer()
    exten => s,2,SetVar(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
    exten => s,3,RxFax(${FAXFILE})
    exten => s,4,Congestion()
    exten => s,104,Congestion()
    
    Wenn was von der Webseite aus kommt springt rxfax ganz normal an, baut aber kein Trägersignal auf.
    Mittels "#define LOG_FAX_AUDIO" in der t30.c konnte ich auch feststellen, daß nicht ein einziger Ton übetragen wurde (beide Files unter /tmp haben 0 Bytes).

    Wenn ich aber intern vom Noteboot ZUM Asterisk sende (siehe ersten Text) klappt alles Prima, obwohl es ja auch über SIP übertragen wird:
    Notebook -> ATA -> Asterisk
    Diese interne Übertragung kommt heile an und quittiert dann auch brav mit einem "Congestion" :gruebel:
    Code:
        -- Executing Goto("SIP/100-2740", "fax|s|1") in new stack
        -- Goto (fax,s,1)
        -- Executing Answer("SIP/100-2740", "") in new stack
        -- Executing SetVar("SIP/100-2740", "FAXFILE=/var/spool/asterisk/fax/1098298980.3.tif") in new stack
        -- Executing RxFAX("SIP/100-2740", "/var/spool/asterisk/fax/1098298980.3.tif") in new stack
        -- Executing Congestion("SIP/100-2740", "") in new stack
      == Spawn extension (fax, s, 4) exited non-zero on 'SIP/100-2740'
     
  4. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Könnt ihr mich mal mit verschiedenen Geräten "dichtfaxen" ?

    Sipgate: 7282920

    --EDIT--

    Wie ich feststellen musste wird, wenn ich von einem internen Apparat aus die "Faxnummer" anrufe (egal ob über ISDN oder SIP), ein Trägersignal gesendet.
    Rufe ich jedoch von extern (Handy oder Festnetz) aus den Asterisk an kommt nicht ein Piep. der Kontext [fax] springt aber an (?!).

    Wo ist denn da der Unterschied zwischen SIP intern und SIP extern?
     
  5. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ES FUNKTIONIERT! :dance:

    Nachdem ich die libxml2-Pakete (wer lesen kann ist klar im Vorteil ;-) ) installiert und spandsp und Asterisk neu kompiliert habe funzte es.

    Empfangen tut Asterisk nun 1A - und das über das SIP-Protokoll.

    Wenn jemand möchte kann er mir gerne ein Fax senden.

    --EDIT--

    Unerklärlich bleibt jedoch warum es vorher schon intern funktioniert hat :gruebel:
     
  6. TinTin

    TinTin Aktives Mitglied

    Registriert seit:
    6 Mai 2004
    Beiträge:
    1,864
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Ber5erker,

    das ist ja fantastisch!!

    Ich würde soetwas auch gerne realisieren, sehe jedoch einen Berg von Fragen vor mir. Könntest Du vielleicht für die ganze Sache ein "Howto" schreiben ? (Ich weiß, viel gefragt :( )

    Meine erste Frage wäre, wie Du über XP Faxe an Asterisk sendest, ich bekomme nur mein im Laptop eingebautes Modem als Gerät angezeigt!?

    Gruß,
    Tin
     
  7. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nicht das wir uns mißverstehen: ich habe ein Fax über das eingebaute Modem im Notebook via ATA an den Asterisk geschickt als wenn ich von außen reintelefoniere.

    Notebook --Line--> ATA --SIP--> Asterisk

    Also ganz normal Fax-Tool angeworfen, Fax erstellt und an meine interne Nummer gesendet. Als das dann ging habe ich eine Free-Fax-Seite im Internet besucht und von dort ein Fax gesendet.

    Probleme bestehen im Moment noch beim _senden_ von Faxen. Dies hat bisher erst einmal geklappt.
     
  8. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Und wie druckst du die aus?
     
  9. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nachdem das Fax angekommen ist startet der Dialplan am Ende mittels exten => h,1,system(...) ein Script, welches das .tiff in ein .pdf wandelt und mir per Mail zuschickt -> http://scottstuff.net/scott/archives/000152.html

    Das PDF wiederum kann ich mir dann ganz simpel ausdrucken.

    Natürlich kann man mittels Script das Fax auch direkt an einen Drucker leiten lassen - oder einfach als PDF in ein Samba-Share speichern und den Client(s) per WinPopup die Faxankunft verkünden lassen.

    --EDIT--

    Das Wandeln von .tiff in .pdf hat bei mir nur mit libtiff 3.5.7 funktioniert!
    Ich habe mir dazu mittels alien die libtiff und libtiff-devel-Pakete von Fedora Core 2 in .deb gewandelt.
     
  10. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke! Sehr schön!

    Und wie versendest du Faxe? Gibt es da einen virtuellen Drucker?
     
  11. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das ist ja grad noch mein Problem: es will noch nicht so ganz, bzw Asterisk hat bis jetzt erst ein Fax versendet, und das auch nur intern ans Notebook.

    Bei Linux kannst du sagen, das Fax ist ein Script. In dem Script konvertiere ich das Dokument mittels gs in ein G3-kompatibles tiff. Dieses kopiere ich dann in z.B. /tmp und generiere eine Datei mit folgendem Inhalt:
    Code:
    Channel: SIP/123
    
    Application: txfax
    Data: /tmp/fax.tiff
    Diese Datei kommt dann in /var/spool/asterisk/outgoing und schon wählt er die Nummer 123 und sendet das Fax - oder auch nicht ;-)
     
  12. allesOK

    allesOK Mitglied

    Registriert seit:
    24 Mai 2004
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Vielleicht musst du bei Channel mehr angeben? Meine Callfile (für Callback & Wakup) sehen viel länger aus. Ausserdem benutze ich den local channel. Vielleicht ist das besser als direkt SIP/23 anzugeben?
     
  13. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das kann gut sein. Die Doku für spandsp sieht eh ein wenig mau aus.

    Ich werd am WE mal etwas ausgiebiger testen ;-)
     
  14. Blackvel

    Blackvel Mitglied

    Registriert seit:
    4 Mai 2004
    Beiträge:
    624
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    selbständig als IT-Consultant (VoIP, Asterisk, J2E
    Ort:
    Nürnberg, Einsatzorte Schwerpunkt D6-D9 (MCH, STG,
    Achja, wenn es nur jetzt die Möglichkeit gäbe, ein Fax von einem Windows-Client mit virtuellem Drucker (und irgendwie ne Nummer auch ????) an Asterisk SpanDSP zu schicken :)
     
  15. Ber5erker

    Ber5erker Mitglied

    Registriert seit:
    6 Apr. 2004
    Beiträge:
    305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Auch das sollte einfach zu lösen sein.

    Es gibt für Windows diverse Faxtreiber, die wie Drucker angesprochen werden und eine Telefonnummer aufnehmen können.

    Auf der Linuxbüchse wird diese Datei dann einfach wieder "aufgedröselt" und die Nummer extrahiert.

    Alles weitere dann wie oben beschrieben.

    --EDIT--

    Vielleicht eine Mischung aus smbfax, t38modem und samba?
     
  16. alphamaennchen

    alphamaennchen Neuer User

    Registriert seit:
    9 Feb. 2005
    Beiträge:
    2
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo..

    ich habe versucht anhand der oben genannten Informationen
    eine Nikotel-Nummer auf einen Fax-Context umzuleiten.

    Folgende Meldungen erhalte ich bei dem Versuch
    von extern auf diese Nummer zu faxen:
    Code:
      == Spawn extension (incoming, h, 1) exited non-zero on 'SIP/thehawk3-6001'
        -- Executing Macro("SIP/thehawk3-058f", "faxreceive") in new stack
        -- Executing SetVar("SIP/thehawk3-058f", "FAXFILE=/var/spool/asterisk/fax/1108128803.37.tif") in new stack
        -- Executing DBget("SIP/thehawk3-058f", "EMAILADDR=extensionemail/thehawk3") in new stack
        -- DBget: varname=EMAILADDR, family=extensionemail, key=thehawk3
        -- DBget: Value not found in database.
        -- Executing SetVar("SIP/thehawk3-058f", "EMAILADDR=bla@bla.de") in new stack
        -- Executing Goto("SIP/thehawk3-058f", "3") in new stack
        -- Goto (macro-faxreceive,s,3)
        -- Executing RxFAX("SIP/thehawk3-058f", "/var/spool/asterisk/fax/1108128803.37.tif") in new stack
        -- Executing System("SIP/thehawk3-058f", "/usr/local/sbin/mailfax /var/spool/asterisk/fax/1108128803.37.tif [email]bla@bla.de[/email] 19999999999 19999999999") in new stack
    Feb 11 14:34:34 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    Feb 11 14:34:34 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    Feb 11 14:34:34 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    Feb 11 14:34:35 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    Feb 11 14:34:35 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    Feb 11 14:34:35 NOTICE[5497]: rtp.c:505 ast_rtp_read: Unknown RTP codec 100 received
    
    Feb 11 14:35:04 WARNING[5497]: app_system.c:70 system_exec_helper: Unable to execute '/usr/local/sbin/mailfax /var/spool/asterisk/fax/1108128803.37.tif [email]bla@bla.de[/email] 19999999999 19999999999'
      == Spawn extension (incoming, h, 1) exited non-zero on 'SIP/thehawk3-058f'
    
    Die .tif Datei scheint aber zu keiner Zeit zu existieren.
    Der Execute von "mailfax" schlägt fehl, weil die .tif Datei nicht existiert,
    dies hab ich schon durch einen manuellen Aufruf mit Parametern
    herausgefunden.

    extensions.conf
    Code:
    [macro-faxreceive]
      exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
      exten => s,2,DBGet(EMAILADDR=extensionemail/${MACRO_EXTEN})
      exten => s,3,rxfax(${FAXFILE})
      exten => s,103,SetVar(EMAILADDR=bla@bla.de)
      exten => s,104,Goto(3)
    
    [fax]
    #exten => s,1,Answer()
    #exten => s,2,SetVar(FAXFILE=/var/spool/asterisk/fax/${UNIQUEID}.tif)
    #exten => s,3,RxFax(${FAXFILE})
    #exten => s,4,Congestion()
    #exten => s,104,Congestion()
    exten => thehawk3,1,Macro(faxreceive)
    exten => h,1,system(/usr/local/sbin/mailfax ${FAXFILE} ${EMAILADDR} '${CALLERIDNUM} ${CALLERIDNAME}')
    
    #
    # Example
    # "incoming" could named individually at your site.
    # "YourAsteriskAccount" is extension on Nikotel inbound calls
    #
    [incoming]
    include => fax
    exten => thehawk,1,Dial(SIP/15,60,Ttr)
    exten => thehawk2,1,GoTo(9349,1)
    exten => fax,1,Goto(fax,thehawk3,1)
    
    
    Es wäre echt prima, wenn ihr mir da weiter helfen könntet.

    gruss
    alphamaennchen
     
  17. happyhour

    happyhour Neuer User

    Registriert seit:
    13 März 2005
    Beiträge:
    13
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wurde inzwischen schon eine Lösung zum Senden der Faxe über "var/spool/asterisk/outgoing" gefunden? Ich habs auch mal mit

    Channel: SIP/123

    Application: txfax
    Data: /tmp/fax.tiff

    probiert. Allerdings mit dem Ergebniss, dass ich die Fehlermedlung

    Forbidden - wrong password on authentication for INVITE to '"vorname.nachname" <sip:vorname.nachname@freenet.de>;

    bekomme

    Siehe
    FoIP-Fehlermeldung
     
  18. ipfox

    ipfox Mitglied

    Registriert seit:
    22 Nov. 2004
    Beiträge:
    242
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    hi Ber5erker.
    ich habe dat gleiche Problem beim Faxempfang. SIP Intern-Fax klappt nur SIP Extern-Fax klappt nicht.

    libxml2 ist auch installiert, den logs kann ich leider auch nichts entehmen. zeigt keine fehler an.

    das problem muss also noch woanders liegen.