Mittlerweile gibt es ein Kernel-Modul, welches mit der Standard-CAPI aus den Distributionen läuft. Diese funktioniert mit den gängigen CAPI-Anwendungen ohne Diese neu zu übersetzen (z.B. Asterisk).
Die unten beschriebene Anleitung ist somit nicht mehr nötig und kann ggf. als Alternative verwendet werden.
Die Fritz!Box stellt eine Remote-CAPI Schnittstelle zur Verfügung, die bisher nur unter Windows angesprochen werden konnte (capi2032.dll). Ziel war es nun, eine ähnliche Library unter Linux zur Verfügung zu stellen, um diese Schnittstelle ebenfalls verwenden zu können.
Die Möglichkeiten sind dann ähnlich:
Unter Linux verwendet man normalerweise die libcapi20 aus dem isdn4linux Paket. Ich hatte diese ein wenig angepasst, damit man zusätzlich zur lokalen CAPI auch die Remote-CAPI der FB verwenden kann. Sollte keine lokale ISDN-Karte installiert sein, stehen nur die Controller der Remote-CAPI zur Verfügung.
Da beide Schnittstellen bedient werden können, gibt es folgendes zu beachten:
Danach die Anwendungen mit -lcapi20 linken.
An der Stelle möchte ich mich herzlich bei allen bedanken, die daran mitgewirkt haben und noch mitwirken werden!
Mehr Informationen unter http://fbrcapi.v3v.de/libcapi20fb.html
Das modifizierte libcapi20 Paket downloaden und entpacken.
i386:
./configure make make install
win32:
Projektmappe unter Visual C++ 2005 öffnen und kompilieren. Das MS-SDK wird benötigt!
Die Library installiert sich nach /usr/lib. Alternativ kann man auch die vorkompilierten Binaries aus dem Paket verwenden. Die Header Dateien müssen dann manuell nach /usr/include kopiert werden.
Ein ls -la /usr/lib/libcapi20* auf der Konsole sollte dann ungefähr so aussehen:
# ls -la /usr/lib/libcapi20* -rw-r--r-- 1 root root 75578 Aug 2 17:34 /usr/lib/libcapi20.a lrwxrwxrwx 1 root root 18 Aug 2 17:34 /usr/lib/libcapi20.so -> libcapi20.so.3.0.4 lrwxrwxrwx 1 root root 18 Aug 2 17:34 /usr/lib/libcapi20.so.3 -> libcapi20.so.3.0.4 -rwxr-xr-x 1 root root 39093 Aug 2 17:34 /usr/lib/libcapi20.so.3.0.4
Wichtig ist, dass die Softlinks auch korrekt auf libcapi20.so.3.0.4 zeigen.
Standardmäßig wird versucht, sich mit dem Host 'fritz.box' zu verbinden. IP-Adresse und Port lassen sich über Environment Variablen festlegen:
export FB_REMOTE_CAPI_IP=192.168.178.1 export FB_REMOTE_CAPI_PORT=5031
Weitere Einstellungen:
export FB_REMOTE_CAPI_DEBUG=X (Debug-Ausgabe. 0=nichts, 3=alles) export FB_REMOTE_CAPI_TCP=1 (Remote-CAPI an=1, aus=0) export FB_REMOTE_CAPI_DEV=1 (Device-CAPI an=1, aus=0)
Mithilfe von capiinfo kann man nun prüfen, ob alles funktioniert.
capiinfo befindet sich ebenfalls im libcapi20_fb Paket.
# ./capiinfo Number of Controllers : 0 could not register - (0x1009)
ldd capiinfo eingeben und prüfen, ob libcapi20.so.3 auch auf /usr/lib/libcapi20.so.3 zeigt.Für das Faxen unter Linux wird ein SoftDSP benötigt, da die CAPI der Fritz!Box kein T.30 Modem zur Verfügung stellt. Es sind daher folgende Libraries notwending:
capifax selbst besteht aus der Anwendung 'capifax' und der Library 'libcapifax.so'. Der Hilfe-Text zu capifax sieht folgendermaßen aus:
usage: capifax [OPTIONS] OPTIONS: -send [tiff_file] [controller] [msn] [target_no] -receive [path] [controller] [msn] -rate [2400|4800|9600|14400] -ident "+00 00 0000000" -header "My Name" -ecm [on|off] -loglevel [0-3]
Faxe versenden (Ctrl. 1, externer ISDN):
capifax -send /home/maz/mytiff.tiff 1 12345 20354321
Faxe empfangen (Ctrl. 4, Analog):
capifax -receive /home/maz 4 12345
Zum telefonieren kann man die dtmfbox verwenden. Die Soundeingabe/-ausgabe lässt sich über die Datei „dtmfbox.cfg“ einstellen. Diese ist vorkonfiguriert und benötigt normalerweise keine Änderung.
Beispiel:
./dtmfbox -daemon # dtmfbox als daemon starten ./dtmfbox 0 -call 12345 33333333 1 # Anruf durchführen (MSN: 12345, Zielnummer: 33333333, Ctrl. 1). 0 ist die Soundkarte. ./dtmfbox -stop daemon # dtmfbox wieder beenden
Weitere Informationen zur dtmfbox findet sich im entsprechenden Thread.
Eine modifizierte chan_capi befindet sich ebenfalls im Forum. Damit sollte es möglich sein, den Asterisk mit der FB zu verbinden.
Wenn das Kernel-Modul fbrcapi genutzt wird, kann auf die modifizierte chan_capi verzichtet werden.