SBC Processing Language (SPL)

SPL provides a means for Acme Packet to craft solutions and features to unique problems and deploy them in a portable plugin-type software package. SPL plugins are uploaded to the Oracle Communications Session Border Controller, marked to be executed, and then perform a feature-like function as expected. SPL only works for SIP messaging. You may only run signed SPL files on your Oracle Communications Session Border Controller available directly from Acme Packet.

Upon boot, the Oracle Communications Session Border Controller compiles all scripts in the /code/spl directory that are configured in the spl config configuration element. If there is an error during parsing tile SPL files, it is written to the log.sipd and the script is not loaded. Scripts are loaded in the order in which they are configured in the spl plugins configuration element.

SPL Packages act identically to SPL plugins but contain multiple plugins in one file. When a package file is configured in the name parameter of the spl plugins configuration element, the Oracle Communications Session Border Controller will load all SPL plugins contained in that package. You may also configure the Oracle Communications Session Border Controller to execute a single plugin contained within the package with the syntax package-name:plugin-name. You may omit the .pkg extension when configuring the Oracle Communications Session Border Controller to load one plugin from a package.

Enabling SPL Plugins

Enabling SPL plugins is a three step process.

  1. Copy the SPL plugins to a Oracle Communications Session Border Controller.
  2. Configure the Oracle Communications Session Border Controller to recognize and run the plugins.
  3. Command the Oracle Communications Session Border Controller to execute the plugins.

Uploading SPL Plugins

SPL plugins must be manually transferred to the Oracle Communications Session Border Controller’s /code/spl directory. The Oracle Communications Session Border Controller’s SFTP server, if enabled may be reached from the system’s wancom or eth0 management physical interface.

Configuring SPL Plugins

All SPL plugin files that you intend to run must be configured in the spl plugins configuration element. The Oracle Communications Session Border Controller executes the plugin files in the order in which they were configured.

To add an SPL Plugin or SPL Package to the configuration:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  2. Type system and press Enter to access the system-level configuration elements.
    ORACLE(configure)# system
    ORACLE(system)#
  3. Type spl-config and press Enter.
    ORACLE(system)# spl-config
    ORACLE(spl-config)#
  4. Type plugins and press Enter. The system prompt changes to let you know that you can begin configuring individual parameters.
    ACMESYSTEM(spl-config)# plugins
    ACMESYSTEM(spl-plugins)#
  5. name—Enter the name of a plugin file in the /code/spl directory that you wish the Oracle Communications Session Border Controller to execute.
    • You can enter the name of the SPL Package file in the name parameter.
      ACMESYSTEM(spl-plugins)#name SPL_PACKAGE.PKG
    • You can enter a single SPL Plugin that exists in a package file as follows:
      ACMESYSTEM(spl-plugins)#name SPL_PACKAGE:MODIFY_HEADER
  6. Type done to save your work.

SPL Parameter Configuration

SPL Plugins may create the spl-options parameter in either the session-agent, sip-interface, realm-config, or spl-config configuration elements. The spl-options parameter appears in the ACLI after an SPL plugin that creates the parameter is executed. The spl-options parameter will not necessarily appear in all four (or any) configuration elements. Where and when to configure the spl-options parameter is discussed in each plugin’s specific documentation.

Executing SPL Files

There are three ways to execute SPL files:

  1. Perform a save-config and activate-config after exiting the configuration menu.
  2. Reboot the system (after a save-config)
  3. Execute the reset spl command—all configured SPL files are refreshed by with the reset spl command. You can also refresh a specific file by typing reset spl <spl-file>.

    Note:

    Acme Packet suggests that scripts are only refreshed during system downtime.

    If an SPL file exists in the /code/spl directory, but is not configured in the spl-files parameter, it will be ignored when the Oracle Communications Session Border Controller loads all SPL plugins. You may still manually load an SPL file directly with the reset command. For example:

    ORACLE#reset spl HelloWorld.spl 

    In this case, the operator must remember that HelloWorld.spl will no be loaded on the next reboot.

Synchronizing SPL Files

When running in an HA configuration, both the active and the standby system must have the same version of the running SPL plugins installed. To facilitate configuring the standby system, the synchronize spl ACLI command has been developed. Executing this command without any arguments copies all files in the /code/spl directory from the active system to the to the standby Oracle Communications Session Border Controller overwriting any existing files with the same name.

By adding the specific filename as an argument to the synchronize spl command, the individual, specified scripts are copied between systems. For example:

ORACLE#synchronize spl HelloWorld.spl

The synchronize spl command can only be executed from the active system in a HA pair. There is no means to automatically synchronization SPL files during a save and activate of the SBC.

Maintenance and Troubleshooting

show spl

Typing show spl displays the following items:

  • The version of the SPL engine
  • The filenames and version of the SPL plugins currently loaded on the Oracle Communications Session Border Controller
  • The signature state of each plugin
  • The system tasks that each loaded plugin interacts with, enclosed in brackets.

For example:

ORACLE# show spl 
SPL Version: C1.0.0
[acliConsole] File: signed_valid_lower_version.spl version: 1 signature: signed and valid
[acliConsole] File: signed_valid.spl version: 1 signature: signed and valid
[sipd] File: signed_valid_lower_version.spl version: 1 signature: signed and valid
[sipd] File: signed_valid.spl version: 1 signature: signed and valid

Adding the task to the end of the show spl command displays only the plugin information for the specified task. For example:

ORACLE# show spl sipd
SPL Version: C1.0.0
[sipd] File: signed_valid_lower_version.spl version: 1 signature: signed and valid
[sipd] File: signed_valid.spl version: 1 signature: signed and valid

SPL Signature State

Upon executing show spl <task> , the ACLI displays SPL file information including the signature which will be in one of three states:

  1. not signed
  2. signed and valid
  3. signed but invalid

Deleting SPL Plugin Files

Deleting files from /code/spl must be performed via SFTP.

SPL Log Types

The SPL log messages can often be found in the respective task's log file when that task is set to DEBUG level.