Author Topic: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben  (Read 21875 times)

Offline tankwart

  • Sr. Member
  • ****
  • Posts: 165
  • Karma: 0
Wer auf einer beliebigen Linux-Distribution mit Kernel 2.6.x eine ISDN-Karte wie z.B. AVM B1 oder FritzCard über CAPI betreiben möchte, wird auf massive Probleme stoßen, weil es in neueren Linux-Distributionen eine Inkompatibilität mit isdn4linux gibt.

Mit der folgenden Anleitung ist es jedoch möglich, auch ohne tiefschürfende Linux-Kenntnisse beliebige, CAPI-kompatible ISDN-Karten in den neuesten Asterisk- und Linux-Distributionen zu betreiben.

Vorausgesetzt wird eine funktionierende Linux-Installation mit Kernel 2.6.9 und  Asterisk 1.2, hier am Beispiel von Asterisk@home 2.0 Beta 5, die CentOS 4.2 (en RedHat-Clone) verwendet, und bei der die ISDN-Karte von Linux bereits erkannt wird.

Linux-Updates einspielen
  yum -y update
 
neu booten
  shutdown -r now

Asterisk stoppen
  asterisk -r
  CLI> stop now

CAPI 2.0 Utilities installieren
  capi4k-utils-2005-07-18  downloaden, auspacken und nach
  /usr/src/capi4k-utils kopieren.
  cd /usr/src/capi4k-utils
  make config
  Im Menü das aktuelle (!!) Kernel Source-Verzeichnis angeben,
  also z.B. /usr/src/kernels/2.6.9-22.0.1.EL-i686
  Mit ‘exit’ und ‘save’ verlassen,
  unmittelbar darauf läuft mehrere Sekunden lang die Konfiguration.
  make clean
  make
  make install

CAPI 2.0 Device-Verzeichnisse anlegen
  cd  /usr/src/capi4k-utils/scripts
  bash makedev.sh

Linux-CAPI-Datei erstellen
  Achtung, das ist eine andere als die  gleichnamige Datei bei Asterisk!
  /etc/capi.conf
  Muss nur eine (auskommentierte) Zeile für die verwendete ISDN-Karte
  enthalten, also für aktuelle AVM BI PCI-Karten:
  b1pciv4 b1.t4 DSS1 - - - - # für aktuelle AVM BI PCI-Karten
  b1pci   b1.t4 DSS1 - - - - # für ältere AVM BI PCI-Karten
  (dafür gibts zahllose Anleitungen im Internet)

Für B1-Karten neueste AVM Firmware downloaden und installieren
  b1.t4 nach  /usr/lib/isdn  kopieren

CAPI 2.0 Bugfix-Script installieren
  Hübner-Skript herunterladen von http://friendglow.net/en/faq/faq_kernel26_udev_en.shtml
  In der ersten Zeile ggf. /bin/sh in /bin/bash abändern und ablegen als Datei:
  /sbin/capi

Testen der CAPI-Installation
  capi start
  capiinfo
  Jetzt muss der ISN-Kontroller mit allen Kanälen und Protokolleinstellungen angezeigt werden.
  Notfalls mit capi stop und capi start nochmals versuchen. Das Skript capiinit darf ab jetzt
  nicht mehr verwendet werden"* CAPI-Initialisierung automatisch nach Rechnerstart,
  noch bevor Asterisk geladen wird:
  cd /etc/rc.d/rc2.d
  ln -s /sbin/capi S35capi
  cd /etc/rc.d/rc2.d
  ln -s /sbin/capi S35capi

Asterisk aktualisieren
  Sämtliche 1.2 Downloads auspacken und nach \etc\src\asterisk-1.2-rc2 (für den RC2) kopieren
  Ggf. ein Backup der Asterisk-Konfiguration machen
  cd /usr/src/asterisk-1.2.0-rc2/zaptel
  Achtung: Da sich noch laufend die Formate der Konfig-Dateien ändert, ist dringend anzuraten,
  die neuen Konfigurationsdateien zu kopieren, auch wenn dadurch die bisherige Konfiguration
  überschrieben wird!
  make config
  make clean
  make
  make install
  Das gleiche sinngemäß für libpri, core, addons, sounds (in dieser Reihenfolge !) durchführen
  (Nicht alle Module haben eine make config Option!)

Neustart
  Kontrtolle in der Webconsole, ob Asterisk gestartet ist. Wenn nicht, Startfehler beheben

Neuen CAPI Channel-Treiber installieren
  chan_capi-cm-0.6.1 von SourceForge downloaden, auspacken nach /usr/src/chan_capi-cm-0.6.1
  cd /usr/src/chan_capi-cm-0.6.1
  make clean
  make config
  make
  make install

Reboot und Abschluss
  Wenn Asterisk startet, ist CAPI funktionsfähig eingebunden,
  zur Sicherheit Kontrolle  in den Asterisk Logfiles.
  Jetzt können die CAPI-Dianstrings eingegeben werden, aber Achtung:
  Nur noch die neue Mnemonik aus der chan_capi-cm Dokumentation verwenden,
  die bisherige, ältere chan_capi  Mnemonik funktioniert NICHT menr!!!

Telefonieren
  Und Dankes-Schreiben an dieses Forum und vor allen an Hübner, für sein fantastisches Skript :-)
« Last Edit: Tuesday, 15.11.2005 11:42 by tankwart »

Offline YannG

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
Re: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben
« Reply #1 on: Wednesday, 23.11.2005 16:14 »
Hello tankwart for your explanation concerning the installation of capi on a CentOS 4.2, 2.6.9 kernel.
I have the same configuration as your (depending on your server ;-). My computer is a Dell Poweredge SC420, with 1 Digium TDM400 (1FXO) and 1 Fritz AVM PCI V2.
The installation of the TDM was fine (compilation of zaptel1.2)
I've then installed Fritz driver and capi4k-utils. Till there, every is ok. But, trying to load fcpci (modprobe fcpci) or starting capi (capiinit start), the server freezes 2 seconds after the command occurs.
Do you please have so help?

