Asterisk 1.6 beta und chan-capi (war Trunk u. chan-capi)

Karl23

Neuer User
Mitglied seit
8 Nov 2004
Beiträge
108
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich habe mal versuch die aktuelle asterisk-trunk version
mit chan-capi zu compilieren. Leider klappt dies nicht. :confused:

Hat das jemand schon mal probiert?
Gibt es eventuell einen Patch?

Karl
 
Nun, es gibt zwischen den einzelnen Asterisk Versionen
1.2, 1.4 und trunk (dem zukünftigen 1.6) unterschiede
in der Schnittstelle. Chan-capi prüft derzeit auf 1.2 und 1.4
und passt sich entsprechend an. Für Trunk wählt er die 1.2
Schnittestelle aus und compiliert nicht durch.

Es müsste chan-capi auf "trunk" angepasst werden. Leider übersteigt dies meine Programmierfähigkeiten. Dies zum Hintergrund meiner Frage.

Vielleicht gibt es aber schon von jemanden eine Hack hierzu. Ist für asterisk 1.6 sowieso notwendig.

Die asterisk 1.6 beta ist jetzt erschienen.
 
Versuch' bitte mal die neue trunk (HEAD) version von chan-capi.
SVN trunk rev. 576 oder das HEAD-tgz von morgen.

Ich habe mal die Anpassungen gemacht, aber das ist noch nicht getestet.

Armin
 
@armincm

Vielen Dank für die schnelle Reaktion.

Übersetzung und Installation haben schon mal top funktioniert. Ich werde Ergebnisse vom Test sobald es etwas gibt in nächsten Tagen melden.
 
Sieht bei uns schlecht aus. Setup Asterisk 1.6beta2 auf Centos5, chan-capi HEAD. AVM B1 bzw. 2 Server mit AVM passiv. Beide Rechner gehen grundsätzlich mit CAPI und Asterisk 1.4. Bei 1.6 passiert folgendes (outgoin call):

Connected to Asterisk 1.6.0-beta2 currently running on schumann (pid = 13749)
Verbosity is at least 11
-- Attempting call on CAPI/contr1/0521xxxxxx for s@outboundmsg_down:1 (Retry 1)
[... paar Sekunden Pause...]
[Feb 8 17:28:16] ERROR[13756]: chan_capi.c:679 local_queue_frame: Could not write to pipe for ISDN1#01
[Feb 8 17:28:16] ERROR[13756]: chan_capi.c:679 local_queue_frame: Could not write to pipe for ISDN1#01
[...]
== ISDN1#01: CAPI Hangingup for PLCI=0x101 in state 2
[Feb 8 17:38:36] NOTICE[13756]: pbx_spool.c:332 attempt_thread: Call failed to go through, reason (0) Call Failure (not BUSY, and not NO_ANSWER, maybe Circuit busy or down?)
> ISDN1#01: CAPI INFO 0x3490: Normal call clearing

Der Context ist auch nicht spannend:

[outboundmsg_up]
exten => s,1,DigitTimeout,10
exten => s,n,ResponseTimeout,20
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Background(sound)
exten => s,n,Hangup

Dirk
 
Grrr... hier wurde in Asterisk wohl wieder was 'anders' gemacht. Toll, die API bleibt, muss aber anders behandelt werden, oder so. Naja, anyway, hier muss man mal genauer schauen, warum die Voice-Daten nicht von der Pipe gelesen wurden, sodass ein überlauf auftritt.
Keine Ahnung, ob ich dazu kurzfristig Zeit finde und solange Asterisk noch im Beta ist, gehe ich davon aus, dass noch einige Änderungen einfliessen...

Armin
 
Danke für die Info.
Da ich hierzu in chan_capi keine Änderungen gemacht habe, war das dann wohl ein Fehler in Asterisk...

Armin
 
Hallo Armin,

kann ich nicht bestätigen, mit beta4 geht's immer noch nicht, mit beta5 baut es gar nicht mehr:

