Core Lua
Script Template
All Lua scripts executed by the N2 Logic Node, whether read from a file or from the compiled node source:
- must contain the NCC handler function (and therefore include the N2 NCC API library), enabling the node to yield control back to the core ACS engine, allowing data and operations to flow into and out of the SLC’s runtime call control
- may include any other libraries required
- may include any other global definitions, such as variables or functions
In practical terms, every Lua script you want to use must follow this format:
local ncc = require "n2.ncc"
-- other included libraries
-- definitions
local logic = function (args)
-- logic goes here
end
return ncc.handler (logic)
Script Examples
A real, if trivial, example is the ubiquitous Hello World version for NCC:
local ncc = require "n2.ncc"
function hello ()
ncc.debug ("Hello, World")
end
local hw = function (a)
hello ()
end
return ncc.handler (hw)
A more detailed production-ready example would be a helper function to retrieve a specific balance type for the active subscriber and branch accordingly:
local ncc = require "n2.ncc"
local ccs = require "n2.ccs"
function getBalance (customer, balance)
local cust = 0
if type (customer) == type (1) then
cust = customer
else
cust = ncc.customer_id_for_name (customer)
if not cust then
if customer then
cust = customer
else
cust = "nil"
end
return "Invalid customer " .. cust, 0
end
end
local bal = 0
if type (balance) == type (1) then
bal = {['ID'] = balance} -- add to table for check
else
bal = ccs.customer.get_balance_type_by_name(customer, balance)
end
if not bal or not bal.ID then
if balance then
bal = balance
else
bal = "nil"
end
return "Invalid balance type " .. bal, 0
else
bal = bal.ID
end
local wi = ccs.wallet.info()
if not wi.BALANCES[bal] or not wi.BALANCES[bal].SYSTEM_VAL then
return 0, 0
else
local balAmt = wi.BALANCES[bal].SYSTEM_VAL
local balExp = walletUtils.earliestExpiry(customer, balance)
return balAmt, balExp
end
end
local f = function ()
local ba = 0
local be = 0
ba, be = getBalance ("Boss", "General Cash")
if type (ba) == type (1) then
-- store balance values in temporary storage for later control plan usage
ncc.profile.write_int ("TEMPORARY", 100, ba)
ncc.profile.write_int ("TEMPORARY", 101, be)
ncc.branch.exit (1)
else
-- error occurred
ncc.branch.exit (2)
end
end
return ncc.handler (f)
Loops
Be aware of Lua operations that are local to your script. An infinite loop will cause the call to be continually processed within the SLEE and (eventually) cause a core dump as slee_acs will not respond to a watchdog signal. Calling NCC API functions will prevent a core dump, but will not prevent an infinite loop. Use the while command carefully!
Script Processing
For operations that do not involve the NCC API, the Lua script will simply execute linearly and the node will take the Default branch (if not instructed otherwise and no error occurs).
When performing calls to NCC API functions, the script will yield control to the logic node runtime engine and wait to be instructed to begin again. Some NCC calls will return almost immediately (e.g. printing debug) while others will require the node to similarly yield control to the core NCC runtime and wait for a response (e.g. reading a profile tag value). There is no need to handle this yourself, however - simply construct your script as you would like to have it and the Lua and NCC runtimes will deal with the responsibility delegation themselves.
External Libraries
External Lua libraries - whether from other N2 API sources, your custom libraries, or other third-party extensions - can be included as required in any of your scripts. Simply include them at the top of the Lua chunk, e.g.:
local ncc = require "n2.ncc"
local pretty = require "pl.pretty"
local routine = function (args)
print (pretty.write (args))
ncc.debug ("Logic node processing started")
-- etc
~~~~
The include path that the Lua interpreter uses is set in the LUA_PATH environment variable. This path should be used to contain any Lua chunks, both pre-compiled and as scripts.
For the acs_oper operator, who runs the SLEE, this is stored in the following file:
~~~~language-none
~acs_oper/.profile-scp
~~~~
The default, installed value of LUA_PATH is:
~~~~language-none
LUA_PATH="/IN/service_packages/N2/lua/?.lua;/IN/service_packages/N2/lua/?/?.lua;/IN/service_packages/N2/lib/?.lua;/IN/service_packages/N2/lib/?/?.lua;/IN/service_packages/N2/lua/?.lc;/IN/service_packages/N2/lua/?/?.lc;/IN/service_packages/N2/lib/?.lc;/IN/service_packages/N2/lib/?/?.lc"
The convention used for included libraries is:
- precompiled Lua bytecode uses the suffix .lc
- uncompiled Lua scripts use the suffix .lua
Additionally, the LUA_CPATH environment variable allows for Lua-enabled C shared libraries to be accessed.
LUA_CPATH="/IN/service_packages/N2/lua/?.so;/IN/service_packages/N2/lua/?/?.so;/IN/service_packages/N2/lib/?.so;/IN/service_packages/N2/lib/?/?.so"
Changes to either of these environment variables require a SLEE restart for the operator to pick up the modification.
I/O
In most cases, you will probably use the N2 NCC API to get information into or out of the node. However, you are by no means limited to this; all the features Lua offers for input and output are available to use.
As an example, you may want to diagnose problems with calls from a particular geographic region. In a normal NCC deployment, there is no way to do this easily, but with the Logic Node you can easily get information in real-time with minimal overhead and targeted just to the information you want:
local ncc = require "n2.ncc"
local h = function (a)
if (ncc.engine.field.MSC_ADDRESS.DIGITS == "12345"
and ncc.engine.location_num () == "54321") then
print ("Problem found! Let's get the language ID they think they're using ("
.. ncc.engine.language_id () .. ") and their time zone ("
.. ncc.engine.caller_logical_tz ())
end
end
return coroutine.create (h)
This script will write to the standard slee_acs log file every time just the targeted information required is found. This is independant of whether or not debug is enabled on the SLC, so can be used in production situations for real-time analysis and tracing.
Refreshing scripts
All scripts read from the file system will exhibit changes as soon as the script is updated. No caching is performed.
Configuration in the node, however, including script source if given, is subject to the standard ACS or CCS control plan caching and activation rules.
Error handling
The N2 Logic Node has been designed from a “fail quickly and loudly” perspective, assuming that the script author will want to know immediately when ‘bad’ values are passed to an API function. This enables your scripts to be stringently developed and rapidly debugged, with fewer places for subtle bugs to hide by the time it gets to your production network.
Most API functions will cause an error when provided input outside the expected ranges, e.g. an invalid profile block identifier or a non-existent engine field. This error will be alerted in the system log. For example:
Sep 22 17:00:00 n2-slc01 n2LogicNode: [ID 675952 user.error] n2LogicNode(12345) ERROR: {10006004} SDK: Thread error (/IN/service_packages/N2/lua/n2/ncc.lua:289: New engine field value must be supplied).
This matches the Lua approach, which will raise an error and stop script execution if it cannot fulfil the request - for example, indexing a non-table variable.
You should include adequate checking and exception handling in your scripts to avoid errors caused by unreliable inputs, e.g.:
local periodic_charges
local customers = ncc.customers ()
local cust_id = ncc.customer_id_for_name ('Test Service Provider')
if (customers and customers[cust_id]) then
periodic_charges = ccs.customer.periodic_charges (cust_id)
end
if (periodic_charges and type (periodic_charges) == 'table') then
-- iterate through table, etc.
Other resources
- LuaDate v2, a Lua library for Gregorian date handling
- Oracle’s own NCC documentation is available from the Oracle Software Delivery Cloud (login required)
- Many, many examples and patterns of Lua usage can be found on the Lua Users Wiki
Core Scripting Errors
The N2 Logic Node framework may raise errors in various cases: if the script is not templated correctly, or if you yield control to the node outside the NCC API functions, or if it is not syntactically valid Lua, etc.
Alarm
ERROR: {10006001}: Unable to load Lua chunk (call id: <SLEE call ID>,
script: <Lua script location>, error: <Lua error>).
Problem
The Lua chunk is not able to be loaded into the execution environment.
Resolution
Confirm that the script is readable by acs_oper. The error details provided should provide context.
Alarm
ERROR: {10006002}: Unable to execute Lua chunk (call id: <SLEE call ID>,
script: <Lua script location>, error: <Lua error>).
Problem
The Lua chunk has been loaded but is not able to be executed.
Resolution
Check that the Lua is syntactically valid. The error details provided should provide context.
Alarm
ERROR: {10006003}: Setup did not return a coroutine thread (call id: <SLEE call ID>,
script: <Lua script location>).
Problem
The Lua script was executed but did not return a coroutine thread for node control.
Resolution
Confirm that the return value in your script follows the script template and that the script is readable by the acs_oper user.
Alarm
ERROR: {10006004}: Thread error (<Lua error>).
Problem
The thread ended abnormally (i.e. did not yield in a controlled manner).
Resolution
Confirm that the structure of your script follows the script template. The error details provided should provide context.
Alarm
ERROR: {10006005}: Invalid number of parameters (<number of parameters>)
returned from thread.
Problem
The thread yielded with an unexpected number of parameters. Exactly two parameters (in order) are expected in a thread response: an action (string) and a (possibly empty) table of arguments.
Resolution
Confirm that your script does not yield outside usage of NCC API functions. The error details provided should provide context.
Alarm
ERROR: {10006006}: Thread return parameter 1 (<parameter 1>) is not a string
indicating an action.
Problem
The thread yielded with an unexpected parameter in the action location. Exactly two parameters (in order) are expected in a thread response: an action (string) and a (possibly empty) table of arguments.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006007}: Thread return parameter 2 (<parameter 2>) is not a table with
(possibly zero) parameters.
Problem
The thread yielded with an unexpected parameter in the action details location. Exactly two parameters (in order) are expected in a thread response: an action (string) and a (possibly empty) table of arguments.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006008}: Unknown action (<action>) received from thread.
Problem
The thread yielded with an unrecognised action.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006009}: Unknown engine field (<field ID>) received from thread.
Problem
The thread yielded with an engine field request but for an unrecognised enumerated field.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006010}: Invalid field type (<Lua type>) for engine field access
received from thread.
Problem
The thread yielded with an engine field request but with a non-numeric type for the enumerated field.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006011}: Invalid profile block type (<Lua type>) for profile access
received from thread.
Problem
The thread yielded with a profile request but with a non-numeric type for the profile block.
Resolution
Ensure that when specifying profile blocks that you use correct profile block identifiers.
Alarm
ERROR: {10006012}: Invalid profile tag type (<Lua type>) for profile access
received from thread.
Problem
The thread yielded with a profile request but with a non-numeric type for the profile tag.
Resolution
Ensure that when specifying profile tags that you use numeric, positive tag values.
Alarm
ERROR: {10006013}: Invalid output type (<Lua type>) for debug action
received from thread.
Problem
The thread yielded with a debug request but with a non-string type for the debug output.
Resolution
Confirm that your script does not yield a debug action outside usage of NCC API functions.
Alarm
ERROR: {10006014}: Unexpected message received from get wallet request.
Problem
The ACS chassis returned an invalid message in response to a get wallet request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006015}: Unexpected message received from service capability request.
Problem
The ACS chassis returned an invalid message in response to a service capability request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006016}: Insufficient capabilities received in service capability response.
Problem
The active charging domain does not have sufficient capabilities to perform the action requested.
Resolution
Use the capabilities functions to query the available capabilities before performing a charging action.
Alarm
ERROR: {10006017}: Unknown wallet category (<enumerated wallet category>)
received from ACS.
Problem
The ACS chassis returned an unrecognised enumeration for a wallet category in response to a get wallet request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006018}: Invalid message type (<Lua type>) for alarm request
received from thread.
Problem
The thread yielded with an alarm request but with a non-string type for the alarm message.
Resolution
Ensure that when specifying alarm messages that you use string values.
Alarm
ERROR: {10006019}: Invalid severity type (<Lua type>) for alarm request
received from thread.
Problem
The thread yielded with an alarm request but with a non-numeric type for the alarm severity.
Resolution
Ensure that when specifying alarm severities that you use numeric, positive values.
Alarm
ERROR: {10006020}: Invalid code type (<Lua type>) for alarm request received from thread.
Problem
The thread yielded with an alarm request but with a non-numeric type for the alarm code.
Resolution
Ensure that when specifying alarm codes that you use numeric, positive values. Alternately, do not specify a code.
Alarm
ERROR: {10006021}: Invalid CLI type (<Lua type>) for wallet access
received from thread.
Problem
The thread yielded with a wallet request for a CLI but with a non-string type for the CLI.
Resolution
Ensure that when specifying CLIs that you use string values.
Alarm
ERROR: {10006022}: Unexpected message received from get alternate wallet request.
Problem
The ACS chassis returned an invalid message in response to a get alternate wallet request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006023}: System error returned from ACS when querying alternate
wallet details.
Problem
The ACS chassis returned a system error in response to a get alternate wallet request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006024}: Communications error returned from ACS when querying
alternate wallet details.
Problem
The ACS chassis returned a communications error in response to a get alternate wallet request.
Resolution
Ensure adequate performance of your network to the billing engine, and of the billing engines themselves. This is symptomatic of a timed-out request.
Alarm
ERROR: {10006025}: Unknown error (<error type>) returned from ACS when
querying alternate wallet details.
Problem
The ACS chassis returned an unknown enumerated error in response to a get alternate wallet request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006026}: Unknown chassis action (<action>) received from thread.
Problem
The thread yielded with an unrecognised chassis action.
Resolution
Confirm that your script does not yield outside usage of NCC API functions.
Alarm
ERROR: {10006027}: Unexpected message received from extended wallet info request.
Problem
The ACS chassis returned an invalid message in response to an extended wallet info request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006028}: Unexpected message received from wallet info request.
Problem
The ACS chassis returned an invalid message in response to a wallet info request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006029}: Invalid action type (<Lua type>) for chassis action request
received from thread.
Problem
The thread yielded with a chassis action request but with a non-string type for the action type.
Resolution
Ensure that when specifying chassis actions that you use string values. Refer to the charging data model.
Alarm
ERROR: {10006030}: Unexpected message received from wallet update request.
Problem
The ACS chassis returned an invalid message in response to a wallet update request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006031}: Wallet update request failed: unknown subscriber.
Problem
The ACS chassis returned an unknown subscriber response for a wallet update request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006032}: Wallet update request failed: general failure.
Problem
The ACS chassis returned a general failure response for a wallet update request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006033}: Invalid EDR creation flag type (<Lua type>) for wallet
update received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the EDR creation flag.
Resolution
Ensure that when specifying the EDR creation flag for a wallet update that you use either 0 or 1.
Alarm
ERROR: {10006034}: Invalid wallet activation date type (<Lua type>) for
wallet update received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the wallet activation date.
Resolution
Ensure that when specifying the wallet activation date for a wallet update that you use an epoch value, e.g.
wallet.ACTIVATION_DATE = os.time ()
Alarm
ERROR: {10006035}: Invalid wallet last access date type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the wallet last access date.
Resolution
Ensure that when specifying the wallet last access date for a wallet update that you use an epoch value, e.g.
wallet.LAST_ACCESSED = os.time ()
Alarm
ERROR: {10006036}: Invalid wallet state type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-string type for the wallet state.
Resolution
Ensure that when specifying the wallet state for a wallet update that you use a string value.
Alarm
ERROR: {10006037}: Invalid wallet start date type (<Lua type>) for wallet
update received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the wallet start date.
Resolution
Ensure that when specifying the wallet start date for a wallet update that you use an epoch value, e.g.
wallet.START_DATE = os.time ()
Alarm
ERROR: {10006038}: Invalid extra information type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-string type for the extra information.
Resolution
Ensure that when specifying the extra information for a wallet update that you use a string value.
Alarm
ERROR: {10006039}: Balance type ID <balance type ID> not found in the database.
Problem
The balance ID specified was not found in the database.
Resolution
Ensure you have specified the correct value by retrieving the database values for customer data.
Alarm
ERROR: {10006040}: No suitable unit found for balance type ID <balance type ID>.
Problem
The balance ID specified does not have a balance unit available.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006041}: Invalid bucket ID type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the bucket ID.
Resolution
Ensure that when specifying the extra information for a bucket ID that you use a numeric, positive value.
Alarm
ERROR: {10006042}: Invalid bucket start date type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the bucket start date.
Resolution
Ensure that when specifying the extra information for a bucket start date that you use an epoch value, e.g.
wallet.BALANCES[x].BUCKET_START = os.time ()
Alarm
ERROR: {10006043}: Invalid bucket expiry date type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the bucket expiry date.
Resolution
Ensure that when specifying the extra information for a bucket expiry date that you use an epoch value, e.g.
wallet.BALANCES[x].BUCKET_EXP = os.time ()
Alarm
ERROR: {10006044}: Invalid ACS customer ID type (<Lua type>) for customer data access
received from thread.
Problem
The thread yielded with a customer data access request but with a non-numeric type for the ACS customer ID.
Resolution
Ensure that when specifying the ACS customer ID for customer data requests that you use a numeric, positive value.
Alarm
ERROR: {10006045}: Unable to extend Lua stack.
Problem
The Lua runtime is unable to allocate enough space on the Lua stack that is used to transfer data between the Lua script thread and the Logic Node.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006046}: Invalid subscriber reference type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-string type for the subscriber reference.
Resolution
Ensure that when specifying the subscriber reference for a wallet update that you use a string value.
Alarm
ERROR: {10006047}: Invalid CLI type (<Lua type>) for subscriber information
received from thread.
Problem
The thread yielded with a subscriber information request for a CLI but with a non-string type for the CLI.
Resolution
Ensure that when specifying CLIs that you use string values.
Alarm
ERROR: {10006048}: Invalid bucket suppression flag type (<Lua type>) for wallet
update received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the bucket suppression flag.
Resolution
Ensure that when specifying the bucket suppression flag for a wallet update that you use either 0 or 1.
Alarm
ERROR: {10006049}: SDK threw exception: <exception details>.
Problem
The NCC SDK threw an exception in response to a request passed to it by the Lua runtime.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006050}: Must have either both or neither of bucket and balance to cancel.
Problem
A wallet update request was received from the thread with only one of the bucket to cancel or balance to cancel specified.
Resolution
Ensure when sending a wallet update request you either specify both the bucket and balance cancellation details, or neither of the bucket and balance cancellation details.
Alarm
ERROR: {10006051}: Invalid cancel bucket ID type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the bucket ID to cancel.
Resolution
Ensure that when specifying the extra information for a bucket ID to cancel that you use a numeric, positive value.
Alarm
ERROR: {10006051}: Invalid cancel balance ID type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the balance ID to cancel.
Resolution
Ensure that when specifying the extra information for a balance ID to cancel that you use a numeric, positive value.
Alarm
ERROR: {10006053}: Invalid new wallet state (<state>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with an invalid new wallet state.
Resolution
Ensure that when specifying the wallet state for a wallet update that you use a valid state. Refer to the charging data model.
Alarm
ERROR: {10006054}: Invalid balance ID type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the balance ID.
Resolution
Ensure that when specifying the extra information for a balance ID that you use a numeric, positive value.
Alarm
ERROR: {10006055}: Invalid balance value type (<Lua type>) for wallet update
received from thread.
Problem
The thread yielded with a wallet update request but with a non-numeric type for the balance value.
Resolution
Ensure that when specifying the extra information for a balance value that you use a numeric, positive value.
Alarm
ERROR: {10006056}: Invalid extra information type (<Lua type>) for named event
received from thread.
Problem
The thread yielded with a named event request but with a non-string type for the extra information.
Resolution
Ensure that when specifying the extra information for a named event that you use a string value.
Alarm
ERROR: {10006057}: Invalid class type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-string type for the class.
Resolution
Ensure that when specifying the class of a named event that you use a string value.
Alarm
ERROR: {10006058}: Invalid name type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-string type for the name.
Resolution
Ensure that when specifying the name of a named event that you use a string value.
Alarm
ERROR: {10006059}: Invalid minimum units type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-numeric type for the minimum units required.
Resolution
Ensure that when specifying the minimum units required for a named event that you use a numeric value.
Alarm
ERROR: {10006060}: Invalid maximum units type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-numeric type for the maximum units required.
Resolution
Ensure that when specifying the maximum units required for a named event that you use a numeric value.
Alarm
ERROR: {10006061}: Invalid ignore balance limits flag type (<Lua type>) for
named event received from thread.
Problem
The thread yielded with a named event request but with a non-numeric type for the ignore balance limits flag.
Resolution
Ensure that when specifying the ignore balance units flag for a named event that you use a numeric value.
Alarm
ERROR: {10006062}: Invalid discount percentage type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-numeric type for the discount percentage.
Resolution
Ensure that when specifying the discount percentage for a named event that you use a numeric value.
Alarm
ERROR: {10006063}: Invalid caller timezone type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-string type for the caller timezone.
Resolution
Ensure that when specifying the caller timezone of a named event that you use a string value.
Alarm
ERROR: {10006064}: Invalid used units type (<Lua type>) for named event received from thread.
Problem
The thread yielded with a named event request but with a non-numeric type for the used units.
Resolution
Ensure that when specifying the used units for a named event that you use a numeric value.
Alarm
ERROR: {10006065}: Unexpected message received from direct named event request.
Problem
The ACS chassis returned an invalid message in response to a direct named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006066}: Direct named event request failed: general failure.
Problem
The ACS chassis returned an unrecognised response status for a direct named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006067}: Unexpected message received from reserve named event request.
Problem
The ACS chassis returned an invalid message in response to a reserve named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006068}: Reserve named event request failed: general failure.
Problem
The ACS chassis returned an unrecognised response status for a reserve named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006069}: Unexpected message received from confirm named event request.
Problem
The ACS chassis returned an invalid message in response to a confirm named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006070}: Confirm named event request failed: general failure.
Problem
The ACS chassis returned an unrecognised response status for a confirm named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006071}: Unexpected message received from revoke named event request.
Problem
The ACS chassis returned an invalid message in response to a revoke named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006072}: Revoke named event request failed: general failure.
Problem
The ACS chassis returned an unrecognised response status for a revoke named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006073}: Unexpected response received for named event.
Problem
The ACS chassis returned an unrecognised response type for a named event request.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006074}: Invalid announcement ID type (<Lua type>) for play announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-numeric type for the announcement ID value.
Resolution
Ensure that when specifying the announcement ID that you use a numeric, positive value.
Alarm
ERROR: {10006075}: Invalid announcement duration type (<Lua type>) for play
announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-numeric type for the announcement duration value.
Resolution
Ensure that if specifying the announcement duration that you use a numeric, positive value.
Alarm
ERROR: {10006076}: Invalid announcement repetitions type (<Lua type>) for
play announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-numeric type for the announcement repetitions value.
Resolution
Ensure that if specifying the announcement repetitions that you use a numeric, positive value.
Alarm
ERROR: {10006077}: Invalid announcement repetition interval type (<Lua type>) for
play announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-numeric type for the announcement repetition interval value.
Resolution
Ensure that if specifying the announcement repetition interval that you use a numeric, positive value.
Alarm
ERROR: {10006078}: Unexpected message received from play announcement request.
Problem
The response received from ACS for the play announcement action was not a valid response for such an action.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006079}: Play announcement failed: general failure.
Problem
The response received from ACS for the play announcement action was not a valid response for such an action.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006080}: Unexpected response received from play announcement request.
Problem
The response received from ACS for the play announcement action was not a valid response for such an action.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006081}: Invalid announcement number of variable parts type (<Lua type>)
for play announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-numeric type for the number of variable parts value.
Resolution
Contact N-Squared Support.
Alarm
ERROR: {10006082}: Invalid announcement variable parts TYPE type (<Lua type>) for
play announcement received from thread.
Problem
The thread yielded with a play announcement request but with a non-string type for the a variable part TYPE parameter.
Resolution
Ensure that if specifying the announcement variable part TYPE parameter that you use a string value.
Alarm
ERROR: {10006083}: Invalid announcement variable parts VALUE type (<Lua type>) with
TYPE of string for play announcement received from thread.
Problem
The thread yielded with a play announcement request with a string variable part TYPE but with a non-string type for the variable part VALUE.
Resolution
Ensure that if specifying the announcement variable part VALUE with a string TYPE that you use a string value.
Alarm
ERROR: {10006084}: Invalid announcement variable parts VALUE type (<Lua type>) with
TYPE of unsigned for play announcement received from thread.
Problem
The thread yielded with a play announcement request with an unsigned variable part TYPE but with a non-numeric type for the variable part VALUE.
Resolution
Ensure that if specifying the announcement variable part VALUE with an unsigned TYPE that you use a positive numeric value.
Alarm
ERROR: {10006085}: Invalid announcement variable parts VALUE type (<Lua type>) with
TYPE of date for play announcement received from thread.
Problem
The thread yielded with a play announcement request with a date variable part TYPE but with a non-numeric type for the variable part VALUE.
Resolution
Ensure that if specifying the announcement variable part VALUE with a date TYPE that you use a positive numeric value.