Extension SDK for BEA WebLogic Network Gatekeeper
SMS and MMS messaging
The following sections contain descriptions of plug-ins of SMS and MMS type:
Network plug-in
SMS Interfaces
All SMS messaging interfaces are defined in the package com.incomit.resources.messaging.
Figure 10-1 SMS interface
Interfaces that should be implemented by the plug-in are listed in the table below.
Table 10-1 Interfaces that shall be implemented by a plug-in for SMS messaging
Interface
|
Description
|
Resource
|
Initial object obtained from Plug-in Manager. Base interface implemented by all plug-ins.
|
MessagingResource
|
Manager object that is used to create and release messaging sessions. Used for message based user interaction.
|
MessagingResourceExt
|
The extended SMS messaging plug-in interface provides functions for sending and deleting messages, and to enable and disable notification listeners.
|
Interfaces that are implemented by the Messaging SC.
Table 10-2 Interfaces that are implemented by the Messaging SC, used by a SMS messaging plug-in.
Interface
|
Description
|
MessageListener
|
Call back interface for handling network initiated messages and delivery receipts for sent messages. Delivery receipts are returned when the message has been delivered to the terminal.
|
MessageListenerExt
|
Extended call back interface for handling network initiated messages. and delivery receipts for sent messages. Delivery receipts are returned when the message has been delivered to the terminal.
|
MessagingResource
MessagingResource inherits from the Resource interface and contains some datatypes and adds an method for using messaging sessions.
Table 10-3 MessagingResource
Method
|
Description
|
createMessagingSession
|
Create a message based user interaction session.
|
releaseMessagingSession
|
Release a previously created messaging session. Used for message based user interaction.
|
sendMessage
|
Deprecated.
|
addDefaultMessageListener
|
Deprecated.
|
addMessageListener
|
Deprecated.
|
removeMessageListener
|
Deprecated.
|
MessagingResourceExt
MessagingResourceExt is an extended version of the MessagingResource interface and should be used instead of this.
Table 10-4 MessagingResourceExt
Method
|
Description
|
sendMessageCtx
|
Sends a message.
|
deleteMessageCtx
|
Deletes a message from the underlying storage.
|
enableMessagingNotificationCtx
|
Enable message notification for a specified set of notification criteria to the Messaging SC. Not used by existing messaging plug-ins, since all incoming messages are routed automatically to a mailbox.
|
enableMessagingUINotificationCtx
|
Enable message notification for a specified set of notification criteria to the Messaging user interaction SC.
|
disableMessagingNotificationCtx
|
Disable messaging notification for a specific notification assignment ID.
|
disableMessagingUINotificationCtx
|
Disable messaging notification for a specific notification assignment ID.
|
MessageListener
MessageListener listens for events originating in the plug-in. There may be several listeners registered for each plug-in.
This interface inherits from the SCS interface. It makes it possible to narrow a SC object retrieved from the SC Manager to an MessageListener.
Table 10-5 MessageListener
Method
|
Description
|
messageArrived
|
Deprecated.
|
messageResult
|
Results of previous send message operations are reported using this interface.
|
messagingSessionAborted
|
Indications that a previously created messaging session has been aborted are reported using this method.
|
MessageListenerExt
MessageListenerExt listens for events originating in the plug-in. There may be several listeners registered for each plug-in. This interface extends the MessageListener interface and should be used instead of that.
This interface inherits from the SCS interface. It makes it possible to narrow a SC object retrieved from the SC Manager to an MessageListener.
Table 10-6 MessageListenerExt
Method
|
Description
|
messageArrivedCtx
|
Will be used for notifying a listener that a network initiated message has arrived.
|
sendResultCtx
|
Will be used for notifying a listener that a application initiated message has been delivered to the terminal.
|
messageResultExt
|
A listener will be notified if a message was sent by the underlying plug-in. Holds a status code with more detailed information on the status of the message.
|
MMS Interfaces
All MMS messaging interfaces are defined in the package com.incomit.resources.messaging.
Figure 10-2 MMS interface
Interfaces that should be implemented by the plug-in are listed in the table below.
Table 10-7 Interfaces that shall be implemented by a plug-in for MMS messaging
Interface
|
Description
|
Resource
|
Initial object obtained from Plug-in Manager. Base interface implemented by all plug-ins.
|
MmsResource
|
Used for sending MM Messages.
|
MmsResourceExt
|
The extended MMS messaging interface provides functions for sending and deleting messages, and to enable and notifications.
|
MmsResourceExt2
|
The extensions to the extended MMS messaging interface provides functions for sending messages.
|
Interfaces that are implemented by the Messaging SC.
Table 10-8 Interfaces that are implemented by the Messaging SC, used by a MMS messaging plug-in.
Interface
|
Description
|
MmsListener
|
Call back interface for handling network initiated MMS messages.
|
MmsListenerExt
|
Extended call back interface for handling network initiated MMS messages. Also provides functionality for receiving notifications about a sent MMS.
|
MmsListenerExt2
|
Extended call back interface for handling network initiated MMS messages.
|
MmsResource
MmsResource is the base interface for sending MMS messages.
Table 10-9 MmsResource
Method
|
Description
|
sendMmMessage
|
Sends an MMS message.
|
addDefaultMmsListener
|
Deprecated.
|
removeDefaultMmsListener
|
Deprecated.
|
MmsResourceExt
MmsResourceExt is extended interface to for sending MMS messages.
Table 10-10 MmsResourceExt
Method
|
Description
|
sendMmMessageCtx
|
Sends an MMS message. Results of messages sent using this method are delivered to any service capability instance registered using the SC Manager.
|
deleteMessageCtx
|
Delete an MMS message from the underlying storage
|
enableMmMessagingNotificationCtx
|
Enable message notification for a specified set of notification criteria.
|
MmsResourceExt2
MmsResourceExt2 is extended interface to for sending MMS messages.
Table 10-11 MmsResourceExt2
Method
|
Description
|
sendMmMessageExtCtx
|
Sends an MMS message. Results of messages sent using this method are delivered to any service capability instance registered using the SC Manager.
|
MmsListener
MmsListener listens for events originating in the plug-in. There may be several listeners registered for each plug-in.
This interface inherits from the SCS interface. It makes it possible to narrow a SCS object retrieved from the SC Manager to an MmsListener.
Table 10-12 MmsListener
Method
|
Description
|
mmMessageArrived
|
Deprecated.
|
mmMessageResult
|
Results of previous send message operations are reported using this interface.
|
MmsListenerExt
MessageListenerExt listens for events originating in the plug-in. There may be several listeners registered for each plug-in. This interface extends the MmsListener interface and should be used instead of that.
This interface inherits from the SCS interface.It makes it possible to narrow a SC object retrieved from the SC Manager to a MmsListenerExt. It also extends the MmsListener interface.
Table 10-13 MmsListenerExt
Method
|
Description
|
mmMessageArrivedExt
|
Will be used for notifying a listener that a network initiated message has arrived.
|
sendResultCtx
|
Will be used for notifying a listener that a application initiated message has been sent to the underlying network.
|
MmsListenerExt2
This interface shall be implemented to be able to receive messages from an MMS plug-in. It also extends the MmsListenerExt interface.
Table 10-14 MmsListenerExt2
Method
|
Description
|
mmMessageArrivedExt2
|
Will be used for notifying a listener that a network initiated message has arrived.
|
Use cases for SMS
ESPA Service Capability registers SC
The following sequence diagram shows how the ESPA Messaging SC registers itself in the SC Manager. When creating a messaging plug-in, it is not necessary to perform this task, but it is included to illustrate that the SC must register itself and that the plug-in use the registered information.
Figure 10-3 ESPA Service Capability registers in the SC Manager
Details about the sequence diagram:
- First, the MessageListenerExt implementation fetches the SLEESCSRegistration interface from the SLEESCSManager.
- It then registers the MessageListenerExt interface with the SC Manager (on SLEESCSRegistration). The class implementing MessageListenerExt is used by the plug-in to notify the ESPA Messaging SC on events related to the outcome of sendMessageCtx operations, see Application-initiated send message, and messageArrivedCtx, see Network-triggered messages, operations.
Application-initiated send message
The following sequence diagram show a basic send message interaction between the Messaging SC and the Plug-in. Note that a plug-in shall uses the SC manager to get an ESPA SC to deliver the delivery receipts, via MessageListenrExt interface. This is due to that it may take long time before a delivery request is sent back to the plug-in, so ESPA Messaging SC itself is acting as a listener for delivery reports.
Figure 10-4 Application-initiated send message
Details about the sequence diagram:
- Prior to this sequence the ESPA Messaging SC has received a plug-in. See General usage (application-initiated events).
- The MessagingResourceClient application performs a SendMessageCtx call to The implementation of the MessagingResourceExt interface. This interface is implemented in the plug-in.
- The plug-in fetched the ESPA SC to report the result of the sendMessageCtx call. The ESPA SC listener interface, the implementation of the MessagelistenerExt interface, is fetched by performing a getSCSCtx operation on the SLEESCSDiscovery interface.
- The MessagelistenerExt interface returned is narrowed to the appropriate object by calling narrow on MessageListenerHelper. This class is auto generated when generating Java stubs from the MessageListenerExt IDL interface.
- When sendMessageCtx is performed on the plug-in's implementation of the MessagelistenerExt interface, it is the plug-ins responsibility to convert the request to a protocol-specific request and send the request to the network element.
- If the sendMessageCtx operation contains more than one destination address, that is it contains a sendlist, the plug-in calls sendResultExt on the ESPA SC as soon as the network node has received the send message request, and acknowledged it. The ESPA Messaging SC will create a CDR with completion status partial.
- When the destination terminal(s) have received the message, and acknowledged it to the plug-in, via the network node, the plug-in calls sendResultExt on the ESPA SC. The ESPA Messaging SC will then create a CDR.
Network-triggered messages
This example shows how a basic network-triggered message may be handled. For each new incoming message the plug-in should use the SC Manager to obtain a listener interface. Prior to this sequence, an application must have registered for notifications on network-initiated messages. It is not necessary for ESPA enable specific listeners for incoming traffic, since the ESPA messaging SC listens to all incoming traffic and distributes the message to a mailbox. Application register listeners that listens for events, such as new message arrived events, on the mailbox.
Figure 10-5 Network-triggered message
Details about the sequence diagram:
- The plug-in receives a network triggered message from the underlying telecom network.
- The plug-in fetches an appropriate ESPA SC based on a set of properties and a type identifier given in getSCSCtx(...). The type identifier is SCS.MESSAGING_TYPE in for ESPA Messaging (defined in resource_common.idl).
- A list of ESPA Messaging SCs are returned. The SLEESCSDiscovery interface provides load balancing, so it is recommended to use the first in the list.
- The MessagelistenerExt interface returned is narrowed to the appropriate object by calling narrow on MessageListenerHelper. This class is auto generated when generating Java stubs from the MessageListenerExt IDL interface.
- messageArrivedCtx is invoked by the plug-in on the MessageListenerExt interface implemented by the ESPA Messaging SC.