# System Administrator’s Guide

# Managing and Configuring Native SMPP Communication Services

The following section describes configuration and maintenance attributes and operations for the communication service that exposes native SMPP interfaces. The sections also provide a workflow for the configuration:

- Native SMPP
- Properties for Native SMPP Facade
- Properties for Native SMPP Plug-in
- Configuration Workflow for Native SMPP Communication Service
- Provisioning Workflow for Native SMPP Communication Service
- Reference: Attributes and Operations for Native SMPP Facade
- Reference: Attributes and Operations for Native SMPP Plug-in

## Native SMPP

This section contains a description of the configuration attributes and operations available for Native SMPP network protocol plug-in instances and the Native SMPP Facade.

Applications interact with the Native SMPP Facade and the Native SMPP Plug-in instances interact with an SMPP SMSC.

Unlike other Service Facades, the Native SMPP Service Facade is deployed in the Network Tier, so applications using the SMPP Native Communication Service need to be able to connect directly to the Network Tier. The network and any firewall need to be configured to allow connecting to the ports defined for the Native SMPP Service Facade.

There is no fail-over between Network Tier servers, so in order to support high-availability features, redundant SMSCs and redundant network cards are required.

To optimize system utilization the application and the SMSC should load balance the request between all Network Tier servers.

In certain configurations, network-triggered messages for an application can arrive at a Network Tier server that does not have a bind to that application,. In this case, it is possible to turn on a feature that allows that server to place the message in a JMS queue from which a Network Tier server that does have a bind to the application can pick the message up and forward it on to the application. This is done by setting Attribute: OfflineMO of the Native SMPP Service Facade (sms_smpp_connector). Messages stay alive for a configurable length of time. After the time has elapsed, the messages are removed and an EDR is written.

Note: | When running the Native SMPP communication service, you may receive the following exception from your NT servers.

Note: | `ERROR com.bea.wlcp.wlng.legacy.smpp.connector.SmppChannelProcessor - Could not find request for received response`

Note: | This exception can be ignored

To see a | Refer to
--- | ---
Detailed list of necessary for managing and configuring the Native SMPP Facade | Properties for Native SMPP Facade
Detailed list of necessary for managing and configuring a plug-in instance | Properties for Native SMPP Plug-in
Configuration workflow | Configuration Workflow for Native SMPP Communication Service
List of operations and attributes related to management and provisioning | Provisioning Workflow for Native SMPP Communication Service
Reference of management attributes and operations for the Native SMPP Facade | Reference: Attributes and Operations for Native SMPP Facade
Reference of management attributes and operations for the Native SMPP plug-in | Reference: Attributes and Operations for Native SMPP Plug-in

## Properties for Native SMPP Facade

Property | Description
--- | ---
Managed object in Administration Console | <domain name>OCSG<server name>Communication Servicessms_smpp_connector
MBean | Domain=com.bea.wlcp.wlng Name=wlng_nt InstanceName=sms_smpp_connector Type=com.bea.wlcp.wlng.legacy.smpp.connector.management.LegacySmppMBean
Exposes this interface to applications | SMPP v3.4, Short Message Peer to Peer, Protocol Specification v3.4, Document Version:- 12-Oct-1999 Issue 1.2.
Deployment artifacts | Plugin_sms_smpp.jar and sms_smpp_connector.jar packaged in wlng_nt_sms_smpp.ear

## Properties for Native SMPP Plug-in

