probleme mit bristuff 0.2.0 rc1/rc2 und gcc-2.95

bjunix

Neuer User
Mitglied seit
18 Apr 2004
Beiträge
192
Punkte für Reaktionen
0
Punkte
0
hier noch mal ein extra thread für die frage.

ich hab jetzt bri -stuff 0.2.0 einfach über die alte version"drübergebügelt". aber in /usr/lib/asterisk/modules liegen nur alte module.. keine neuen.
ich denke deswegen bekomme ich beim start immer diese meldung

Code:
[chan_zap.so] => (Zapata Telephony w/PRI)
  == Parsing '/etc/asterisk/zapata.conf': Found
Unable to get parameters
Unable to register channel '1-2'
chan_zap.so: load_module failed, returning -1
  == Unregistered channel type 'Tor'
  == Unregistered channel type 'Zap'
Loading module chan_zap.so failed!
danach bricht der asterisk start vorgang ab.
hat da jemand eine idee voran das liegt?
 
Kann es sein, das du vergessen hast das zaphfc modul mit make load zu laden?
 
nein das wird korrekt geladen
habe aber bristuff 0.2.0 rc2 noch nicht getestet. vieleicht klappt es ja damit
 
nein....
mit rc2 klappt es auch nicht
 
Am besten du beginnst noch mal am Anfang.
Alle von Asterisk erzeugte Verzeichnisse löschen bzw verschieben (sichern).
Danach die bristuff...rc2 installieren.
Auf Fehlermeldungen achten & hier posten.

Was steht eigenldich nach "make loadNT" auf deiner Console?
 
Meldet er beim compilieren irgendwelche Fehler?


MfG,
Karl
 
lo4dro schrieb:
Am besten du beginnst noch mal am Anfang.
Alle von Asterisk erzeugte Verzeichnisse löschen bzw verschieben (sichern).
Danach die bristuff...rc2 installieren.
Auf Fehlermeldungen achten & hier posten.

Was steht eigenldich nach "make loadNT" auf deiner Console?

naja das übliche.
3 channels configured. undsoweiter und sofort. dort liegt der fehler meiner meinung nach nicht.
welche verzeichnisse erstellt asterisk den? hab das mit dem löschen verschieben schon mal probiert. aber vieleicht habe ich einen ordner übersehen
 
Gelöst: 0.2.0-rc2 bricht beim Kompilieren ab

Bei mir bricht die 0.2.0-rc2 unter Asterisk beim Kompilieren ab, so dass ich ebenfalls die o.g. Fehlermeldung beim Starten von Asterisk bekomme (Lösung unten).

Er bricht mit folgender Fehlermeldung in der chan_iax2.c beim Kompilieren ab:

Code:
chan_iax2.c: In function `iax2_hangup':
chan_iax2.c:2406: parse error before `int'
chan_iax2.c:2412: `alreadygone' undeclared (first use in this function)
chan_iax2.c:2412: (Each undeclared identifier is reported only once
chan_iax2.c:2412: for each function it appears in.)
make[1]: *** [chan_iax2.o] Error 1
make[1]: Leaving directory `/usr/local/src/bristuff-0.2.0-rc2/asterisk-1.0.2/channels'
make: *** [subdirs] Error 1

Die von bristuff geänderte und betroffene Funktion iax2_hangup sieht so aus:

