Jump to content

CallRouting nach PLZ


STVLNG
 Share


Recommended Posts

Hi zusammen,

ich bin aktuell dabei ein CallRouting zu erstellen in dem je nach eingabe der PLZ eine entsprechende Durchwahl gewählt wird.

 

Folgendes Szenario, wir haben 5 verschiedene Abteilungen und 150 verschiedenen Postleizahlen. In jeder Abteilung ist ein User für eine oder mehrere PLZs verantwortlich.
 

Ich hab mir das ganze wie folgt vorgestellt:

Kunde ruft an und wird nach der PLZ gefragt, diese wird in der Variable PLZ gespeichert, dann wählt er aus zu welcher Abteilung er möchte (A, B, C, D, E) und nun soll das Script je nach Abteilung in einer DB oder txt die Passende Durchwahl zur PLZ ausspucken an die dann weiterverbunden wird.

 

Leider habe ich keine Ahnung wie ist das Bewerkstelligungen soll, da mich meine Programmierkenntnisse außerhalb von PowerShell verlassen.

Link to comment
Share on other sites


In Deinem Code sind einige Fehler:

 

' if there are records in recordset, this caller seems to be known
	bReturn = If Not rs.EOF Then

 

Hier musst Du das "bReturn =" entfernen.

 

Ebenso setzt Du nachfolgend ie Variablen "plz" und "output_dw", diese sind jedoch nicht zuvor mittels "Dim" deklariert sprich angelegt worden.

 

Wenn es anschliessend immer noch zu Problemen kommt (Ruf bricht ab), solltest Du mal einen Blick in das Server Trace werfen. Dort solltest Du dann die entsprechende Fehlermeldung finden, die zu dem Rufabbruch gehört.

 

Link to comment
Share on other sites


Ich glaub ich bin zu doof dafür

folgendes hab ich in der Log:
 

	Zeile 178102: 04 10:04:13.892 015a54 Info SrvScrAPI  069717D0 000025be SScriptLoader::LoadScript               (callrouting.vbs, U:416 Test)
	Zeile 178103: 04 10:04:13.892 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 () Done loading (Success) callrouting.vbs', scope User
	Zeile 178104: 04 10:04:13.893 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()     Done loading (Success) Templates_V4.3.vbs', scope SystemDefault
	Zeile 178105: 04 10:04:13.893 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) rulePreProcessing.vbs', scope SystemDefault
	Zeile 178106: 04 10:04:13.894 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) rulePostProcessing.vbs', scope SystemDefault
	Zeile 178107: 04 10:04:13.894 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) Functions.vbs', scope SystemDefault
	Zeile 178108: 04 10:04:13.896 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) actionStandardVoicemail.vbs', scope SystemDefault
	Zeile 178109: 04 10:04:13.903 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) actionStandardRemoteInquiry.vbs', scope SystemDefault
	Zeile 178110: 04 10:04:13.903 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()             Done loading (Success) actionRedirection.vbs', scope SystemDefault
	Zeile 178111: 04 10:04:13.908 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()         Done loading (Success) Resources.vbs', scope SystemDefault
	Zeile 178112: 04 10:04:13.910 015a54 Info SrvScCache 0983EE08 000025be SScriptFCache::LoadFile                 ()     Done loading (Success) ruleCRPLZ.vbs', scope User
	Zeile 178113: 04 10:04:13.911 015a54 Info SrvScrAPI  097DEEC8 000025be SScriptHostVbs::Initialize              () loaded 'callrouting.vbs (User, Test)' with 623213 bytes in 0.019s
	Zeile 178114: 04 10:04:13.919 0155a8 *Err SrvScrAPI  099CF360 000025be SPBXScriptSiteVbs::OnScriptError        ()
	Zeile 178124: 04 10:04:13.920 0155a8 *Err SrvScrAPI  09D062E0 000025be SH::ScriptEngineThread::Main            () failed, error08237718
	Zeile 178125: 04 10:04:13.920 0155a8 Info SrvPBXCtl  099511A8 000025be SScrServer::OnScriptFinished            ()
	Zeile 178126: 04 10:04:13.920 0155a8 Inf2 SrvPBXCtl  099511A8 000025be SScrServer::EventScriptFinished         ()
	Zeile 178127: 04 10:04:13.920 015a54 *Err SrvScrAPI  097DEEC8 000025be SScriptHostVbs::Initialize              (Test) failed, error 09804E60
	Zeile 178128: 04 10:04:13.920 015a54 Info SrvScrAPI  097DEEC8 000025be SScriptHostVbs::Delete                  () script running, delay deletion...
	Zeile 178129: 04 10:04:13.920 015a54 *Err SrvPBXCtl  099511A8 000025be SScrServer::InitScript                  () script host init failed with 1 for U:416 Test, refcnt=2
	Zeile 178130: 04 10:04:13.920 015a54 *Err SrvPBXCtl  0971C308 000025be SScriptFsm::ActionOnStartScript         () Starting script failed
	Zeile 178131: 04 10:04:13.920 015a54 Inf3 SrvPBXCtl  099511A8 000025be SPBXCallHub::SetDisconnectReason        (CallRoutingFailed, ext cause 0, U:0, T:0, '','',Unknown) stored
	Zeile 178132: 04 10:04:13.920 0155a8 Info SrvScrAPI  09D062E0 000025be SH::ScriptEngineThread::Main            () stopped script engine

