T.38 Digium Fax // Sipgate-Samurai-API

rmh

Aktives Mitglied
Mitglied seit
6 Jul 2008
Beiträge
1,940
Punkte für Reaktionen
37
Punkte
48
Hallo zusammen,

nach vielen Experimenten steht für mich fest, FAX an einem reinen SIP-Anschluss kann nur durch T.38 einigermaßen stabil funktionieren. Die beiderseitige Implementierung (Sender zu Empfänger) ist jedoch äußerst selten. Bei einem "fallback" auf audio/g711 kommt es häufig zu Übertragungsfehlern. Will man das vorhandene Fax-Gerät und T.38 verwenden, sollte man sicherstellen, dass die Gegenseite das Protokoll ebenfalls versteht. Die Idee, man nimmt das Fax einfach selbst per T.38 entgegen und verarbeitet es dann weiter. ;)

Man benötigt folgendes:
  • Einen Sipgate-Account
  • Analoges Faxgerät
  • T.38 fähigen ATA (z.B. Grandstream HT486)
  • Asterisk 1.6.2.x, oder 1.8.
  • Digiums Fax for Asterisk

Nach ein paar grundlegenden Einstellungen kann man intern Faxe per T.38 vom eigenen Fax-Gerät empfangen und auf der Asterisk-Maschine als Tiff speichern.
Nun installiert man:
Probehalber kann man alle eingehenden Faxe abfangen und speichern:
  • exten => _X.,1,ReceiveFAX(/tmp/fax-${CALLERID(dnid)}.tif)
Das lokal empfangene und gespeicherte Fax kann man nun in ein PDF umwandeln, z.B. mit
  • tiff2ps *.tif | ps2pdf13 -sPAPERSIZE=a4 - > test.pdf [1]
und anschließend mittels Sipgate-API verschicken. Das Perlskript erwartet folgende Syntax:
  • ./sipgateAPI-fax.pl Webseitenbenutzername Passwort 498912345678 test.pdf


Die API tut also was sie soll und ein vorhandenes Fax-Gerät kann weiterverwendet werden. :)
Die automatisierte Einbindung in Asterisk ist jedoch noch stark verbesserungswürdig. Jede Idee die API vollständig zu integrieren ist herzlich willkommen.


To-Do-Liste:
  • Integration der API in den Dialplan
  • Dateinamen sinnvoll aufbauen, z.B. fax-Rufnummer-Datum-Uhrzeit.tiff erl.
  • Gewählte Faxnummer aus Variable oder Dateinamen entnehmen und an API üebrgeben erl.
  • API erwartet die Fax-Nummer im internationalen Format, ggf. in extensions.conf nationale Eingabe zulassen und neu formatieren
  • Abfragemöglichkeiten des Versandstatus prüfen
  • Konvertieren nach PDF integrieren erl.



Gruß in die Runde
R.




[1] Quelle, es sollte aber auch möglich sein, TIFF als Standard in der API zu hinterlegen, jedoch spart PDF etwas Bandbreite.
 
Zuletzt bearbeitet:
Hier eine notdürftig zusammengebastelte, aber funktionsfähige erste Version:

extensions.conf
Code:
[fax-empfang]
exten => _X.,1,Verbose(Neues Fax fuer: ${CALLERID(dnid)})
exten => _X.,n,Set(FAXTIME=${STRFTIME(${EPOCH},Europe/Berlin,%Y%m%d\-%H%M)})
exten => _X.,n,Set(FAXFILE=/var/spool/asterisk/fax/fax-${CALLERID(dnid)}-${FAXTIME}.tif)
exten => _X.,n,ReceiveFAX(${FAXFILE})
exten => _X.,n,Hangup()
exten => h,1,System(tiff2ps ${FAXFILE} | ps2pdf13 -sPAPERSIZE=a4 - > ${FAXFILE}.pdf)
exten => h,n,System(perl -w /Pfad/Zum/Perlskript/sipgateAPI-fax.pl Webseitenbenutzername Passwort ${CALLERID(dnid)} ${FAXFILE}.pdf)
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,295
Beiträge
2,249,597
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
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.