[CC] chan_capi.c -> chan_capi.o
In file included from /usr/include/asterisk/utils.h:26,
from /usr/include/asterisk/config.h:30,
from /usr/include/asterisk/channel.h:147,
from chan_capi.h:25,
from chan_capi.c:30:
/usr/include/asterisk/network.h:55:2: error: #error "don't know how to handle network functions here."
In file included from /usr/include/asterisk/utils.h:26,
from /usr/include/asterisk/config.h:30,
from /usr/include/asterisk/channel.h:147,
from chan_capi.h:25,
from chan_capi.c:30:
/usr/include/asterisk/network.h:88: error: expected '=', ',', ';', 'asm' or '__a
ttribute__' before 'int'
In file included from /usr/include/asterisk/config.h:30,
from /usr/include/asterisk/channel.h:147,


Da ich den svn-Baum verfolge, habe ich auch keine relevanten Änderungen in diesem Bereich bei Dir gesehen. Ich denke mal, da musst Du noch mal Hand anlegen ;)

Dirk
 
Aargh, es ist noch wilder: chan_capi läuft mit beta5! Wenn man das chan_capi installiert, was mit beta4 gebaut wurde. Strange...

Kann man denke ich leicht fixen (das Build-Problem).

Dirk
 
Und hier ist der Fix für 1.6beta5:

--- proj/asterisk/chan-capi/create_config.sh 2008-02-07 10:13:28.000000000 +0100
+++ create_config.sh 2008-03-06 10:50:38.000000000 +0100
@@ -27,13 +27,8 @@
fi

echo -n "Checking Asterisk version... "
-if grep -q "ast_get_version_num" $INCLUDEDIR/version.h; then
-AVERSION="not found, assuming 1.6.x"
-VER=1_6
-else
AVERSION=`sed -n '/.*ASTERISK_VERSION /s/^.*ASTERISK_VERSION //p' $INCLUDEDIR/version.h`
AVERSION=`echo $AVERSION | sed 's/\"//g'`
-fi
echo $AVERSION

echo "/*" >$CONFIGFILE
@@ -48,19 +43,11 @@
echo "#define CC_AST_HAS_VERSION_1_4" >>$CONFIGFILE
echo " * found Asterisk version 1.4"
VER=1_4
-else
- if grep -q "ASTERISK_VERSION_NUM 99999" $INCLUDEDIR/version.h; then
- echo "#define CC_AST_HAS_VERSION_1_4" >>$CONFIGFILE
- echo " * assuming Asterisk version 1.4"
- VER=1_4
- else
- if [ "$VER" = "1_6" ]; then
- echo "#define CC_AST_HAS_VERSION_1_6" >>$CONFIGFILE
- echo " * assuming Asterisk version 1.6"
- else
- echo "#undef CC_AST_HAS_VERSION_1_4" >>$CONFIGFILE
- fi
fi
+if grep -q "ASTERISK_VERSION_NUM .*106" $INCLUDEDIR/version.h; then
+ echo "#define CC_AST_HAS_VERSION_1_6" >>$CONFIGFILE
+ echo " * found Asterisk version 1.6"
+ VER=1_6
fi

check_two_and_four()


Klappt und für gut befunden :)

Dirk
 
Hi Armin,

leider funktioniert Deine Anpassung für den 1.6-Source nicht. Bitte nimm' meinen Patch, ich schaue mir die Version richtig an. Ohne diesen Patch baut chan_capi nicht mit 1.6.0beta6.

Dirk
 

Anhänge

  • chan_capi.patch.gz
    553 Bytes · Aufrufe: 11
Ja, meine Änderung war auch nicht für die beta packages gedacht, sondern für trunk.
Neue rev 603 sollte nun beides können.

Armin
 
Die aktuelle Version 1.1.1 braucht für Asterisk-1.6.0beta8 immer noch meinen Patch...

Dirk
 
Ja, aber ein Release wird nicht mehr verändert. Der fix ist in SVN trunk drin und wird bei einem neuen Release mit dabei sein.
Dein Patch funktioniert zwar mit den 1.6.0beta, aber nicht mit Asterisk-trunk.

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