PICS Electronic Mail Agent

OVERVIEW

The initial version of the PICS Electronic Mail Agent (PEMA) is designed to run on a PICS bridge node (or any other node that can see both the PICS LAN and the corporate WAN). PEMA is capable of monitoring both the Task Monitor's messages and the real time data stream for specific events and sending e-mail messages about those events to designated accounts.

PEMA.INI

Contains basic configuration information as well as all of the triggers. The Configuration section contains information fundamental to PEMA's operation and looks like this:

   [Configuration]
   SMTPHost=pics.evi.com
   Admin=svalli@e-visions.com
   AdminName=Steve Valliere
   Hostname=ppcsbridgea
   Domain=e-visions.com
   MAIL FROM format=0
   HELO format=0 
SMTPHost
is the symbolic name of the mail host that will be receiving (and possibly forwarding) the e-mail messages from PEMA.
 
Admin
is the e-mail address of the single entity responsible for handling serious PICS errors. This CANNOT be a mailing list, however, it might be sent to another program that redistributes mail as necessary.
 
AdminName
is the optional plain-text name of the entity addressed by Admin.
 
Hostname
The default value is the string entered in the TCP DNS tab in the Hostname box.
 
Domain
The default value is the string entered in the TCP DNS tab in the Domain box.
 
MAIL FROM format
This setting determines how PEMA will format the address included in the SMTP "MAIL FROM" command. The default setting is zero. Using the sample values provided above, the table shows what PEMA will produce for each of the available settings:
0
MAIL FROM PICS@ppcsbridgea.fpc.com
1
MAIL FROM PICS@fpc.com
2
MAIL FROM ppcsbridgea@fpc.com
HELO format
This setting determines how PEMA will format the address included in the SMTP "HELO" command. The default setting is zero. Using the sample values provided above, the table shows what PEMA will produce for each of the available settings:
0
HELO ppcsbridgea.fpc.com
1
HELO fpc.com

Task Monitor Events

The Task Monitor Event section defines which of the seven Task Monitor events are to be enabled and where to send notifications of those events. Here's a sample:

   [TMEvents]
   NodeAvailable=1,[Support]
   NodeUnavailable=1,[Support]
   FailNotice=1,[Support]
   FailBegin=1,[Support]
   FailDone=1,[Support]
   NodeStateChange=1,[Support]
   NodeReady=1,[Support]

Each of the items corresponds to one of the potential messages that Task Monitor may broadcast to a node. The first parameter in the value indicates whether or not the event is enabled (1=enable, anything else=disable). The second parameter is either the e-mail address of an entity to receive the message, or an address list name. When the second parameter is an e-mail address, an optional third parameter may be present to specifiy the plain-text name of the entity. When the second parameter is an address list name, it must be enclosed in square brackets. Address lists are specified in the PEMAddr.INI file, see below for details. Missing items are disabled by default (since there's no one to send them to).

The Real Time Event section contains definitions of monitors that will be attached to the PICS real time data stream. For example:

   [RTEvents]
   *PT_SYS=PSchange,[Operations]
   RECL-160=EUVchange,[Operations]
   EVI-1=PSChange,[Support]
   RECL-4=(EUValue=>2150),svalli@e-visions.com,Steve Valliere
   EVI-Test-Point-0=(EUValue=<5),[Sample]
   EVI-Test-Point-0=(EUValue=7),[Sample]
   EVI-Test-Point-0=(EUValue=>9),[Sample]
   EVI-Test-Point-0=AlarmChange,[Sample]  

Monitors may be attached to an individual point by name, or to an entire point type class (e.g. all subsystem status points). A point type class is specified by preceeding the class name with an asterisk (e.g. '*PT_SYS'). Following the monitor name, an e-mail address or list name, then an optional plain-text name. The following type classes are defined:

PT_AI Analog Input
PT_AC Analog Computed
PT_AO Analog Output
PT_DI Digital Input
PT_DC Digital Computed
PT_DO Digital Output
PT_PT PICS Time
PT_PM Plant Mode
PT_AW Analog DWORD
PT_SYS Subsystem Status

There are currently two types of point monitoring that may be performed: any change and a specific transition. The 'any change' monitors that may be invoked are:

PSchange Point Status changed
EUVchange EU Value changed
AlarmChange EU Alarm level changed

Specific transition monitors are always enclosed in parenthesis. The only specific transition currently implemented is 'EUValue' which may be monitored for going below, becoming equal to, or going above a specific value. This monitor is only effective on these point types: PT_AI, PT_AC, and PT_AO. The monitors always compare both the last known and current values to detect transitions.

Example Description
(EUValue=<5) Triggers when the current value is less than 5 and the previous value was greater than or equal to 5
(EUValue=7) Triggers when the current value is exactly 7 and the previous value was not exactly 7
(EUValue=>9) Triggers when the current value is greater than 9 and the previous value was less than or equal to 9

The parsing engine is sensitive to extra spaces, so be careful to only include spaces where they belong, typically only within plain-text names.

PEMAddr.INI

This file is fairly straightforward (compared to PEMA.INI). It looks just like a standard INI file in format and syntax. Each section is the name of an address list. Each item in a section is an e-mail address and the value of the item is the plain-text name of the addressee. For example:

   [Support]
   mcginnis@e-visions.com=Howard McGinnis
   svalli@e-visions.com=Steve Valliere 

The section above creates an address list named 'Support' containing two members. Anything directed (by PEMA) to [Support] will be sent to both addresses in the list.

NOTES, WARNINGS, CAVEATS