- Mitglied seit
- 3 Mai 2006
- Beiträge
- 23
- Punkte für Reaktionen
- 0
- Punkte
- 1
Hallo zusammen,
nach etlichen versuchen und zig Stunden googelei habe ich es endlich geschafft, eine
Fritz PCI auf Asterisk Centos 4.3 zum rennen zu bewegen.
Bei vielen scheitert es bereits an dem Kernelmodul FCPCI, welches es von AVM nur für Suse gibt.
Diese Version führt beim Centos Kernel <=2.6.9 unweigerlich zu einem Kernel Panik.
Auch die aktuelle Version 'fcpci-suse93-3.11-07.tar.gz' erzeugt einen Kernel Panik.
Aber mit ein wenig suchen habe ich es denoch geschafft.
Das eigendlich FCPI Kernelmodul habe ich mir von hier besorgt.
Natuerlich passend zur Kernelversion: 2.6.9-34.EL
Prüft das mit uname -r
Achtung:
Eine neue Kernelversion ist draussen 2.6.9-34.0.1.EL
Wenn ihr ein Update macht, müsst ihr zwingend auch das Kernelmodul aktualisieren.
Das neue Kernelmodul gibt es hier:
http://dl.atrpms.net/sl4-i386/atrpms/stable/fcpci-kmdl-2.6.9-34.0.1.EL-03.11.07-9.el4.at.i686.rpm
Schritt 1:
----------
Nun das Modul runterladen. Am besten dafür ein Verzeichnis erstellen.
wget http://mirror.phy.olemiss.edu/mirro...i-kmdl-2.6.9-34.EL-03.11.07-9.el4.at.i686.rpm
Diesen dann mit rpm -i installieren.
Nachtrag:
Es heisst korrekt:
rpm -i fcpci-kmdl-2.6.9-34.EL-03.11.07-9.el4.at.i686.rpm
Schritt 2:
----------
Wir erstellen nun eine Datei 'capi.conf' in /etc/
Dies kann man wie folgt machen:
touch /etc/capi.conf
Man beachte, dass es sich hier nicht um die 'capi.conf' in /ect/asterisk handelt!
Sie muss nur folgenden Eintrag enthalten:
fcpci - - - - - -
Bitte die Striche nicht vergessen! Es sind 6.
Schritt 3:
----------
Nun in der /etc/modprobe.conf die Hisax Module abschalten.
Als letzten Eintrag bitte folgendes Einfügen:
alias hisax_fcpcipnp off
alias hisax_isac off
alias hisax off
Wenn wir das nicht tun, erhalten wir einen Fehler der wie folgt heisst:
kobject_register failed for fcpci (-17)
Nachtrag:
Die Einträge:
alias hisax_isac off
alias hisax off
müssen in die modprobe.conf eingetragen werden.
Schritt 4:
-------------------------------
Ich habe zudem noch capi4linux installiert.
und zwar die Version capi4k-utils-2005-07-18.tar.gz
Entpacken mit:
tar -xzvf capi4k-utils-2005-07-18.tar.gz
Ob das an der Stelle nötig ist, weis ich nicht.
Man kann es ja auch erstmal ohne probieren.
Zumindest funktioniert es auch mit.
Installation mit:
make config
Hier nix eingeben! Einfach exit und save!
Danach generiert er das config file.
Dann:
make
make install
Das wars.
Schritt 5:
----------
Nun werden wir ein Startscript erstellen, dass das Modul automatisch läd.
Dies gibt es unter:
http://www.friendglow.net/en/faq/faq_kernel26_udev_en.shtml
Einfach das Script von o.g. URL kopieren.
Eine Datei 'capi' in /etc/rc.d/init.d erstellen und die Datei mit ausführbaren rechten
versehen (siehe weiter unten).
Rechte wie folgt setzen:
chmod 755 /etc/rc.d/init.d/capi
Wichtig!
Im Script unbeding folgendes ändern!
mknod -m 660 /dev/capi20 c 68 0
in
mknod -m 666 /dev/capi20 c 68 0
Sonst werden die Rechte beim Neustart für die chan_capi nicht korrekt
gesetzt und Asterisk startet nicht.
Man erhält bei der Eingabe von astereisk -r dann:
Nun noch Symlinks in rc2.d, rc3.d und rc5.d erstellen.
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc2.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc2.d/K82capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc3.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc3.d/K82capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc5.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc5.d/K82capi
Ich habe in dem Script die Zeile:
chown root.dialout /dev/capi20
auskommentiert, da sie einen Fehler produziert (ist 3 mal vorhanden).
Nachtrag:
Link zum Startscript. capi.tar =>: http://cak.no-ip.com/asterisk/capi.tar
Dieses Startscript vermeidet u.a. den Fehler bei capiinit:
ERROR: cannot open /dev/capi20 nor /dev/isdn/capi20 - no such file or directory (2)
Schritt 6:
----------
Nun starten wir unser System mit 'reboot' neu.
Wir sollten nun mit dem Befehl 'capiinfo' sowas sehen:
Weiterhin prüfen wir, ob auch die Kernelmodule korrekt geladen wurden.
Schritt 7:
----------
Ist das erfogreich, können wir uns an die 'chan_capi' machen, welche Vorraussetzung
für den betrieb mit Asterisk ist.
Ich habe die letzte Version genommen 0.6.5 von folgender url:
ftp://ftp.chan-capi.org/chan-capi/chan_capi-cm-0.6.5.tar.gz
Diese entpacken wir in einem separatem Verzeichnis.
Installation mit:
make
make install
make install_config
In /etc/asterisk/modules.conf müssen wir folgendes einfügen:
load => chan_capi.so
Und in der [global] Sektion:
chan_capi.so=yes
Nicht vergessen eine leere Zeile am Ende einzufügen!
Das muss so sein.
Wir kontrollieren ob nun auch die die capi.conf in /etc/asterisk vorhanden ist.
Es handelt sich hierbei um die capi.conf die chan_capi nutzt.
Sie befindet sich in /etc/asterisk und sollte folgenden Inhalt aufweisen:
Man achte bitte auf den context!
Dieser ist defaultseitig auf capi-in gesetzt!
Dieser muss manuell in die extensions_custom.conf eingetragen werden,
da man dies per FreePBX nicht (noch nicht) bewerkstelligen kann.
Warum in die extensions_custom.conf?
Weil FreePBX die Konfigurationsdateien welche auf _additional.conf enden
bei jeder Änderung neu schreibt und damit eure Einträge gnadenlos löscht.
Die Konfigdateien welche auf _custom.conf enden, werden automatisch included und bleiben unberührt.
Schritt 8:
----------
So das wäre fast alles. Aber auch nur fast.
Wir werden feststellen, das beim starten Asterisk moppert das die capi nicht geladen ist.
Sie ist es aber. Dummerweise ist die Fehlerbeschreibung irreführend, da es heissen muss
das keine Zugriffsrechte von chan_capi her auf /dev/capi.20 vorhanden sind.
Nachtrag:
Steht übrigens auch in der readme des Packets. (Habs eben erst gelesen).
Lest euch die bitte durch, da dort alles relvante drinsteht auch was das wählen angeht!
Nicht selten liest man dann sowas:
Führt man asterisk als root aus mit asterisk -vvvc dann gehts komischerweise.
Also hier noch mal die Rechte auf /dev/capi.20 auf 666 setzten.
chmod 666 /dev/capi.20
chmod 666 /dev/capi.20.00 (existiert bei capi4linux)
Das mit den Rechten erledigt schon unser Startscript (siehe Schritt5).
Ist nur zur Sicherheit nochmal hier aufgeführt.
amportal restart und voila es sollte funzen.
So ich denke das ich damit einigen ein kleine Hilfestellung geben konnte,
die wie ich verzweifelt nach einer Lösung gesucht haben und nur
Bruchstücke an verwertbaren Infos sammeln konnten.
Ich will hoffen das ich nichts vergessen habe oder sich irgendwo
gravierende Tippfühler in den Anweisungen eingeschlichen haben.
Info:
-----
Noch ein kleiner Hinweis. Die Durchführung geschieht auf eigene Gefahr hin.
Ich kann keine Garantie für dafür geben.
Dies stellt nur den Verlauf meiner Installation dar, welche auch schlussendlich
funktioniert.
Fragen und Anregungen sind gerne gesehen, also nicht zögern. ;-)
PS: Nicht irritieren lassen bez. der Signatur. Die o.g Installation war ein echter Rechner ;-)
In diesem Sinne
de Chris ;-)
History:
Nachbearbeitet am: 20.05.2006
- Startscript Rechte
Nachbearbeitet am: 26.05.2006
- capi.conf (chan_capi)
Nachbearbeitet am 27.05.2006
- neues Kernelmodul für 2.6.9-34.0.1.EL
Nachbearbeitet am 30.05.2006
- Link für fertiges Startscript hinzugefügt.
Nachbearbeitet am 04.06.2006
- Relative Symlinks auf absolute Symlinks geändert.
nach etlichen versuchen und zig Stunden googelei habe ich es endlich geschafft, eine
Fritz PCI auf Asterisk Centos 4.3 zum rennen zu bewegen.
Bei vielen scheitert es bereits an dem Kernelmodul FCPCI, welches es von AVM nur für Suse gibt.
Diese Version führt beim Centos Kernel <=2.6.9 unweigerlich zu einem Kernel Panik.
Auch die aktuelle Version 'fcpci-suse93-3.11-07.tar.gz' erzeugt einen Kernel Panik.
Aber mit ein wenig suchen habe ich es denoch geschafft.
Das eigendlich FCPI Kernelmodul habe ich mir von hier besorgt.
Natuerlich passend zur Kernelversion: 2.6.9-34.EL
Prüft das mit uname -r
Achtung:
Eine neue Kernelversion ist draussen 2.6.9-34.0.1.EL
Wenn ihr ein Update macht, müsst ihr zwingend auch das Kernelmodul aktualisieren.
Das neue Kernelmodul gibt es hier:
http://dl.atrpms.net/sl4-i386/atrpms/stable/fcpci-kmdl-2.6.9-34.0.1.EL-03.11.07-9.el4.at.i686.rpm
Schritt 1:
----------
Nun das Modul runterladen. Am besten dafür ein Verzeichnis erstellen.
wget http://mirror.phy.olemiss.edu/mirro...i-kmdl-2.6.9-34.EL-03.11.07-9.el4.at.i686.rpm
Diesen dann mit rpm -i installieren.
Nachtrag:
Es heisst korrekt:
rpm -i fcpci-kmdl-2.6.9-34.EL-03.11.07-9.el4.at.i686.rpm
Schritt 2:
----------
Wir erstellen nun eine Datei 'capi.conf' in /etc/
Dies kann man wie folgt machen:
touch /etc/capi.conf
Man beachte, dass es sich hier nicht um die 'capi.conf' in /ect/asterisk handelt!
Sie muss nur folgenden Eintrag enthalten:
fcpci - - - - - -
Bitte die Striche nicht vergessen! Es sind 6.
Schritt 3:
----------
Nun in der /etc/modprobe.conf die Hisax Module abschalten.
Als letzten Eintrag bitte folgendes Einfügen:
alias hisax_fcpcipnp off
alias hisax_isac off
alias hisax off
Wenn wir das nicht tun, erhalten wir einen Fehler der wie folgt heisst:
kobject_register failed for fcpci (-17)
Nachtrag:
Die Einträge:
alias hisax_isac off
alias hisax off
müssen in die modprobe.conf eingetragen werden.
Schritt 4:
-------------------------------
Ich habe zudem noch capi4linux installiert.
und zwar die Version capi4k-utils-2005-07-18.tar.gz
Entpacken mit:
tar -xzvf capi4k-utils-2005-07-18.tar.gz
Ob das an der Stelle nötig ist, weis ich nicht.
Man kann es ja auch erstmal ohne probieren.
Zumindest funktioniert es auch mit.
Installation mit:
make config
Hier nix eingeben! Einfach exit und save!
Danach generiert er das config file.
Dann:
make
make install
Das wars.
Schritt 5:
----------
Nun werden wir ein Startscript erstellen, dass das Modul automatisch läd.
Dies gibt es unter:
http://www.friendglow.net/en/faq/faq_kernel26_udev_en.shtml
Einfach das Script von o.g. URL kopieren.
Eine Datei 'capi' in /etc/rc.d/init.d erstellen und die Datei mit ausführbaren rechten
versehen (siehe weiter unten).
Rechte wie folgt setzen:
chmod 755 /etc/rc.d/init.d/capi
Wichtig!
Im Script unbeding folgendes ändern!
mknod -m 660 /dev/capi20 c 68 0
in
mknod -m 666 /dev/capi20 c 68 0
Sonst werden die Rechte beim Neustart für die chan_capi nicht korrekt
gesetzt und Asterisk startet nicht.
Man erhält bei der Eingabe von astereisk -r dann:
Code:
>asterisk -r
> Unable to connect to remote asterisk (does /var/run/asterisk.ctl exist?)
Nun noch Symlinks in rc2.d, rc3.d und rc5.d erstellen.
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc2.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc2.d/K82capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc3.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc3.d/K82capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc5.d/S09capi
ln -s /etc/rc.d/init.d/capi /etc/rc.d/rc5.d/K82capi
Ich habe in dem Script die Zeile:
chown root.dialout /dev/capi20
auskommentiert, da sie einen Fehler produziert (ist 3 mal vorhanden).
Nachtrag:
Link zum Startscript. capi.tar =>: http://cak.no-ip.com/asterisk/capi.tar
Dieses Startscript vermeidet u.a. den Fehler bei capiinit:
ERROR: cannot open /dev/capi20 nor /dev/isdn/capi20 - no such file or directory (2)
Schritt 6:
----------
Nun starten wir unser System mit 'reboot' neu.
Wir sollten nun mit dem Befehl 'capiinfo' sowas sehen:
Code:
[root@asterisk1 modules]# capiinfo
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-07 (49.23)
Serial Number: 1000001
BChannels: 2
Global Options: 0x00000039
internal controller supported
DTMF supported
Supplementary Services supported
channel allocation supported (leased lines)
B1 protocols support: 0x4000011f
64 kbit/s with HDLC framing
64 kbit/s bit-transparent operation
V.110 asynconous operation with start/stop byte framing
V.110 synconous operation with HDLC framing
T.30 modem for fax group 3
Modem asyncronous operation with start/stop byte framing
B2 protocols support: 0x00000b1b
ISO 7776 (X.75 SLP)
Transparent
LAPD with Q.921 for D channel X.25 (SAPI 16)
T.30 for fax group 3
ISO 7776 (X.75 SLP) with V.42bis compression
V.120 asyncronous mode
V.120 bit-transparent mode
B3 protocols support: 0x800000bf
Transparent
T.90NL, T.70NL, T.90
ISO 8208 (X.25 DTE-DTE)
X.25 DCE
T.30 for fax group 3
T.30 for fax group 3 with extensions
Modem
0100
0200
39000000
1f010040
1b0b0000
bf000080
00000000 00000000 00000000 00000000 00000000 00000000
01000001 00020000 00000000 00000000 00000000
Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS
Weiterhin prüfen wir, ob auch die Kernelmodule korrekt geladen wurden.
Code:
[root@asterisk1 ~]# lsmod |grep capi
capi 18177 4
capifs 5961 2 capi
kernelcapi 44769 2 fcpci,capi
Schritt 7:
----------
Ist das erfogreich, können wir uns an die 'chan_capi' machen, welche Vorraussetzung
für den betrieb mit Asterisk ist.
Ich habe die letzte Version genommen 0.6.5 von folgender url:
ftp://ftp.chan-capi.org/chan-capi/chan_capi-cm-0.6.5.tar.gz
Diese entpacken wir in einem separatem Verzeichnis.
Installation mit:
make
make install
make install_config
In /etc/asterisk/modules.conf müssen wir folgendes einfügen:
load => chan_capi.so
Und in der [global] Sektion:
chan_capi.so=yes
Nicht vergessen eine leere Zeile am Ende einzufügen!
Das muss so sein.
Wir kontrollieren ob nun auch die die capi.conf in /etc/asterisk vorhanden ist.
Es handelt sich hierbei um die capi.conf die chan_capi nutzt.
Sie befindet sich in /etc/asterisk und sollte folgenden Inhalt aufweisen:
Code:
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de ;set default language
;ulaw=yes ;set this, if you live in u-law world instead of a-law
; interface sections ...
[ISDN1] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
;ntmode=yes ;if isdn card operates in nt mode, set this to yes
isdnmode=msn ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
;when using NT-mode, 'DID' should be set in any case
incomingmsn=* ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123 ;set a default caller id to that interface for dial-out,
;this caller id will be used when dial option 'd' is set.
;controller=0 ;ISDN4BSD default
;controller=7 ;ISDN4BSD USB default
controller=1 ;capi controller number to use
group=1 ;dialout group
;prefix=0 ;set a prefix to calling number on incoming calls
softdtmf=off ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on ;in addition to softdtmf, you can use relaxed dtmf detection
accountcode= ;Asterisk accountcode to use in CDRs
context=capi-in ;context for incoming calls
;holdtype=hold ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and Asterisk may
;play MOH.
;immediate=yes ;DID: immediate start of pbx with extension 's' if no digits were
; received on incoming call (no destination number yet)
;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
; info like REDIRECTINGNUMBER may be lost, but this is necessary for
; drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1 ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes ;EICON DIVA SERVER (CAPI) echo cancelation
;(possible values: 'no', 'yes', 'force', 'g164', 'g165')
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64 ;echo cancel tail setting
;bridge=yes ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;Asterisk call group
;language=de ;set language for this device (overwrites default language)
devices=2 ;number of concurrent calls on this controller
;(2 makes sense for single BRI, 30 for PRI)
Man achte bitte auf den context!
Dieser ist defaultseitig auf capi-in gesetzt!
Dieser muss manuell in die extensions_custom.conf eingetragen werden,
da man dies per FreePBX nicht (noch nicht) bewerkstelligen kann.
Warum in die extensions_custom.conf?
Weil FreePBX die Konfigurationsdateien welche auf _additional.conf enden
bei jeder Änderung neu schreibt und damit eure Einträge gnadenlos löscht.
Die Konfigdateien welche auf _custom.conf enden, werden automatisch included und bleiben unberührt.
Schritt 8:
----------
So das wäre fast alles. Aber auch nur fast.
Wir werden feststellen, das beim starten Asterisk moppert das die capi nicht geladen ist.
Sie ist es aber. Dummerweise ist die Fehlerbeschreibung irreführend, da es heissen muss
das keine Zugriffsrechte von chan_capi her auf /dev/capi.20 vorhanden sind.
Nachtrag:
Steht übrigens auch in der readme des Packets. (Habs eben erst gelesen).
Lest euch die bitte durch, da dort alles relvante drinsteht auch was das wählen angeht!
Nicht selten liest man dann sowas:
Code:
[chan_capi.so] => (Common ISDN API for OpenPBX)
== Parsing '/usr/local/etc/capi.conf': Found
Apr 29 17:22:08 WARNING[3080100384]: chan_capi.c:4636 cc_init_capi: CAPI not installed, CAPI disabled!
Apr 29 17:22:08 WARNING[3080100384]: loader.c:348 __load_resource: chan_capi.so: load_module failed, returning -1
Apr 29 17:22:08 WARNING[3080100384]: loader.c:488 load_modules: Loading module chan_capi.so failed!
Führt man asterisk als root aus mit asterisk -vvvc dann gehts komischerweise.
Also hier noch mal die Rechte auf /dev/capi.20 auf 666 setzten.
chmod 666 /dev/capi.20
chmod 666 /dev/capi.20.00 (existiert bei capi4linux)
Das mit den Rechten erledigt schon unser Startscript (siehe Schritt5).
Ist nur zur Sicherheit nochmal hier aufgeführt.
amportal restart und voila es sollte funzen.
So ich denke das ich damit einigen ein kleine Hilfestellung geben konnte,
die wie ich verzweifelt nach einer Lösung gesucht haben und nur
Bruchstücke an verwertbaren Infos sammeln konnten.
Ich will hoffen das ich nichts vergessen habe oder sich irgendwo
gravierende Tippfühler in den Anweisungen eingeschlichen haben.
Info:
-----
Noch ein kleiner Hinweis. Die Durchführung geschieht auf eigene Gefahr hin.
Ich kann keine Garantie für dafür geben.
Dies stellt nur den Verlauf meiner Installation dar, welche auch schlussendlich
funktioniert.
Fragen und Anregungen sind gerne gesehen, also nicht zögern. ;-)
PS: Nicht irritieren lassen bez. der Signatur. Die o.g Installation war ein echter Rechner ;-)
In diesem Sinne
de Chris ;-)
History:
Nachbearbeitet am: 20.05.2006
- Startscript Rechte
Nachbearbeitet am: 26.05.2006
- capi.conf (chan_capi)
Nachbearbeitet am 27.05.2006
- neues Kernelmodul für 2.6.9-34.0.1.EL
Nachbearbeitet am 30.05.2006
- Link für fertiges Startscript hinzugefügt.
Nachbearbeitet am 04.06.2006
- Relative Symlinks auf absolute Symlinks geändert.
Zuletzt bearbeitet: