Asterisk bleibt ohne Fehlermeldung stehen beim laden von chan_capi

jenkie

Neuer User
Mitglied seit
15 Aug 2006
Beiträge
29
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich benutze Asterisk 1.0.10 auf IPCOP 1.4.11, und möchte neben einer hfc-Karte (Anlagenkopplung) auch eine Fritz Card ISDN (PCI) fürs Festnetz installieren. Leider bleibt Asterisk beim Laden von chan_capi einfach stehen:
Code:
 ...
   -- Added extension 'aol-incoming' priority 1 to intern
    -- Added extension 'aol-incoming' priority 2 to intern
    -- Added extension 'capi' priority 1 to intern
    -- Added extension 'capi' priority 2 to intern
 [pbx_spool.so] => (Outgoing Spool Support)
Feb 18 01:01:45 WARNING[797]: pbx_spool.c:377 load_module: Unable to create queue directory /var/spool/asterisk/outgoing -- outgoing spool disabled
 [pbx_wilcalu.so] => (Wil Cal U (Auto Dialer))
 [chan_capi.so] => (Common ISDN API for Asterisk)
  == Parsing '/etc/asterisk/capi.conf': Found
Weiter passiert nichts, strg+c beendet Asterisk, und ohne Fehlermeldung komme ich nicht weiter.
Meine Hardware: Fritz Card DSL SL, Acer HFC-Karte, Fritz Card ISDN
Meine Konfigurationsdateien:
/etc/asterisk/capi.conf
Code:
; CAPI config
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8

[interfaces]
msn=xxxx
incomingmsn=*
controller=2
softdtmf=1
accountcode=
context=demo
;echosquelch=1
;echocancel=yes
;echotail=64
;callgroup=1
;deflect=12345678
devices=2

Ist controller=2 hier richtig?

Ausgabe von capiinfo:
Code:
Number of Controllers : 2
Controller 1:
Manufacturer: AVM-GmbH
CAPI Version: 2.0
Manufacturer Version: 3.101-02  (49.18)
Serial Number: 0000000
BChannels: 1
Global Options: 0x00000001
   internal controller supported
B1 protocols support: 0x10000000
B2 protocols support: 0x40000002
   Transparent
B3 protocols support: 0x40000001
   Transparent

  0100
  0100
  01000000
  00000010
  02000040
  01000040
  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

Controller 2:
Manufacturer: AVM GmbH
CAPI Version: 2.0
Manufacturer Version: 3.101-02  (49.18)
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 fro 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
   reserved

  0100
  0200
  39000000
  1f010040
  1b0b0000
  bf000080
  00000000 00000000 00000000 00000000 00000000 00000000
  01000001 00020000 00000000 00000000 00000000
FAC GET - Info: Illegal Controller / PLCI / NCCI (0x2002)

Die HFC-Karte wird einwandfrei erkannt und Interrupts werden auch nicht geteilt. Was läuft hier falsch?
Grüße und gute Nacht
Jens
 
Asterisk 1.0 sieht generell ein bisschen alt aus.

Welche chan-capi Version nutzt du?

Ich würde sagen, controller=1 ist richtig, ich würde "raten" dass Controller 1 die FritzCard! ist und controller 2 die DSL-Karte, weil nur beim 1. Controller die Fähigkeiten angezeigt werden.

Weiters kannst du Asterisk mit "strace -f" aufrufen und schauen, bei welchem Syscall er stehen bleibt. Zum Glück ist ja alles OpenSource und der Quellcode verrät dann mehr.
Dieses Verfahren hat mir schon so manche Fehler ausgebessert - etwas, das man unter Windows vergeblich sucht und für mich ein Grund, wieso man Windows nicht vernünftig als Backend-System einsetzen kann (Irgendwas spinnt, was es ist, findet man nie heraus)
 
Also strafe (tolles Programm :D) gibt folgendes aus:
Code:
...
write(1, " => (Common ISDN API for Asteris"..., 35 => (Common ISDN API for Aster                    isk)
) = 35
time([1171812243])                      = 1171812243
  == Parsing '/etc/asterisk/capi.conf': ) = 41.., 41
