Jump to content
Stefan Fuchs

ECR Bereitschaft

Recommended Posts

Hallo,

ich versuche gerade ein Callrouting für einen Kunden zu bauen. Habt ihr da vielleicht schon mal etwas ähnliches gebaut? Es soll eine CSV oder ähnliches eingelesen werden in der dann der Bereitschaftstag am besten mit Uhrzeit und dann das Weiterleitungsziel (Mobilfunkrufnummer) eingetragen wird. Im SQL habe ich eine neue Datenbank erstellt und der Import in diese funktioniert bereits. Leider bekomme das VBScript nicht zusammen 😞 

 

Im Startblock befindet sich (wurde wohl so schon mal bei einem anderen Kunden verwendet - kann dort aber leider nicht mehr nachsehen...)

' FileOpen iomode Values
Const fsoForReading   = 1
Const fsoForWriting   = 2
Const fsoForAppending = 8

' CursorTypeEnum Values
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

' LockTypeEnum Values
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

' CommandTypeEnum Values
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004

    Dim vTelefon

    Dim name_bb

function KnownCallerId ( callerID )

    Dim bReturn
    bReturn = false


    Dim sDsn
    sDsn = _
        "Provider=sqloledb;" & _
        "Data Source=SWYX\SQLEXPRESS;" & _
        "Initial Catalog=Bereitschaft;" & _
        "User Id=XXX;" & _
        "Password=XXXX"

    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn

    ' open recordset
    Dim sSQL
    Dim rs


        sSQL = "select * from Bereit_Plan where bereit_datum = convert(datetime,convert(char(10),getdate(),104))"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
      If bReturn = TRUE Then
            name_bb = rs.fields("bereit_nummer").value
         vTelefon = rs.fields("bereit_nummer").value
      End If

    rs.Close

    Set rs = Nothing

    db.Close
    Set db = Nothing
        'bReturn = FALSE


    KnownCallerId = bReturn

end function
 

Danach werte ich die Variable aus bei Wahr wird si durchgestellt an vTelefon

 

Share this post


Link to post
Share on other sites

Hallo Stefan,

 

2 Dinge sind mir aufgefallen:

  • Deine beiden Variablen enthalten immer den gleichen Wert. Ist das gewollt so?
  • Ist in Deiner Tabelle "Bereit_Plan" das Feld "bereit_datum" kein DateTime Feld? Oder warum konvertierst Du dort so umständlich? Wenn es ein DateTime Feld ist, kann Du direkt mit getDate() vergleichen.

 

Darüber hinaus stellt sich die Frage, was Du mit "leider bekomme ich das VBscript nicht zusammen" meinst? Wird ein Ruf sofort beendet? Was steht im Server Trace?

 

Wie Du das Server Trace aus Call Routing Sicht lesen kannst, findest Du hier.

 

Etliche weitere Beispiele (inkl. des originalen Codes Deiner verwendeten Funktion) findest Du hier verlinkt.

 

 

 

Share this post


Link to post
Share on other sites

Hallo Tom,

der Testanruf wird nach etwa 20 Sek beendet. In den CDR sehe ich dann ein  CallRoutingFailed.

 

Hatte versucht es (wie ich es bei dir in der Schulung gelernt habe) per OutputTrace zu ergänzen aber dann bricht der Anruf sofort ab und geht an eine Backuprufnummer welche beim Provider hinterlegt ist. Muss mir das ganze nochmal genau ansehen.

Share this post


Link to post
Share on other sites

1) das sieht für mich aus wie ein Timeout bei der Datenbank Verbindung. Eine eindeutige Fehlermeldung solltes Du im Server Trace finden.

 

2) bist Du sicher, dass Du PBXScript.OutputTrace richtig verwendet hast? Aber auch hier solltest Du eine eindeutige Fehlermeldung im Server Trace finden.

 

Share this post


Link to post
Share on other sites

Komme hier irgendwie nicht weiter. Bekkomme auch nichts ins Trace. In der Ereignisanzeige finde ich einen Kompilierungsfehler 

 

A callrouting script has been terminated or could not be executed due to a script error.
 
Script: callrouting.vbs (User, Zentrale) 
Error:  Kompilierungsfehler in Microsoft VBScript, Syntaxfehler, 800a03ea
 

