capi_chan.1.0.0 und Asterisk 1.4.1 nicht installierbar

stefan80

Neuer User
Mitglied seit
3 Mrz 2007
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche gerade, chan_capi mit dem 1.4.1 Asterisk zu kompilieren und ich krieg folgende Ausgabe:

Code:
gate:/tmp/chan_capi-1.0.0 # make
./create_config.sh "/usr/include"
Checking Asterisk version... 1.4.1
 * found stringfield in ast_channel
 * found 'indicate' with data
 * found extended ast_channel_alloc
 * found send_digit_end with duration
 * without generic jitter-buffer patch
config.h complete.
gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g  -I/usr/include -D_REENTRANT -D_GNU_SOURCE  -O6   -Wno-missing-prototypes -Wno-missing-declarations -DCRYPTO `if grep -q AST_JB config.h; then echo -DAST_JB; fi`   -c -o chan_capi.o chan_capi.c
chan_capi.c:161: warning: data definition has no type or storage class
chan_capi.c:161: warning: type defaults to âintâ in declaration of âSTANDARD_LOCAL_USERâ
chan_capi.c:162: warning: data definition has no type or storage class
chan_capi.c:162: warning: type defaults to âintâ in declaration of âLOCAL_USER_DECLâ
chan_capi.c: In function âpbx_capi_readâ:
chan_capi.c:1712: warning: format â%dâ expects type âintâ, but argument 7 has type âlong unsigned intâ
chan_capi.c: In function âcapi_newâ:
chan_capi.c:2138: error: âstruct ast_channelâ has no member named âtypeâ
chan_capi.c: In function âpbx_capicommand_execâ:
chan_capi.c:4815: warning: implicit declaration of function âLOCAL_USER_ADDâ
chan_capi.c:4834: warning: implicit declaration of function âLOCAL_USER_REMOVEâ
chan_capi.c: At top level:
chan_capi.c:5518: error: unknown field âsend_digitâ specified in initializer
chan_capi.c:5518: warning: initialization from incompatible pointer type
make: *** [chan_capi.o] Error 1
gate:/tmp/chan_capi-1.0.0 #

Es gab schon mal einen ähnlichen Thread, in dem das selbe Problem mit der 0.7.1 mit dem Asterisk 1.4b2 bestand. Aber auch die HEAD Version von chan_capi wirft den selben Fehler.

Hat jemand eine Idee oder die chan_capi.1.0.0 schon mit dem Asterisk 1.4.1 zum Laufen gebracht?

Grüße
Stefan
 
Lösung chan-capi 1.0.0 und Ast 1.4.1

Hi !

Der Version-String hat sich in den Sourcen wohl geändert. Such mal im Makefile und im Skript create_config.sh nach dem String 0104 und lösche die 0 davor, so dass nur noch 104 dort steht. Dann make clean, make und es funzt.

Leider habe ich dann ein anderes Problem, ich kann nicht über CAPI rauswählen. Es klingelt nirgends und die Konsole wird mit folgender Meldung zugemüllt:

WARNING[32346]: translate.c:163 framein: no samples for gsmtolin

Über CAPI rein an einen SIP-Anschluss funktiniert.

Vielleicht hat ja jemand dafür eine Lösung.

Nobser
 