der Ruf ist auch die ganze Zeit in einem Loop.

Link to comment
Share on other sites


Ich muss zugeben, dass ich sowas noch nicht gesehen habe.

 

Bitte resportiere Deine GSE Regel nochmal frisch als .rse Datei und lösche sie danach aus dem Call Routing Manager Deines Test Benutzers.

 

Ist der Benutzer anschliessend wieder erreichbar?

 

Link to comment
Share on other sites


So bald ich das CallRouting abschalte ist der test user wieder erreichabar.

 

Ich kann den Fehler nun besser einkreisen.

 

Das CallRouting kommt kommt bis zum Skript und bricht dann wie folgt ab:
 

08 13:06:33.027 01cbb0 *Err SrvScrAPI  0969E4F8 00002fac SPBXScriptSiteVbs::OnScriptError        ()
~Code:   0
~Src:    082CB8D4
~Desc:   0973DEF4
~RetVal: 80004005
~Line:   15398
~Column: 9
~Source code:
~            Set db = CreateObject("ADODB.Connection")

~         ^ error position
08 13:06:33.028 01cbb0 Inf3 SrvPBXCtl  0CF74460 00002fac SPBXCallHub::SetDisconnectReason        (CallRoutingFailed, ext cause 0, U:0, T:0, '','',Unknown) stored
08 13:06:33.029 01cbb0 Info SrvPBXCtl  0CF74460 00002fac SScrServer::OnScriptFinished            ()
08 13:06:33.029 01cbb0 Inf2 SrvPBXCtl  0CF74460 00002fac SScrServer::EventScriptFinished         ()
08 13:06:33.029 01aa14 Inf2 SrvPBXCtl  0971BDF8 00002fac SScriptFsm::ActionOnScriptFinished      ()

 

Link to comment
Share on other sites


Leider gibt es aktuell einen Bug in der SwyxWare, der bei VBSkript Laufzeitfehlern dazui führt, dass er originale Fehlertext nicht ins Trace geschrieben wird. Die Zeilen "~Src" und "~Desc" sollten eigentlich vernünftigen Text enthalten. Ich will mal versuchen, ohne eine Fehlerbeschreibung weiter zu kommen...

 

Eine Eigenart der Microsodt Scripting Engine ist es, bei Laufzeitfehlern in "~Source code" nicht die Fehlerzeile anzuzeigen, sondern die Zeile eins über der Fehlerzeile.

 

In der .rse Datei die Du oben angehängt hattest, finde ich in den Skript Code Blöcken keinen Fehler unter der angegebenen Zeile. Hast Du da evtl. aus Versehen in einem der Blöcke etwas kaputt gemacht?

 

Link to comment
Share on other sites


Auch mit der Anpassung kommt genau der gleiche Fehler

Start-Block

Dim eingabe_PLZ
Dim plz
Dim dw
Dim output_dw
Dim sDsn
Dim db
Dim sSQL
Dim rs

 

Skript-Block

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

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

' open recordset
sSQL = "SELECT * FROM callerplz WHERE Postleitzahl = '" & eingabe_PLZ & "'"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText
	
plz = rs.Fields("Postleitzahl").Value
output_dw = rs.Fields("Durchwahl").Value

 

LinkManager Ausgabe:

09 08:51:55.763 01d910 *Err SrvScrAPI  0D2C8090 000031d2 SPBXScriptSiteVbs::OnScriptError        ()
~Code:   0
~Src:    084D348C
~Desc:   02DF7CFC
~RetVal: 80004005
~Line:   15392 
~Column: 8
~Source code:
~        Set db = CreateObject("ADODB.Connection")

~        ^ error position
09 08:51:55.763 01d910 Inf3 SrvPBXCtl  082D2A38 000031d2 SPBXCallHub::SetDisconnectReason        (CallRoutingFailed, ext cause 0, U:0, T:0, '','',Unknown) stored
09 08:51:55.763 01d910 Info SrvPBXCtl  082D2A38 000031d2 SScrServer::OnScriptFinished            ()
09 08:51:55.763 01d910 Inf2 SrvPBXCtl  082D2A38 000031d2 SScrServer::EventScriptFinished         ()
09 08:51:55.763 01da1c Inf2 SrvPBXCtl  08233668 000031d2 SScriptFsm::ActionOnScriptFinished      ()

 

 

 

Link to comment
Share on other sites


Der Fehler tritt in der "db.Open sDsn" Zeile auf. 

 

Wie gesagt, leider gibt es dazu im Augenblick keine ordentliche Fehlermeldung im Trace. 

 

Es gibt aber natürlich trotzdem einige Ansatzpunkte:

  • Hat der Windows Benutzer unter dem der SwyxServer Dienst läuft (typischerweise "SwyxServiceAccount") vollen read/write Zugriff auf die "c:\GSE\plzDB.mdb" Datei ?
  • Da es sich um eine Access "Datenbank" handelt: Access darf nicht gestartet sein, wenn Du versuchst vom Call Routing aus darauf zuzugreifen.

 

Wenn Du die Möglichkeit hast, solltest Du die Datenbank auf alle Fälle in einen echten SQL Server umziehen. Dort kann eine Datenbank von mehreren Seiten gleichzeitig verwendet werden.

 

 

Und ganz wichtig: wenn das Problem erstmal gelöst ist, musst Du noch weiteren Code (z.B. in den Start Block) einfügen:

 

' 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

 

 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


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