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