Eigener VBScript Code - Anruferüberprüfung in Datenbank

Enreach Info
Enreach Info
  • Aktualisiert

Zusammenfassung:

Ab der SwyxWare v4.00 ist es möglich eigenen Skript Code in den Grafischen Skript Editor (GSE) einzufügen. Die Funktionalität des GSE steht Ihnen nur zur Verfügung, wenn Sie das Option Pack - Extended Call Routing lizensiert haben.

Dieser Artikel beschreibt wie man eine einfache Anruferüberprüfung in einer Datenbank (z.B. MS Access)implementiert.

Weitere Artikel dieser Serie:

Weitere Informationen zu den Neuerungen im Grafischen Skript Editor finden Sie in dem Artikel:

Information:

Installation der Beispielregeln

Laden Sie alle Beispielregeln über den unten angegebenen Link herunter und kopieren Sie die Datein in das Verzeichnis

c:\gse_demo

Um die Datei CheckCaller.rse in den Call Routing Manager (CRM) bzw. Grafischen Skript Editor (GSE) zu laden, gehen Sie bitte wie folgt vor:

  • Starten Sie den Call Routing Manager.
  • Klicken Sie auf Neu...
  • Wählen Sie den Grafischen Skript Editor und klicken Sie auf Ok.
  • Öffnen Sie das Menü Datei | Impotieren... im GSE.
  • Wählen Sie die Datei CheckCaller.rse. Die Regel wird nun importiert und sieht wie folgt aus:

disp_image_from_blob.jpg

                                                                         Grafischer Skript Editor

  • Speichern Sie die Regel über das Menü Datei | Speichern.
  • Schliessen Sie den GSE.
  • Aktivieren Sie die neue Regel durch Verschieben in die rechte Liste im CRM.

disp_image_from_blob__1_.jpg

                                                     Call Routing Manager

Wie das Skript funktioniert:

Eigener Skriptcode kann nur in dem Regel Start Block hinzugefügt werden. Alle Konstanten, Variablen und Funktionen die Sie hier definieren stehen Ihnen in allen Blöcken dieses Skriptes zur Verfügung, z.B. im Auswerten Block. Bitte beachten Sie, dass der GSE dem finalen Skript das VBScript Statement option explicit hinzufügt. Dies hat zur Folge, dass Sie alle Variablen innerhalb des Skriptes vor der Benutzung definieren müssen.

disp_image_from_blob__2_.jpg

                             Eigenschaften - Regel Start

Um die Rufnummer des ankommenden Rufes in der Datenbank zu überprüfen, verwenden wir einen Auswerten Block. Als Vergleich geben wir lediglich den Name unserer Funktion KnownCallerId mit der Rufnummer der Anrufers an.

disp_image_from_blob__3_.jpg

                               Eigenschaften - Check Caller in DB

Diese Funktion liefert Wahr falls die Rufnummer in der Datenbank bekannt ist, andernfalls liefert Sie Falsch. Damit ist sie auch direkt in dem Auswerten Block verwendbar, denn ein Vergleich x = y liefert auch nur Wahr oder Falsch. Für den Fall, dass Wahr zurück geliefert wird, geht es weiter zu dem Ansage abspielen Block welcher einfach nur die Datei Beep.wav abspielt. Andernfalls geht es direkt an das Ende der Regel. Und so sieht der Sktipt Code aus

  1.   ' CursorTypeEnum Values
  2.   Const adOpenForwardOnly = 0
  3.   Const adOpenKeyset = 1
  4.   Const adOpenDynamic = 2
  5.   Const adOpenStatic = 3
  6.  
  7.   ' LockTypeEnum Values
  8.   Const adLockReadOnly = 1
  9.   Const  adLockPessimistic = 2
  10.   Const adLockOptimistic = 3
  11.   Const adLockBatchOptimistic = 4
  12.  
  13.   ' CommandTypeEnum Values
  14.   Const adCmdUnknown = &H0008
  15.   Const adCmdText = &H0001
  16.   Const adCmdTable = &H0002
  17.   Const adCmdStoredProc = &H0004
  18.  
  19.  
  20.   Function KnownCallerId ( callerID )
  21.  
  22.       Dim bReturn
  23.       bReturn = false
  24.  
  25.       Dim sDsn
  26.       sDsn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  27.           "Data Source=c:\gse_demo\demo.mdb"
  28.   
  29.       ' open connection to database
  30.       Dim db
  31.       Set db = CreateObject("ADODB.Connection")
  32.       db.Open sDsn
  33.  
  34.       ' open recordset
  35.       Dim sSQL
  36.       Dim rs
  37.       sSQL = "select * from callers where callerid = '" & _
  38.           callerID & "'"
  39.  
  40.       Set rs = CreateObject("ADODB.Recordset")
  41.       rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, _
  42.           adCmdText
  43.  
  44.       ' if there are records in recordset,
  45.       ' this caller seems to be known
  46.       bReturn = not rs.EOF
  47.  
  48.       rs.Close
  49.       Set rs = Nothing
  50.    
  51.       db.Close
  52.       Set db = Nothing
  53.  
  54.       KnownCallerId = bReturn
  55.  
  56.   End Function 

