EMG 5.3.2 - User's Guide
Enterprise Messaging Gateway (EMG) is a messaging platform that can act as a SMS/MMS gateway, protocol converter or some other kind of mediation gateway.
Usually the job of EMG is to relay messages, performing message conversion and translation depending on the connectors used to receive and send the message.
Enterprise Messaging Gateway licensing is based on number of messages per second per server. More specifically it is the total number of messages that all incoming connectors, server-wide, will accept per second. If, for example, there are two incoming connectors in a system licensed for 30 messages per second and they are fed with 20 messages per second each, the EMG server will impose a small delay so that in practice the connectors will process on average 15 messages per second each.
EMG is also licensed per server so that one license permits installation of EMG on one specific server. The license is generated for a specific server identity (hostid). For Solaris systems this equals to the output from the command hostid and for Linux it is the MAC, or hardware, address for the first network adapter in the system, interface eth0.
There is no license-related limitation as to how many connectors can be defined or how many clients or SMSC connections an EMG server can handle. One server can handle multiple client and SMSC connections using different protocols.
In order to be able to move a license from one server to another a new license needs to be generated by Nordic Messaging Technologies or one of its representatives.
The message is the most important entity in EMG. A message is represented as a unique object, identified by its unique message id, that is assigned a number of properties of which some can be set by the user and some are set by the system. Each property is a key-value pair, where the numeric key identifies the property. Usually a message are assigned at least the following, user-level, properties:
These properties are referred to as MGP options, where MGP stands for the Messaging Gateway Protocol. A list of key values can be found in the chapter "MGP options".
3.3 Binary messages and User-Data Header (UDH)
EMG supports binary, or 8-bit, messages including User-Data Header (UDH). This enables sending of ringtones, logos, WAP push, OTA and other messages containing other information than plain text. When converting from one protocol to another message and optionally splitting messages, UDH properties are preserved.
3.4 Long messages
According to the GSM specification one message (SMS) cannot exceed 160 septets or 140 octets in length. However, sometimes it is necessary to send more information than that in one message. This is solved by splitting the message into multiple messages and indicate that they belong together by using the GSM 3.40 UDH feature "concatenated message". EMG handles both splitting of messages and setting the corresponding UDH option automatically. In EMG one message is translated into one or more Physical Data Units (PDUs). Each PDU corresponds to one transferred SMS.
Starting with EMG 3, EMG supports sending and receiving multimedia messages, MMS. Protocols such as MM7, EAIF and PAP are supported. Basic conversion functionality is also included, for example e-mail to MMS and MMS to e-mail conversion.
Messages are sent and received through so called connectors in the server. Each connector is of type incoming and outgoing, exists in one or more instances and implement one of the supported protocols. Outgoing connectors support failover and load balancing via the routing table.
The process of passing a message from one connector to another in order for it to reach its final destination is referred to as routing. The routing decision is based on the information in the routing table and message and connector properties.
3.8 Message life cycle
A message that is relayed through EMG passes a number of stages:
When a message is deleted or queried, first the routing log is checked. If the message has been relayed (usually to an SMSC) the endpoint is queried if possible. Message status RELAYED indicates that the message has been relayed but the final result is unknown. However, status DELIVERED indicates that the message has been delivered to the recipient. When a message is sent to an SMSC the message status is RELAYED until further information is available while if for example a HTTP connector delivers the message the status will be DELIVERED.
Messages placed in connector queues, or orphaned, can be made to expire when the validity period, if present for the message, is reached.
When running without message persistence option messages are stored in RAM during their life cycle and will be lost if server is stopped ungracefully. With the message persistence option messages, DLRs and keyword sessions are persisted on file for their life time.
3.9 Routing log
When a message is processed by EMG it is entered into the routing log. The routing log is used to keep track of the most recent messages, their state and what connector they were received and sent out at. The maximum number of entries in the routing log is defined by the keyword ROUTELOGSIZE. When the log exceeds the maximum size the oldest entry will be discarded.
When an incoming message cannot be routed or is routed to a connector that does not exist it will be added to a special queue for so called orphaned messages. The maximum size of this queue is defined by the keyword ORPHANSSIZE. When the queue exceeds the maximum size the oldest entry will be discarded. If the value for this keyword is set to 0 orphaned messages will be discarded directly.
When the server is refreshed the queue for orphaned messages will be processed and if, for example, the routing table has changed orphaned messages may be successfully re-routed to a destination connector.
3.11 Protocol conversion
The different protocols supported by EMG differs somewhat in functionality and possibilities. This is especially true when going from an older version of a protocol to a newer version. This implies that some kind of conversion must take place. Some parameters may need to be added, some converted and some maybe even removed.
3.11.1 CIMD2 (Nokia)
CIMD2 supports two different types of Message Centers, SMSC and USSD. Some options are specific for one of the message center types.
The SMSC distinguishes between three types of SME:s (Short Message Entities, in this case the EMG application):
EMG supports CIMD2 2-0en and compatible.
3.11.2 SMPP (SMS Forum)
This protocol, in version 3.4, is designed to support a variety of different messaging centers in different network types and hence is the protocol that provides the largest amount of options. However, for SMS in a GSM network many of the options are not used. SMPP has evolved to be the number one messaging standard and is widely used.
EMG can be configured to use both the submit_sm and the data_sm SMPP operations depending on protocol version (specified by INTERFACEVERSION) and the value of DEFAULT_SMSCOP. The submit_multi_sm operation is currently not supported.
SMPP 3.4 is a much more thorough specification than SMPP 3.3.
EMG supports SMPP 3.3, SMPP 3.4 and SMPP 5.0 and compatible.
3.11.3 UCP/EMI (CMG)
There a number of different operations for sending a message that remain from earlier versions of the protocol but which are now obsolete. The default operation and the operation that should be used is the Submit Short Message (51) operation.
EMG supports UCP/EMI 3.5, 4.0 and 4.6 and compatible.
3.11.4 OIS (Sema)
OIS is supported over TPC/IP. No authentication is used for these connections but full support for text, binary and messages using UDH is available.
EMG supports OIS according to the version 5.8 specification.
EMG is licensed based on messages per second. Above 140 messages per second the license is unlimited. The achieved performance depend on a number of factors: Hardware, operating system, protocol used, clients, SMSC etc. However, connectors using the messaging protocols supported (CIMD2, SMPP and UCP) are capable to process more than 4.000 messages per second in an ideal environment.
3.13 Plugins and custom connectors
It is possible to extend and customize EMG functionality through use of plugins and custom connectors. Plugins can be used to "hook in" to EMG at different places of the message life-cycle. Custom connectors can be used to implement custom protocols.
Plugins can be implemented in C or Perl. Custom connectors can be implemented in C.
More information is available on http://www.nordicmessaging.se.
Support is available from your reseller and requires a valid support agreement. If you are missing information about your reseller, please contact Infoflex Connect via e-mail: firstname.lastname@example.org.