Probleme beim kompilieren von LCR

robi1a

Neuer User
Mitglied seit
29 Dez 2008
Beiträge
74
Punkte für Reaktionen
0
Punkte
0
Hallo
Ich kämpfe schon sein längerem mit dem Kompilieren von LCR und komme jetzt nicht mehr weiter.
Als Betriebssystem verwende ich OpenSuse 11.3. Kernel 2.6.34.10-0.4-default.
Ich habe Asterisk 1.8.8 installiert und verwende mISDN v2 aus dem Kernel (geht ja auch nicht mehr anders). mISDNuser habe ich runtergeladen, umgewandelt und läuft.
Nur LCR ist hartnäckig. Meine Versuche mache ich mit LCR 1.7 und LCR 1.10. Beide bringen aber unterschiedliche Fehler.

Log von LCR 1.7:
Code:
asterisk:/usr/src/lcr # make
make  all-am
make[1]: Entering directory `/usr/src/lcr'
gcc      -Wall -DCONFIG_DATA="\"/usr/local/lcr\"" -DSHARE_DATA="\"/usr/local/lcr\"" -DLOG_DIR="\"/usr/local/lcr\"" -DEXTENSION_DATA="\"/usr/local/lcr/extensions\"" -D_GNU_SOURCE -fPIC -c chan_lcr.c -o chan_lcr.po
chan_lcr.c: In function ‘send_setup_to_lcr’:
chan_lcr.c:644:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:655:12: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_in_setup’:
chan_lcr.c:858:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast
/usr/include/asterisk/channel.h:1112:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c:883:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:885:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:887:6: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:890:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:893:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:896:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:900:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:903:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:906:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:909:7: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘handle_queue’:
chan_lcr.c:1707:18: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘char’
chan_lcr.c: In function ‘lcr_request’:
chan_lcr.c:1820:2: warning: passing argument 9 of ‘__ast_channel_alloc’ makes integer from pointer without a cast
/usr/include/asterisk/channel.h:1112:2: note: expected ‘int’ but argument is of type ‘char *’
chan_lcr.c: In function ‘lcr_call’:
chan_lcr.c:1927:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1927:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1928:29: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931:32: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1932:30: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:9: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934:33: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1935:31: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_write’:
chan_lcr.c:2164:6: error: wrong type argument to unary exclamation mark
chan_lcr.c:2166:20: error: invalid operands to binary & (have ‘union ast_frame_subclass’ and ‘format_t’)
chan_lcr.c: In function ‘lcr_read’:
chan_lcr.c:2229:25: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘format_t’
chan_lcr.c: In function ‘lcr_indicate’:
chan_lcr.c:2274:8: warning: assignment from incompatible pointer type
chan_lcr.c:2289:8: warning: assignment from incompatible pointer type
chan_lcr.c:2316:8: warning: assignment from incompatible pointer type
chan_lcr.c:2381:14: error: dereferencing pointer to incomplete type
chan_lcr.c:2382:33: error: dereferencing pointer to incomplete type
chan_lcr.c: At top level:
chan_lcr.c:2602:2: warning: initialization from incompatible pointer type
chan_lcr.c: In function ‘load_module’:
chan_lcr.c:2818:2: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type
/usr/include/asterisk/module.h:449:5: note: expected ‘int (*)(struct ast_channel *, const char *)’ but argument is of type ‘int (*)(struct ast_channel *, void *)’
make[1]: *** [chan_lcr.po] Error 1
make[1]: Leaving directory `/usr/src/lcr'
make: *** [all] Error 2

Log von LCR 1.10:
Code:
asterisk:/usr/src/lcr-1.10 # make
make  all-am
make[1]: Entering directory `/usr/src/lcr-1.10'
g++ -DHAVE_CONFIG_H -I.      -Wall -DCONFIG_DATA="\"/usr/local/lcr\"" -DSHARE_DATA="\"/usr/local/lcr\"" -DLOG_DIR="\"/usr/local/lcr\"" -DEXTENSION_DATA="\"/usr/local/lcr/extensions\""    -g -O2 -MT mISDN.o -MD -MP -MF .deps/mISDN.Tpo -c -o mISDN.o mISDN.cpp
mISDN.cpp: In function ‘int mISDN_initialize()’:
mISDN.cpp:65:15: error: too few arguments to function ‘unsigned int init_layer3(int, mi_ext_fn_s*)’
/usr/local/include/mISDN/mlayer3.h:210:21: note: declared here
mISDN.cpp:75:60: error: ‘mISDN_debug_init’ was not declared in this scope
mISDN.cpp:77:39: error: ‘mISDN_debug_init’ was not declared in this scope
mISDN.cpp: In function ‘void mISDN_deinitialize()’:
mISDN.cpp:92:20: error: ‘mISDN_debug_close’ was not declared in this scope
make[1]: *** [mISDN.o] Error 1
make[1]: Leaving directory `/usr/src/lcr-1.10'
make: *** [all] Error 2

