globals als Extensions in extensions.ael

vWalter

Neuer User
Mitglied seit
21 Jan 2006
Beiträge
107
Punkte für Reaktionen
0
Punkte
16
Ich hab mal wieder ein kleines Problem :

Wenn ich in der extensions.ael so etwas drin habe :

globals{
sinusfon = 40;
}

context intern_isdn{
// irgendwas ...
}

context intern-zap{
${sinusfon} => { Goto intern_isdn|s|1;}; // Sprung in anderen Kontext

_X. => { &unbekannte_nummer(${EXTEN});}; // Aufruf Macro
}

springt * bei Anwahl von 40 sofort nach _X.

Gebe ich dagegen anstatt
${sinusfon} => { Goto intern_isdn|s|1;};

40 => { Goto intern_isdn|s|1;};

ein, funktioniert die Anwahl korrekt.


Habe ich einen Fehler gemacht ?

Gruss
Walter


in dem Makro-Aufruf "&unbekannte_nummer(${EXTEN});" lasse ich mir mit
Noop-Aufruf auch die angebliche falsche Nummer anzeigen - mir wird dabei die korrekte 40 angezeigt :noidea:
 
Zuletzt bearbeitet von einem Moderator:
Vertausche mal die Reihenfolge !

Also zuerst _X. und dann ${sinusfon}

Das Problem ist, daß _X. ja auch 40 beinhaltet. Da kommt es auf die Reihenfolge des Pattern-Matching an. Und das ist ein schwieriges Thema.
 
das war eine Turbo-Antwort :D

Hat aber leider nix gebracht.

Ob nun so :

${sinusfon} => { Goto intern_isdn|s|1;};
_X. => { &unbekannte_nummer(${EXTEN});};


oder so:

_X. => { &unbekannte_nummer(${EXTEN});};
${sinusfon} => { Goto intern_isdn|s|1;};



Wahlergebnis und Ausgabe im CLI bleiben dasselbe :

-- Executing Macro("Zap/2-1", "unbekannte_nummer|40") in new stack
-- Executing Set("Zap/2-1", "ext=40") in new stack
-- Executing Set("Zap/2-1", "LANGUAGE()=de") in new stack
-- Executing Answer("Zap/2-1", "") in new stack
-- Executing NoOp("Zap/2-1", "blockiere Nummer 40") in new stack
-- Executing Playback("Zap/2-1", "invalid") in new stack
-- Playing 'invalid' (language 'de')

... funktioniert hat das bisher nur, wenn der Context und die globals-Sektion beide in der extensions.conf waren.

Es sind wohl auch nur die als Extensions-Variablen genutzten Eintraege davon betroffen.
- Andere angelegte globale VARs kann man an anderer Stelle "normal" benutzen.
 
Zuletzt bearbeitet von einem Moderator:
Ok. Ich hab mal nachgelesen.

Das Problem ist, daß Du die extension, also den Teil, der vor dem => steht, nicht dynamisch erzeugen kannst, da der Dialplan aus der extensions.conf und der extensions.ael beim Asterisk-Start eingelesen wird und diese Teile damit statisch sind.

Das heißt, du darfst den Teil vor dem => nicht über eine Variable erzeugen. Variablen dürfen nur nach dem => auftreten.
 
Das erklärt alles - daaaaanke :idea:

Aber wo hast Du das denn so schnell nachgelesen ?
 
Ich hab hier ca. 1000 Seiten Doku und Notizen, die ich mir in den letzten knapp 2 Jahren zu Asterisk gemacht habe, wenn ich über solche Problemchen gestolpert bin.
 
na super :)

Das besonders dumme daran ist in meinen Augen, dass das ein lokales Problem der extensions.ael zu sein scheint - denn wie gesagt, mit Kontext + globals-Sektion in der extensions.conf funzt es.


Allerdings hatte ich eine Sache noch nicht konsequent fertig gehabt :-Ö
- Ich habe die general-Sektion noch nicht in der extesnions.ael(noch in der extensions.conf) gehabt ... denn hier stehen nette Eintraege drin ala "clearglobalvars=no" und
"static=yes"

... muß ich gleich testen

hmmmm - aus dem Wiki :

"The AEL parser (pbx_ael.so) is completely separate from the module that parses extensions.conf (pbx_config.so). To use AEL, the only thing that has to be done is the module pbx_ael.so must be loaded by Asterisk. This will be done automatically if using 'autoload=yes' in /etc/asterisk/modules.conf. When the module is loaded, it will look for 'extensions.ael' in /etc/asterisk/. Both extensions.conf and extensions.ael can be used in conjunction with each other if that is what is desired. Some users may want to keep extensions.conf for the features that are configured in the 'general' section of extensions.conf. "


's gibt wohl gar keine general-Sektion fuer der extensions.ael - oder ?
 
Wenn Du in einem letzten Beitrag noch was hinzufügen willst, dann mußt Du keinen neuen Beitrag schreiben sondern kannst den Ändern-Button verwenden.

Nein. [general] gibt es soweit ich weiß in AEL nicht.
 
betateilchen schrieb:
Wenn Du in einem letzten Beitrag noch was hinzufügen willst, dann mußt Du keinen neuen Beitrag schreiben sondern kannst den Ändern-Button verwenden.

Nein. [general] gibt es soweit ich weiß in AEL nicht.

Habe ich (noch) einen neuen Beitrag geschrieben :confused: Hatte immer nur auf "Antworten" geklickt... damit alles nett in der Reihenfolge bleibt.


Ich hab's grad mal getestet in der extensions.ael :

general {
clearglobalvars=no;
static=yes;
writeprotect=no;
autofallthrough=yes;
}



* beschwert sich nicht darüber - es aendert natuerlich auch nichts an dem Problemchen.

...ich habe da noch so ein nervendes Problemchen mit IAX-Accounts und ENUM-IAX-Einwahlen - die sich laut CLI gar nicht moegen, das eigentliche Telefonieren aber nicht behindern. Das poste ich aber als neuen Beitrag.
 
Kostenlos!

Statistik des Forums

Themen
248,856
Beiträge
2,302,969
Mitglieder
378,504
Neuestes Mitglied
Hallo61Hallo