Stefan Fuchs 0 Report post Posted January 8 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 0 Quote Share this post Link to post Share on other sites
Stefan Fuchs 0 Report post Posted January 8 oh habe es wohl an falscher Stelle eröffnet bitte verschieben 0 Quote Share this post Link to post Share on other sites
Tom Wellige 59 Report post Posted January 8 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. 0 Quote Share this post Link to post Share on other sites
Stefan Fuchs 0 Report post Posted January 8 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. 0 Quote Share this post Link to post Share on other sites
Tom Wellige 59 Report post Posted January 8 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. 0 Quote Share this post Link to post Share on other sites
Stefan Fuchs 0 Report post Posted Sunday at 09:46 PM 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 0 Quote Share this post Link to post Share on other sites
ittk 2 Report post Posted Monday at 07:47 AM @Stefan FuchsWelches Backup denn? Wie, womit, woher? Und wo wird das Backup geschaltet? 0 Quote Share this post Link to post Share on other sites
Stefan Fuchs 0 Report post Posted Monday at 08:10 AM 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" 0 Quote Share this post Link to post Share on other sites
srom 56 Report post Posted Monday at 08:32 AM 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. 0 Quote Share this post Link to post Share on other sites
Stefan Fuchs 0 Report post Posted Monday at 09:42 AM 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 0 Quote Share this post Link to post Share on other sites
Varmenni 6 Report post Posted 12 hours ago On 1/17/2021 at 9:46 PM, Stefan Fuchs said: Const adCmdUnknown = H0008 Const adCmdText = H0001 Aren't you missung the & there? 0 Quote Share this post Link to post Share on other sites