Nur die hinteren Stellen einer Extension berücksichtigen...

stephanw

Neuer User
Mitglied seit
24 Mrz 2006
Beiträge
73
Punkte für Reaktionen
0
Punkte
0
Es hat sich gezeigt, dass die User die gleiche Nummer unterschiedlich wählen:

0319876543 (meist, wenn von hand gewählt wird)
0041319876543 (Wahl aus Adressbüchern, z.B. über Outlook)
+41319876543 (Wahl aus synchronisierten Handy Daten, z.B. über Outlook)

Wie kann ich im Dialplan erreichen, dass nur die letzten 9 Stellen ohne die Varianten der ersten Ziffern berücksichtigt werden.
Ein
Code:
exten => _.319876543,1,Dial(SIP/20)
geht leider nicht.
 
Hallo
den Kurs kenne ich gut. Aber ich habe da wohl etwas übersehen? Kannst Du mir einen Hinweis geben.
Aber mich interessiert nicht die Bearbeitung der Variable ${EXTEN}, mit der ich ja jedes erdenkliche Dial machen kann.
Ich will hier vv nur die letzten 9 Stellen matchen (Dialplan Pattern)

exten => _egalWas123456789,1,Irgend Ein Kommando

Also immer wenn die letzten 9 Ziffern 123456789 sind, soll es matchen, egal was links von der 1 steht.
 
Zuletzt bearbeitet:
Kannst Du mir bitte die erste Zeile des Dialplans posten:
Der User wählt auf seinem Telefon 0319876543 oder 0041319876543 oder +41319876543. Dies kommt im Context App1 an und soll bei allen Varianten das Kommando Dial(SIP/123) auslösen.

Also so:

Code:
[App1]
exten => ???????,1,Dial(SIP/123)

Wenn ihr mir die Fragezeichen mit einem Pattern ersetzt, welches nur die ersten 9 Stellen der Extension berücksichtigt, erspart ihr mir folgendes im Dialplan:
Code:
[App1]
exten => 0319876543,1,Dial(SIP/123)
exten => 0041319876543,1,Dial(SIP/123)
exten => +41319876543,1,Dial(SIP/123)
Besten Dank!
 
den Kurs kenne ich gut. Aber ich habe da wohl etwas übersehen?
Scheinbar. Aus oben genanntem Link:
- Teilstücke der Variablen verwenden:


allgemeine Syntax: ${gustav:ab_stelle:länge}
dies liefert uns einen Teil des Inhalts der Variablen ${gustav} zurück.
Dieser Teil beginnt an der Stelle <ab_stelle> und hat die Länge <länge>.
Die Zählung der Stellen beginnt immer mit 0

Falls <ab_stelle> einen negativen Wert enthält, erfolgt die Zählung von rechts nach links
Falls <länge> einen negativen Wert enthält oder fehlt, wird der gesamte Rest ab der Stelle <ab_stelle> zurückgeliefert
(und folgende Beispiele)

Gruß,
Wichard
 
Er will aber ja eben nicht mit der Variable arbeiten, sondern direkt ein exten-Pattern haben.
Aber mich interessiert nicht die Variable ${EXTEN}

Das geht, meiner Meinung nach, nicht.
 
@doxon: DANKE! Ich fühle mich endlich verstanden :eek:

