.titleBar { margin-bottom: 5px!important; }

AGI und DIALSTATUS

Dieses Thema im Forum "Asterisk Skripte" wurde erstellt von Beastie, 24 Okt. 2008.

  1. Beastie

    Beastie Neuer User

    Registriert seit:
    19 Okt. 2005
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Beruf:
    Hostmaster, Programmierer, VoIP- und Mac-Admin
    Ort:
    Muenchen
    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.