AEL, AEL2 Updates und andere Merkwürdigkeiten

cibi

Mitglied
Mitglied seit
6 Apr 2005
Beiträge
561
Punkte für Reaktionen
0
Punkte
0
Kurz:
- AEL ist eine Alternative zu extensions.conf, es geht mehr in Richtung einer Programmiersprache.
- Infos und wichtige Hinweise voip-info.org AEL
- AEL2 seit heute auch im Wiki: Infos zu einer neuen, überarbeiteten Version, bisher nur als Patch verfügbar (bzw. als Asterisk SVN Version)
-- wer auf dem neusten sein will, sollte sich auch die Bugliste (s. AEL2 Seite) anschauen - dort werden nicht nur Fehler erwähnt.


Die Infos zu AEL sind nicht gerade zahlreich, die Readme die Asterisk beiliegt ist recht kurz und lässt viele (u.a. wichtige Syntax) Fragen offen. Auf der AEL Wiki Seite gibt es viele Infos zu den Eigenheiten der aktuellen Version.

Ich will mir selber ein paar Notizen machen, und da dachte ich, mache ich das gleich hier, dann kann ich auch unterwegs einfach nach schauen:)

-------------------------------------------------------------------

switch braucht zumindest in Macros immer ein default + code (nur NoOP reicht) + break, sonst wird anschließend kein Code mehr ausgeführt (s. Kommantar im voip-info wiki)


-----

Code:
// Variante I
testno=15;
Set(testclip=${DB(clip/${testno})});
if ("${DB_RESULT}" = "") {
	NoOp( ----- TEST I Not found case);
};
NoOp(----- TEST I DB Status ${DB_RESULT} testclip ${testclip}  ---);
// Variante II
testclip=${DB(clip/${testno})}; // Fehler, wenn Wert in Datenbank nicht gefunden wird
if ("${DB_RESULT}" = "") {
	NoOp( ---- TEST II Not found case);
};
NoOp(---- TEST II DB Status ${DB_RESULT} testclip ${testclip} -----);

Variante I funktioniert problemlos.
Variante II funktioniert nur, wenn der Wert in der Datenbank vorhanden ist.
Falls nicht gibt es eine Syntaxfehlermeldung und der Rückgabewert (testclip) wird auf "0" gesetzt, was problematisch ist, wenn man statt DB_RESULT, den Rückgabewert auswertet, wie hier per if. (denn <wert>== "" trifft dann nicht zu)
Code:
ast_expr2.fl:176 ast_yyerror: ast_yyerror(): syntax error: syntax error, unexpected $end, expecting TOK_MINUS or TOK_COMPL or TOK_LP or TOKEN; Input:

  ^
ast_expr2.fl:180 ast_yyerror: If you have questions, please refer to doc/README.variables in the asterisk source.

(Kann auch sein, das ich den Fehler in Variante II einfach nicht sehe ;)
 
Zuletzt bearbeitet:
Wäre sowas nicht evtl. im Wiki besser aufgehoben?
 
Maik schrieb:
Wäre sowas nicht evtl. im Wiki besser aufgehoben?

Ich habe mir schon überlegt eine kompletten Artikel (also inklusive dem Syntax) für den ippf wiki zu schreiben, ich will aber erst noch etwas Erfahrung sammeln bzw. noch abwarten was andere eventuell noch schreiben :)
 
Noch was:
- Die hint Priorität gibt es in AEL nicht, in AEL2 schon.
=> muss man dann eben in extension.conf machen.

- SIPAddHeader("Alert-Info: <http://192.168.1.1/klingel.wav>")
geht in AEL nicht, da // als Kommentar erkannt wird.
(und außerdem gibt es dann eventuell noch das ":" Problem, s. voip-info)
Update: funktioniert mit AEL2

---------------------------------------------------------------------------

aus anderem Thema schrieb:
AEL und AEL2 habe ich einige üble Kritiken zu gelesen.
Na ja, da sollte man erst immer genau schauen von wem die Kritiken stammen...
Und AEL2 gibt es zur Zeit nur per SVN-Asterisk und selbst der Entwickler sagt, das es noch nicht stabil ist, somit ist jede Kritik daran ziemlich sinnfrei - denn der Syntax und die Möglichkeiten von AEL2 sind wirklich gut (kein Vergleich zur normalen extensions.conf)

Ich benutze AEL schon seit einigen Monaten und wenn man die Syntaxmerkwürdigkeiten kennt: kein Problem.
 
Zuletzt bearbeitet:
Ist zwar schon :alt: aber trotzdem interessant:

Man kann auch Asterisk 1.2.x mit AEL2 patchen, was recht einfach geht.
Anleitung auf http://voip-info.org/wiki/view/Asterisk+AEL2
(der svn Befehl braucht eine Zeit lang).

In einem Schnelltest klappte es bei mir mit Asterisk 1.2.10 ohne Probleme, selbst mit 0.3.0-PRE-1q lässt es sich kompilieren (letzteres allerdings nicht getestet!)

Außerdem wurde das alte AEL in der SVN Trunk Version komplett durch AEL2 ersetzt (heißt dort aber AEL ;)
 
Wieder mal etwas Werbung für AEL(2) machen:

In der neusten Version von AEL2 lässt sich sich die extensions.ael2 in eine extensions.conf formatierte Datei mit aelparse -w wandeln; somit kann man den in AEL2 geschriebenen Code auch auf nicht AEL2 Asteriskservern anwenden.
( http://voip-info.org/wiki/view/Asterisk+AEL2 )

Das geht allerdings nur mit aelparse aus der aktuellen Asterisk Entwicklerversion, (z.Zt.) nicht mit dem Patch für Asterisk 1.2.x
Code:
svn checkout http://svn.digium.com/svn/asterisk/trunk asterisk
 
Kostenlos!

Statistik des Forums

Themen
248,904
Beiträge
2,303,622
Mitglieder
378,538
Neuestes Mitglied
FraSche