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

Elseif - ähnliche Anweisungen

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von astrakid, 25 Feb. 2012.

  1. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Hallo zusammen,

    ich möchte für bestimmte CallerIDs bestimmte Anweisungen ausführen.
    Das ist im Prinzip kein Problem, was mich stört ist einzig die Art und Weise, in der ich das umgesetzt habe:


    ...
    anweisung x -> wenn rufnummer = 1234 dann moh = heavymetal, sonst moh=empty
    anweisung x+1 -> wenn rufnummer = 1235 dann moh = softrock, sonst moh=empty
    anweisung x+2 -> wenn rufnummer = 1236 dann moh = wdr4, sonst moh=empty
    ...

    der nachteil bei dieser Variante ist ganz klar, dass alle x+ anweisungen durchlaufen werden, auch wenn ich bereits weiß, dass das gar nicht mehr nötig ist.
    alternativ könnte ich nach jeder zeile ein gotoif einbauen, damit die weitere überprüfung abgebrochen wird, wenn die rufnummer erkannt wurde. Je mehr Sonderfälle es gibt, desto mehr sinn würde das machen. bei mir sind es momentan nur 10 nummern, werden aber kontinuierlich mehr.
    Das entspricht dem typischen elseif aus anderen programmiersprachen. Gibt es hierfür eine vergleichbare Funktion für asterisk? oder muss ich immer diesen komplizierten Weg gehen?

    gruß und danke,
    astrakid
     
  2. rmh

    rmh Aktives Mitglied

    Registriert seit:
    6 Juli 2008
    Beiträge:
    1,836
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    Beruf:
    R&D
    Ort:
    BY
    Schau dir nochmal an, wie gotif arbeitet. Du kannst im else-teil des Befehls ein label und dessen priotät anspringen, sobald die zweite condition (entspricht else) zutrifft. Damit sollte es gehen.
     
  3. astrakid

    astrakid Neuer User

    Registriert seit:
    24 Apr. 2011
    Beiträge:
    86
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    ok, aber das gotoif() muss ich nach jedem else-zweig einbauen, d.h. ich habe im worst case dadurch dann doppelt so viele anweisungen wie bisher...
    ich glaube, ich werde mich mal mit ael auseinandersetzen müssen, da gibt es ja die switch-case-anweisung...

    gruß,
    astrakid