SMPP Adapter

Introduction

The Spotfire Streaming Short Message Peer-to-Peer Protocol (SMPP) Adapter supports writing SMPP services that can act in an External Short Message Entity (ESME) role.

The adapter enables sending and receiving of short text messages (SMS) over the Internet, and is able to handle traffic of 3000 to 5000 messages per second.

Adapter Properties

This section describes the properties you can set for this adapter, using the various tabs of the Properties view in StreamBase Studio.

General Tab

Name: Use this required field to specify or change the name of this instance of this component. The name must be unique within the current EventFlow module. The name can contain alphanumeric characters, underscores, and escaped special characters. Special characters can be escaped as described in Identifier Naming Rules. The first character must be alphabetic or an underscore.

Adapter: A read-only field that shows the formal name of the adapter.

Class name: Shows the fully qualified class name that implements the functionality of this adapter. If you need to reference this class name elsewhere in your application, you can right-click this field and select Copy from the context menu to place the full class name in the system clipboard.

Start options: This field provides a link to the Cluster Aware tab, where you configure the conditions under which this adapter starts.

Enable Error Output Port: Select this checkbox to add an Error Port to this component. In the EventFlow canvas, the Error Port shows as a red output port, always the last port for the component. See Using Error Ports to learn about Error Ports.

Description: Optionally, enter text to briefly describe the purpose and function of the component. In the EventFlow Editor canvas, you can see the description by pressing Ctrl while the component's tooltip is displayed.

Operator Properties Tab

Property Type Description
Connect At Startup check box If enabled, the adapter connects to the server upon startup.
Instance ID string Unique ID of an SMPP instance. If not provided, the adapter generates one for you.
Host string Hostname for the Short Message Service Center (SMSC) server to use.
Port string Port number for the SMSC server to use.
System ID string The system ID (username) for connecting to an SMSC server. Supports up to 15 characters.
Password string The password for connecting to SMSC server. Supports up to 8 characters.
System Type string Optional value for system_type in bind request.
Transaction Timeout(MS) int Timeout of transactions (in ms).
Bind Timeout(MS) int Timeout of bind operations (in ms).
Keep Alive Interval(MS) int Interval (in ms) between ENQUIRE_LINK requests. The adapter periodically sends these to check the session is still active. Set to 0 to disable (not recommended). If set, must be greater than 100.
Retry Interval(MS) int Interval (in ms) between re-bind attempts. Must be greater than 100.
Max Number of Retries int A maximum number of reconnection retries. A negative number means no limit.
Log Level   Controls the level of verbosity the adapter uses to send notifications to the console. This setting can be higher than the containing application's log level. If set lower, the system log level is used. Available values, in increasing order of verbosity, are: OFF, ERROR, WARN, INFO, DEBUG, TRACE.

Advanced Properties Tab

Property Type Description
Bind Type string Type of bind request to use, must be one of TX, RX or TRX (transmitter, receiver or transceiver).
Address TON string Type of Number (TON), for specifying the type of address of an originator address (OA) or destination address (DA). For example: national or international.
Address NPI string Defines the numeric plan indicator (NPI) to be used in the ESME originator address parameters.
Thread Pool Size int Number of threads created that are used for reconnection action.
Data Coding Schema drop list Data Coding Schema.

Cluster Aware Tab

Use the settings in this tab to enable this operator or adapter for runtime start and stop conditions in a multi-node cluster. During initial development of the fragment that contains this operator or adapter, and for maximum compatibility with releases before 10.5.0, leave the Cluster start policy control in its default setting, Start with module.

Cluster awareness is an advanced topic that requires an understanding of StreamBase Runtime architecture features, including clusters, quorums, availability zones, and partitions. See Cluster Awareness Tab Settings on the Using Cluster Awareness page for instructions on configuring this tab.

Concurrency Tab

Use the Concurrency tab to specify parallel regions for this instance of this component, or multiplicity options, or both. The Concurrency tab settings are described in Concurrency Options, and dispatch styles are described in Dispatch Styles.

Caution

Concurrency settings are not suitable for every application, and using these settings requires a thorough analysis of your application. For details, see Execution Order and Concurrency, which includes important guidelines for using the concurrency options.

Control Port

Description