Property | Description
--- | ---
Managed object in Administration Console | <domain name>OCSG<server name>Communication Services<plug-in instance ID>
MBean | Domain=com.bea.wlcp.wlng Name=wlng_nt InstanceName is same as plug-in instance ID Type=com.bea.wlcp.wlng.plugin.legacy.smpp.management.SmppPluginMBeanImpl
Network protocol plug-in service ID | Plugin_sms_smpp
Network protocol plug-in instance ID | The ID is given when the plug-in instance is created, see Managing and Configuring the Plug-in Manager.
Supported Address Scheme | tel
North interfaces | com.bea.wlcp.wlng.smpp.callback.UpstreamSmppCallback com.bea.wlcp.wlng.smpp.plugin.DownstreamSmppPlugin
Service type | SMPP
Exposes to the service communication layer a Java representation of: | SMPP v 3.4
Interfaces with the network nodes using: | SMPP v 3.4
Deployment artifacts | See deployment artifacts for Native SMPP Faces, in Properties for Native SMPP Facade

## Configuration Workflow for Native SMPP Communication Service

Below is an outline for configuring the Native SMPP Communication Service using the Oracle Communications Services Gatekeeper Administration Console:

1. Using the Management Console or an MBean browser, select the MBean for the Native SMPP Service Facade. Navigate to Communication Servicessms_smpp_connector
2. Configure the behavior of the Service Facade:

- Attribute: InactivityTimeOut
- Attribute: InitiationTimeOut
- Attribute: ServerAddress
- Attribute: ServerPort
- Attribute: SessionTimeOut
- Attribute: SmscSystemId
- Attribute: TransactionTimeOut
- Attribute: OfflineMO
- Attribute: LooseBinding

3. Apply the configuration settings for the Native SMPP Facade using Operation: updateAllListenerPorts.
4. Create one or more instances of the plug-in service: see Managing and Configuring the Plug-in Manager. Use the plug-in service ID as detailed in Properties for Native SMPP Plug-in.
5. Using the Management Console or an MBean browser, select the MBean for the plug-in instance. The MBean display name is the same as the plug-in instance ID given when the plug-in instance was created.
6. Configure the behavior of the plug-in instance:

- Attribute: BindType
- Attribute: DeliverSmRespCommandStatus
- Attribute: EnquireLinkRequestTimerValue
- Attribute: EnquireLinkTimerValue
- Attribute: EsmeAddressRange
- Attribute: EsmeNpi
- Attribute: EsmePassword
- Attribute: EsmeSystemId
- Attribute: EsmeSystemType
- Attribute: EsmeTon
- Attribute: LocalAddress
- Attribute: LocalPort
- Attribute: NumberOfConnections
- Attribute: EnableDeleteAfterQuery
- Attribute: EnableDeleteAfterNotify
- Attribute: EnableDeleteAfterCancel
- Attribute: RetryTimesBeforeGiveUp
- Attribute: RetryTimesBeforeReconnect
- Attribute: RequestTimerValue
- Attribute: SmscAddress
- Attribute: SmscPort

7. Apply the configuration settings for the Native SMPP Plug-in instance using Operation: resetConnections.
8. Set up the routing rules to the plug-in instance: see Configuring the Plug-in Manager. Use the plug-in instance ID and address schemes detailed in Properties for Native SMPP Plug-in.
9. If desired, create and load a node SLA, see:

Defining Global Node and Service Provider Group Node SLAs

Managing Application SLAs

Continue with the provisioning of service provider accounts and application accounts.

## Provisioning Workflow for Native SMPP Communication Service

1. To register application instances to use the Native SMPP Communication Service use Operation: addApplicationSpecificSettings in the MBean for the Native SMPP Service Facade. Use the following operations to manage the account settings:

- Operation: listApplicationSpecificSettings
- Operation: deleteApplicationSpecificSettings

2. Apply the provisioning settings using Operation: updateAllListenerPorts.

Continue with the provisioning of service provider accounts and application accounts.

## Reference: Attributes and Operations for Native SMPP Facade

Managed object: Communication Services->sms_smpp_connector

MBean: com.bea.wlcp.wlng.legacy.smpp.connector.management.LegacySmppMBean

Below is a list of attributes and operations for configuration and maintenance:

