Pattern-Reihenfolge Bug oder Feature?

Boesl

Neuer User
Mitglied seit
18 Mai 2006
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe eine Frage an die *-Dialplan-Experten hier im Forum.

Ich wundere mich jetzt schon eine Weile warum Asterisk folgende Pattern im Dialplan unterschiedlich sortiert..

Im Dialplan:

exten => _888.,1,NoOp
exten => _88.,1,NoOp
exten => _8.,1,NoOp

im Asterisk nach dem Parsen wird wie folgt sortiert und priosiert:

_8. => NoOp
_88. => NoOp
_888. => NoOp

wo hingegen:

exten => _888X.,1,NoOp
exten => _88X.,1,NoOp
exten => _8X.,1,NoOp

zu:

_888X. => NoOp
_88X. => NoOp
_8X. => NoOp

wird (so wie es sein sollte...).

Wie man sieht ist die Reihenfolge genau umgekehrt. Warum ist das so, es ist doch in jedem Fall ein Pattern (_)? :confused:
Und beim ersten Fall ist ja auch das genauste wird genommen nicht gegeben!?
Gibt es eine Lösung oder eine logische Erklärung, warum es Unterschiede gibt?
Ich habe das Problem, das ich eigentlich "_1234543." bräuchte, also EINE oder mehrere variabele Stellen. Und nicht wie bei "_1234543X." ZWEI oder mehere variabele Stellen.

Vielen Dank für die hoffentlich kommenden Antworten.
Boesl
 
Das Thema "Sortierung von Pattern" ist so alt wie Asterisk selbst. Hast Du schonmal auf www.voip-info.org nachgelesen? Da haben viele kluge Köpfe schon probiert, die Systematik (es gibt wirklich eine!) verständlich darzulegen. Zugegeben - es ist recht schwierig, die Philosophie dahinter wirklich zu verstehen...
 
Hallo,

natürlich hatte ich da schon gelesen :p und auch die Möglichkeit mit einem include zu arbeiten habe ich in Betracht gezogen, aber das ist in meinem Fall etwas zu schwierig.. für den Moment. Aber auf deinen Rat hin habe ich noch mal gelesen und habe mein "Problem" auch wieder gefunden. Allerding scheint es wirklich nur die Lösung über ein X,Z oder N zu geben, da Asterisk die Sortierung über die einzelnen digits durchführt und nur ein X,Z oder N werden nach den Zahlen einsortiert... der "." scheint nicht berüchsichtigt zu werden beim Vergleich der einzelnen digits.
Aber ich habe gesehen, das es beim 1.4 ein "!" gibt, vieleicht kann mir das ja helfen. Da muss ich wohl mal einen 1.4 aufsetzen und es austesten. :)

Danke trotzdem und Gruß
Boesl
 
Hallo,

danke für den Tip, das es auch in 1.2 schon geht, da habe ich mich wohl verlesen. :rolleyes:
Aber mit dem "!" geht erstmal alles was ich wollte. Ob das ("wildcard, matches zero or more characters immediately") "sofort" noch ungewollte Folgen hat, muss ich erst noch klären.


Vielen Dank
Boesl
 
Kostenlos!

Statistik des Forums

Themen
248,105
Beiträge
2,281,478
Mitglieder
377,314
Neuestes Mitglied
vtuner_replacement