Oracle SPL Plug-ins

An SPL is an Oracle signed plug-in that integrates with the Oracle Communications Session Border Controller (SBC) application software to quickly add feature extensions without requiring a software upgrade or causing operational impacts. Each SPL plug-in is an executable, customized script that is based on the Lua open scripting language. Oracle SPL plug-ins allow you to add enhancements when you need them, rather than waiting for the next software release.

The following illustration shows how an SPL plug-in integrates with the SBC platform.

Application stack, with LUA plug-ins.

Supported SPL Engines

Each release supports a number of versions of the SBC Programming Language (SPL) engine, which is required to run SPL plug-ins on the Oracle Communications Session Border Controller (SBC).

View the Release Notes to see which SPL engines are supported for your software release.

Use the show spl command to see the version of the SPL engine running on the SBC.

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.

Upload an SPL Plug-in

The SBC comes preloaded with many SPLs. Use show spl to see the preloaded SPLs.

To upload a non-preloaded SPL to the SBC, SFTP the plugin file to the SBC's /code/spl directory.

Add an SPL Plug-in to the Configuration

Before the SBC executes an SPL, you must add the SPL plug-in file to the global spl-config element. SPLs that are not preloaded must also be configured in the plugins element.

The system executes SPL plug-ins in the order they are configured.

  1. Access the spl-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# system
    ORACLE(system)# spl-config
    ORACLE(spl-config)# 
  2. Add the SPL to the global SPL options parameter.
    Use the table below to identify the right argument when configuring one of the preloaded SPLs.
    SPL File Name Option
    SipHeaderExtensionMetadata.lua sip-header-extension-metadata
    HeaderNat.lua header-nat
    ComfortNoiseGeneration.lua comfort-noise-generation
    NttMsgConverter.lua ntt-msg-converter
    SurrogateRegister.lua surrogate-register
    UniversalCallId.lua Universal-CallId
    ORACLE(spl-config)# spl-options +header-nat
    

    Note:

    If you are enabling a preloaded SPL, type done and skip the rest of these steps.
  3. To enable a previously uploaded SPL, access the plugins element.
    ORACLE(spl-config)# plugins
    ORACLE(spl-plugins)#
  4. name—The name of the SPL file.
    ORACLE(spl-plugins)# name HelloWorld.spl
  5. Type done to save your work.
  6. Save and activate the configuration.

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.

Synchronize SPL Plug-in Files Across an HA Pair

In a High Availability (HA) configuration, both the active and the standby systems require the same version of the SBC Programming Language (SPL) plug-in script.

SPL files do not automatically synchronize when saving and activating your configuration. To configure the standby system, use the synchronize spl command from the active node in the HA pair.

ORACLE# synchronize spl

If you have any SPL files in the /code/spl directory on the active system, these files will sync and overwrite any existing SPL files in the /code/spl directory on the standby system.

To copy individual files, add the specific filename as an argument to the synchronize spl command. For example:

ORACLE#synchronize spl /code/spl/MediaPlayback.1.0.spl
ORACLE#synchronize spl /code/spl/LyncEmergencyCall.1.0.spl
ORACLE#synchronize spl /code/spl/SipHeaderExtensionMetadata.1.2.spl
ORACLE#synchronize spl /code/spl/UniversalCallId.1.spl
ORACLE#synchronize spl /code/spl/ComfortNoiseGeneration.1.1.spl