- Attribute: ServerPort
- Attribute: ServerAddress
- Attribute: OfflineMO
- Attribute: LooseBinding
- Attribute: SmscSystemId
- Attribute: InitiationTimeOut
- Attribute: TransactionTimeOut
- Attribute: InactivityTimeOut
- Attribute: SessionTimeOut
- Operation: addApplicationSpecificSettings
- Operation: deleteApplicationSpecificSettings
- Operation: listApplicationSpecificSettings
- Operation: listListenerPortsStatus
- Operation: listOpenedPorts
- Operation: stopPort
- Operation: updateAllListenerPorts

### Attribute: ServerPort

Scope: Server

Unit: n/a

Format: Int

Specifies the default port applications use to connect to the Native SMPP Communication Service. Specific ports can be defined using Operation: addApplicationSpecificSettings.

Operation: updateAllListenerPorts must be invoked after this operation in order to update the listener port.

### Attribute: ServerAddress

Scope: Server

Unit: n/a

Format: String

Specifies the server address applications use to connect to the Native SMPP Communication Service. The address can be expressed as an IP-address or as a host name. The address or host name must resolve to a local address.

### Attribute: OfflineMO

Scope: Server

Unit: n/a

Format: Boolean

Specifies whether or not the JMS-based routing functionality for network-triggered messages is turned on. If it is on, a message that comes in from the network to an NT server that does not have an active bind to the appropriate application can be placed in a JMS queue from which another server that does have an active bind can fetch it and send it to the application. The default is false.

The time that the message stays alive in the JMS queue is configurable. The default value is 3600000 milliseconds. To change this value, in the administrative console:

1. Select Services ->Messaging->JMS Modules.
2. Click on WLNGJMSResource. The Settings page opens.
3. On the Configuration tab, click LegacySMSConnectionFactory. The Settings for LegacySMSConnectionFactory page opens.
4. On the Configuration tab, select the Default Delivery sub-tab.
5. Make your changes to the Default Time-to-Live attribute.
6. Click the Save button.
7. Click the Activate Changes button in the Change Center.

### Attribute: LooseBinding

Scope: Server

Unit: n/a

Format: Boolean

Controls what will happen on application binds/unbinds.

If true, the following applies:

As long as there are transmitting capable connections (TX, TRX) setup from applications, TX and TRX connections will be kept open to SMSCs.

As long as there are receiving capable connections (RX, TRX) setup from applications, RX and TRX connections will be kept open to SMSCs.

If false, the binding rules are more strict:

As long as there are TX connections setup from applications, TX connections will be kept open to SMSCs.

As long as there are RX connections setup from applications, RX connections will be kept open to SMSCs.

As long as there are TRX connections setup from applications, TRX connections will be kept open to SMSCs

The default is true.

### Attribute: SmscSystemId

Scope: Cluster

Unit: n/a

Format: String

Specifies the SMSC system ID. This is sent to an application upon a successful BIND request from the application.

### Attribute: InitiationTimeOut

Scope: Cluster

Unit: Seconds

Format: Int

Specifies the maximum time-out value for the time period between an application’s network connection setup request and BIND request.

If the time-out value is reached, the connection is terminated.

Use 0 (zero) for no time-out.

### Attribute: TransactionTimeOut

Scope: Cluster

Unit: Seconds

Format: Int

Specifies the maximum time-out period allowed between the Native SMPP service sends a request to an application and a response to the request is received.

If the time-out value is reached, the connection is terminated.

Use 0 (zero) for no time-out.

### Attribute: InactivityTimeOut

Scope: Cluster

Unit: Seconds

Format: Int

Specifies the maximum time-out period allowed for inactivity between an application’s request towards the Native SMPP service.

If the time-out value is reached, the connection is terminated.

Use 0 (zero) for no time-out.

### Attribute: SessionTimeOut

Scope: Cluster

Unit: Seconds

Format: Int

Specifies the minimum time-out period between the Native SMPP service’s sending of ENQUIRE LINK requests to an application.