Ich habe das ganze mit Asterisk 10 probiert -> gleiche Fehler.
Auch mit Asterisk 1.6 habe ich es probiert -> bei LCR 1.10 kommt der selbe Fehler. Bei LCR 1.7 kommen andere Fehler aber das Kompilieren geht auch nicht durch.

Ich hoffe mir kann da wer weiterhelfen damit ich den LCR kompiliert bekomme.
 
verwende mISDN v2 aus dem Kernel (geht ja auch nicht mehr anders).

warum geht es nicht anders? Ich wuerde, wenn ich jetzt ein neues System mit chan_lcr aufsetzen muesste, alles von hier nehmen:

misdn.eu Git

Dann passt es wenigstens zusammen. Falls es damit einzelne Probleme geben sollte, sind diese meist in

The isdn4linux Archives

bereits behandelt worden.

- sparkie
 
Habe es jetzt mit git probiert und scheitere da schon bei mISDN.

Code:
make[3]: Entering directory `/usr/src/linux-2.6.34-12-obj/x86_64/default'
make -C ../../../linux-2.6.34-12 O=/usr/src/linux-2.6.34-12-obj/x86_64/default/. modules
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/l1oip_core.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/l1oip_codec.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/core.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/fsm.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/socket.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/clock.o
  CC [M]  /usr/src/mISDN/standalone/drivers/isdn/mISDN/hwchannel.o
/usr/src/mISDN/standalone/drivers/isdn/mISDN/hwchannel.c: In function ‘mISDN_freedchannel’:
/usr/src/mISDN/standalone/drivers/isdn/mISDN/hwchannel.c:113:2: error: implicit declaration of function ‘flush_work_sync’
make[6]: *** [/usr/src/mISDN/standalone/drivers/isdn/mISDN/hwchannel.o] Error 1
make[5]: *** [_module_/usr/src/mISDN/standalone/drivers/isdn/mISDN] Error 2
make[4]: *** [sub-make] Error 2
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/linux-2.6.34-12-obj/x86_64/default'
make[2]: *** [modules_] Error 2
make[2]: Leaving directory `/usr/src/mISDN/standalone'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/mISDN/standalone'
make: *** [modules] Error 2

In den isdn4linux Archives wurde ich nicht fündig.

Vielleicht hat noch jemand Tipps für mich.
Danke
 
Darf ich das Thema aufwärmen und Fragen ob es eine Lösung gab?

Gruss
 
Nein, es gab leider keine Lösung. Bin auf CAPI umgestiegen.
 
Hi!

Also ich habe ein weg gefunden lcr zu kompielieren. mISDN habe ich aufgegeben, da es eigentlich überflüssig ist zu kompielieren, da es in Debian 6 schon komplett in Version 2 drinn ist.

Wie ich lcr kompiliert habe?
Nun ich habe per
Code:
 git branch -a
nageschaut welche Branches es noch gibt und habe gesehen, dass man auf Version 1.11 umschalten kann. Nach dem ich 1.11 per
Code:
git checkout -b ....
runttergeladen habe funktionierte die kompilierung tadellos. (Anstelle der Punkte muss man den Pfad für Version 1.11 eintragen den man von git branch -a aufgelistet bekommen hat.) :)

Gruss
 
OK. LCR 1.11 habe nicht probiert, gab es damals noch nicht. Was meinst Du mit mISDN? Meinst Du mISDNv2? ja, das ist im Kernel bereits enthalten. Aber nicht mISDNuser. Das musste ich dazu kompilieren. Ist mISDNuser noch erforderlich mit LCR 1.11?
 
Hallo

Ja, mISDNv2.
Bei mISDN_user dagegen hatte ich keine Probleme.

Allerdings stellte ich gestern fest, dass auch 1.11 nicht immer funktioniert. Dabei ging ich soweit ich weiss immer gleich vor. ISDN unter Linux ist ein Albtraum... mal klappt es, mal... hat mal die falsche Version Lib's oder Compiler erwischt mal was anderes.
(Hintergrund: Ich versuche die ISDN-Karte(n) mit Gemsinschaft 3.1 zur zusammen Arbeit zu bewegen.)
 
Seit Monaten kämpfe ich jetzt schon mit ISDN unter Linux. Sowohl mit mISDNv2 als auch mit CAPI. Mit mISDN (v1) hatte ich niemals Probleme (alte Server läuft seit Jahren problemlos mit ISDN und mISDN (v1) ).
Hat jemand eine AVM Fritz ISDN Karte mit Asterisk am laufen. Mich würde interessieren welche Distribution, welche Variante (mISDNv2 oder CAPI), welche Asterisk Version und ev. auch eine Anleitung dazu.
 
Hallo!