Das Gespräch wird dann sofort zum beim Provider definierten Backup geleitet.

 

 


' CursorTypeEnum Values
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
 
' LockTypeEnum Values
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
 
' CommandTypeEnum Values
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004


Function FindStandbyContact ( sNumber )

    PBXScript.OutputTrace "---------> FindStandbyContact"
    
    On Error Resume Next
    
    Dim nReturn
    nReturn = 1
    
    Dim sDsn
    sDsn = "Provider=sqloledb;" & _
           "Data Source=SERVER\SQLEXPRESS;" & _
           "Initial Catalog=Bereitschaft;" & _
           '"Integrated Security=SSPI"

 

    PBXScript.OutputTrace sDsn
    
    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn
    
    if Err <> 0 then
    
        PBXScript.OutputTrace "Error opening database!"
        PBXScript.OutputTrace Err & ": " & Err.Description
    
        nReturn = 2
        
    else
    
        PBXScript.OutputTrace "Successfully opened database"
        
        ' open recordset
        Dim sSQL
        Dim rs
        sSQL = "SELECT * from Bereit_Plan where bereit_datum = getDate()"
        
        PBXScript.OutputTrace sSQL
        
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText
        
        if Err <> 0 then
            
            PBXScript.OutputTrace "Error checking database!"
            PBXScript.OutputTrace Err & ": " & Err.Description
            
            nReturn = 2
            
        else
        
            PBXScript.OutputTrace "Successfully checked database"
            
            if not rs.EOF then
            
                PBXScript.OutputTrace "rs(number)
            
            else
            
                PBXScript.OutputTrace "No number found"
                
            end if
            
            Set rs nothing
            
            db.Close
            
        end if
        
        Set db = nothing
        
    PBXScript.OutputTrace "nReturn = " & nReturn
    PBXScript.OutputTrace "<--------- FindStandbyContact"


    FindStandbyContact = nReturn

End Function

Share this post


Link to post
Share on other sites

Hallo,

ist ein Deutsche Telefon Trunk. Dort ist dann eine Backup-Rufnummer hinterlegt wenn Trunk nicht verfügbar oder Fehler. Der Trunk ist aber verfügbar denn wenn ich die ECR-Regel deaktiviere funktioniert der Ruf. 

 

Der Ruf kommt rein sehe ich auch in den CDRs "CallRoutingFailed"

Share this post


Link to post
Share on other sites

Ja dann ist es ein CallRoutingFehler...dann schaust du mal ins Server-Trace nach dem CallRoutingFailed, dort lässt sich das in der Regel recht gut ablesen was der Fehler ist.

Share this post


Link to post
Share on other sites

Hallo, genaueres finde ich hier leider auch nicht

 

Line 35432: 17 22:40:45.523 002408 Info SrvScrAPI  05DB81F0 00000025 SScriptHost::Initialize                 () loaded 'callrouting.vbs (User, Zentrale)' with 621890 bytes in 0.118s
    Line 35433: 17 22:40:45.533 0033d4 *Err SrvScrAPI  0742FE60 00000025 SPBXScriptSite::OnScriptError           ()
    Line 35443: 17 22:40:45.534 0033d4 *Err SrvScrAPI  05D801E8 00000025 SH::ScriptEngineThread::Main            () failed, errorUnknown error 0x80020101
    Line 35444: 17 22:40:45.534 002408 *Err SrvScrAPI  05DB81F0 00000025 SScriptHost::Initialize                 (Zentrale) failed, error Unknown error 0x80020101
    Line 35445: 17 22:40:45.534 002408 *Err SrvPBXCtl  073A58D0 00000025 SScrServer::InitScript                  () script host init failed with 1 for U:1 Zentrale
    Line 35446: 17 22:40:45.534 0033d4 Info SrvPBXCtl  073A58D0 00000025 SScrServer::OnScriptFinished            ()
    Line 35447: 17 22:40:45.534 0033d4 Inf2 SrvPBXCtl  073A58D0 00000025 SScrServer::EventScriptFinished         ()
    Line 35448: 17 22:40:45.535 0033d4 Info SrvScrAPI  05D801E8 00000025 SH::ScriptEngineThread::Main            () stopped script engine

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • 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.