chan_capi, AVM B1, Debian Lenny => CAPI not installed

laotse

Neuer User
Mitglied seit
14 Apr 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Irgendwie bin ich auch nach 3 Tagen Google zu blöd, Asterisk mit chan_capi ans Rennen zu bringen. Meine Zielstruktur ist Asterisk dabei in einem OpenVZ Container zu haben, aber zunächst sollte es direkt auf der Hardware laufen.

Mein Setup:
AVM B1 PCI unter Debian Lenny amd64 tagesaktuell.

Installiert sind asterisk und asterisk-chan-capi, die B1 ist eingebaut, wird erkannt und sieht auf den ersten Blick funktionabel aus:

Code:
asgard:~# capiinit show
driver  firmware        proto   io      irq     mem     cardnr  options
b1pci   b1.t4           DSS1    -       -       -       -
asgard:~# capiinit start
asgard:~# capiinfo
Number of Controllers : 1
Controller 1:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.11-03  (49.19)
Serial Number: 0402421
BChannels: 2
Global Options: 0x00000039
   internal controller supported
   DTMF supported
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x4000001f
   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
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: 0x8000003f
   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

  0100
  0200
  39000000
  1f000040
  1b0b0000
  3f000080
  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

asgard:~# lsmod | grep capi
capidrv                30928  1
isdn                  127712  1 capidrv
capi                   18624  0
capifs                  9360  2 capi
kernelcapi             46112  5 capidrv,capi,b1pci,b1dma,b1
asgard:~# lsmod | grep b1
b1pci                  11520  1
b1dma                  18052  1 b1pci
b1                     26880  2 b1pci,b1dma
kernelcapi             46112  5 capidrv,capi,b1pci,b1dma,b1
asgard:~#

Asterisk ohne chan_capi läuft auch brav als VoIP PBX. Sobald ich die chan_capi in /etc/asterisk/modules.conf aktiviere:
Code:
[modules]
load => chan_capi.so
[global]
chan_capi.so=yes

bricht asterisk -U asterisk -G asterisk -vvv -c -d mit folgender Fehlermeldung ab:

Code:
Parsing '/etc/asterisk/capi.conf': Found
[Apr 14 18:29:12] WARNING[10679]: chan_capi.c:5847 cc_init_capi: CAPI not installed, chan_capi disabled!

Die capi.conf verstehe ich zugegebenermaßen noch nicht vollständig, allerdings sehen die Angaben für mich auf den ersten Blick nicht völlig unplausibel aus:

Code:
asgard:~# cat /etc/asterisk/capi.conf | sed '/^\s*;.*$/d'
[general]
nationalprefix=0
internationalprefix=00
rxgain=1.0       ;linear receive gain (1.0 = no change)
txgain=1.0       ;linear transmit gain (1.0 = no change)
language=de      ;set default language
[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * = any
controller=1     ;capi controller number of this interface/port
group=1          ;dialout group
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
faxdetect=off    ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
accountcode=     ;PBX accountcode to use in CDRs
context=isdn-in  ;context for incoming calls
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
devices=2        ;number of concurrent calls (b-channels) on this controller

Die CAPI devnodes existieren und können von Asterisk gelesen und beschrieben werden.

Code:
asgard:~# ls -al /dev/capi*
crw-rw---- 1 root dialout 68, 0 11. Apr 17:22 /dev/capi20

/dev/capi:
insgesamt 0
drwxrwxr-x  2 root dialout    0 11. Apr 17:22 .
drwxr-xr-x 18 root root    9880 11. Apr 17:25 ..

asgard:~# grep dialout /etc/group
dialout:x:20:administrator,asterisk

Könnte mir jemand einen Tip geben, wie ich hier systematisch auf Fehlersuche gehe. 3 Tage Trial and Error haben bisher wenig gebracht.

Grüße,
- lars.
 
/dev/capi20 ist rw-rw---- für root.dialout, also nicht für andere. Als welcher User läuft Asterisk?

Armin
 
/dev/capi20 ist rw-rw---- für root.dialout, also nicht für andere. Als welcher User läuft Asterisk?

asterisk -U asterisk -G asterisk -vvv -c -d

asgard:~# grep dialout /etc/group
dialout:x:20:administrator,asterisk

damit würde ich annehmen, dass Asterisk als asterisk läuft, welcher wiederum zu dialout gehören sollte. Da Pferde Probleme mit Apotheken haben, habe ich gerade mal chan_capi aus modules.conf rausgenommen, und ps aux zeigt, dass Asterisk als user asterisk läuft.

Folgendes wundert mich allerdings:

Code:
asgard:~# whoami
root
asgard:~# cat /dev/capi20
cat: /dev/capi20: Kein passendes Gerät gefunden
asgard:~# ls -al /dev/capi20
crw-rw---- 1 root dialout 68, 0 11. Apr 17:22 /dev/capi20

Grüße,
- lars.
 
Zugriffsproblem

Es ist tatsächlich ein Zugriffsproblem. Ich Dusselbär hääte eigentlich schon früher mal strace anwerfen sollen.

Starte ich Asterisk als root, oder wenigstens mit "-G dialout" dann klappts. Aber wieso es nicht klappt, wenn Asterisk als asterisk läuft:

Code:
asgard:~# id asterisk
uid=108(asterisk) gid=109(asterisk) Gruppen=109(asterisk),20(dialout),29(audio)

will mir trotzdem nicht einleuchten.

Grüße,
- lars.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.