[[Vorlage(Archiviert, )]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten:Paketquellen freischalten] [:Archiv/ISDN-Karten: ISDN-Karten einrichten] [:Postfix: lokalen Mailserver einrichten] [:Terminal: Ein Terminal öffnen] [:Editor: Eine Textdatei verändern] }}} [[Inhaltsverzeichnis(2)]] Das Programm [http://www.capisuite.org/ CapiSuite] {de} bietet eine relativ einfache Methode, einen Linux-Rechner mit einer CAPI-fähigen ISDN-Karte in einen Anrufbeantworter (AB) und/oder ein Faxgerät zu verwandeln. Eingehende Anrufe und Faxe werden gespeichert und als Sound- ('''.wav''') bzw. PDF-Dateien per (interner) E-Mail zugestellt. Auch eine Fernabfrage des ABs mit persönlichem PIN-Code ist möglich. Für fortgeschrittene Benutzer, die sich in der Programmiersprache [:Python:] auskennen, bieten die Skripting-Fähigkeiten der CapiSuite noch ganz andere Möglichkeiten: beispielsweise automatische Anrufe bei bestimmten Systemereignissen oder automatisierte Call-In-Systeme. Optional kann noch ein Skript zum sofortigen Ausdrucken eingehender Faxe eingebunden werden. Das Programm wird seit mehreren Jahren nicht mehr weiterentwickelt, funktioniert aber weiterhin tadellos. Die entscheidende Hürde ist die Inbetriebnahme der benötigten [:Archiv/ISDN-Karten:ISDN-Karte] unter Linux. = Installation = Als Allererstes braucht man ein funktionierendes [wikipedia:Common_ISDN_Application_Programming_Interface:CAPI]-System auf dem Rechner. Dafür wird entweder eine aktive ISDN-Karte, die von Haus eine integrierte CAPI besitzt, oder eine passive wie eine FRITZ!Card von AVM benötigt, wobei hier der Kartentreiber für die CAPI-Unterstützung sorgt. Wie letztere installiert wird, beschreibt der Artikel [:Archiv/ISDN-Karten/AVM_FRITZ!Card_PCI:AVM_FRITZ!Card_PCI] (bis einschließlich [:Natty:Ubuntu 11.04]). Das Paket '''pppdcapiplugin''' braucht man nicht, wenn man nur Fax- und/oder Sprachdienste nutzen will und den [:Internetzugang:] über einen Router realisiert hat. == Mailserver == Dann benötigt man noch einen funktionierenden Mailserver. [:Postfix:] funktioniert z.B. wunderbar. Zum Testen kann man sich anschließend das Paket * '''mailutils''' installieren [1] und ausprobieren, ob man sich mit {{{#!vorlage Befehl mail -s Test Email-Adresse }}} erfolgreich Mail an die eigene interne Adresse (Benutzername@Rechnername) schicken kann. Der lokale Mail-Server muss unverschlüsselte Verbindungen akzeptieren, deshalb sollte in der Datei '''/etc/postfix/main.cf''' folgende Zeile enthalten sein: {{{smtpd_tls_security_level = may}}} Falls an eine externe Mailadresse versendet werden sollen, muss die Adresse des Absenders (username@example.com) mit einer gültigen Domain versehen sein. Andernfalls ist eine Fehlermeldung des Providers vorprogrammiert und die Mail kann nicht verschickt werden. Dies kann sowohl in den globalen als auch in den benutzerspezifischen Abschnitten erfolgen (siehe [#Anrufbeantworter Anrufbeantworter] und [#Faxgeraet Faxgerät]). == CapiSuite == Zum Schluss braucht man natürlich noch das Paket [1] {{{#!vorlage Paketinstallation capisuite, universe, bis [:Natty:Ubuntu 11.04] libsox-fmt-all, universe, Audio-Codecs }}} === Ubuntu 13.10 und 14.04 === Capisuite ist nicht mehr in den offiziellen Paketquellen enthalten. Man muss sich deshalb den Quellcode herunterladen und diesen an Ubuntu 13.10 anpassen. Eine Anleitung findet sich im [post:6078567:Forum]. Unter Ubuntu 14.04 scheinen die Pythonscripte nicht mehr zu funktionieren. Als Alternative zum Faxversand bietet sich Hylafax/Capi4hylafax an. = Konfiguration = == Anrufbeantworter == Alles was man machen muss, um den Anrufbeantworter zu aktivieren, ist die Datei '''/etc/capisuite/answering_machine.conf''' entsprechend zu bearbeiten. Im Gegensatz zu anderen [:Serverdienste:Diensten] muss CapiSuite anschließend nicht neu gestartet werden, da Änderungen in der Konfiguration automatisch berücksichtigt werden. Man beginnt mit der Sektion für die globalen Einstellungen, genannt ''[GLOBAL]'', die man weitgehend so lassen kann, wie sie ist. Wenn man möchte, kann man in der Zeile mit ``voice_email_from=`` anstatt ''root'' eine richtige E-Mailadresse eintragen, die dann in den Mails als Absender erscheint. Wichtig sind die folgenden Sektionen, die nach den jeweiligen Benutzern benannt sind und die persönlichen Einstellungen beinhalten. Dabei muss auf dem System ein gleichlautender Benutzer existieren. Hier ein Beispiel: {{{ [Benutzername] # Telefonnummer (MSN), auf die das Gerät reagieren soll. Verschiedene Benutzer brauchen einen # eigenen Abschnitt: [anderer Benutzername] mit entsprechend unterschiedlicher Nummer. voice_numbers="123456" # mehrere Nummern sind auch möglich: # voice_numbers="123456,123457,123458" # was mit dem Anruf passiert: MailAndSave, SaveOnly oder None (nur Ansage) voice_action="MailAndSave" # Aufnahmelänge: record_length="60" # (interne) E-Mail Adresse des Empfängers: voice_email="Benutzername@Rechnername" # PIN für Fernabfrage: pin="00000" }}} Falls die Aufzeichnung an eine externe Mailadresse versendet werden soll: {{{ voice_email_from="CapiSuite AB " }}} Dabei bitte beachten, dass '''.wav'''-Dateien nicht komprimiert sind und relativ viel Platz belegen! {{{#!vorlage Experten Die Sprachaufzeichnungen sind leider normalerweise ziemlich leise. Wem das nicht gefällt, der muss die entsprechenden Python-Skripte ändern. Und zwar muss die Zeile 230 in der Datei '''/usr/lib/python2.5/site-packages/cs_helpers.py''' wie folgt geändert werden, und danach der vorkompilierte Bytecode in Gestalt der Dateien '''cs_helpers.py''c''''' und '''cs_helpers.py''o''''' gelöscht werden: ``ret = os.spawnlp(os.P_WAIT,"sox","sox",'''"-v","3",attachment,"-w",'''basename+"wav")`` Alternativ kann man dem Rauschen beim Abspielen der '''.wav'''-Datei diese Datei wie folgt begegnen: ``ret = os.spawnlp(os.P_WAIT,"sox","sox",'''"-X","-v","3",'''attachment,"-w",basename+"wav")`` Das "-X" beseitigt das Rauschen (getestet auf Ubuntu 8.04.2 64-Bit). }}} Die vom Anrufbeantworter erstellten '''.la'''-Dateien (a-Law ISDN Audioformat) können mit folgendem Befehl abgespielt: {{{#!vorlage Befehl play }}} und mit: {{{#!vorlage Befehl sox }}} in eine '''.wav'''-Datei umgewandelt werden. Bei der Zustellung per E-Mail geschieht dies automatisch. == Faxgerät == Auch die Faxfunktion hat ihre eigene Konfigurationsdatei - '''/etc/capisuite/fax.conf''' - die der des Anrufbeantworters sehr ähnlich ist. Da CapiSuite eine integrierte Faxweiche besitzt, kann man Anrufbeantworter und Faxgerät ohne weiteres die gleiche Rufnummer (MSN) zuweisen. Die [GLOBAL]-Sektion besitzt ebenfalls vernünftige Voreinstellungen, daher an dieser Stelle gleich eine kommentierte Benutzer-Sektion: {{{ [Benutzername] fax_numbers="123456" # Fax-Nummer für den Empfänger; mit Länderkennung und OHNE führende Null bei der Vorwahl: fax_stationID="+49 40 123456" # Fax-Meldung (beliebiger Text): fax_headline="Faxen machen - sent by CapiSuite" # (interne) E-Mail Adresse des Empfängers: fax_email="Benutzername@Rechnername" # 'None' macht hier keinen Sinn: fax_action="MailAndSave" }}} Falls die Faxe an eine externe Mailadresse versendet werden sollen: {{{ fax_email_from="Fax von CapiSuite " }}} === Fehlerbehebung Faxempfang === Ohne folgenden Bugfix funktioniert der Faxempfang nicht. Das Problem liegt an einem Umlaut ('''ü''') in einem Kommentar des Skripts '''/usr/lib/capisuite/incoming.py''', der entfernt bzw. in "ue" umbenannt werden muss [6]. Hier die korrigierte Zeile: {{{ problems on Redhat, thx to Herbert Huebner for reporting }}} Danach sollte der Faxempfang funktionieren. === OpenOffice.org === Um aus [:OpenOffice.org:] heraus faxen zu können, muss man mit Hilfe des Programms '''/usr/lib/openoffice/program/spadmin''' einen neuen Fax-Drucker konfigurieren (das Programm `spadmin` ist auch Bestandteil von [:LibreOffice:]). Im spadmin-Fenster ''"Neuer Drucker"'' auswählen, dann ''"eine Faxlösung anbinden"'', ''"der Standardtreiber"'' und dann folgendes als Kommandozeile angeben: {{{ /usr/bin/capisuitefax -q -d "(PHONE)" "(TMP)" }}} Dann noch einen Namen für den Drucker vergeben und ''"Fertig stellen"''. === Scanner einbinden === Das Programm '''xsane''' bietet die Möglichkeit, neben der eigentlichen Scanfunktion eine eingescannte Vorlage direkt zu faxen. Hierzu müssen lediglich die Einstellungen angepasst werden. Diese befinden sich in [:XSane:xsane] unter den Menüpunkten ''"Einstellungen -> Konfiguration"'' in der Registerkarte Fax: || Befehl: || '''/usr/bin/capisuitefax''' || || Option für Empfängernummer: || '''-d''' || || Option für Postscriptdatei: || bleibt leer || || Option für Normalmodus: || entfernen || || Option für Feinmodus: || entfernen || === Faxe unmittelbar ausdrucken === Um Faxe nach dem Empfang direkt auszudrucken, kann folgendes Python-Skript verwendet werden. Die erste Funktion '''printfax''' dient zum sofortigen Ausdruck, die zweite Funktion '''name''' wird weiter unten erläutert. Das Skript muss unter '''/usr/lib64/python2.5/site-packages/faxen_machen.py''' gespeichert werden [6]. Damit wird aus dem Fax (Endung '''.sff''') eine [wikipedia:Tagged_Image_File_Format:TIFF]-Datei erzeugt, diese in Postscript umgewandelt und an den Drucker umgeleitet. Anschließend wird die TIFF-Datei wieder gelöscht. Bei ausgeschaltetem Drucker verbleiben die Druckaufträge solange in der Warteschlange, bis der Drucker angeschaltet wird. {{{ # hilfsroutinen fuer capisuite # m.goerres 14.01.2007 # /usr/lib64/python2.5/site-packages/faxen_machen.py # # printfax = fax direkt ausdrucken # def printfax(filename): import cs_helpers # fuer die funktion sfftotiff # fuer string-funktionen import os # fuer die systemfunktionen namen = filename.split(".") suffix = namen[1] dateiname = namen[0] if suffix=="sff": ret=cs_helpers.sfftotiff(filename,dateiname+".tif") command="tiff2ps -a -h11 -w8.5 "+dateiname+".tif"+" | lp" os.system(command) os.unlink(dateiname+".tif") else: raise "color fax kann nicht ausgedruckt werden!" # ende # # name = rueckgabe eines eindeutigen namens aus faxnummer + datum + zeit + endung # def name(directory,call_from,suffix): import time faxtime = time.strftime("%Y-%m-%d_%H-%M-%S") if call_from=="-": faxnumber = "unknown" else: faxnumber = call_from faxname = directory+"fax_"+faxnumber+"_"+faxtime+"."+suffix return faxname }}} Das Python-Skript muss nun noch am Ende der Funktion '''faxIncoming''' in der Datei '''/usr/lib/capisuite/incoming.py''' durch folgende Programmzeile aufgerufen werden [6]: {{{faxen_machen.printfax(filename) }}} Das Skript muss am Anfang der Datei '''/usr/lib/capisuite/incoming.py''' unmittelbar hinter den anderen Importzeilen importiert werden. Damit der Import funktioniert muss außerdem davor noch Python das Verzeichnis des Moduls bekannt gemacht werden. {{{ import sys sys.path.append(r'/usr/lib64/python2.5/site-packages/') import faxen_machen }}} === Dateinamen der Faxe anpassen === CapiSuite nummeriert die Faxe prinzipiell aufsteigend. Zur eindeutigen Erkennung und Zuordnung ist dies nur begrenzt hilfreich, die eingehende Faxnummer ist eindeutiger und hilfreicher. Hierzu dient die Funktion '''name''' aus dem oben beschriebenen Python-Skript '''/usr/lib64/python2.5/site-packages/faxen_machen.py'''. Der Name des Faxes setzt sich zusammen aus der eingehenden Nummer und Empfangsdatum und -zeit, z.B. fax_012345678_2007-01-14_11-24-16.pdf. Hierzu wird die formatierte Zeitausgabe, eine Standardfunktion von Python, verwendet. Bei Bedarf kann diese natürlich beliebig angepasst werden. Das Skript muss wie oben beschrieben am Anfang der Datei '''/usr/lib/capisuite/incoming.py''' unmittelbar hinter den anderen Importzeilen importiert werden. Der Funktionsaufruf in der Datei '''/usr/lib/capisuite/incoming.py''' muss noch entsprechend angepasst werden: {{{ # alter Befehl (auskommentiert): #filename=cs_helpers.uniqueName(udir+"received/","fax",faxFormat) # neuer Befehl: filename=faxen_machen.name(udir+"received/",call_from,faxFormat) }}} == Capisuite als Daemon == Um CapiSuite als Dienst direkt zu starten, muss die Datei '''/etc/default/capisuite''' angepasst werden: {{{run_capisuite_daemon=y }}} Jetzt die CapiSuite mit dem Befehl {{{#!vorlage Befehl sudo /etc/init.d/capisuite restart }}} neustarten. Anrufbeantworter und Faxgerät sollten funktionieren. Ansonsten finden sich Fehlermeldungen in der Datei '''/var/log/capisuite.error'''. = Benutzung = == Anrufbeantworter == Anrufe sollten jetzt automatisch aufgezeichnet und als '''.wav'''-Datei per E-Mail verschickt werden, so dass die Nachrichten aus dem E-Mail Programm heraus abgehört werden können. Dafür bietet sich z.B. das Programm '''aplay''' an. Wenn man sich selbst von woanders anruft und mit dem Tonwahl-Verfahren die PIN-Nummer eingibt, gelangt man in das Fernabfragemenü, wo man u.a. auch einen neuen Text aufsprechen kann. Alternativ kann man auch eine Ansage als Nachricht hinterlassen und später die entsprechende '''.la'''-Datei umkopieren. Zusätzlich kann man auch eine beliebige andere Audiodatei mit Hilfe des Programms '''sox''' in eine '''.la'''-Datei umwandeln und der CapiSuite über die Konfigurationsdirektiven ''voice_user_dir'' und ''announcement'' in der Datei '''/etc/capisuite/answering-machine.conf''' zugänglich machen. == Faxgerät == Eingehende Faxe werden wie Sprachnachrichten per E-Mail versandt. Selbst Faxe versenden kann man mit dem Befehl {{{#!vorlage Befehl capisuitefax -d Faxnummer Datei(en) }}} Die Dateien müssen dafür im PDF- oder im Postscriptformat vorliegen. Mit den ``capisuitefax``-Optionen '''-l''' und '''-a ''ID'' ''' kann man sich die Sendeschlange anzeigen lassen bzw. den Auftrag mit der Nummer ''ID'' abbrechen. === OpenOffice.org === Um Dokumente mit [:OpenOffice.org:] zu faxen, einfach den eingerichteten Faxdrucker im Druckdialog auswählen und die Faxnummer im folgenden Dialogfeld eingeben. === xsane === Im Hauptdialog von '''xsane''' statt Betrachter einfach Fax auswählen, in dem erscheinenden Dialog ein Faxprojekt erstellen und die gewünschte Faxnummer eingeben. Nach Scannen der Vorlage die entsprechende Datei auswählen und auf Projekt senden drücken. Nach Umwandlung wird die Datei an CapiSuite übergeben und als Fax verschickt. = Probleme und Lösungen = ||<-2 rowclass="titel"> mögliche Fehlermeldungen || || Problem || Lösung || || ''"Sorry, you're no valid user for CapiSuite"'' || Fehlermeldung bei Nutzung von '''capisuitefax''' - aktueller Benutzername stimmt nicht mit dem konfigurierten Nutzer in '''/etc/capisuite/fax.conf''' überein || || ''"capisuite can't write to queue dir"'' oder ''"Druckerfehler"'' beim Faxen aus OpenOffice || Das Verzeichnis '''/var/spool/capisuite/users//sendq''' existiert nicht, möglicherweise wurde Capisuite als Dienst noch nicht aktiviert (siehe oben); Capisuite als Dienst starten ist Voraussetzung für das Absenden von Faxen. || || ''"ERROR occured while converting file: Error while calling sox. Not installed? Please talk to your friendly administrator."'' || Leider installiert '''sox''' nicht alle benötigten Codecs mit, deshalb einfach das Paket '''libsox-dev''' installieren (getestet unter 8.04.2 64-Bit) || || ''"...CapiSuite 0x7fff93c4f4c0: Error while trying to send mail: (530, '5.7.0 Must issue a STARTTLS command first', ..."'' || Wenn diese Fehlermeldung in '''/var/log/capisuite.error''' auftaucht, dann kann die Mail nicht an den Mailserver übergeben werden, weil dieser keine unverschlüsselte Verbindung akzeptiert. Unter [#Installation Installation] ist eine Lösung beschrieben. || = Links = * [http://www.capisuite.org/ Projektseite] {en} * [http://www.capisuite.org/de-manual/ Dokumentation] {de} * [github:larsimmisch/capisuite:Quellcode] {en} * [http://www.neobiker.de/wiki/index.php?title=Capisuite CapiSuite Erweiterungen] {de} * [http://linux.eusterholz.dyndns.org/modem-isdn/capisuite.htm Linux als SOHO-Server - CapiSuite] {de} * [http://www.easylinux.de/Artikel/ausgabe/2007/02/040-isdn-fax/ Faxen machen - ISDN-Karte als Faxgerät und Anrufbeantworter nutzen] {de} - EasyLinux 02/2007 * [:Archiv/FritzBox/ffgtk:Fritz Fun GTK] - Faxen mit der Fritz!Box (oder T-Com Speedport) und '''capifax''' * [packages:capi4hylafax:] {en} - alternativer Faxserver auf Basis von [wikipedia:HylaFAX:] (ohne Anrufbeantworter) # tag: Hardware, Kommunikation, ISDN, Büro, Server