Use 0 (zero) for no time-out.

### Operation: addApplicationSpecificSettings

Scope: Cluster

Specifies connection details for an application with a given application instance ID.

Signature:

    addApplicationSpecificSettings(applicationInstanceGroupId: String, acceptPort: int, maxSession: int, subsequentOperationsAllowed: Boolean, notificationEnabled: Boolean, addressRange: String)

Table 32-1 addApplicationSpecificSettings
addApplicationSpecificSettings |
--- | ---
Parameter | Description
applicationInstanceGroupId | ID of the application instance group the settings are valid for.
acceptPort | The port that the application is allowed to bind to. Use negative value to allow any port.
Note: | Operation: updateAllListenerPorts must be invoked after this operation in order to update the listener port if a specific port (non-negative value) is given.
maxSession | The number of concurrent sessions the application is allowed to establish. Use negative value to allow any number of concurrent sessions.
subsequentOperationsAllowed | Specifies if the application is allowed to perform operations on a previously sent short message. The subsequent operations are: querySm replaceSm cancelSm Enter: true to allow false to deny Setting this to false reduces the resource utilization by the Native SMPP Communication Service since it does not need to track each request in its Store.
notificationEnabled | Specifies if the application is allowed to receive network-triggered messages or not. If allowed, it can send the operations bind_tranceiver and bind_receiver. Enter: Enter: true to allow false to deny
addressRange | Specifies the address range to listen for network-triggered short messages. Only messages that are sent to this address range will be forwarded to the application. The address range is expressed using regular expressions. When binding a receiver or transceiver, the address_range in the bind operation must be equal to this value. Otherwise the bind will be rejected.See Appendix A in SMPP Protocol Specification v3.4. This setting is only valid if the application is allowed to receive network-triggered messages. Example: ^1234

### Operation: deleteApplicationSpecificSettings

Scope: Cluster

Deletes connection details for an application with a given application instance ID. When removed, the application has no longer access to the Native SMPP Service.

Operation: updateAllListenerPorts must be invoked after this operation in order to update the listener port.

Signature:

    deleteApplicationSpecificSettings(applicationInstanceGroupId: String)

Table 32-2 deleteApplicationSpecificSettings
deleteApplicationSpecificSettings |
--- | ---
Parameter | Description
applicationInstanceGroupId | ID of the application instance group to delete settings for.

### Operation: listApplicationSpecificSettings

Scope: Cluster

Displays a list of the application instance IDs that have connection details specified.

Signature:

    listApplicationSpecificSettings()

Table 32-3 listApplicationSpecificSettings
listApplicationSpecificSettings |
--- | ---
Parameter | Description
- | -

### Operation: listListenerPortsStatus

Scope: Cluster

Displays a list of all ports that the Native SMPP Facade listens to and their status.

The format of the list is:

    Port: <Port number> Status: <Status indicator>

Where <Status indicator> is one of the following:

- waiting for start
- normal
- waiting for remove

Signature:

    listListenerPortStatus()

Table 32-4 listListenerPortStatus
listListenerPortStatus |
--- | ---
Parameter | Description
- | -

### Operation: listOpenedPorts

Scope: Cluster

Displays a list of all ports that the Native SMPP Facade listens to. A list of all port in status: normal. See Operation: listListenerPortsStatus.

Signature:

    listOpenedPorts()

Table 32-5 listOpenedPorts
listOpenedPorts |
--- | ---
Parameter | Description
- | -

### Operation: stopPort

Scope: Cluster

Stops the Native SMPP Facade from listening to a given port. The Native SMPP Facade must previously have opened the port for listening.

Signature:

    stopPort(port: int)

Table 32-6 stopPort
stopPort |
--- | ---
Parameter | Description
port | The port number to stop listening on.

### Operation: updateAllListenerPorts

Scope: Cluster

Creates all server sockets based on the current configuration for all registered applications, see Operation: listApplicationSpecificSettings.