Zuletzt bearbeitet:
Hey, danke! Werd ich demnächst mal ausprobieren - komme leider nicht mehr dazu diese Woche... :(
 
Ich habe das in der HEAD Version schon mal gefixt. Wird dann auch bald in version 1.0.1 verfuegbar sein.

Armin
 
Prima das HEAD compilieren funktioniert nun auch bei mir prima.

Gruss,

Jörg
 
Habe leider auch dasselbe Problem (Compilierungsproblem), allerdings in Zusammenspiel mit Ubuntu 6.10, Asterisk Version 1.4.2 und chan_capi 1.0.1 sowie auch mit der aktuellen Head Version ( Revision 448 ).
Passe ich die Datei Makefile an wie oben beschrieben, also von 0104 auf 104, dann kommt dennoch derselbe Fehler. Habe dann gesehen dass das create_config.sh script denkt dass es sich um die 1.2 Version von Asterisk handelt, da es "Using Asterisk 1.2 API" beim compilieren ausgibt. Aus diesem Grund habe ich auch noch "VER=1_2" nach "VER=1_4" in create_config.sh geändert, allerdings ebenso ohne Erfolg. In create_config.sh gab es aber auch keine Begriffe die 0104 ähneln außer diesem hier:
Code:
if grep -q "ASTERISK_VERSION_NUM .*104" $INCLUDEDIR/version.h; then
Aber die müsste laut regulären Ausdruck ja die 104 auch abbilden können. Somit habe ich an dieser Zeile nix geändert.

Hat jemand noch eine Idee?

Hier einmal die komplette Ausgabe mit make V=1 :
Code:
./create_config.sh "/usr/include"
Checking Asterisk version... 
Using Asterisk 1.4 API
 * found stringfield in ast_channel
 * found 'indicate' with data
 * found extended ast_channel_alloc
 * found send_digit_end with duration
config.h complete.

gcc -pipe -fPIC -Wall -Wmissing-prototypes -Wmissing-declarations -g  -I/usr/include -D_REENTRANT -D_GNU_SOURCE  -O6 -march=i686  -Wno-missing-prototypes -Wno-missing-declarations -DCRYPTO  -c chan_capi.c -o chan_capi.o
chan_capi.c:166: warning: data definition has no type or storage class
chan_capi.c:166: warning: type defaults to ‘int’ in declaration of ‘STANDARD_LOCAL_USER’
chan_capi.c:167: warning: data definition has no type or storage class
chan_capi.c:167: warning: type defaults to ‘int’ in declaration of ‘LOCAL_USER_DECL’
chan_capi.c: In function ‘capi_new’:
chan_capi.c:2202: error: ‘struct ast_channel’ has no member named ‘type’
chan_capi.c: In function ‘pbx_capicommand_exec’:
chan_capi.c:4976: warning: implicit declaration of function ‘LOCAL_USER_ADD’
chan_capi.c:4995: warning: implicit declaration of function ‘LOCAL_USER_REMOVE’
chan_capi.c: At top level:
chan_capi.c:5693: error: unknown field ‘send_digit’ specified in initializer
chan_capi.c:5693: warning: initialization from incompatible pointer type
make: *** [chan_capi.o] Fehler 1

Martin
 
Ohne näheres zu wissen:

Ich würde jetzt fast vermuten, du hast das Ubuntu asterisk-dev Paket installiert, welches auf 1.2 basiert.
Make findet jetzt bei chan_capi die Header-Files vom 1.2 und will für die Version evtl. kompilieren.
Versuche mal den Pfad /usr/include/asterisk als Symlink auf deine Asterisk-Quellen zu setzen...

Mario
 
Hi Mario,

leider habe ich das Paket asterisk-dev nicht installiert, aber ich hatte vorher Asterisk als Version 1.2 installiert (selbst compiliert). Habe dann allerdings alle Verzeichnisse sicherheitshalber gelöscht, weiß aber auch nicht, ob ich alle erwischt habe?!
Habe so wie du sagtest einen Symlink gesetzt, allerdings hat das keine Auswirkung auf die Fehlermeldung. Auch ein Anpassen der Zeile:
Code:
ASTERISK_HEADER_DIR=$(INSTALL_PREFIX)/usr/include
in dem Makefile hat keine Änderung gebracht.

Hatte auch gedacht es läge vielleicht an der Änderung des Symlink von /bin/sh in Ubuntu 6.10 (zeigt nun auf dash anstelle bash). Habe deshalb auch die Datei create_config.sh angepasst, sodass diese direkt auf "#!/bin/bash" zeigt, somit sollte es hier auch keine Probleme geben.

Gruß

Martin
 
Habe jetzt auch noch einmal probiert unter VMWARE das Ganze zu installieren, allerdings gibt es auch hier dieselben Probleme.
Scheint also ein generelles Problem von Ubuntu 6.10 zu sein!
Hat vllt. jemand noch eine andere Idee?

Gruß

Martin
 
Habe den Fehler selber gefunden...
In der Datei /usr/include/asterisk/version.h steht nur folgendes:
Code:
/*
 * version.h
 * Automatically generated
 */
#define ASTERISK_VERSION ""
#define ASTERISK_VERSION_NUM

Habe dann die letzte Zeile einfach nach
Code:
#define ASTERISK_VERSION_NUM 104
geändert und dann ging es ohne eine Änderung in create_config.sh oder dem Makefile machen zu müssen.

Gruß

Martin
 
In letzter Zeit häufen sich die Probleme mit Ubuntu nicht nur bei Asterisk.
Also mit debian habe ich keine Probleme.

Gruss,

Jörg
 
Habe dann auch einfach mal Debian einmal so installiert und gesehen, dass sich gar nicht so viel ändert im Vergleich zu Ubuntu...
Vielleicht ist das auch ein Grund zu wechseln, denn schließlich ist ja Ubuntu nix anderes als ein leicht verändertes Debian. Mein Einstieg in Ubuntu war bei mir auf das sehr nette Motto "Fragen ist Menschlich" und den Hype zurück zu führen - jedoch werde ich es mir noch einmal überdenken!

Gruß

Martin
 
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.