Hi,
ich versuche gerade unseren Dialplan in einem AGI abzubilden, was auch ziemlich gut funktioniert.
Das Einzige, was mir Sorgen bereitet ist die Moeglichkeit Variablen abzufragen. Das soll ja mit
GET VARIABLE gehen, aber irgendwie tut das nicht so, wie ich das will.
So sieht der Block mit "AGI debug" aus:
AGI Rx << EXEC Dial "SIP/42|30|oTW"
-- AGI Script Executing Application: (Dial) Options: (SIP/42|30|oTW)
-- Called 42
-- SIP/42-28f01000 is ringing
AGI Tx >> 200 result=0
AGI Rx << GET VARIABLE DIALSTATUS
AGI Tx >> 200 result=1 (NOANSWER)
AGI Rx << NOOP Status ist: 200 result=1
AGI Tx >> 200 result=0
AGI Rx << NOOP None
AGI Tx >> 200 result=0
Und das ist dazugehoerige Codeschnipsel:
sys.stdout.write("EXEC Dial \"%s|%s|oTW\"\n" % (result_one[1], result_one[4]))
sys.stdout.flush()
sys.stdout.write("GET VARIABLE DIALSTATUS\n")
sys.stdout.flush()
bla = sys.stdin.readline()
sys.stdout.write("NOOP Status ist: %s\n" % bla)
sys.stdout.flush()
result = re.search('.*\((.*?)\).*', bla)
if result is None:
sys.stdout.write("NOOP %s\n" % result)
sys.stdout.flush()
pass
else:
status = result.group(1)
sys.stdout.write("NOOP %s\n" % status)
sys.stdout.flush()
Wenn Asterisk mir den DIALSTATUS uebergibt, steht er in Klammern, aber die
werden mir in der Variable, die ich ueber stdin einlese, nicht mitgegeben.
Hat jemand eine Erklaerung, oder Loesung dafuer?
Danke!
Ciao,
-Martin.
ich versuche gerade unseren Dialplan in einem AGI abzubilden, was auch ziemlich gut funktioniert.
Das Einzige, was mir Sorgen bereitet ist die Moeglichkeit Variablen abzufragen. Das soll ja mit
GET VARIABLE gehen, aber irgendwie tut das nicht so, wie ich das will.
So sieht der Block mit "AGI debug" aus:
AGI Rx << EXEC Dial "SIP/42|30|oTW"
-- AGI Script Executing Application: (Dial) Options: (SIP/42|30|oTW)
-- Called 42
-- SIP/42-28f01000 is ringing
AGI Tx >> 200 result=0
AGI Rx << GET VARIABLE DIALSTATUS
AGI Tx >> 200 result=1 (NOANSWER)
AGI Rx << NOOP Status ist: 200 result=1
AGI Tx >> 200 result=0
AGI Rx << NOOP None
AGI Tx >> 200 result=0
Und das ist dazugehoerige Codeschnipsel:
sys.stdout.write("EXEC Dial \"%s|%s|oTW\"\n" % (result_one[1], result_one[4]))
sys.stdout.flush()
sys.stdout.write("GET VARIABLE DIALSTATUS\n")
sys.stdout.flush()
bla = sys.stdin.readline()
sys.stdout.write("NOOP Status ist: %s\n" % bla)
sys.stdout.flush()
result = re.search('.*\((.*?)\).*', bla)
if result is None:
sys.stdout.write("NOOP %s\n" % result)
sys.stdout.flush()
pass
else:
status = result.group(1)
sys.stdout.write("NOOP %s\n" % status)
sys.stdout.flush()
Wenn Asterisk mir den DIALSTATUS uebergibt, steht er in Klammern, aber die
werden mir in der Variable, die ich ueber stdin einlese, nicht mitgegeben.
Hat jemand eine Erklaerung, oder Loesung dafuer?
Danke!
Ciao,
-Martin.