Jump to content

Rufnummernsperre


Omega

Recommended Posts

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


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:

 

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


  • Most Valued User

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


  • 1 year later...

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


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


Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.