Beim Aufbau einer neuen und meiner ersten Telefonanlage mit Asterisk möchte ich vorwiegend mit der AEL Syntax arbeiten.
Beim Zuweisen und Abrufen von Variablen im Dailplan kann ich noch kein konsistentes Verhalten feststellen.
Folgende Situation:
// Definition der globalen Variablen
globals {
IntVorwahl=0;
MeikeAnwesend=1;
Meike_F=SIP/21;
Meike_M=SIP/22;
}
// in einem speziellen Context können die Variablen gesetzt werden
// neuer Zustand durch Sprachausgabe
context setvariables {
66210 => {
Answer();
SetGlobalVar(MeikeAnwesend = 0);
Playback(sw_MeikeAbwesend);
Wait(1);
Hangup;
};
66211 => {
Answer();
SetGlobalVar(MeikeAnwesend = 1);
Playback(sw_MeikeAnwesend);
Wait(1);
Hangup;
};
};
// spezieller Context zum Testen
// Debuggen durch Sprachausgabe
context vonextern {
6605 => {
Answer();
Wait(2);
If( ${CALLERIDNUM:-2} = ${IntVorwahl} )
{
Set(LANGUAGE()=us);
}
else
{
Set(LANGUAGE()=de);
};
SayDigits( ${MeikeAnwesend} );
if ( ${MeikeAnwesend} = 1 )
{
SayDigits(2);
}
else
{
SayDigits(3);
};
};
};
nach dem Verändern der der extensions.ael unf extentions.conf wird in der CLI ein "reload" und "ael reload" ausgeführt.
Wird dann die Variable mit 66211 gesetz bzw. mit 66210 gelöscht, wird die Sprachmeldung richtig ausgegeben, jedoch beim Überprüfen durch wählen von 6605 wird nur manchmal auch wirklich die globale Variable gesetzt.
Wie kann das sein?
Müssen globale Variablen immer mit SetGlobalVar gesetzt werden?
Welche CLI Funktionen müssen aufgerufen werden um ein vollständiger Einlesen der neuen Konfiguration zu erriechen?
Wer hat eine Idee was zu tun ist.
Julian
Beim Zuweisen und Abrufen von Variablen im Dailplan kann ich noch kein konsistentes Verhalten feststellen.
Folgende Situation:
// Definition der globalen Variablen
globals {
IntVorwahl=0;
MeikeAnwesend=1;
Meike_F=SIP/21;
Meike_M=SIP/22;
}
// in einem speziellen Context können die Variablen gesetzt werden
// neuer Zustand durch Sprachausgabe
context setvariables {
66210 => {
Answer();
SetGlobalVar(MeikeAnwesend = 0);
Playback(sw_MeikeAbwesend);
Wait(1);
Hangup;
};
66211 => {
Answer();
SetGlobalVar(MeikeAnwesend = 1);
Playback(sw_MeikeAnwesend);
Wait(1);
Hangup;
};
};
// spezieller Context zum Testen
// Debuggen durch Sprachausgabe
context vonextern {
6605 => {
Answer();
Wait(2);
If( ${CALLERIDNUM:-2} = ${IntVorwahl} )
{
Set(LANGUAGE()=us);
}
else
{
Set(LANGUAGE()=de);
};
SayDigits( ${MeikeAnwesend} );
if ( ${MeikeAnwesend} = 1 )
{
SayDigits(2);
}
else
{
SayDigits(3);
};
};
};
nach dem Verändern der der extensions.ael unf extentions.conf wird in der CLI ein "reload" und "ael reload" ausgeführt.
Wird dann die Variable mit 66211 gesetz bzw. mit 66210 gelöscht, wird die Sprachmeldung richtig ausgegeben, jedoch beim Überprüfen durch wählen von 6605 wird nur manchmal auch wirklich die globale Variable gesetzt.
Wie kann das sein?
Müssen globale Variablen immer mit SetGlobalVar gesetzt werden?
Welche CLI Funktionen müssen aufgerufen werden um ein vollständiger Einlesen der neuen Konfiguration zu erriechen?
Wer hat eine Idee was zu tun ist.
Julian