SBC Processing Language (SPL)

SPL provides a means for Oracle to craft solutions and features to unique problems and deploy them in a portable plugin-type software package. SPL only works for SIP messaging. You may only run signed SPL files on your SBC available directly from Oracle.

Upon boot, the SBC compiles all scripts in the /code/spl directory that are configured in the spl-config configuration element. If there is an error parsing 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 SBC will load all SPL plugins contained in that package. You may also configure the SBC 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 SBC 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 SBC executes the plugin files in the order in which they were configured.

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

  1. Access the plugins configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# system
    ORACLE(system)# spl-config
    ORACLE(spl-config)# plugins
    ORACLE(plugins)#
  2. name—Enter the name of a plugin file in the /code/spl directory that you wish the SBC to execute.
    • You can enter the name of the SPL Package file in the name parameter.
      ORACLE(spl-plugins)# name SPL_PACKAGE.PKG
    • You can enter a single SPL Plugin that exists in a package file as follows:
      ORACLE(spl-plugins)# name SPL_PACKAGE:MODIFY_HEADER

    Note:

    Use the show spl command to view available SPLs.
  3. Type done to save your work.
ORACLE# co t
ORACLE(configure)# system 
ORACLE(system)# spl-config 
ORACLE(spl-config)# plugins
ORACLE(spl-plugins)# name HeaderNat.1.0.spl 
ORACLE(spl-plugins)# done
plugins
        state                      enabled
        name                       HeaderNat.1.0.spl

ORACLE(spl-plugins)#

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

SPL files are executed in one of the following ways.

  1. Run a save-config and activate-config.
  2. Run a save-config and reboot the system.
  3. Run 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>.
ORACLE# reset spl HelloWorld.spl 

Operators must remember that HelloWorld.spl will not be loaded on the next reboot.

Note:

Oracle suggests that scripts are only refreshed during system downtime.

If an non-preloaded SPL file exists in the /code/spl directory, but is not configured in the spl-files parameter, it will be ignored when the SBC loads all SPL plugins. You may still manually load an SPL file directly with the reset command.

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

Delete 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.