time([1171812243])                      = 1171812243
open("/etc/asterisk/capi.conf", O_RDONLY) = 23
write(1, "Found\n", 6Found
)                  = 6
time([1171812243])                      = 1171812243
fstat64(23, {st_mode=S_IFREG|0644, st_size=587, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0                    x404a2000
read(23, "; CAPI config\n[general]\nnational"..., 4096) = 587
read(23, "", 4096)                      = 0
close(23)                               = 0
munmap(0x404a2000, 4096)                = 0
open("/dev/capi20", O_RDWR)             = 23
ioctl(23, CAPI_INSTALLED, 0)            = 0
open("/dev/capi20", O_RDWR|O_NONBLOCK)  = 25
ioctl(25, CAPI_REGISTER or SNDCTL_COPR_LOAD, 0x4098a6c0) = 2
old_mmap(NULL, 499712, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =                     0x4098f000
write(25, "\32\0\2\0\5\200\1\0\0\0\0\0\377\3\0\0\377\3\377\37\0\0"..., 26) = 26
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
select(26, [25], NULL, NULL, {0, 10000}) = 0 (Timeout)
.......................

Irgendwas mit /dev/capi20 nicht in ordnung? Sie existiert auf jeden Fall.......
Chan_capi 0.3.5 dürfte das sein.
Grüße
Jens
 
1.) Hast du controller=1 bereits gesetzt?
2.) Das ist wirklich UR-alt. Vermutlich gar noch die Junghanns-Version. Bitte probier mal die neue von Armin Schindler (http://www.chan-capi.org). Ich weiss allerdings nicht, ob die neusten noch mit Asterisk 1.0 laufen. Notfalls nimm chan_capi-cm-0.6.5, das funktioniert sicher, weil das hab ich noch erfolgreich mit Asterisk 1.0 eingesetzt.
3.) /dev/capi20 funktioniert auf alle Fälle, denn du bekommst den Filedescriptor 23/25 zurück
4.) Schuss ins Blaue: Der Fehler dürfte sein: Mittels select prüft Asterisk (bzw. wahrscheinlicher die libcapi), ob Daten zum Schreiben/Lesen vorhanden sind. Das ist nicht der Fall. Es kommt ein Timeout und der Vorgang wird wiederholt.

Bitte probier zuerst einmal, den DSL-Controller ganz ausbauen, vielleicht hat er in irgendeiner Weise damit ein Problem. Falls es dann geht, aber wenn er eingebaut ist nicht, liegt es vielleicht an einer falschen /etc/capi.conf oder ähnlichem.
Falls es dann noch immer nicht geht, probier wie gesagt eine möglichst neue chan-capi(-cm) Version.

mfg,
divB
 
Na das hört sich doch schonmal klasse an?!
Code:
 [chan_capi.so] => (Common ISDN API for Asterisk)
  == Parsing '/etc/asterisk/capi.conf': Found
  == This box has 2 capi controller(s).
    -- CAPI/contr2 supports DTMF
    -- CAPI/contr2 supports supplementary services
       > FACILITY_CONF INFO = 0x2002
       > supplementary services : 0x00000000
  == Reading config for ISDN1
    -- capi_pvt ISDN1-pseudo-D (*,capi-in,0,2) (0,4,64)
    -- capi_pvt ISDN1 (*,capi-in,0,2) (0,4,64)
    -- capi_pvt ISDN1 (*,capi-in,0,2) (0,4,64)
    -- listening on contr1 CIPmask = 0x1fff03ff
Feb 18 19:38:09 NOTICE[1930]: chan_capi.c:4696 cc_post_init_capi: Unused contr2
  == Registered channel type 'CAPI' (Common ISDN API Driver (cm-0.6.5))
  == Registered application 'capiCommand'
  == Parsing '/etc/asterisk/enum.conf': Found
  == Parsing '/etc/asterisk/extconfig.conf': Found
  == Parsing '/etc/asterisk/logger.conf': Found
Asterisk Event Logger restarted
  == Parsing '/etc/asterisk/manager.conf': Found
  == Parsing '/etc/asterisk/enum.conf': Found
  == Parsing '/etc/asterisk/rtp.conf': Found
  == RTP Allocating from port range 10000 -> 20000
Asterisk Ready.
Damit scheint mein Problem wohl gelöst.
Jetzt muss ich wohl nur noch die zapata.conf und extensions.conf anpassen, dann sollte es funktionieren.
Danke für den Tipp, hier wird einem echt schnell geholfen :)
 
Hi,
Es ist doch noch nicht alles in Butter.
Allem Anschein nach ist contr2 doch die Fritzcard. Mein Problem ist jetzt aber noch das FAC GET - Info: Illegal Controller / PLCI / NCCI (0x2002) am Ende von capiinfo.
Ist die Fritz-Card DSL nicht eingebaut, so kommt diese Fehlermeldung nicht. Ist die Fritz DSL aber drin, so kommt diese Fehlermeldung und Asterisk meldet beim Start ebenfalls Unable to listen on contr2 (error=0x2002). Ist dies ein Treiberproblem?
Grüße
Jens
 
Das könnte schon sein, ja. Von fcpci ist bekannt, dass sie nur eine Karte unterstützt. Welchen Treiber ladest du für die DSL-Karte (lsmod).

Und wie sieht /etc/capi.conf aus?
 
Die DSL-Karte nutzt fcdslsl, die capi.conf enthält nur die Zeile
fcpci - - - - - -
Heißt das, ich sollte besser eine der Fritzkarten gegen einen anderen Hersteller ersetzen, oder gibt es eine andere Möglichkeit?
Grüße
Jens
 
Wenn das unproblematisch möglich ist, wäre das sicher die einfachste Lösung!

