Configuration

The Alpaca configuration is a JSON document that is divided into a number of major categories.

  • broadWorksServerConfigList: This is the configuration for the BroadWorks server as well as TimesTen
  • cacheConfig: These are the configurations for the cache.
  • coreConfig: This is the configuration for requests and responses. These settings will apply universally.
  • emailConfig: These are the configurations for the email settings.
  • fileManagerConfig: These are configurartions for the Alpaca File Manager.
  • migratrionConfig: There are the configurations for migrations.
  • resetWatcherConfig: These are the configurations for the reset watcher.
  • shellConfig: There are the configurations for the Alpaca CLI.

BroadWorksServerConfigList

  • 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.
  • - autoConnect: Boolean for whether or not the server auto connects on startup
TimesTen
  • hostname: The address for the application server where the TimesTen installation is contained.
  • DSN: Name of the DSN to connect to.
  • port: Specify the port number to use for the connection.
  • userId: userID to connect to the TimesTen database.
  • password: The password for the provied userId.
"broadWorksServerConfigList": [
    {
      "nickname": "production",
      "hostName": "hostname.net",
      "userName": "userName",
      "password": "password",
      "ttConfig": {
        "hostName": "as1.hostname.net",
        "DSN": "AppServer",
        "port": 11203,
        "userId": "bwas",
        "password": "bwas"
      },
      "autoConnect": true
    }
]

CacheConfig

  • busyLampFieldTimeOutHours: How long a Busy Lamp Field is considered valid in the cache.
"cacheConfig": {
    "busyLampFieldTimeoutHours": 24
}

CoreConfig

  • broadWorksConnectionTimeoutMillis: How long to wait before failing out during connection tests to the BroadWorks system.
  • encoding: The encoding to use for the outgoing and incoming parsing of BroadWorks messages.
  • requestTimeoutMillis: How long to wait before failing out during request-response transactions.
  • maxRequestsPerSecond: The maximum number of requests to send per second through a single BroadWorksServer object. This is a blocking operation that will limit the overall speed of the code if attempting to perform too many operations per second.
  • validateRequestOnFire: Sets if JSR 303 Bean Validation will be used to verify that a request is valid per the XML spec before sending it to BroadWorks. An exception will be thrown from the .fire() call alerting to the invalid request.
  • bundlerAutoFireTimeoutMillis: When using a RequestBundler this timeout controls how long to wait before firing a request with less than 15 entries.
  • serviceAsyncLoadTimeout: How long to block if a request for user service information is created while waiting for asynchronous load.
"coreConfig": {
    "broadWorksConnectionTimeoutMillis": 5000,
    "encoding": "ISO-8859-1",
    "requestTimeoutMillis": 10000,
    "maxRequestsPerSecond": 40,
    "validateRequetsOnFire": false,
    "bundlerAutoFireTimeoutMillis": 1000,
    "serviceAsyncLoadTimeout": 120000
}

EmailConfig

  • useAuthentication: Whether to use SMTP authentication when sending emails.
  • smtpHostName: The mail server hostname.
  • smtpUserName: The mail server username.
  • smtpPassword: The mail server password.
  • smtpPort: The mail server port.
  • useTLS: Whether the mail server uses TLS.
  • fromAddress: The FROM portion of emails sent from Alpaca.
  • toAddresses: The TO portion of emails is able to be determined by address entries. All valid address entries will be included.
  • toAddresses/address: Addresses have a priority and type. Emails will be sent to all addresses at the lowest priority. A priority of 0 will always be sent. The address type can be either UserProfile, VoicemailCarbonCopy or Static. UserProfile will look for an email address in the user profile for the modified user. VoicemailCarbonCopy will look in the voice messaging carbon copy field for the modified user. Static is an email address designated in the config.
  • subjectPrepend: A text prepend in the subject of outbound emails.
  • usePlainText: Whether to send the email as plain text.
  • template: These are CDATA templates for outbound emails. Templates can contain the following tags:
    • %ALPACAPRIORITY%: The priority of the event.
    • %ALPACAEVENTMESSAGE%: The message for the event.
    • %ALPACAEVENTSUBJECT%: The subject for the event.
    • %ALPACAVERSION%: The version of Alpaca.
    • %BWNAME%: The first and last name of the user.
    • %BWFIRSTNAME%: The first name of the user.
    • %BWLASTNAME%: The last name of the user.
    • %BWDN%: The phone number of the user.
    • %BWID%: The ID of the user.
    • %BWEXTENSION%: The extension of the user.
"emailConfig": {
    "useAuthentication": true,
    "smtpHostName": "smtp.gmail.com",
    "smtpUserName": "",
    "smtpPassword": "",
    "smtpPort": 587,
    "useTLS": true,
    "fromAddress": "",
    "toAddressList": [
      {
        "priority": 1,
        "address": "",
        "type": "UserProfile"
      },
      {
        "priority": 2,
        "address": "",
        "type": "VoicemailCarbonCopy"
      },
      {
        "priority": 0,
        "address": "",
        "type": "Static"
      }
    ],
    "subjectPrepend": "[AlpacaEvent]",
    "usePlainText": false,
    "userEventTemplate": "<html><body>%ALPACAEVENTMESSAGE%<br>---<br>Alpaca Version: %ALPACAVERSION%<br></body></html>"
}

