Jump to content

Auswertung aktuelle Datum (BankHoliday, Feiertage, Ruhetage)


KNL
 Share


Go to solution Solved by Tom Wellige,

Recommended Posts

Hallo zusammen,

 

ich versuche mittels der Netphone-Administration Version: 10.30.2429.0, ein Call-Routing zu erstellen, welches abhängig davon, ob das aktuelle Datum in einer Text-Datei vorhanden ist oder nicht, eine entsprechende Aktion ausführt.

Hierfür verwende ich folgendes VB-Script. Als Vorlage hierfür diente das BankHoliday-Script welches ich irgendwo hier gefunden habe. Das Script ansich hab ich separat erfolgreich getestet.

 

   ' FileOpen iomode Values
    Const fsoForReading = 1
    Const fsoForWriting = 2
    Const fsoForAppending = 8
     
    Function IsBankHoliday(ByVal vDate)
     
        Dim fso, file
        Dim sDir, sFile, sLine
        Dim bReturn, nPos
     
        bReturn = False
     
        ' File name
        sFile = "C:\Script\Ruhetage.txt"

        ' Create FileSystemObejct
        Set fso = CreateObject("Scripting.FileSystemObject")
     
        ' Open text file
        Set file = fso.OpenTextFile(sFile, fsoForReading)
     
        Do While (Not (file.AtEndOfStream)) And (Not bReturn)
            sLine = file.ReadLine
            ' Separate Date if its followes by an comment initiate by ";"
            If InStr(sLine,";") Then
                 sLine = left(sLine, InStr(sLine,";")-1)
            End if
            If IsDate(sLine) Then
                If DateDiff("d", vDate, CDate(sLine)) = 0 Then
                    bReturn = True
                End If
            End If
        Loop
        file.Close()
     
        Set file = Nothing
        Set fso = Nothing
     
        IsBankHoliday = bReturn
     
    End Function

 

Das Call-Routing versuche ich, ebenfalls nach Vorlage, im GSE umzusetzten. Hierfür habe ich den VBS-Code im Kommentar-Feld des "Start-Blocks" eingefügt. Das Call-Routing sieht wie folgt aus.

 

CR-Feiertage.PNG.b88c632cccccf152704bb3a9c16ae5aa.PNG

 

Der Aufruf im "Variable auswerten" - Block sieht wie folgt aus.

 

CR-Feiertage-PropEvaluate.PNG.b1e63819243b17a571c09b2133f9ce02.PNG

 

Ansonsten sind zwei Call-Routing-Regel aktiviert.

 

CR-Rules.PNG.0245b9dcf84dec5ad6ec1e929360f954.PNG

 

Ich erwarte folgendes Verhalten, wenn alles korrekt funktioniert:

 

Wenn das aktuelle Datum in der Datei vorhanden ist, dann ertönt der beep-Ton (zum Test, hier kommt später eine andere Funktion hin - VoiceMail) und der Anruf wird beendet, d.h. die nachfolgende Regel wird nicht ausgeführt.
Wenn das aktuelle Datum jedoch nicht in der Datei vorhanden ist, dann ertönt kein beep-Ton und die nachfolgende Regel wird ausgeführt, weil mit "Regel übersprungen" beendet wird.

Ist meine Erwartungshaltung korrekt?

 

Das Tatsächliche Verhalten ist unabhängig davon ob das Datum in der Datei ist oder nicht. Stattdessen ertönt ein schnelles, dauerhaftes tüt tüt tüt ... Die Pause zwischen den jeweiligen tüts ist konstant und sehr kurz. Schwierig zu sagen wie lange ... < 0,5s würde ich sagen.

 

Hat jemand eine Idee was ich hier falsch machen?

 

Vielen Dank schon vorab für Rückmeldungen

Mfg KNL

Link to comment
Share on other sites


  • Most Valued User

Ich müsste Suche aber ich glaube das (now) muss (date) heissen 

 

Das würde aber bereits mehrfach diskutiert im Forum bin mir an der Stelle nur nicht sicher.

 