Nachdem die Regel aktiviert wurde wird immer wenn ein bekannter Anrufer anruft (in diesem Beispiel ist es der Benutzer mit der Durchwahl 100) ein Piep abgespielt. Andernfalls geschieht nichts. Bitte beachten Sie, dass wir die Regel über den Aufgang Regel übersprungen verlassen. Dies ermöglicht es uns im Anschluss noch weitere Regeln in unserem Callrouting auszuführen.

Hinweise

 

  • Alle Callrouting Skripte, und somit auch der eigene Skript Code, werden unter dem SwyxWare Service Accountausgeführt. Achten Sie also bitte darauf, dass dieser Account die nötigen Rechte hat, die Datei/Datenbank an dem gewünschten Ort zu bearbeiten.
  • In diesem Beispiel wird eine MS Access Datenbank verwendet. Für Demonstrationszwecke ist diese durchaus geeignet, nicht jedoch für Produktionsumgebungen! Verwenden Sie in einer Produktionsumgebung ausschliesslich vollwertige Datenbank wie z.B. den MS SQL Server!
  • Das Skript in diesem Beispiel enthält um es übersichtlich zu halten, keine Fehlerbehandlung. Das heisst, wenn z.B. bei dem Zugriff auf die Datei/Datenbank ein Fehler auftritt, wird dieser nicht abgefangen, sondern führt statt dessen dazu, dass das Skript beendet wird, und der Ruf verloren geht. Sollten Sie das Server Tracing für SvrScript auf Info3 gesetzt haben, so wird die originale Fehlermeldung der Microsoft Script Engine dort protokolliert.

    Um eine eigene Fehlerbehandlung einzufügen müssen Sie zunächst die Standard-Fehlerbehandlung der Script Engine ausschalten:

     
    On Error Resume Next

    Diese Zeile fügen Sie am Besten als erste Zeile in Ihren Funktionen einen. Nun muss nach jedem Aufruf der Potentiell zu einem Fehler führen kann, eine Fehlerabfrage erfolgen:

     

    ' Open connection to Database
    db.Open sDsn
    If Err <> 0 then
         'do something, e.g.:
         FunctionName = False
         Exit Function
    End If
  • Neben der in diesem Beispiel gezeigten, sogenannten DSN-less Connection zur Datenbank
    kann natürlich jede beliebige Datenbank über ODBC angesprochen werden, sofern eine
    entsprechende ODBC Datenquelle auf dem SwyxServer Rechner konfiguriert wurde. Die
    nötigen Äderungen im Skript beschränkten sich auf eine einzige Zeile. Anstelle von

     sDsn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=c:\gse_demo\demo.mdb"

    ist lediglich der Name der ODBC Datenquelle anzugeben

    sDsn = "dsn=MyDatabase"

    Sollte die Datenbank eine Anmeldung erfordern, so können die Zugangsdaten ebenfalls in 
    diesem sogenannten Connection String angegeben werden:

    sDsn = "dsn=MyDatabase;uid=MyName;pwd=MyPassword"

    Weitere Beispiele finden Sie über den unter den Referenzen angegebenen Link.

Referenzen:

Dieser Swyx Forum Wiki Artikel dokumentiert die im GSE eingebauten Funktionen.

Dieser Swyx Forum Wiki Artikel dokumentiert die SwyxServer Script API.

Dieser Swyx Forum Wiki Artikel dokumentiert alle in VBScript vorhandenen Funktionen.

Informationen anderer Anbieter, die in diesem Artikel zur Verfügung gestellt werden, sollen bei der Suche nach technischen Informationen helfen. Die Inhalte können ohne weitere Ankündigung geändert werden. Swyx garantiert nicht für die Güte von Inhalten anderer Anbieter, noch ist Swyx für diese verantwortlich. 

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich

Haben Sie Fragen? Anfrage einreichen

Kommentare

0 Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.