vISDN ist eine ISDN Treibersystem für HFC Karten (und auch GSM Karten).
Es benötigt keinerlei Kernelpatches (noch gültig für neue Version?) und auch keine spezielle Asterisk Version.
(nicht einmal Zaptel/Libpri ist nötig)
Auch zeigt die bisherige Erfahrung, das mit vISDN die IRQ last niedrig bleibt.
vISDN bietet gute Diagnose Möglichkeiten, wie z.B. Analyse mit Wireshark(Ethereal), weiteres dazu s. visdn.org
vISDN befindet sich immer noch in der Entwicklung, wenn auch schon weit fortgeschritten. Daher kann es passieren, das die aktuelle Tagesversion nicht geht.
Deswegen sollte man sich unbedingt die Readme/Beispiele in aller Ruhe selber durchlesen und das ganze auf einem Testsystem installieren.
(aktuelle Entwicklerversionen)
Getestet für diesen Artikel mit SUSE 10, Kernel 2.13, lt. Changelog geht auch 2.6.14.
Man sollte das ganze zuerst auf einem Testsystem probieren und falls nicht, auf jedenfall ein Backup machen!
Wie bei den anderen ISDN Varianten gilt auch hier, alle anderen Treiber für die HFC und HISAX Module entfernen bzw. sicher stellen das diese nicht geladen werden.
vISDN läuft z.Zt. nicht ohne weiteres, wenn Asterisk als nicht-root läuft. Auf der vISDN Mailingliste gibt es dazu ein paar Beiträge.
Die Version 0.14.0 ist hoffnungslos veraltet, deswegen sollte man eine Entwicklerversion nehmen.
Man kann entweder den aktuellen Snapshot herunterladen oder direkt den Code aus der Quellcodeverwaltung (arch) verwenden.
Benötigte Softwarepakete:
Man benögt die üblichen Pakete zum Kompilieren und mindestens die Kernelheader Dateien.
Das Konfigurationsskript (visdn_configurator) benötig Bash 3.
(für Debian Stable (Sarge) einfach apt-get install bash3)
Es gibt zwei Möglichkeiten an den aktuellen vISDN Code zu kommen:
Zunächst braucht man bazaar-ng. Bei Debian heißt das Paket bzr (apt-get install bzr)
Dann führt man folgendes aus:
bzr get http://repo.visdn.org/vstuff/devel
Damit bekommt man die aktuelle Entwicklerversion.
Danach in das Verzeichnis wechseln (z.b. devel) und anschließen das Skript bootstrap ausführen
(es wird u.a. automake benötigt, für Debian Sarge apt-get install automake1.9 )
./bootstrap
Kleiner Tipp: Auch per Webbrowser ist das bazaar-ng Verzeichnis erreichbar: http://repo.visdn.org/bazaar/
Täglich wird der ein Abbild des Arch Repository erstellt, welches die jeweils aktuelle Version enthält.
(das Abbild wird alle 24h erstellt, i.d.R nachts)
Zu finden sind die Dateien auf visdn.org unter Download → All releases → im Verzeichnis snapshots
Die gewünschte herunterladen und dann bspw. mit
tar xvjf visdn-devel-20060216.tar.bz2
entpacken und in das erstellte Verzeichnis wechseln.
Vor dem eigentlichem Compilieren, müssen die Makedatetein erst generiert werden. Mit
./configure --help
erhält man eine Übersicht über die Optionen.
vISDN installiert zumindest auf dem getesteten SuSE 10 System alle Dateien nach /usr/local .
Man kann dies gleich hier ändern, bspw. mit ./configure –prefix=/usr –sysconfdir=/etc .
(Eine Übersicht über die vISDN Dateien gibt es im nächsten Schritt)
Da vISDN sich noch in der Entwicklung befindet und dies sehr schnell voran geht, ist es in den meisten Fällen empfehlenswert, nur den Pfad der Konfigdateien zu ändern.
Im weiteren Verlauf wird davon ausgegangen, das sich die vISDN Dateiein in /usr/local/* und die Konfigdateien in /etc befinden, was wie folgt eingestellt wird:
Nun geht es endlich ans Kompilieren, als erstes wird wie schon erwähnt
./configure --sysconfdir=/etc
ausgeführt und anschließend wird mit
make
vISDN compiliert.
Wenn alles gut ging, anschließend als root die Installtion ausführen.
make install
Danach dann noch
depmod -a ldconfig
ausführen.
Bei den neueren Version installiert vISDN folgendes (kann sich je nach System unterscheiden)
Die Kernelmodule werden in folgende Verzeichnisse kopiert:
/lib/modules/<mein Kernel>/extra/<visdn modul>/ also bspw:
/lib/modules/2.6.13-15.7-default/extra/hfc-pci/visdn-hfc-pci.ko
Die nachfolgenden Pfandangaben können abweichen, s. dazu auch Schritt II
Die Systemlibs, Include Dateien und Programme werden in /usr/local/ installiert, was nicht unbedingt auf jedem System beachtung findet.
| /etc/udev/rules.d/30-visdn.rules | Die udev Regeln für vISDN |
| /usr/local/include/libq931/ | Include Dateien zur libq931 |
| /usr/local/lib/libq931* | libq931 |
| /usr/local/sbin/ | Programme zu vISDN: vgsmctl, visdnctl und visdn_configurator |
Außerdem sollte man noch überprüfen, ob auch die Asteriskmodule an die richtige Stelle kopiert wurden.
(i.d.R. ls /usr/lib/asterisk/modules/*visdn* )
visdn_configurator:
Falls man die Programmdateien nachträglich verschiebt oder Konfigdateien in einem anderen Pfad sind als mit ./configure angegeben, muss man die neuen Pfad in diesem Skript von Hand anpassen
Beispiele:
Einfach mit einem Editor öffnen und VISDN_DIR=${prefix}/etc/visdn nach VISDN_DIR=/etc/visdn ändern.
Das gleiche gilt, wenn man auch die Programme nach /usr/sbin kopiert statt sie im /usr/local Pfad zu lassen:
prefix=/usr/local auf prefix=/usr ändern.
kommt noch
Für ungeduldige:
In /etc/visdn (oder je nach System /usr/local/etc/visdn) kommen die Konfigurationsdateien für die vISDN Hardware.
Bei PCI Karten sind diese nach folgendem Schema benannt: device-pci-<pci id>
Die PCI ID bekommt man mit folgendem Befehl
lspci
Im vISDN sample Verzeichnis gibt es Beispiel Konfigurationen.
Im Asterisk Konfigverzeichnis (/etc/asterisk) wird die Datein visdn.conf angelegt. Beispiele dazu und auch für die extensions.conf gibt es im sample Verzeichnis.
Wenn das alles geschafft ist mit einem Aufruf von
visdn_configurator
die vISDN Module laden und konfigurieren. (eventuell vorher einen Neustart machen)
Wie kann ich den Timeout bei der Overlapwahl ändern?
In der visdn.conf bspw. T302=6 setzten (Standard: 12s)
Auf der vISDN Seite gibt es dazu ein Ablaufdiagramm
Die Overlapwahl kann auch weitergereicht werden, z.B. an eine ans Telefonnetz angeschlossene vISDN Karte:
exten ⇒ _o-.,1,Macro(telcobri_out|${EXTEN:2})
(aus samples/extensions.conf)