Toni1985 Posted February 21 #1 Share Posted February 21 Hallo zusammen, ich wollte in die Runde Fragen, ob es in dem GSE-Block "Variable auswerten" möglich ist auch einen Operanden verwenden kann wie =< oder =< oder Platzhalter wie & oder %? Anlass ist folgender Anwendungsfall: wir möchten anhand der Eingabe PLZ die Rufe bestimmten Zielen VG-Warteschlangen zuordnen. Wir haben ähnliches schon bei einem andern Kunden im Einsatz mit Konferenzraum PINs: Allerdings will ich es schlanker gestalten und natürlich haben wir keine Lust jede mögliche PLZ als "riesiges CR" bauen sondern hier möchten wir nur eine Vorfilterung machen mit 16 Zielen 80*, 81*, 82*, 830*, 831*, 832*, 833*, 834*, 835*, 836*, 837*, 85*, 86*, 88*, 89*, 91*; Ist es möglich hier im Variable speichern die 5-Stellige PLZ eingeben zu lassen und in Variable auswerten einen Platzhalter wie 80*** oder 80%%% oder ein 80*<81* einzustellen um die Bereiche abzudecken? Also sowas zu machen: oder ähnlich? Ich bedanke mich schon einmal für jegliche Idee. Viele Grüße Antonio Boada Sainz-Maza Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 21 #2 Share Posted February 21 Hallo Antonio, ja, Du kannst in "Variable auswerten" Blöcken auch Vergleiche in der Art > oder >= oder < oder <= oder = verwerden. Das ist kein Problem, Du musst nur darauf achten, dass Du nicht Äpfel mit Birnen vergleichst. Alles was als DTMF eingegeben wird, ist eine Zeichenkette (String). Du musst also darauf achten, dass Du diese Eingabe auch nur mit Zeichenketten vergleichst, also z.B. sDTMF >= "12345" Du kannst auch mehrere Vergleiche gleichzeitig anstellen, und diese mittels "and" miteinander verknüpfen. In diesem Fall würde ich aber die einzelnen Vergleiche in Klammern setzen. Das erhöht die Lesbarkeit enorm: (sDTMF >= "12345") and (sDTMF <= "54321") Aber... Statt der vielen "Variable auswerten" und "Durchstellen" Blöcke die Du dann benutzt um auf Deine 16 verschiedenen VG Warteschlagen durchzustellen, würde ich das (zumindest aus meiner Sicht) noch etwas eleganter lösen: mittels einer kleinen VBScript Funktion. Damit sieht Dein Call Routing dann so aus: Im "Durchstellen" Block wird eine VBSkript Funktion "GetDestination" aufgerufen (die sich im "Start" Block befindet). Die verschiedenen PLZ Bereiche werden in einem Array zusammen mit dem dazugehörigen Durchstell Ziel definiert. Die Funktion geht einfach durch dieses Array durch, sucht den passenden Bereich und gibt dessen Durchwahl zurück. Wird kein Bereich gefunden wird eine Standard Durchwahl zurück gegeben. Const DEFAULT_DESTNATION = "100" Dim PLZ_Array ' Min, Max, Destination PLZ_Array = Array( _ Array(80000, 80999, "101"), _ Array(81000, 81999, "102"), _ Array(82000, 82999, "103"), _ Array(83000, 83099, "104"), _ Array(83100, 83199, "105"), _ Array(83200, 83299, "106"), _ Array(83300, 83399, "107"), _ Array(83400, 83499, "108"), _ Array(83500, 83599, "109"), _ Array(83600, 83699, "110"), _ Array(83700, 83799, "111"), _ Array(85000, 85999, "112"), _ Array(86000, 86999, "113"), _ Array(88000, 88999, "114"), _ Array(89000, 89999, "115"), _ Array(91000, 91999, "116") _ ) Function GetDestination ( sPLZ ) PBXScript.OutputTrace "-----> GetDestination ( " & sPLZ & " )" Dim sReturn sReturn = DEFAULT_DESTNATION If IsNumeric(sPLZ) Then Dim nPLZ nPLZ = CLng(sPLZ) Dim i For i = LBound(PLZ_Array, 1) to UBound(PLZ_Array, 1) If (nPLZ >= PLZ_Array(i)(0)) And (nPLZ <= PLZ_Array(i)(1)) Then PBXScript.OutputTrace "Found PLZ range " & i+1 & "(" & PLZ_Array(i)(0) & "-" & PLZ_Array(i)(1) & ")" sReturn = PLZ_Array(i)(2) End If Next If sReturn = DEFAULT_DESTNATION Then PBXScript.OutputTrace "No PLZ range found, using default destination." End If Else PBXScript.OutputTrace "Invalid PLZ, using default destination." End If GetDestination = sReturn PBXScript.OutputTrace "sReturn = " & sReturn PBXScript.OutputTrace "<----- GetDestination" End Function Dieser Ansatz ist maximal flexibel. Du kannst mit fast keinem Aufwand die PLZ Bereiche beliebig erweitern. Die Funktion hat wie Du siehst auch einige Trace Ausgaben, d.h. man kann über das Server Trace auch alles genau nachvollziehen, was dort passiert. Hinweise zum lesen des Server Traces (aus Call Routing Sicht) findest Du hier. Ich hänge Dir auch noch meine GSE Regel mit an, in der ich das gerade ausprobiert habe: PLZ.rse Einfach eine neue leere GSE Regel öffnen und dort über das Menü "Datei | Importieren..." diese Datei auswählen. Link to comment Share on other sites More sharing options...
Toni1985 Posted February 21 Author #3 Share Posted February 21 Hallo Tom, ich bin ersteinmal sehr dankbar für die coole Lösung mit AND und für deine Erklärung zu den Operanden. Das Skript ist echt klasse und ich werde es morgen Vormittag gleich testen. 🙂 Ich bin erst frisch dabei im Forum und in der Swyx allgemein '22 und bin positiv geflasht von diesem Forum hier und den Möglichkeiten in der Swyx. Vielen Dank für die Unterstützung und ich berichte natürlich wie es für uns funktioniert hat. LG Antonio Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 22 #4 Share Posted February 22 Hallo Antonio, noch eine kleine Anmerkung zu dem "Variable auswerten" Block: Du kannst dort alles rein tun, was Du möchtest. Die einzige Bedingung ist, dass es nach VBScript Syntax insgesamt entweder Wahr (True) oder Falsch (False) ergeben muss. Und für den Fall, dass Du darüber noch nicht selbst hier im Forum gestolpert bist, es gibt eine umfgangreiche Sammlung von Links zu allem was irgendwo online zum Thema Call Routing verfügbar ist. Da lohnt es sich ggf. auch mal in Ruhe durch zu stöbern. ECR - Useful Link Collection Link to comment Share on other sites More sharing options...
Solution Toni1985 Posted February 23 Author Solution #5 Share Posted February 23 Guten Morgen Tom, das VB-Skript und das normale Skript funktionieren. Vielen Dank für die Link Collection. Und ich danke Dir für Deine Hilfe. LG Antonio Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 23 #6 Share Posted February 23 Guten Morgen Antonio, freut mich zu hören, dass alles so läuft wie es soll Liebe Grüße, Tom. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now