This operation must be invoked after any of these operations have been performed:

- Operation: addApplicationSpecificSettings
- Operation: deleteApplicationSpecificSettings

It must also be invoked after any changes to Attribute: ServerPort

Signature:

    updateAllListenerPorts()

Table 32-7 updateAllListenerPorts
updateAllListenerPorts |
--- | ---
Parameter | Description
- | -

## Reference: Attributes and Operations for Native SMPP Plug-in

Managed object: Communication Services-><plug-in instance ID>

MBean: com.bea.wlcp.wlng.plugin.legacy.smpp.management.SmppPluginMBeanImpl

Below is a list of attributes and operations for configuration and maintenance:

- Attribute: ActiveStatus (r)
- Attribute: BindType
- Attribute: DeliverSmRespCommandStatus
- Attribute: EnquireLinkRequestTimerValue
- Attribute: EnquireLinkTimerValue
- Attribute: EsmeAddressRange
- Attribute: EsmeNpi
- Attribute: EsmePassword
- Attribute: EsmeSystemId
- Attribute: EsmeSystemType
- Attribute: EsmeTon
- Attribute: LocalAddress
- Attribute: LocalPort
- Attribute: NumberOfConnections
- Attribute: EnableDeleteAfterQuery
- Attribute: EnableDeleteAfterNotify
- Attribute: EnableDeleteAfterCancel
- Attribute: RetryTimesBeforeGiveUp
- Attribute: RetryTimesBeforeReconnect
- Attribute: RequestTimerValue
- Attribute: SmppVersion (r)
- Attribute: SmscAddress
- Attribute: SmscPort
- Operation: listConnectionsStatus
- Operation: resetConnections

### Attribute: ActiveStatus (r)

Read-only.

Scope: Server

Unit: n/a

Displays the state of the connection between the plug-in instance and the SMSC. True if the transmitter is successfully connected to the SMPP server; false if not.

### Attribute: BindType

Scope: Server

Unit: n/a

Format: int enumeration [1, 3]

Specifies how the plug-in shall bind to the SMSC.

Use:

- 1 to bind as Transceiver
- 2 to bind as Transmitter
- 3 to bind as Receiver

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: DeliverSmRespCommandStatus

Scope: Server

Unit: n/a

Format: int

Specifies how the plug-in shall respond to an SMSC if a network triggered short message cannot be delivered to the application that subscribed for notifications on incoming short messages.

It specifies the error code to used in the command_status field, see section 5.1.3 command_status in SMPP Protocol Specification v3.4.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EnquireLinkRequestTimerValue

Scope: Server

Unit: milliseconds

Format: int

Specifies the value of the timer used when sending Enquire Link requests.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EnquireLinkTimerValue

Scope: Server

Unit: seconds

Format: int

Specifies the Enquire Link Timer value. The plug-in instance performs an Enquire Link operation to the SMSC to keep the connection alive. The time between enquiries is specified by this timer value.

Note: | To turn off the sending of Enquire Link, set the timer value to 0.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EsmeAddressRange

Scope: Server

Unit: n/a

Format: String formatted as a regular expression.

Specifies the ESME address range. Specifies the address range of the SMSes to be sent to the plug-in instance by the SMSC. The address range is specified as a UNIX regular expression.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EsmeNpi

Scope: Server

Unit: n/a

Format: int

Specifies the ESME Numbering Plan Indicator (NPI).

Used for destination address and as a default for originating address. Also used for both destination address and originating address during bind operation. Use:

- 0 for Unknown
- 1 for ISDN (E163/E164)
- 3 for Data (X.121)
- 4 for Telex (F.69)
- 6 for Land Mobile (E.212)
- 8 for National
- 9 for Private
- 10 for ERMES
- 14 for Internet (IP)
- 18 for WAP Client ID

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EsmePassword

Scope: Server

Unit: n/a

Format: string