Nach dem ich mit DAHDI und mISDNv2 auf die Schnauze gefallen bin, habe ich jetzt zu CAPI umgeschwenkt.
Aber kurz meine Probleme mit mISDN und DAHDI in Zusammenhang mit HFC-s Karten: Sobald ein zweites eingehendes Gesrpäch parallel zu einem bereits geführten reinkommt und kurz darauf beendet wird, wird die Tonübertragung (in der Senderichtung) für 1-2 sec, unterbrochen.
Benutzt habe ich Debian 6.0.5, mISDN v1.11 und auch 1.10, DAHDI was bei Gemeinschaft 3.1 dabei ist. Ich glaube v2.3.0.4.

Nun bin ich zu AVM C2 und B1 Karten umgestiegen und es funktioniert (anscheind) gut. Ohne die besagten Probleme.
Immer noch mit Debian 6.0.5 und die Debian eigenen asterisk-chan-capi Packet und Gemeinschaft 3.1 (wleches auch das Debian-Packet von Asterisk einsetzt)
Als Hardware werden AMD-CPU und Mainboards mit VIA bzw. ATI-Chipsatz eingesetzt.

Ich hoffe das hilft weiter?
Gruss!
 
Mein Problem mit CAPI sieht so aus, dass irgendwie keine Kommunikation zwischen dem AVM Treiber und Asterisk zustande kommt. Der Treiber initialisiert und findet die ISDN Karte. capiinfo zeigt mir auch an, dass eine Karte mit 2 Kanälen vorhanden ist. Asterisk initialsiert auch CAPI. Ein eingehendes Gespräch wird aber nicht erkannt. Der AVM-Trace (avmcapictrl trace) zeigt, dass ein Gespräch rein kommt aber Asterisk ragiert nicht darauf. Vom Amt kommt nur, dass die Nummer nicht verfügbar ist. Gleiches bei einem ausgehenden Gespäch. Asterisk wählt aber keine Reaktion auf der Karte.

Was mir noch nicht ganz klar ist, das mir über udev ein /dev/capi20 Device angelegt wird, das Verzeichnis /dev/capi aber leer ist. Ich habe aber nirgends eine Referenz auf /dev/capi20. Könnte hier der Grund liegen? Was hast Du in den udev Rules bzw. im /dev Verzeichnis?


capiinfo
Code:
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

Asterisk
Code:
asterisk*CLI> capi info 
Common ISDN API Driver ($Revision: 946 $) www.chan-capi.org
Contr1: 2 B channels total, 2 B channels free.

asterisk*CLI> capi show channels 
CAPI B-channel information:
Line-Name       NTmode state i/o bproto isdnstate   ton  number
----------------------------------------------------------------
ISDN0#02         no    -----  -  trans              0x00 ''->''
ISDN0#01         no    -----  -  trans              0x00 ''->''

CAPI Device:
Code:
ls -lR /dev/ca*
crw-rw---- 1 root dialout 68, 0 Jun 10 13:01 /dev/capi20

/dev/capi:
total 0

udev Rule für CAPI:
Code:
# CAPI devices
SUBSYSTEM=="capi", KERNEL=="capi", NAME="capi20", GROUP="dialout"
SUBSYSTEM=="tty", KERNEL=="capi[0-9]*", NAME="capi/%n"
 
Hi!

Also bei mir am Anfang war da genauso Funkstille in Asterisk. Aber es lag (natürlich) daran, dass ich noch nicht die capi.conf im /etc/asterisk Verzeichnis angepasst hatte. Prüf bitte ebenso, ob in Asterisk verbose auf höher als 0 eingestellt ist, da du sonst nicht ein mal die Nachrichten siehst wenn du ein falschen Context in capi.conf eingetragen hast. Bei höheren Verbosity-Level siehst du dann das ein Gespräch reinkiommt und die Meldung dazu, dass er den (falschen) Context nicht findet. Wenn es daran liegt. Allerdings gibt es mehrere Parameter in der capi.conf ohne die nicht ein mal Meldungen in Asterisk aufkommt!

Wenn du wie ich Gemeinschaft 3.1 einsetzst, dann ist die capi.conf natürlich nicht in /etc/asterisk sondern in /opt/gemeinschaft/etc/asterisk. ;-)

Was die Devices betrifft - muss ich passen. Ich habe da nichts angefasst. Nicht einmal nachgeschaut... Ich schau mal nach und berichte welche DEV-Dateien es bei mir gibt.

Gruss

P.S. Bei mir ist auch der CAPI-Ordner leer und ebenso wurde eine capi20-Datei im /etc Ordner angelegt.
Ich habe nun mehr oder weniger herausgefunden wieso es bei einem zweiten eingehendes Gespräch beim auflegen zu tonaussetzer kommt - der Fehler tritt nur mit dem AMD prozessor und VIA bzw. ATI RS400-Chipsatz auf. In einem Intel P4 mit SIS900-Chipsatz tritt der Fehler nicht auf. :-( Egal ob man DAHDI, mISDN oder CAPI nutzt. :confused:
 
Zuletzt bearbeitet:

Neueste Beiträge

Statistik des Forums

Themen
244,695
Beiträge
2,216,690
Mitglieder
371,314
Neuestes Mitglied
Gjorstn
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.