Könnte aber auch ein Berechtigungsproblem für das Dienste Konto an das File sein oder die Dateiendung.

Da bin ich schon wegen dem ausblenden von bekannten Dateiendungen rei gestolpert.

Link to comment
Share on other sites


bezügl (now) und (date) hatte ich hier bisher nichts gefunden. ... ich habe es aber probiert. leider gleiches Verhalten...

 

Berechtigungstechnisch hatte ich hier was gelesen und "sicherheitshalber" habe ich erstmal jedem Vollzugriff auf die beiden Dateien gegeben.

 

Dateiendungen werden angezeigt und die Dateien heißen richtig. Es ist bei mir also nicht so, dass "Ruhetag.txt" angezeigt wird und die Dateiendungen ausgeblendet sind, so dass der vollständige Name dann "Ruhetag.txt.txt" lautet.

Link to comment
Share on other sites


Ich habe analog zur obrigen Regel eine neue Regel erstellt und dieses Script getestet, obwohl ich später lieber die Lösung über eine Text-Datei haben möchte, da in dieser rel. einfach weitere Ruhetage eingetragen werden können. Dieses Script berechnet ja immer "on the fly" die Feiertage.

 

Der Test ergab das gleiche Ergebnis/Verhalten, wie mit meinem Script. Ich habe alle drei Aufrufvarianten ( IsPublicHoliday(vb_FS_NW, ""),  IsPublicHoliday(vb_FS_NW, Now),  IsPublicHoliday(vb_FS_NW, "01.11.2017")  ) ausprobiert.

 

Darüberhinaus habe ich vor dem Eingang des Blocks "Variable auswerten" und an allen Ausgängen dieses Blocks eMail-Versenden-Blöcke vor- bzw. nach-geschaltet. Das Ergebnis ist, dass ich nur die Emails von dem vorgeschalteten eMail-Block erhalte. D.h. der Block "Variable auswerten" wird anscheind nicht verlassen. Dies habe ich mit dem Script von Tom Wellige und mit meinem Script getestet. Stets dasselbe Verhalten.

 

Achja... Datumsformat des Servers ist "normal" auf TT.MM.JJJJ eingestellt.

 

In dem Script von Tom sind Ausgabe der Form

 PBXScript.OutputTrace

vorhanden. ... Wohin werden diese Ausgaben geschrieben?

 

hab die Traces bei mir unter C:\ProgramData\T-Com\Traces gefunden...

 

hmm so richtig schlau werde ich natürl. nicht daraus, aber es schaut für mich so aus als wenn ein timeout eintritt. Ausgaben vom VB-Script kann ich nicht erkennen. ... hier einfach mal die letzten Zeilen des Logs (nach erfolgter SIP-Registrierung) während eines Anrufes und entsprechend aktivierter Regel:

 