Use the control port to send action commands to the adapter. Tuples enqueued on this port connect or disconnect the adapter to the message center, as well as list all existing sessions.

Control Port Schema

Field Data Type Description
command string The command tells the adapter what action to take. Available commands are connect, disconnect, and list.
instanceId string Unique instance ID on which action is taken.
param.host string Hostname for the SMSC server to use.
param.port string Port number for the SMSC server to use.
param.systemId string Value for system_id in the bind request. Must be 15 characters or less.
param.password string Value for password in bind request. Must be 8 characters or less.
param.systemType string Optional value to categorize the type of ESME (External Short Message Entity) that binds to the SMSC.
param.transactionTimeoutMS int Connection timeout (in ms). Default is 10000.
param.keepAliveIntervalMS int Interval (in ms) between ENQUIRE_LINK requests. The adapter periodically sends requests to verify the session is still active. Set to 0 to disable (not recommended). If set, the value must be greater than 100. Default is 5000.
param.retryIntervalMS int Interval (in ms) between re-bind attempts. Must be greater than 100. Default is 5000.
param.maxNumberOfRetries int A maximum number of reconnection retires. Negative number means no limit. Default is 10.
param.bindTimeoutMS int Timeout (in ms) for bind operations. Default is 60000.

Data Port

Description

Use the data port to send SMS messages through the adapter.

Data Port Schema

Field Data Type Description
data list List of data to be sent.
data.instanceId string Unique existing instance ID, indicating which instance to be used.
data.shortMessage string Message content.
data.sourceAddress string Defines the address of SME (Short Message Entity) which originated this message.
data.destinationAddress list(string) Defines list of destination SME addresses. For mobile-terminated messages, this is the directory number of the recipient.
data.scheduleDeliveryTime string This parameter specifies the scheduled time at which the message delivery should be first attempted. It defines either the absolute date and time or relative time from the current SMSC time at which delivery of this message will be attempted by the SMSC. For example: 2020-01-22 16:45:19.000-0500. This is optional.
data.serviceType string The service type parameter indicates the SMS Application service associated with the message. For cellular messaging, use CMT.
data.sourceAddrTON String Type of Number (TON), for specifying the type of address of an originator address (OA). For example: national or international. Default is unknown.
data.sourceAddrNPI String Defines the Numeric Plan Indicator (NPI) to be used in the SME address parameters. Default is unknown.
data.destAddrTON String Type of Number (TON), for specifying the type of address of a DA. For example: national or international. Default is unknown.
data.destAddrNPI String Defines the Numeric Plan Indicator (NPI) to be used in the SME address parameters. Default is unknown.

Control Status Output Port

Field Data Type Description
Status string The name of the status.
Message string Status message.
InstanceId string Instance ID of the SMPP session.
Host string Hostname for the SMSC server to use.
Port int Port number for the SMSC server to use.
InstanceNumber int Number of valid instances.
Instances string Valid instances' Ids.
Attempt int Number of retries.
MaxRetryTimes int Max retry times.
InstanceNumber int Number of valid instances.
InputTuple tuple Input tuple.
time timestamp The date and time the status information was produced.

The following lists all available status:

  • Connected—Connection established.

  • Already Connected—Try to connect to a connected session.

  • Connect Failed—Connection failed.

  • Disconnected—Disconnect a session.

  • Reconnecting—Try to reconnect to a session.

  • Reconnected—Reconnected to a session.

  • Instance Info—Information pertaining to the session.

  • Input Error—Input error.

  • Error—An error occurred.

Data Status Output Port

Field Data Type Description
Status string The name of the status.
Message string Status message.
InstanceId string Id of SMPP instance.
DeliveryStatus string The status of the delivery report.
DeliveryErrorCode string Error code of the delivery report.
DeliveryText string Message content delivered.
InputTuple tuple Input tuple.
MessageId string This Id identifies the submitted short message for later use (delivery receipt, QUERY_SM, CANCEL_SM, REPLACE_SM).
time timestamp The date and time the status information was produced.

The following lists all available status messages and related information:

  • Error—An error occurred.

  • Delivery—Received delivery report.

  • Message Submitted—Message submitted to MC.

  • Message Not Sent—Message not sent.

Related Topics