Titelbild mit Telefonhörer

talkmaster.de » Hardware » ISDN » Remote CAPI Linux-Linux

ISDN-Adapter Gerdes PrimuX

Primux Remote CAPI: Linux-Server zu Linux-Client

Zum Lieferumfang der PrimuX-ISDN-Adapter gehört die Software "Remote CAPI". Diese Seite erklärt, wie man auf einem "Server" unter einem Linux-Betriebssystem Remote CAPI bereitstellt und es auf einem Client unter Linux nutzt. Der Begriff "Server" bezeichnet dabei lediglich den Computer, der die ISDN-Hardware oder den SIP-Adapter besitzt.

Ein praktischer Anwendungsfall ist Asterisk unter Linux in einer VM (Virtual Machine), die auf einem Linux-Hostsystem läuft. Eine VM hat nie Zugriff auf Steckkarten. Wenn das Trägersystem zudem USB nicht durchschleift, kann das Gastsystem keinerlei direkten Zugriff auf ISDN-Hardware erlangen. Aber wenn das Trägersystem selbst mit einer ISDN-Karte und CAPI ausgestattet wird, kann es mittels Remote CAPI dem Linux-Gastsystem Zugriff auf sein CAPI gewähren.

So funktioniert es auf dem Server-Computer unter Linux Debian:

  1. Wenn es sich um ein 64-bit-System handelt, fügen Sie im Terminal mit Root-Rechten die 32-bit-Architektur hinzu: "# dpkg --add-architecture i386". Führen Sie ein Update des Paketmanagers aus: "# apt-get update".
  2. Falls das Paket "Linux Standard Base" nicht installiert ist, fügen Sie es hinzu: # apt-get install lsb-core".
  3. Installieren Sie Bibliotheken, die für die Kompilierung notwendig sind: "# apt-get install libc6:i386 zlib1g:i386 build-essential gcc-multilib rpm libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 libpam0g:i386".
  4. Installieren Sie Tools und Bibliotheken, die für CAPI notwendig sind: "# apt-get install asterisk-dev capiutils libcapi20-3 libcapi20-dev".
  5. Installieren Sie die Kernel-Header: "# apt-get install linux-headers-$(uname -r)"
  6. Erstellen Sie zum Herunterladen des PrimuX-Treiber ein neues Verzeichnis: "# mkdir primuxdriver"
  7. Wechseln Sie in das Verzeichnis: "# cd primuxdriver".
  8. Ermitteln Sie auf http://www.gerdes-ag.de/service/primux/downloads/, Reiter "Linux-Treiber" den Download-Link.
  9. Laden Sie den Treiber herunter, z. B. mit folgendem im Oktober 2016 gültigen Link: "# wget https://www.gerdes-ag.de/fileadmin/downloads/primux-3.9.15.tar.bz2"
  10. Entpacken Sie das Archiv: "# tar xvfj primux-3.9.15.tar.bz2"
  11. Führen Sie das Setup in dem Verzeichnis aus: "# ./setup.sh". Bestätigen Sie alle Fragen mit "y".
  12. PrimuX-Installation unter Linux

  13. Aktivieren Sie im PrimuX-Treiber Remote CAPI:
  14. Wechseln Sie in das Primux-Verzeichnis: "# cd /usr/lib/primux".
  15. Starten Sie den Remote-CAPI-Daemon: "# ./rmtcapi -i". Falls Sie statt des Standard-Ports 4711 z. B. 4712 verwenden möchten, benutzen Sie "# ./rmtcapi -i -p 4712". Falls Sie den Zugriff nur einer bestimmten IP-Adresse erlauben möchten, geben Sie die IP-Adresse mit, z. B. "# ./rmtcapi -i -p 4712 192.168.1.80".
  16. Geben Sie in der Firewall des Servers den TCP-Port frei.

