Rule event

From events scripts available:



ScriptFileName - full path to the script

ExeDir - full path to directory of netcom.service.exe without trailing backslash



TrafficFilter - methods and properies of this object can be called without name prefix.

CurrentRule - Rule object, containing this event and called from.


VBScript example:


'This script adds record about traffic usage for last hour to database

'after calling this script hour-counters of rule be reseted by service

Dim fso

Dim strTrafficDBPath


strTrafficDBPath = ExeDir & "\Traffic.mdb"


'Check if database file exists. If not exists - create new


Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(strTrafficDBPath) Then

       CreateJetDatabase strTrafficDBPath

       CreateJetTable strTrafficDBPath

End If

Set fso = Nothing



'If counters = 0 then do not add any records, else add

If (CurrentRule.LastHourIn > 0) Or (CurrentRule.LastHourOut > 0) Then

       AddRecord CurrentRule.Name, CurrentRule.LastHourIn, CurrentRule.LastHourOut

End If


'Adds record to database

Sub AddRecord(argRuleName, argIn, argOut)

       Dim Cn, Cmd, strSQLAdd


       strSQLAdd = "INSERT INTO Traffic VALUES(NOW(), '" & argRuleName & "', '" & CStr(argIN)  & "', '" & CStr(argOut) & "')"

       Set Cn = CreateObject("ADODB.Connection")

       Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strTrafficDBPath


       Set Cmd = CreateObject("ADODB.Command")

       Set Cmd.ActiveConnection = Cn

       Cmd.CommandText = strSQLAdd


       Set Cmd = Nothing


       Set Cn = Nothing

End Sub


'Creates new database file

Sub CreateJetDatabase(strDBPath)

       Dim catNewDB

       Set catNewDB = CreateObject("ADOX.Catalog")

       catNewDB.Create "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDBPath

       Set catNewDB = Nothing

End Sub


'Creates new table in new database

Sub CreateJetTable(strDBPath)

       Const adVarWChar = 202

       Const adDate = 7

       Const adDouble = 5

       Const adKeyPrimary = 1

       Dim Cn, Cat, objTable


       Set Cn = CreateObject("ADODB.Connection")

       Set Cat = CreateObject("ADOX.Catalog")

       Set objTable = CreateObject("ADOX.Table")

       Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDBPath

       Set Cat.ActiveConnection = Cn

       With objTable

               .Name = "Traffic"

               .Columns.Append "Date and time", adDate

               .Columns.Append "Rule name", adVarWChar, 50

               .Keys.Append "PrimaryKey", adKeyPrimary, "Rule name"

               .Keys("PrimaryKey").Columns.Append "Date and time"

               .Columns.Append "In", adDouble

               .Columns.Append "Out", adDouble

       End With

Cat.Tables.Append objTable

Set objTable = Nothing

Set Cat = Nothing


Set Cn = Nothing

End Sub


To install this script you must add action to needed rule (see Scripts / programs execution).


Now script can be started every 1 hour for this rule and writes traffic usage of last hour.

Note: in script used Rule.LastHourIn and Rule.LastHourOut properties. Therefore the 1-hour interval of executing script is used!