Introduction

N2FE Flow - Introduction

The N2FE Flow Operation data structures are the key containers for Flow representation during the editing process. Flows are stored within the Oracle NCC database in the Oracle “Control Plan” format. We convert these into N2FE “Flow Operations” for editing purposes. On writeback, the flow is converted back into an Oracle Control Plan for saving and run-time execution.

The N2FE Flow is represented in JSON as follows.

Attribute Type Description
always_present_calling Integer [Privileged] This parameter causes the service logic to override the Presentation Indicator for the Calling Party Number. If always_present_calling is set to 1 then any AttemptTermination operations performed as part of this flow will always force the Calling Party Number Presentation Indicator to Presentation Allowed.
operations Object See the following section.

Note features marked as [Privileged] are not available to all users, and the API and GUI will perform appropriate checking when the flow is created or updated.

Operation Attributes

The operations is a Hash of Operation Objects, keyed by the operation id. All Operation Objects have the following parameters.

Parameter Type Description
id Integer [Required] The numeric operation ID. This must match the Object's key in the operations hash.
type String [Required] Name of the operation type, e.g. Start, Menu, etc.
exits Array of
Integer
[Required] Array of all of the "next operation" IDs to which this operation is connected. Indexes into this array should be zero-based (unlike NCC which uses branch numbers which start with 1).
The Array element may also be null, which indicates that this exit leads to the end of all processing. If the caller is still on the line when this exit is taken, the call will be disconnected by the switch.
config Object Most Operation Objects will have a config describing the particular configuration of this operation instance. The structure of this config depends on the operation type.
base_node Integer When the Operation Object has been constructed by converting an NCC Control Plan, the base_node parameter indicates the ID of the primary Feature Node which was used in the creation of this operation. This is used primarily for debugging purposes.
merged_nodes Array of
Integer
When the Operation Object has been constructed by converting an NCC Control Plan, the merged_nodes parameter will be present if more than one NCC Feature Node was used to construct this operation, and will list the IDs of all additional Feature Nodes used in the creation of this operation. This is used primarily for debugging purposes.

Announcement Attributes (NCC)

Several operations have announcements as part of their config structure. All announcement configuration Objects have the following parameters when integrated with the NCC platform.

Parameter Type Description
set String [Required] Name of the (public or private) announcement set which contains this announcement on the NCC platform.
entry String [Required] Name of the announcement entry on the NCC platform, which must be an announcement configured within the specified announcement set.
repetition Integer Number of times this announcement entry should be repeated. Support for this feature is specific to the individual announcement audio platform (IVR/UIP/SRP).
(Default = 1).
duration Integer If specified to a value greater than zero, the announcement will be extended to the indicated duration in seconds. Support for this feature is specific to the individual announcement audio platform (IVR/UIP/SRP).
(Default = 0).

Announcement Attributes (N-Squared TollFree)

Several operations have announcements as part of their config structure. All announcement configuration Objects have the following parameters when integrated with the N-Squared TollFree platform.

Parameter Type Description
type String [Required] This must be the string announcement, indicating to the pre-processors that this should be parsed for announcement content.
announcement_entry_id Integer [Required] A value from the column n2tf.announcement_entry.announcement_entry_id.
repetition Integer Number of times this announcement entry should be repeated. Support for this feature is specific to the individual announcement audio platform (IVR/UIP/SRP).
(Default = 1).
duration Integer If specified to a value greater than zero, the announcement will be extended to the indicated duration in seconds. Support for this feature is specific to the individual announcement audio platform (IVR/UIP/SRP).
(Default = 0).

Buffer Names

Some Operations act on “Buffers”, and the operation configuration specifies the name of the buffer which is to be used. This must be either a “System Buffer” or a “User Buffer”.

System Buffers are pre-defined. The following values are permitted for System Buffer names.

Buffer Description
system.service_number This is the Service Number (e.g. Toll-Free Number) associated with the flow. For services other than Toll-Free, this may be undefined.
system.network_calling_party This is the address which best describes the Calling Party's location within the network. If Mobile Location Information (MoLI) has been determined for this call, then this will be the Moli Region, prefixed by the Moli Marker. Otherwise this will be the Calling Party's network address. If Number Portability is present in the system, this should be the physical, unported address.
system.logical_calling_party This is the address which best describes the Calling Party's public number. If Number Portability is present in the system, this should be the ported address, i.e. the "Directory Number".
system.account_code This is the Account Code collected by a preceding AccountCodeEntry operation. It may be undefined.
system.pin This is the PIN collected by a preceding PinAuthorisation operation. It may be undefined.
system.destination_address This is the Destination Address constructed by either a preceding ExtensionDialling or BreakoutDialing operation. It may be undefined.
system.pending_tn This is buffer that NCC uses to determine the phone number to connect to when using the "Connect to Pending TN" NCC control plan node. It may be used as a normal buffer for user input, and for geographical routing.

User Buffers may be of any name of the form user.<name>, where name begins with lowercase a-z or (underscore), and contains only digits 0-9, lowercase a-z or (underscore).

E.g. the following are valid User Buffer names.

The following are not valid User Buffer names.

Pattern Matching (NCC)

When entering pattern matching strings, the default NCC behavior is that the entered pattern must be a complete match. E.g. the pattern 4566 will NOT match the pattern 145661.

In order to perform partial matches, the following special patterns should be used.

Pattern Description
? This matches any single character in the pattern.
?% This matches any string of zero or more characters in the pattern.
?+ This matches any string of one or more characters in the pattern.
[, ], - These characters have their standard "Regular Expression" range interpretations.
(, ), | It is not recommended to use sub-expressions or choices. These characters should be avoided.
0 through 9, aA through fF, *, and # These match the actual telephony digitis used. Note that * matches an actual * character; it is not a wildcard.

Examples:

In the last example, you could also use three separate patterns in the Array of permitted patterns if the operation supports this (E.g. BreakoutDialing or ExtensionDialing).

Example Flow

An example JSON representation of a flow and its operations could be as follows:

    {
        "operations": {
            "5": {
                "id": 5,
                "type": "Start",
                "base_node": 1,
                "exits": [ 4 ]
            },
            "4": {
               "id": 4,
               "base_node": 2,
               "type": "Location",
               "exits": [ 1, 2 ],
               "config": {
                    "rules": [
                        {
                            "geography_entry": "Auckland 2",
                            "exit_idx": 1
                        },
                        {
                            "geography_entry": "Gisborne 6",
                            "exit_idx": 1
                        },
                    ]
                }
            },
            "2": {
                "id": 2,
                "type": "AttemptTerminate",
                "base_node": 6,
                "exits": [ null ],
                "config": {
                    "destinations": [ { "number": "032420002" } ]
                }
            },
            "1": {
                "id": 1,
                "type": "AttemptTerminate",
                "base_node": 3,
                "exits": [ null ],
                "config": {
                    "destinations": [ { "number": "032420003" } ]
                }
            }
        }
    }

This represents a flow which performs geographic routing, and terminates to 032420002 for callers from Auckland/Gisborne and 032420003 otherwise.