[Frage] AGI Skript - Übermittlung eines Wertes einer Variablen

michaelxy

Neuer User
Mitglied seit
8 Mai 2005
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Hallo,

da der Asterisk 1.2 einen recht schlimmen Zufall generiert, muß ich eine Zufallszahl mittels AGI generieren. Ich muß auch Asterisk 1.2 nehmen.

Irgendwie bekomme ich aber von dem AGI Script keine Variable zurück in den Kontext übermittelt !?

Code:
exten => s,1,Answer()
exten => s,2,AGI(asterisk_agi_zufall.agi)
exten => s,3,NoOp(${zufallszahlex})
exten => s,4,NoOp(${zufallszahlin})
exten => s,5,HangUp

asterisk_agi_zufall.agi:

Code:
#!/bin/bash

zufallszahlin=`echo $((RANDOM % 260 +1))`
echo $zufallszahlin
echo "SET VARIABLE zufallszahlex $zufallszahlin"
echo $zufallszahlex

Code:
 -- Launched AGI Script /var/lib/asterisk/agi-bin/asterisk_agi_zufall.agi
    -- AGI Script asterisk_agi_zufall.agi completed, returning 0
    -- Executing NoOp("SIP/michael-b6e07eb0", "") in new stack
    -- Executing NoOp("SIP/michael-b6e07eb0", "") in new stack
    -- Executing Hangup("SIP/michael-b6e07eb0", "") in new stack
  == Spawn extension (205, s, 5) exited non-zero on 'SIP/michael-b6e07eb0'

Wie bekomme ich die Variable von dem AGI Skript zurück in den Kontext ?
 
Schade - scheint, daß es bei AGI eher nur Übermittlung der Werte vom Kontext -> AGI gibt, und nicht umgekehrt.

Egal - er schreibt nun per echo ... den Zufall in eine txt-Datei.

...
exten => s,n,ReadFile(zufall=/CUSTOM/skripte/random-nr.txt)
exten => s,n,GotoIf($[${zufall} > 200 ]?301:389)
...

Es scheint aber, als könnte das GoToIf den $zufall nicht interpretieren - gibt es dafür einen Grund b.z.w. stimmt das GotoIf so wie es hier steht nicht wirklich ? 301 wie 389 existieren.

edit - so gehts: exten => s,n,GotoIf($[ ${zufall} = 1 ]?s,301)
 
Zuletzt bearbeitet:
scheint, daß es bei AGI eher nur Übermittlung der Werte vom Kontext -> AGI gibt, und nicht umgekehrt.

Natürlich gibt es den umgekehrten Weg, das ist ja gerade der Sinn von AGI. Hast Du Dir das Beispiel-Skript angesehen? Du müsstest die Demo-Befehle lediglich durch Dein SET VARIABLE ersetzen.
 
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.