Code:
static int iax2_hangup(struct ast_channel *c)
{
        unsigned short callno = PTR_TO_CALLNO(c->pvt->pvt);
        struct iax_ie_data ied;
        char causestr[256];
        sprintf(causestr, "%i", c->hangupcause);
        int alreadygone;
        ast_mutex_lock(&iaxsl[callno]);
        if (callno && iaxs[callno]) {
                memset(&ied, 0, sizeof(ied));
                iax_ie_append_str(&ied, IAX_IE_CAUSE, causestr);
                ast_log(LOG_DEBUG, "We're hanging up %s with cause %i now...\n", c->name, c->hangupcause);
                alreadygone = iaxs[callno]->alreadygone;
                /* Send the hangup unless we have had a transmission error or are already gone */
                if (!iaxs[callno]->error && !alreadygone)
                        send_command_final(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_HANGUP, 0, ied.buf, ied.pos, -1);
                /* Explicitly predestroy it */
                iax2_predestroy_nolock(callno);
                /* If we were already gone to begin with, destroy us now */
                if (alreadygone) {
                        ast_log(LOG_DEBUG, "Really destroying %s now...\n", c->name);
                        iax2_destroy_nolock(callno);
                }
        }
        ast_mutex_unlock(&iaxsl[callno]);
        if (option_verbose > 2)
                ast_verbose(VERBOSE_PREFIX_3 "Hungup '%s'\n", c->name);
        return 0;
}

Es muss die Zeile 'int alreadygone' vor die 'sprintf' Zeile verschoben werden:

...
struct iax_ie_data ied;
char causestr[256];
int alreadygone;
sprintf(causestr, "%i", c->hangupcause);
ast_mutex_lock(&iaxsl[callno]);
...


Damit kompiliert er ohne Fehlermeldung durch.

Danke nochmal für die Hilfe!!!

Gruß,

Specki
 
Das Problem tritt nur bei aelteren Compilern auf, die den C99-Standard nicht unterstuetzen (beispielsweise bei gcc 2.95.x bei Debian stable). Solche Compiler moegen keine Anweisungen zwischen den Variablen-Deklarationen. Kapejod weiss (dank Specki) wohl mittlerweile darueber Bescheid und will das Problem in der naechsten Version beseitigen.
 
das habe ich mir ja fast schon gedacht.

dann werde ich es mal mit gcc der 3er version ausprobieren.

das hätte junghans aber auch mal in der readme schreiben können.
schlecht dokumentierte projekte sind meiner meinung nach auch der einzige hacken an open source.
 
ich habe das gleiche Problem unter debian 3 mit gcc 2.95.
Ich habe dann versucht einen gcc 3 zu installieren, aber ein
apt-get install gcc-3 (oder gcc-3.2 oder gcc-3.3 oder gcc-3.x)
liefert immer, das es ein solches Paket nicht kennt.

Welchen Server muss ich bei apt-get konfigurieren, damit ich den gcc 3 installieren kann?
Wie heißt das Paket genau?

Danke

riesling
 
@riesling
Bei mir sieht ein apt-cache search gcc-3 so aus:

ldroll:~ > apt-cache search gcc-3
g++-3.4 - The GNU C++ compiler
gcc-3.2 - The GNU C compiler
gcc-3.2-base - The GNU Compiler Collection (base package)
gcc-3.2-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-3.3 - The GNU C compiler
gcc-3.3-base - The GNU Compiler Collection (base package)
gcc-3.3-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gcc-3.4 - The GNU C compiler
gcc-3.4-base - The GNU Compiler Collection (base package)
gcc-3.4-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
gpc-2.1-3.3 - The GNU Pascal compiler
gpc-2.1-3.3-doc - Documentation for the GNU Pascal compiler (gpc)
gpc-2.1-3.4 - The GNU Pascal compiler
gpc-2.1-3.4-doc - Documentation for the GNU Pascal compiler (gpc)
libffi3-dev - Foreign Function Interface library (development files)
gcc-3.0-base - The GNU Compiler Collection (base package)

kann es sein das du ein woody nutzt?
Galub den gcc-3.3 ist erst ab sarge oder sid dabei.
 
wie siehts in der neusten bristuff version aus. gehts nun mit gcc 2.95 ?

hab keine lust das compile script durchrödeln zu lassen um am ende eine fehler meldung zu sehen und wieder das alte bristuff 0.1.0 rüberzuspielen.

danke

gruß

bjunix

edit:

falls es überhaupt jemand interessiert.

hab s jetzt selber probiert und es funktioniert jetzt
 
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.