FileManagerConfig

  • rootLocation: The location on the filesystem where exported files will be stored.
"fileManagerConfig": {
    "rootLocation": "/tmp/alpacastore"
}

MigrationConfig

  • announcementRepositoryUsername: The username to retrieve voice portal audio and video files from for migration procedures.
  • announcementRepositoryPassword: The password to retrieve voice portal audio and video files from for migration procedures.
  • authenticationPasswordChangeable: When randomizing a user's authentication password, the user's access device type must match the provided regular expression.
  • authenticationUsernameChangeable: When randomizing a user's authentication username, the user's access device type must match the provided regular expression.
  • deviceRebootDelayMillis: The delay in milliseconds between rebooting the device and performing the migration procedure.
  • deviceFileMigrationRuleList: Migration file rules consist of device types matched to the files that should be migrated with the device. There can be any number of file rules that specify the desired files to be migrated.
  • deviceFileMigrationRuleList/deviceTypeRegex: This is the file rule device type specified by regular expression.
  • deviceFileMigrationRuleList/fileRegexes: Any number of files can be specified by exact name.
"migrationConfig": {
    "announcementRepositoryUsername": "BoNjOuRlEsAmIs049",
    "announcementRepositoryPassword": "viveLEROILouis14",
    "authenticationPasswordChangeableRegex": ".*(Polycom|Linksys|Cisco).*",
    "authenticationUsernameChangeableRegex": ".*(Polycom|Linksys|Cisco).*",
    "deviceRebootDelayMillis": 5000,
    "deviceFileMigrationRuleList": [
      {
        "deviceTypeRegex": {
          "pattern": "Polycom.*"
        },
        "fileRegexes": [
          {
            "pattern": "%BWMACADDRESS%-directory.xml"
          },
          {
            "pattern": "%BWMACADDRESS%-calls.xml"
          }
        ]
      }
    ]
  }

ResetWatcherConfig

  • deviceTypeFilterRegex: When resetting devices with the ResetWatcher device types must match the provided regular expression.
  • timeoutMillis: The total time to wait for a device to re-register after being sent a reset command.
  • delayMillis: The time to wait between polling the registration information to detect the re-register.
"resetWatcherConfig": {
    "deviceTypeFilterRegex": ".*Polycom.*",
    "timeoutMillis": 300000,
    "delayMillis": 10000
  }

ShellConfig

  • isBellEnabled: Sets the terminal bell active.
  • isKeepAlive: Enabled a periodic background request that maintains a connection to the BroadWorksServer.
  • daemonPort: The port designated for the Alpaca daemon.
  • userModifyPasscodeEmailByDefault: Sets the default behavior for the modify passcode command regarding sending an update email.
  • userModifyPasscodeEmailByTemplate: The template to use for the email update of the modify passcode command. This template supports the same tags seen in the Report - Email category.
  • userModifyPasswordEmailByDefault: Sets the default behavior for the modify passwordcommand regarding sending an update email.
  • userModifyPasswordEmailByTemplate: The template to use for the email update of the modify password command. This template supports the same tags seen in the Report - Email category.
"shellConfig": {
    "isBellEnabled": true,
    "isKeepAlive": true,
    "daemonPort": 4550,
    "userModifyPasscodeEmailByDefault": true,
    "userModifyPasscodeEmailTemplate": "<html><link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\"><body><div class=\"container-fluid\">This is an automated event notification for <strong>User Voice Portal</strong> passcode modification.<br><br><dl class=\"dl-horizontal\"><dt>Priority</dt><dd>%ALPACAPRIORITY%</dd><dt>User ID</dt><dd>%BWID%</dd><dt>Name</dt><dd>%BWFIRSTNAME% %BWLASTNAME%</dd><dt>DN</dt><dd>%BWDN%</dd><dt>New Passcode</dt><dd>%ALPACAEVENTMESSAGE%</dd></dl><br><img src = \"http://www.e-c-group.com/wp-content/themes/dawn/images/logo.png\"><br><h5>Alpaca <small>Version %ALPACAVERSION%</small></h5></div></body></html>",
    "userModifyPasswordEmailByDefault": true,
    "userModifyPasswordEmailTemplate": "<html><link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css\"><body><div class=\"container-fluid\">This is an automated event notification for <strong>User Web Access</strong> password modification.<br><br><dl class=\"dl-horizontal\"><dt>Priority</dt><dd>%ALPACAPRIORITY%</dd><dt>User ID</dt><dd>%BWID%</dd><dt>Name</dt><dd>%BWFIRSTNAME% %BWLASTNAME%</dd><dt>DN</dt><dd>%BWDN%</dd><dt>New Password</dt><dd>%ALPACAEVENTMESSAGE%</dd></dl><br><img src = \"http://www.e-c-group.com/wp-content/themes/dawn/images/logo.png\"><br><h5>Alpaca <small>Version %ALPACAVERSION%</small></h5></div></body></html>"
  }
}