So funktioniert es auf dem Client-Computer unter Linux am Beispiel von Debian 8 "Jessie" 64 bit:

  1. Fügen Sie die 32-bit-Architektur hinzu: "# dpkg --add-architecture i386". Führen Sie ein Update des Paketmanagers aus: "# apt-get update".
  2. Die Linux Standard Base ist unter Debian 8 im Grundzustand nicht installiert. Fügen Sie es hinzu: # apt-get install lsb-core".
  3. Installieren Sie Tools und Bibliotheken, die für CAPI notwendig sind: "# apt-get install asterisk-dev capiutils libcapi20-3 libcapi20-dev".
  4. Installieren Sie die Kernel-Header: "# apt-get install linux-headers-$(uname -r)"
  5. Erstellen Sie zum Herunterladen des PrimuX-Treiber ein neues Verzeichnis: "# mkdir primuxdriver"
  6. Wechseln Sie in das Verzeichnis: "# cd primuxdriver".
  7. Ermitteln Sie auf http://www.gerdes-ag.de/service/primux/downloads/, Reiter "Linux-Treiber" den Download-Link.
  8. Laden Sie den Treiber herunter, z. B. mit folgendem im Oktober 2016 gültigen Link: "# wget https://www.gerdes-ag.de/fileadmin/downloads/primux-3.9.15.tar.bz2"
  9. Entpacken Sie das Archiv: "# tar xvfj primux-3.9.15.tar.bz2"
  10. Führen Sie das Setup in dem Verzeichnis aus: "# ./setup.sh". Bestätigen Sie alle Fragen mit "y".
  11. Die wichtigen Verzeichnisse für die nachfolgende Kompilierung des chan_capi-Moduls sind:
    Proprietäre Header-Dateien (u.a. capi20.h): /usr/include
    Primux-Binaries: /usr/lib/primux
    Falls im Setup Fehler auftreten, überprüfen Sie die Dateien in diesen Verzeichnissen auf Vollständigkeit.
  12. Wechseln Sie in das Primux-Verzeichnis: "# cd /usr/lib/primux".
  13. Aktivieren Sie den Verweis auf das Remote CAPI, das auf dem fernen Rechner läuft: # ./crmtconfig -i <ip:port> mit ip=IP-Adresse des fernen Rechners und port=TCP-Port, der dort im Remote CAPI definiert ist.
  14. Prüfen Sie die Einstellung mit # ./crmtconfig -d. Im Ergebnis werden IP-Adresse und Port des verbundenen Zielsystems angezeigt.
  15. Damit Asterisk mit CAPI kommuniziert, wird chan_capi benötigt. Geben Sie ein:
    # mkdir src
    # cd src
    # curl -O ftp://ftp.chan-capi.org/chan-capi/chan_capi-HEAD.tgz
    # tar xzf chan_capi-HEAD.tgz
    # cd chan-capi-HEAD
  16. Während des Primux-Setups ist eine eigene libcapi20-3 erstellt worden. Es darf nicht die aus dem chan_capi-Paket verwendet werden. Hierfür die Zeile im Makefile so ändern: USE_OWN_LIBCAPI=no. Der Kompiler verwendet nun die vom Gerdes Primux-Setup installierte capi20.h und weitere Header-Dateien aus dem Verzeichnis /usr/include. Nur so erhält Asterisk mittels chan_capi Zugriff auf das Remote CAPI Device. Weitere Anpassungen dieser Datei (Pfade, 32bit vs 64bit System) brauchen Sie nur vorzunehmen, wenn es die Systemumgebung erfordert.
  17. Empfehlenswert ist ein vorheriges Aufräumen des Kompilierungsvorgangs: # make clean
  18. Kompilieren Sie chan_capi: # make -j 2
  19. Ignorieren Sie Warnmeldungen des Compilers wegen "unused variable".
  20. Starten Sie die Installation: # make install
  21. Wenn Sie das Modul zum ersten Mal auf dem System kompilieren und konfigurieren: # make install_config
  22. Öffnen Sie mittels Texteditor die Datei /etc/asterisk/modules.conf.
  23. Suchen Sie die Zeile '# load => chan_capi.so'. Entfernen Sie das Zeichen #, um die Zeile zu aktivieren. Falls die Zeile nicht vorhanden ist, fügen Sie sie an beliebiger Stelle hinzu.
  24. Suchen Sie in derselben Datei den Abschnitt [global]
  25. Ändern Sie die Zeile, in der "chan_capi" steht, auf 'chan_capi.so=yes'.
  26. Speichern Sie und schließen den Texteditor.
  27. Starten Sie Asterisk neu: # /etc/init.d/asterisk restart

Stand vom 28.02.2023