Description:

To setup LCOS based e-mail alerts you need to configure an SMTP mail server, as well as actions that trigger the respective behavior.

You will need to setup the following variables:

Mandatory variables:

  • SMTP_SERVER
  • SMTP_USER
  • SMTP_PASSWORT
  • MAIL_SENDER
  • MAIL_TO

Optional variables:

  • projektName
  • locationName

List of used variables:

VariableBeschreibung




Add-in codes:

Configure email:

/**
 * @param {Config} config
 * @param {Context} context
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = function (config, context) {



  if (context.device.isGateway) {

    config.setScalarByOid("1.2.27.1", context.vars.SMTP_SERVER);
    config.setScalarByOid("1.2.27.2", "587");
    config.setScalarByOid("1.2.27.12", "2");
    config.setScalarByOid("1.2.27.13", "3");
    config.setScalarByOid("1.2.27.3", "");
    config.setScalarByOid("1.2.27.4", "110");
    config.setScalarByOid("1.2.27.11", "");
    config.setScalarByOid("1.2.27.5", context.vars.SMTP_USER);
    config.setScalarByOid("1.2.27.6", context.vars.SMTP_PASSWORT);
    config.setScalarByOid("1.2.27.7", context.vars.MAIL_SENDER);
    config.setScalarByOid("1.2.27.8", "30");
    config.setScalarByOid("1.2.27.9", "72");
    config.setScalarByOid("1.2.27.10", "100");
  }
};

/*
   [  1] SMTP-Server         : 64 chars from  #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
   [  2] SMTP-Port           : 5 chars from 1234567890
   [ 12] SMTP-use-TLS        : Yes (1), No (0), Preferred (2), Required (3)
   [ 13] SMTP-Authentication : None (0), Plain-Text-Preferred (1), Encrypted (2), Preferred-Encrypted (3)
   [  3] POP3-Server         : 64 chars from  #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
   [  4] POP3-Port           : 5 chars from 1234567890
   [ 11] Loopback-Addr.      : 16 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789
   [  5] User-Name           : 63 chars from  #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
   [  6] Password            : 31 chars from  #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
   [  7] E-Mail-Sender       : 63 chars from  #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
   [  8] Send-Again-(min.)   : 3 chars from 1234567890
   [  9] Hold-Time-(hrs.)    : 3 chars from 1234567890
   [ 10] Buffers             : 3 chars from 1234567890
*/
           

Add-in as JSON file:

email.json

Alerts for all connections:

/**
 * @param {Config} config
 * @param {Context} context
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = function (config, context) {



    if (context.device.isGateway && !context.network.isCentralGateway) {

        for (var pos in context.network.vpnconnections);

        // /Setup/WAN/Action-Table
        var actionTable = config.getTableByOid("1.2.2.25");
        var row1 = actionTable.createNewRow();
        row1.setByOid("1", "7");
        row1.setByOid("8", "0");
        row1.setByOid("2", context.network.vpnconnections[pos] + "-DOWN");
        row1.setByOid("3", context.network.vpnconnections[pos]);
        row1.setByOid("10", "4094");
        row1.setByOid("4", "0");
        row1.setByOid("5", "3");
        row1.setByOid("6", "mailto:" + context.vars.MAIL_TO
            // setup subject (translate to your desired language)
            + "?subject=VPN-Verbindung im Projekt " + context.vars.projectName
            + " am Standort " + context.vars.locationName + " abgebrochen um %t"
            // setup body (translate to your desired language)
            + "?body=Im Projekt " + context.vars.projectName
            + " wurde die VPN-Gegenstelle " + context.network.vpnconnections[pos]
            + " am Standort " + context.vars.locationName + " unerwartet abgebaut");
        row1.setByOid("7", "");
        row1.setByOid("9", "root");
        actionTable.addOrMerge(row1);
        var row2 = actionTable.createNewRow();
        row2.setByOid("1", "8");
        row2.setByOid("8", "0");
        row2.setByOid("2", context.network.vpnconnections[pos] + "-UP");
        row2.setByOid("3", context.network.vpnconnections[pos]);
        row2.setByOid("10", "4094");
        row2.setByOid("4", "0");
        row2.setByOid("5", "0");
        row2.setByOid("6", "mailto:" + context.vars.MAIL_TO
            // setup subject (translate to your desired language)
            + "?subject=VPN-Verbindung im Projekt " + context.vars.projectName
            + " am Standort " + context.vars.locationName + " aufgebaut um %t"
            // setup body (translate to your desired language)
            + "?body=Im Projekt " + context.vars.projectName
            + " wurde die VPN-Gegenstelle " + context.network.vpnconnections[pos]
            + " am Standort " + context.vars.locationName
            + " aufgebaut");
        row2.setByOid("7", "");
        row2.setByOid("9", "root");
        actionTable.addOrMerge(row2);

        /*
           [  1] Index       : 5 chars from 1234567890
           [  8] Active      : Yes (0), No (1)
           [  2] Host-Name   : 64 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789
           [  3] Peer        : 16 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789
           [  4] Lock-Time   : 9 chars from 1234567890
           [  5] Condition   : Establish (0), Disconnect (1), End (2), Failure (3), Establish-Failure (4), Budget-Exhausted (5), Budget-Released (6)
           [  6] Action      : 250 chars from #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!"$%&'()*+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz `
           [  7] Check-For   : 50 chars from #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()*+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz `
           [  9] Owner       : 16 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
           [ 10] Routing-Tag : 5 chars from 1234567890
       */
    }
};            