Eine HFC-Karte bekommt man ja auch schon nachgeschmissen.

Ich hab leider keine Erfahrung mit zwei Karten. Und ohne so ein System zu haben, tu ich mich auch schwer einen Fehler zu finden.

Bitte poste das Problem einmal auf die Mailinglist von chan-capi!
 
Hi,
also ich habe jetzt eine Fritzbox als DSL-Modem per USB angeschlossen, da funktioniert die Fritz ISDN einwandfrei. Allerdings hätte ich gern ein internes DSL-Modem.
Alternative: Ich hätte statt der Fritz ISDN noch eine Fritz Card Classic ISDN, also ISA. Die benutzt den fcclassic-Treiber. Ist es möglich, diese neben der Fritz DSL ohne Probleme zu betreiben, oder gibt es dann das selbe Problem? Habe leider das fcclassic-Modul nicht für den IPCOP, als ich es vor einiger Zeit mal kompiliert hatte hat der kernel dann gemeckert, dass es mit der falschen Version von gcc kompiliert wurde....
Grüße
Jens
 
Also falls es jemand anderer nicht weiss bleibt dir vermutlich nur es selbst auszuprobieren.
Ich weiss es nicht. Wie gesagt hab ich keine Erfahrung mit mehreren Fritz!-Karten und hab bis jetzt nur mit fcpci gearbeitet.

Wenn für dich Zeit wertvoller ist als Geld (verhältnismäßig!) wirst du am günstigsten/schnellsten ans Ziel kommen wenn du dir die erstbeste HFC-Karte schnappst und Asterisk mit Bristuff verwendest.
 
Ich habe ja bereits Bristuff und eine HFC (Acer) im System, die verträgt sich prächtig mit der AVM ISDN-Karte. Meinst du zwei HFC-Karten sind ebenfalls eine Alternative? Die bekommt man ja echt nachgeschmissen :)
 
Gute Frage, was willst du jetzt eigentlich? 2 ISDN Karten?? Bisher hattest du doch eine DSL und eine ISDN oder??

/Falls/ du zwei ISDN-Karten reintun willst würde ich wahrscheinlich 2 HFC Karten nehmen. Ich selbst hab zwar eine HFC und eine Fritz!, aber IMHO sind zwei HFC besser, weil
a) Das System wird unnötig komplexer. Mit 2 HFCs brauchst du nur einen Treiber usw.
b) Mehrfach HFCs sind (AFAIR) gut durch die Community getestet, man findet viele DOCs dazu
c) Eine HFC-Karte feuert 8000 Interrupts pro Sekunde ab. Bei mehreren Karten kann sich diese Last geteilt werden, gratis sozusagen ;-) (mit dem florz-Patch)
d) Mit etwas handwerklichem Geschick kann man die zwei Taktgeber der Karten auch noch miteinander verbinden und hat damit dann eine zuverlässige, synchronisierte Lösung (andernfalls /könnte/ es zu Hackern etc. kommen)
 
Jepp ich benötige 2 ISDN-Karten: Eine zur Kopplung an eine Telefonanlage (d.h. mit S0-Bus), und eine fürs Telekom-Festnetz. Ich denke mal Mehrfach-HFC's sind zu teuer für den privaten Gebrauch, richtig? Dann werde ich erstmal noch den fcclassic-Treiber versuchen, und wenn das nicht klappt auf zweu HFC's umsteigen :)
 
Na eben, d.h. eine HFC Karte wirst du damit einmal sicher brauchen. Denn mehr als nur eine Fritz im Rechner sind immer ein Abenteuer. Bei zwei fcpci sogar mehr als nur das.

Aber wie gesagt, eine Lösung wäre auch noch die Mailingliste von chan-capi, wo einem i.d.R. sehr schnell weitergeholfen wird.
 
HFC und fcpci sind ja jetzt eingebaut und funktionieren tadellos. Werd mich mal mit dem Thema Maillingliste auseinandersetzen (erstmal sehen wie das funktioniert :D)!
Danke für die Tips :)
Jens
 
Also mit 2 HFC's funktionierts jetzt super. Die Mailingliste sagt, dass die AVM-Treiber nur für eine Karte ausgelegt sind, da ist also nichts zu machen.
Im Moment benutzt jede HFC-Karte trotz florz-Patch einen igenen Interrupt, ich dachte das wäre danach nur noch einer?!
Grüße
Jens
 
jenkie schrieb:
Im Moment benutzt jede HFC-Karte trotz florz-Patch einen igenen Interrupt, ich dachte das wäre danach nur noch einer?!

Jede Karte nimmt sich einen IRQ. Das macht das Bios. Wenn ein irq doppelt belegt ist, entstehen daraus aber keine Probleme mehr.
Aber der "Master-IRQ" muss alleine sein.
 
Kostenlos!

Statistik des Forums

Themen
248,134
Beiträge
2,282,308
Mitglieder
377,355
Neuestes Mitglied
TomTom007007