Configuration

This guide details all configurations that are available within Alpaca. All configurations can be used in the application-prod.yml file located in the config directory within the Alpaca root.

YAML (YAML Ain't Markup Language)

All Alpaca configurations are in the YAML (.yml) format.

Basic Rules

  • YAML is case sensitive.
  • YAML does not allow the use of tabs. Spaces are used instead as tabs are not universally supported.
  • A dictionary is represented in a simple key: value form (the colon must be followed by a space):

        loaders:
            -
              type: "co.ecg.BroadWorksCDRProcessor"
              name: "production"
              cluster: "Production"
              additional-details:
                redirectingReason: 40
              rowDetailMap:
                header: 1
                failover: 45
                call: 435
              cdrFolders:
                - "/mnt/cdr/active"
                - "/mnt/cdr/current"
    
  • All members of a list are lines beginning at the same indentation level starting with a - (a dash and a space):

      broadworks:
        profileServer:
        - cluster: Production
          fileRepo: ProfileServer
          username: fileadmin
          password: P@ssw0rd
        - cluster: Lab
          fileRepo: ProfileServer
          username: fileadmin
          password: P@ssw0rd
    
  • Comments are denoted by #.

      # Loader Configuration
      loaders:
          -
            type: "co.ecg.BroadWorksCDRProcessor"
            name: "production"
            additional-details:
              redirectingReason: 40
            rowDetailMap:
              header: 1
              failover: 45
              call: 435
            cdrFolders:
              - "/mnt/cdr/active"
              - "/mnt/cdr/current"
    

Full Documentation

Complete YAML documentation can be found here.

Spring Boot

ECGCDRLoader Configurations are built upon Spring Boot. Within Spring there are a wide variety of pre-defined configurations. The complete list of configuration options can be found here.

ECGCDRLoader Configuration

The ECGCDRLoader configuration file is a YAML document that controls the different elements of the ECGCDRLoader software.

  • profiles: Select what profiles to use.
  • cdrprocessor: This configuration group controls the ECGCDRLoader settings.
  • mongo : Configuration for the connection to the Mongo database.
  • broadworks : Configuration for how to connect to BroadWorks.
  • smtp: Configuration of the SMTP interface used by the Alarms and Reports Controllers.
  • co.ecg.cdrprocessor.snmp: Configuration of the SNMP interface used by the Alarms and Reports Controllers.

Profile Configuration

Available Profiles

  • daemon: When this profile is selected, ECGCDRLoader will run as a background service.
  • single: The application will perform a single run through and exit.
  • co.ecg.cdrprocessor.snmp: Enables SNMP.
spring:
  profiles:
    active: daemon

CDRProcessor Configuration

History

  • max: The maximum number of days of data retained. This value also impacts the license count since users without calls within the history window are removed from the system and the license is returned to the pool.
cdrprocessor:
  history:
    max: 180

Loaders

Each loader group controls a new instance of a co.ecg.CDRProcessor subclass.

There is one supported CDRProcessor(s) at this time:

  • co.ecg.BroadWorksCDRProcessor - BroadWorks CDR Processor. Verified with BroadWorks versions R14 through R21sp1.

More than one type and/or more than one of each type of loader may be specified.

  • type: Specifies the full class name of the CDRProcessor instance to be used when processing CDRs by this loader.
  • name: Specifies the name of the loader to be used to identify the source of CDRs within ECGCDRLoader. This arbitrary value should be unique within the system. Once set, this value MUST NOT BE CHANGED without contacting ECG support.
  • cluster: THe name of the Cluster that this loader is used for. Must correlate to an entry in the server-config-list.
  • additional-details: This is a map of field name and CDR indexes to be added to the additionalDetails section of the Call collection.
  • rowDetails: A map of row types to a list of acceptable lengths.
  • cdrFolders: List of directories for the processor to scan. Directories will be processed in the order listed. Directories with older files should be listed first.
loaders:
  - type: "co.ecg.BroadWorksCDRProcessor"
    name: "production"
    cluster: "Production"
    additional-details:
      redirectingReason: 40
    rowDetailMap:
      header: 1
      failover: 45
      call: 435
    cdrFolders:
      - "/mnt/cdr/active"
      - "/mnt/cdr/current"

SMTP

The <smtp> configuration group configures the values related to outbound SMTP server connections used for Alarms and Nightly Reports.

  • hostname: The hostname of the mail server that will relay outbound email messages for Alarms and Nightly Reports.
  • tls/enabled: Enables or disables TLS support between ECGCDRLoader and the outbound SMTP server. The default is disabled.
  • port: The TCP port that will be used to connect to the outbound SMTP server. The default is 25.
  • authentication/enabled: Enables or disables SMTP authentication. If enabled, the username and password must also be provided.
    • username: The username used for SMTP authentication for outbound SMTP connections.
    • password: The password to be used for SMTP authentication for outbound SMTP connections.
  • fromAddress: The email address to be used in the From: header on Alarms and Reports sent via email.
  • toAddresses: This configuration group defines a list of email addresses to be included when Alarms and Reports are sent by ECGCDRLoader. More than one <toAddress> may be specified.
    • toAddress: Emails addresses to be used for outbound email.
  • subject: The subject line prefix to be used for outbound email messages.
smtp:
    host-name: "mail.domain.com"
    tls-enabled: false
    port: 25
    auth-enabled: false
    authentication-username: username
    authentication-password: password
    from-address: mail@domain.com
    to-addresses: 
      - "admin1@domain.com"
      - "admin2@domain.com"
    subject: "[CDR Loader]"

SNMP

community : The SNMP community string. listener-address : The ip and port to listen on. notification-destination : The ip and port to send traps to. trap-community : The trap community string. trap-enabled : Boolean value for whether or not to enable traps.

co.ecg.cdrprocessor.snmp:
    community: public
    listener-address: 0.0.0.0/8001
    notification-destination: 127.0.0.1/162
    trap-community: public
    trap-enabled: true

Mongo Configuration

  • uri - The address of the local Mongo installation. This is typically mongodb://localhost:27017.
  • database - The name of the database to use for ECGCDRLoader. This should always be ecgcdrloader.

Sample MongoDB configuration

data:
    mongodb:
        uri: mongodb://localhost:27017
        database: ecgcdrloader

BroadWorks Configuration

  • nickname: The nickname for the Broadworks server.
  • hostName: The address to connect to the BroadWorks server.
  • userName: The connection userName. This can be a user, provisioning admin, or system admin. However, most commands will require admin level access.
  • password: The connection password for the provided userName.
  • timesten.hostname: The address for the application server where the TimesTen installation is contained.
broadworks:
  server-config-list:
    -
      nickname: Production
      hostname: ews1.acme.com
      username: admin
      password: password
      timesten:
        hostname: as1.acme.com