Add-in as JSON file:

alert_all_connections.json

Alerts for specific connections:

/**
 * @param {Config} config
 * @param {Context} context
 * Do not edit this comment or parameter types. Required for code suggestions
*/
exports.main = function (config, context) {



    if (context.device.isGateway) {

        // /Setup/WAN/Action-Table
        var actionTable = config.getTableByOid("1.2.2.25");

        // setup disconnect alert
        var row1 = actionTable.createNewRow();
        row1.setByOid("1", "5");
        row1.setByOid("8", "0");
        row1.setByOid("2", "VOIP-VPN-DOWN");
        row1.setByOid("3", "VOIP-VPN");
        row1.setByOid("10", "4094");
        row1.setByOid("4", "0");
        row1.setByOid("5", "3");
        row1.setByOid("6", "mailto:" + context.vars.MAIL_TO
            // setup subject (translate to your desired language)
            + "?subject=VOIP-VPN Verbindung im Projekt " + context.vars.projectName
            + ", am Standort " + context.vars.locationName + " abgebrochen um %t"
            // setup body (translate to your desired language)
            + "?body=Im Projekt " + context.vars.projectName
            + " wurde die VPN-Verbindung VOIP-VPN am Standort " + context.vars.locationName + " unerwartet abgebaut");
        row1.setByOid("7", "");
        row1.setByOid("9", "root");
        actionTable.addOrMerge(row1);

        // setup re-connect alert
        var row2 = actionTable.createNewRow();
        row2.setByOid("1", "6");
        row2.setByOid("8", "0");
        row2.setByOid("2", "VOIP-VPN-UP");
        row2.setByOid("3", "VOIP-VPN");
        row2.setByOid("10", "4094");
        row2.setByOid("4", "0");
        row2.setByOid("5", "0");
        row2.setByOid("6", "mailto:" + context.vars.MAIL_TO
            // setup subject (translate to your desired language)
            + "?subject=VOIP-VPN Verbindung im Projekt " + context.vars.projectName
            + ", am Standort " + context.vars.locationName + " aufgebaut um %t"
            // setup body (translate to your desired language)
            + "?body=Im Projekt " + context.vars.projectName
            + " wurde die VPN-Verbindung VOIP-VPN am Standort " + context.location.locationName + " aufgebaut");
        row2.setByOid("7", "");
        row2.setByOid("9", "root");
        actionTable.addOrMerge(row2);

        // table details
        /*
           [  1] Index       : 5 chars from 1234567890
           [  8] Active      : Yes (0), No (1)
           [  2] Host-Name   : 64 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789
           [  3] Peer        : 16 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789
           [  4] Lock-Time   : 9 chars from 1234567890
           [  5] Condition   : Establish (0), Disconnect (1), End (2), Failure (3), Establish-Failure (4), Budget-Exhausted (5), Budget-Released (6)
           [  6] Action      : 250 chars from #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!"$%&'()*+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz `
           [  7] Check-For   : 50 chars from #ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()*+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz `
           [  9] Owner       : 16 chars from ABCDEFGHIJKLMNOPQRSTUVWXYZ@{|}~!$%&'()+-,/:;<=>?[\]^_.0123456789abcdefghijklmnopqrstuvwxyz`
           [ 10] Routing-Tag : 5 chars from 1234567890
       */

    }
};

Add-in as JSON file:

alert_specific_connection.json