Specifies the password used by the plug-in instance when connecting to the SMSC as an ESME.

### Attribute: EsmeSystemId

Scope: Server

Unit: n/a

Format: string

Specifies the system ID used by the plug-in instance when connecting to the SMSC as an ESME.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EsmeSystemType

Scope: Server

Unit: n/a

Format: string

Specifies the system type used by the plug-in instance when connecting to the SMSC as an ESME.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EsmeTon

Scope: Server

Unit: n/a

Format: Integer

Specifies the ESME Type Of Number (TON). Used for destination address and as a default for originating address. Also used for both destination address and originating address during bind operation. Use:

- 0 for UNKNOWN
- 1 for INTERNATIONAL
- 2 for NATIONAL
- 3 for NETWORK
- 4 for SUBSCRIBER
- 5 for ALPHANUMERIC
- 6 for ABBREVIATED
- 7 for RESERVED_EXTN

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: LocalAddress

Scope: Server

Unit: n/a

Format: String

Specifies the local server address used when connecting to the SMPP SMSC. The address can be expressed as an IP-address or as a host name. The address or host name must resolve to a local address.

Enter `default` to not specify an address implicitly, but to use the default address of the server.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: LocalPort

Scope: Server

Unit: n/a

Format: Integer [1-65535]

Specifies the local port the plug-in uses when connecting to the SMPP SMSC.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: NumberOfConnections

Scope: Server

Unit: n/a

Format: Integer

Specifies the maximum number of connections to use towards the SMPP SMSC.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: EnableDeleteAfterQuery

Specifies whether to delete SMPP session information from storage after the receipt of query response with final message state.

The final message states contains all states except Enroute(=1)

### Attribute: EnableDeleteAfterNotify

Specifies whether to deleteSMPP session information from storage after receipt of the delivery report with final message state.

The final message states contains all states except Enroute(=1)

### Attribute: EnableDeleteAfterCancel

Specifies whether to cancel SMPP session information from storage after receipt of the cancel sm response.

### Attribute: RetryTimesBeforeGiveUp

Scope: Server

Unit: n/a

Format: int

Specifies the maximum number of times to try to reconnect to the SMPP SMSC.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: RetryTimesBeforeReconnect

Scope: Server

Unit: n/a

Format: int

Specifies the maximum number of times to try to connect to the SMPP SMSC before a reconnect is attempted.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: RequestTimerValue

Scope: Server

Unit: milliseconds

Format: int

Specifies the value of the timer used when sending requests to the SMSC.

The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: SmppVersion (r)

Read only.

Displays the version of the SMPP protocol being used.

### Attribute: SmscAddress

Scope: Server

Unit: n/a

Format: string

Specifies the SMSC address as an IP-address or a host name. The setting will not be applied until the plug-in service is restarted or Operation: resetConnections is performed.

### Attribute: SmscPort

Scope: Server

Unit: n/a

Format: string

Specifies the port used by the SMSC. The setting will not be applied in until the plug-in service is restarted or Operation: resetConnections is performed.

### Operation: listConnectionsStatus

Scope: Cluster

Displays a list of the status of each connection with the SMSC.

The information returned is either:

    Connections status: [deactivated]

or

    Connections status: [activated]

       bindType: [<Bind type>]

       Configured connections: [<number of connections>]

       bind links : [ <number of bound links> ]

<Bind Type> is one of:

- BIND_TRANCEIVER
- BIND_RECEIVER
- BIND_TRANSMITTER

Signature:

    listConnectionsStatus()

Table 32-8 listConnectionsStatus
listConnectionsStatus
Parameter | Description
--- | ---
- | -

### Operation: resetConnections

Scope: Cluster

Resets the connections to the SMSC.

This operation needs to be invoked in order for the settings in the configuration attributes of the plug-in instance to take affect.

Signature:

    resetConnections()

Table 32-9 resetConnections
resetConnections
Parameter | Description
--- | ---
- | -