exten mit case oder if

MET

Mitglied
Mitglied seit
27 Okt 2004
Beiträge
682
Punkte für Reaktionen
0
Punkte
16
Habe das Buch von Betateilchen noch nicht. Möchte bevor ich dieses in den Ferien zugestellt bekomme eine gewisse Asterisk-Anwendung zum Laufen bringen. Irgendwo habe ich im Internet gesehen, dass in Asterisk auch "case" oder "if"-Befehle möglich sind. Möchte in der extensions.conf damit eine exten für voipjet definieren:

Ziel ist es je nach dem wie die Nummer in {EXTEN} enthalten ist , diese correct zurecht zu trimmen.


Bei: 0123456 -> z.B: 01149123456
Bei: 0049123456 -> z.B: 01149123456

Wie müsste der folgende Pseudecode in Asterisk richtigerweise lauten?

wenn {EXTEN:1:1} gleich 0
dann
exten => _00X.,n,Dial(IAX2/011${EXTEN:2}@voipjet,60)
else
exten => _00X.,n,Dial(IAX2/01149${EXTEN:1}@voipjet,60)

Vielen Dank für die Hilfe.
 
jo sind sie, die funktion nennt sich gotoif (forensuche oder google hilft da weiter)

exten => 1014,1,Answer()
exten => 1014,n,Set(Lieblingsnebenstelle = 0815)
exten => 1014,n,NoOp(Ueberpruefe, ob Anruf von ${Lieblingsnebenstelle} kommt.)
exten => 1014,n,GotoIf($[${CALLERID(num)} = ${Lieblingsnebenstelle}]?ja,nein)

exten => 1014,n(ja),Playback(hello-world)
exten => 1014,n,Hangup()

exten => 1014,n(nein),Playback(tt-monkeys)
exten => 1014,n,Hangup()
quelle: www.das-asterisk-buch.de (ist nicht betas buch ;-))
 
Sorry, dies hilft mir im Moment überhaupt nicht weiter. Möchte als blutiger Anfänger (seit etwa 2 Tagen) vor den Ferien nächste Woche eine Asterisk-Anwendung zum Laufen bringen. Habe während dieser Zeit auch noch andere Vorbereitungen zu treffen. Wenn die Hilfe nicht konkreter wird, muss ich dies leider für den Moment ganz vergessen.
 
das geht auch einfacher:

exten = _XX.,1,Dial(IAX2/011${EXTEN:2}@voipjet,60)

exten = _XZ.,1,Dial(IAX2/01149${EXTEN:1}@voipjet,60)

X matches any digit from 0-9
Z matches any digit from 1-9
N matches any digit from 2-9
[1237-9] matches any digit or letter in the brackets
(in this example, 1,2,3,7,8,9)
. wildcard, matches one or more characters

Gruß,
Klaus
 
Danke haklaus für diesen einfacheren Vorschlag. Funktioniet dies beiden Befehle aber so wie ich dies möchte?

Mit z.B: 03456789

würde doch dieser Befehl
exten = _XX.,1,Dial(IAX2/011${EXTEN:2}@voipjet,60)
011456789 liefern und nicht 011493456789
die Nummer 00493456789 würde hingegen richtig zu 011493456789

mit diesem Befehl
exten = _XZ.,1,Dial(IAX2/01149${EXTEN:1}@voipjet,60)
würde die obige Nummer richtig; die Nummer 00493456789 wird richtigerweise ignoriert.

Doch, es scheint (auf Umwegen) tatsächlich richtig zu sein.

Wäre folgendes nicht gleichwertig, klarer und eindeutiger?
exten = _00.,1,Dial(IAX2/011${EXTEN:2}@voipjet,60)

exten = _0Z.,1,Dial(IAX2/01149${EXTEN:1}@voipjet,60)
 
da hast Du natürlich recht, mein Fehler da Du ja immer eine 0 bzw 00 hast und X von 0-9 alles nimmt, ist Deine Angagbe richtig:

Code:
exten = _00.,1,Dial(IAX2/011${EXTEN:2}@voipjet,60)
exten = _0Z.,1,Dial(IAX2/01149${EXTEN:1}@voipjet,60)

Gruß,
Klaus
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,887
Beiträge
2,303,984
Mitglieder
378,566
Neuestes Mitglied
draco777