02 14:56:20.310 000be8 Info SwSIP      00A0C058 00000000 SwSIPEndp::ForwardRespToActReg          () RECV SIP 200 OK
02 14:56:20.310 000be8 Info EventQueue 065AE720 00000000 SEventQueue::QueueEvent                 () pEvent=067EE818 type=2 name=evt200Received
02 14:56:20.310 00252c Info EventQueue 065AE720 00000000 SEventQueue::Process                    () pEvent=067EE818 type=2 name=evt200Received
02 14:56:20.310 00252c Info SwSIPReg   065AE720 00000000 SwSIPActReg::ActionCheckExpiresHeader   () evt200Received in state RegisteredRegisterSent
02 14:56:20.310 00252c Info SwSIPReg   065AE720 00000000 SwSIPActReg::ActionCheckExpiresHeader   () Registration response 'OK'
02 14:56:20.310 00252c Info SwSIPReg   065AE720 00000000 SwSIPActReg::RetrieveExpiresValue       () registration expires in (secs): 120
02 14:56:20.310 00252c Info SwSIPReg   065AE720 00000000 SFsm::OnProcessEvent                    () RegisteredRegisterSent	evt200Received	Result: 0	NewSt: Registered
02 14:56:20.310 00252c Info SwSIPReg   065AE720 00000000 SwSIPActReg::EnterStateRegistered       (true) Starting registration expiry timer for 108s
02 14:56:20.310 00252c Info ServiceReg 065AEB68 00000000 S3pccServiceDevice::SetState            () e_Registered --> e_Registered
02 14:56:20.559 0008ec Info ServiceReg 048A0228 00000000 S3pccRegistration::OnUserDataChanged    () iUserId=18  ulChangedContext=20
02 14:56:20.559 0008ec Info LineMgr    067E70B0 0012e133 CLineMgr::OnReceivedUserDataChangedEvent() lUserDataChangedContext=20
02 14:56:20.559 0008ec Info EventQueue 065F8138 00000000 SEventQueue::QueueEvent                 () pEvent=067EE838 type=5 name=SUserDataChangedEvent
02 14:56:20.559 002120 Info EventQueue 067E7128 00000000 SSubEventQueue::ProcessEvent            () pEvent=067EE838 type=5 name=SUserDataChangedEvent
02 14:56:20.559 002120 Info LineMgr    067E70B0 0012e133 CLineMgr::HandleOnUserDataChanged       () changed: 20  cumulated changes: 20
02 14:56:20.666 000b78 Info EventQueue 065F8138 00000000 SEventQueue::QueueEvent                 () pEvent=067EE858 type=4294967294 name=SEventEQTimeout
02 14:56:20.666 001d10 Info EventQueue 065F8138 00000000 SEventQueue::Process                    () pEvent=067EE858 type=4294967294 name=SEventEQTimeout
02 14:56:20.666 001d10 Info EventQueue 065F8138 00000000 SEventQueue::Process                    () call timeout function for timer 067E7888
02 14:56:20.666 001d10 Info LineMgr    067E70B0 0012e133 CLineMgr::OnDelayUserDataChangedTimeout () cumulated changes: 20
02 14:56:20.666 001d10 Info LineMgr    067E70B0 0012e133 CLineMgr::ReloadUserData                () cumulated changes: 20
02 14:56:20.666 001d10 Info 3pccLMgr   067E70B0 0012e133 S3pccLineMgr::OnUserDataChanged         () context: 32
02 14:56:22.015 0008ec Info ServiceReg 048A0228 00000000 S3pccRegistration::OnUserDataChanged    () iUserId=18  ulChangedContext=20
02 14:56:22.015 0008ec Info LineMgr    067E70B0 0012e133 CLineMgr::OnReceivedUserDataChangedEvent() lUserDataChangedContext=20
02 14:56:22.015 0008ec Info EventQueue 065F8138 00000000 SEventQueue::QueueEvent                 () pEvent=067EE8F8 type=5 name=SUserDataChangedEvent
02 14:56:22.015 00252c Info EventQueue 067E7128 00000000 SSubEventQueue::ProcessEvent            () pEvent=067EE8F8 type=5 name=SUserDataChangedEvent
02 14:56:22.016 00252c Info LineMgr    067E70B0 0012e133 CLineMgr::HandleOnUserDataChanged       () changed: 20  cumulated changes: 20
02 14:56:22.116 000b78 Info EventQueue 065F8138 00000000 SEventQueue::QueueEvent                 () pEvent=067EE938 type=4294967294 name=SEventEQTimeout
02 14:56:22.116 002120 Info EventQueue 065F8138 00000000 SEventQueue::Process                    () pEvent=067EE938 type=4294967294 name=SEventEQTimeout
02 14:56:22.116 002120 Info EventQueue 065F8138 00000000 SEventQueue::Process                    () call timeout function for timer 067E7888
02 14:56:22.116 002120 Info LineMgr    067E70B0 0012e133 CLineMgr::OnDelayUserDataChangedTimeout () cumulated changes: 20
02 14:56:22.116 002120 Info LineMgr    067E70B0 0012e133 CLineMgr::ReloadUserData                () cumulated changes: 20
02 14:56:22.116 002120 Info 3pccLMgr   067E70B0 0012e133 S3pccLineMgr::OnUserDataChanged         () context: 32

 

Link to comment
Share on other sites


  • 1 year later...

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.