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.
- Copy the SPL plugins to a Oracle Communications Session Border Controller.
- Configure the Oracle Communications Session Border Controller to recognize and run the plugins.
- 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:
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.
- Run a save-config and activate-config.
- Run a save-config and reboot the system.
- Run the reset spl command.
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