Thanks a lot in advance.

Yann.

Offline tankwart

  • Sr. Member
  • ****
  • Posts: 165
  • Karma: 0
Re: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben
« Reply #2 on: Wednesday, 23.11.2005 23:20 »
yann,

just out of curiosity I replaced the (finally working) AVM B1 card with an AVM Fritz PCI card, and this configuration simply didnt work.

Even though the Fritz Card was correctly identified on bootup, CentOS 4.2 (the linux version in Asterisk@home 2.0) automatically loads hisax, which is considered an obsolete ISDN driver, incompatible with the more modern capi4linux / capi20 infrastructure needed for asterisk. I found no way to prevent hisax from loading, so I finally gave up on this one.

I tried then to rebuild the whole thing from scratch on Suse 10 Linux, compiled Asterisk 1.2 final with zaptel and all addons, and after installing the newest Suse 9.3 driver from AVM for the Pritz PCI card, capi4linux worked right away, capiinfo shows my isdn card and protocol details, and the huebner patch mentioned in my previous post wasn´t needed at all. Using chan_capi-cm Asterisk recognizes the fritz card without any problem.






Offline YannG

  • Newbie
  • *
  • Posts: 2
  • Karma: 0
Re: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben
« Reply #3 on: Thursday, 24.11.2005 09:30 »
Thank you for this interesting experience.
What I don't understand is that I've build last week the same configuration on another Dell Server, (Poweredge 1800) without any problem (same linux distribution, same Asterisk 1.2, same Digium TDM400, same Fritz PCI Card with same drivers [Suse9.3] and chan_capi-cm0.6)
Do you thing an incompatibility with a network card or a motherboard chipset is possible?

Thank you again and have a nice day.

Yann.

Offline tankwart

  • Sr. Member
  • ****
  • Posts: 165
  • Karma: 0
Re: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben
« Reply #4 on: Thursday, 24.11.2005 18:28 »
yann,

i am pretty sure this capi20 problem is unrelated to chipset or motherboard issues, nor has it anything to do with asterisk. It is purely depending on the underlying linux version and distribution.

Are you really sure you used Asterisk@home 2.0 and not the 1.5 version? The 1.5 version had no problem with IDSN cards because it was not yet based on the newer 2.6 linux kernel.

Anyhow, if there has been a 2.6 kernel in both cases, it could have to do with the installation order of capi4k, the FritzCard drivers or other linux components. If, for example, you installed the Suse 9.3 fcpci driver before actually inserting the ISDN card, it might have been possible that the hisax driver was not not automatically installed upon pnp detection.

If you want to get this configuration to work, you must somehow get this hisax driver removed or firmly disabled.

Offline skype4all

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
Re: ISDN CAPI-Karten mit Asterisk 1.2 und Linux Kernel 2.6.9 betreiben
« Reply #5 on: Saturday, 26.11.2005 13:37 »
habe soeben versucht, die Capi-Utilities nach der Anleitung von tankwart zu installieren. Leider komme ich nicht sehr weit:

CAPI 2.0 Utilities installieren
  capi4k-utils-2005-07-18  downloaden, auspacken und nach
  /usr/src/capi4k-utils kopieren.
  cd /usr/src/capi4k-utils
  make config

und dann erhalte ich folgende Fehlermeldung:

[root@asterisk1 capi4k-utils]# make config
make: execvp: scripts/Menuconfig: Permission denied
make: *** [menuconfig] Error 127
[root@asterisk1 capi4k-utils]#

wie ihr seht versuche ich den update als user root. Hat root den wirklich zu wenig Rechte?

Offline gilligan23

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
Hallo tankwart,

ich bin genau nach deiner Anleitung vorgegangen ausser, dass ich a@h 2.5 u. ne Fritz! PCI eingesetzt habe. sobald ich das Modul fcpci.ko lade bleibt meine Kiste mit kernelpanic stehen. kernel not syncing!

irgend eine Idee?

greez gilligan23

Offline Goldhamster

  • Sr. Member
  • ****
  • Posts: 178
  • Karma: 0
Hallo gilligan,

kernel not syncing heitßt nur, dass zuvor schon so viele, bzw. so schwerwiegende Fehler aufgetreten sind, dass der Kernel seine Arbeit einstellt, um nicht noch Schaden anzurichten.

Die eigentliche Ursache findest du in den linux startup logs.

Ich tippe mal blind auf einen konkurrierenden hisax-Treiber aus der Asterisk@home CentOS-Distribution, der deinstalliert, oder zumindest deaktiviert werden muss, bevor du die FritzCard-Treiber installierst.

Unwahrscheinlicher, aber auch möglich, sind Hardwareprobleme in Verbindung mit der ISDN-Karte. Die einfachste Möglichkeit das auszuschließen, wäre das Booten von einer Boot-CD, die eine FritzCard unterstützt (Bart XP BootCD, dann AVM Diagnose laufen lassen, vielleicht tut es auch eine Suse Live CD)

Offline admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 250
  • Karma: 0
    • http://meineipadresse.de/
Wen das interessiert, hier paar Hintergründ-Infos zur allgemeinen ISDN-Problematik unter Linux, der verschiedenen API-Standards und einer genauen Anleitung zur Einbindung einer AVM-FritzCard PCI unter Suse 10 Linux

Es geht dort in erster Linie zwar um die Einbindung in einen Asterisk VoIP Server, aber die Linux-Problematik ist die gleiche!