Aber ich gebe die Hoffnung nicht auf... ich finde die Sache irgendwie zu trivial, als das sie nicht gehen sollte :-(
 
Danke für das Kompliment betateilchen...

Der Satz ist in der Tat aus dem Zusammenhang gerissen Schwachfug. Aber wenn Du meine Frage wirklich verstanden hast, wäre der Thread hier vielleicht auch nicht so lang. Doxon scheint begriffen zu haben, um was es geht.
Ich kann die Dinge sicher nicht so treffsicher beim Namen nennen wie Du. Ich finde aber solche Beleidigungen nicht unbedingt hilfreich beim Lösen eines Problems.

Schönen Tag noch und vielleicht kannst du mir als Crack (und das bist du unbestritten) bei diesem Problem weiterhelfen.
 
Das war keine Beleidigung. Aber Du scheinst offenbar noch nichtmal zu wissen, was in ${EXTEN} überhaupt drinsteht - mit so wenig Wissen sollte man dann aber wirklich nicht solche Aussagen treffen wie die von Dir zitierte.

Wo willst Du denn überhaupt herwissen, um welche Nummer es geht, wenn Dich die ${EXTEN} nicht interessiert?

Ja - ich könnte Dir bestimmt weiterhelfen. Aber erstmal solltest Du Dir ein bißchen mehr Grundlagenwissen aneignen. Ich habe nämlich ehrlich gesagt keine Lust, im Urschleim anzufangen und Dir z.B. erklären zu müssen, warum Du Dich sehr wohl für ${EXTEN} zu interessieren hast.
 
Natürlich interessiere ich mich für ${EXTEN}. Und was drinn steht habe ich schon 3x ausführlich gepostet. Das weiss ich sehr genau. Aber wenn Du einzelne Sätze herauspflückst um mich dann als Anfänger zu betiteln, dann darfst du das. Nur helfen tuts hier keinem!

Was ich will, ist ein exten-pattern (sorry wenn eben der Ausdruck nicht treffsicher ist), das matcht, wenn die ersten neun Stellen von RECHTS her gesehen stimmen (siehe oben).

Ich habe Dich oben gebeten, mir die erste Zeile zu ergänzen.. Würdest Du das tun?

exten => ??????,1,NoOp(Die ersten 9 Ziffern von RECHTS sind 123456789. Es kann sein, dass ${EXTEN} mehr als 9 Stellen hat.)

Ich danke Dir!
 
Mir ist völlig unklar, WONACH (auf welchen Wert) Du eigentlich matchen willst.

Sag jetzt nicht, nach den rechten 9 Stellen - das ist mir schon klar...

Code:
exten => _X.,1,dial,SIP/0049${EXTEN:-9}

Würde z.B. jede beliebige Nummer verwenden, die rechten neun Stellen verwenden und 0049 davorsetzen.
 
Ich habe zwei Server in der Schweiz.Meine User wählen die Nummer der Filiale auf verschiedene Weise, z.B.
+41311234567 oder 0041311234567 oder 0311234567

Da die Filialen miteinander verbunden sind (via IAX2) möchte ich natürlich in diesem Fall über IAX2 und nicht über das Festnetz verbinden. Also in diesem 3 Fällen müsste z.B. Dial(IAX2/....) gewählt werden.

mit den hier http://www.voip-info.org/wiki/view/Asterisk+Dialplan+Patterns beschriebenen Patterns kriege ich das irgendwie nicht hin. Hast Du eine Idee?
 
Ich gebs jetzt gleich auf - entweder bin ich zu doof um zu verstehen, was Du willst. Oder Du bist zu doof, die wirkliche Aufgabenstellung zu erklären.

Wer wählt denn nun eigentlich von wo nach wo? :confused:
 
Ich suche ein Extension Pattern, dass auf die letzten 9 Stellen einer Extension matcht. Versuche mal kreativ zu sein:

if (${EXTEN:-9} = "123456789") then DIAL(IAX2/....)
oder
exten => if(${EXTEN:-9} = "123456789"),1,Dial(IAX2/....)

Leider gehts so natürlich nicht.

Grüsse
Stephan
 
Mit den if kannst Du natürlich schon arbeiten (vorausgesetzt Du verwendest die richtige Syntax). Aber wenn Du doch die Nummer KENNST gegen die Du matchen willst (in Deinem Beispiel 123456789), dann brauchst Du doch gar kein pattern :confused:
 
Ein exten => 123456789,1,Dial(IAX2/....) geht eben nicht, wenn ${EXTEN}= 0041123456789 ist.
Oder wie müsste mein Pattern aussehen? Ich kenne ja nur die letzten 9 Ziffern der Nummer, den Anfang kenne ich ja nicht.

Und wie wende ich den IF im Pattern an? Im Kommando Teil kenne ich die Varianten wie GOTOIF usw. schon. Ein
Code:
exten => _X.,1,GOTOIF(${EXTEN:-9}="123456789"?internDurchstellen,externDurchstellen)
habe ich mir auch schon überlegt. Aber das andere wäre halt eleganter...
 
i mog nimmer
 
Leider gehts so natürlich nicht.

Du ermittelst mit Len die Länge der gewählten Nummer, ziehst davon 9 ab, damit hast du die Anzahl der wegzulassenden Stellen.

um 0ZX., 00Z. und +ZX. zu ersetzen bringt das aber nichts, du brauchst zur Auswertung genausoviele Zeilen.

Aber wenns Spass macht ...
 
Du ermittelst mit Len die Länge der gewählten Nummer, ziehst davon 9 ab, damit hast du die Anzahl der wegzulassenden Stellen.

Das ist ja noch schräger :lach: und bringt überhaupt nix. Denn daß nur die rechten 9 Stellen gesucht werden, ist ja konstant.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.