Elseif - ähnliche Anweisungen

astrakid

Neuer User
Mitglied seit
24 Apr 2011
Beiträge
86
Punkte für Reaktionen
0
Punkte
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
 

rmh

Aktives Mitglied
Mitglied seit
6 Jul 2008
Beiträge
1,847
Punkte für Reaktionen
7
Punkte
38
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.
 

astrakid

Neuer User
Mitglied seit
24 Apr 2011
Beiträge
86
Punkte für Reaktionen
0
Punkte
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Neueste Beiträge

Statistik des Forums

Themen
232,862
Beiträge
2,027,481
Mitglieder
350,970
Neuestes Mitglied
eke