Omega Posted May 13, 2016 #1 Share Posted May 13, 2016 Hallo Freunde, hat sich jemand von euch schon einmal über eine Rufnummernsperre Gedanken gemacht? Man kann sich ja ohne weiteres etwas einfaches per CallRouting bauen. Aber was ist wenn wir theoretisch eine unbegrenzte Zahl von Rufnummern sperren wollten? Die müssten doch in ein VB-Script oder eine Textdatei eingetragen werden. Vorzugsweise natürlich innerhalb eines ECRs. Hat sich dort grundsätzlich schon jemand mal Gedanken gemacht? Viele Grüße Dennis Link to comment Share on other sites More sharing options...
Tom Wellige Posted May 13, 2016 #2 Share Posted May 13, 2016 D.h. Du willst bestimmter Anrufer blocken, und nicht verhindern, dass bestimmte Ziele angerufen werden, richtig? Grundsätzlich haben sich da schon viele Gedanken drüber gemacht Ich würde bei soetwas immer zu einer Datenbanklösung greifen. Ein Beispiel wie Du einen Anrufer gegen eine Datenbank prüfst findest Du hier: Caller verification in databasehttp://www.swyx.com/support/ssdb.html?kbid=kb2219 Wenn Du den Anrufer kennst und blocken willst, musst Du anschliessend einfach den Ruf per "Ruf beenden" Block beenden. Weitere Beispiele findest Du hier: Link to comment Share on other sites More sharing options...
Most Valued User ogoettlich Posted May 13, 2016 Most Valued User #3 Share Posted May 13, 2016 Hallo Dennis, ich denke mal, du meinst eine eingehende Rufnummernsperre (weil du CallRouting erwähnst)? Wenn dem so ist, dann würde folgende die Blacklist Variante helfen. Die Funktion im ECR aufrufen und prüfen ob der Return Value wahr/falsch. Dim fso, file, sFile, sLine, treffer, MyBlacklist, CPNC treffer = 1 Function InBlacklist(MyBlacklist) PBXScript.OutputTrace "-------- Start InBlacklistscript mit TXT-Datei: " & MyBlacklist & " --------" PBXScript.OutputTrace "-------- vorher CallingPartyNumber = "& PBXCall.CallingPartyNumber CPNC = PBXScript.ConvertToCanonical(PBXCall.CallingPartyNumber) PBXScript.OutputTrace "-------- nachher CallingPartyNumber = "& PBXCall.CallingPartyNumber PBXScript.OutputTrace "-------- CPNC = "& CPNC sFile= MyBlacklist 'erzeuge FileSystemObject Set fso = CreateObject("Scripting.FilesystemObject") 'oeffne Blacklist zum lesen set file = fso.OpenTextFile(sFile,1) 'durchsuche Blacklist do while (not(file.AtEndOfStream)) and (treffer="1") sLine = File.ReadLine if (sLine = PBXCall.CallingPartyNumber) or (sLine = CPNC)then treffer = 2 end if loop file.Close set file = Nothing set fso = Nothing 'Rückgabe InBlacklist=treffer PBXScript.OutputTrace "InBlacklist: " & treffer PBXScript.OutputTrace "Nummer des Anrufers: " & PBXCall.CallingPartyNumber PBXScript.OutputTrace "-------- Ende InBlacklistscript mit TXT-Datei: " & MyBlacklist & " --------" End Function Der String "MyBlacklist" ist der Pfad zur CSV Datei, welche die Rufnummmern enthält, die nicht anrufen sollen/dürfen. Wenn es für die ganze Anlage gelten soll, dann als Global RulePreProcessing einspielen - bitte mit Vorsicht genießen! Viel Erfolg! Link to comment Share on other sites More sharing options...
BeSe Posted February 22, 2018 #4 Share Posted February 22, 2018 Hallo, Tom hatte im alten Forum freundlicherweise schon mal einen Thread zu dem Thema beantwortet und hat auch ein Skript zur Verfügung gestellt: Das Skript dort funktioniert an sich gut. Leider werden aber auch Teile der in der Textdatei hinterlegten Nummer als positiv gewertet. Bsp: In der Textdatei steht +4919012345678, es wird aber dann auch +4919012345 als true interpretiert. Wie schaffe ich es, dass nur der ganze Ausdruck der Zeile berücksichtigt wird? Ich denke eine Alternative für InStr ist notwendig? Bin kein Skriptler, also habt bitte Nachsicht. (Das Skript von ogoettlich habe ich ebenfalls ausprobiert, aber dort werden bei mir alle Rufe geblockt. Da ich mit Toms Skript weiter war, würde ich da gern weiter ansetzen.) Viele Grüße, Benni Link to comment Share on other sites More sharing options...
Tom Wellige Posted February 22, 2018 #5 Share Posted February 22, 2018 Statt If InStr(file.ReadLine, PBXCall.CallingPartyNumber) <> 0 Then bFound = True kannst Du folgenden Code verwenden If file.ReadLine = PBXCall.CallingPartyNumber Then bFound = True In Deiner Textdatei muss dann allerdings die Telefonnummer genau so angegeben sein, wie sie im SwyxIt! angezeigt werden. D.h. nicht +4919012345678 sondern 0019012345678 für nationale und 00044123456789 für internationale Nummern. Sprich, kein kanonisches Format. Link to comment Share on other sites More sharing options...
BeSe Posted February 22, 2018 #6 Share Posted February 22, 2018 Hallo Tom, vielen Dank, es funktioniert! Allerdings muss ich im kanonischen Format bleiben, sonst geht es nicht. Nochmals danke. Viele Grüße, Benni Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.