Technical Specifications

Hardware Modems

SMS gateway supports Timer.

For Linux, the Serial communication library is used.

SMS gateway supports the SIM PIN.

ReadTimeout is set to 16 seconds.

The SMS gateway supports SMS Center number.

Modem Recovery

Modem auto-recovery is supported. If more than two check calls fail, the modem is re-initialized and reopened. This fixes a problem with unplugged modem and plugged back in. SIM PIN has two second sleep applied, device close – 1 second sleep. If SMS sending fails, waiting for a new event is initiated (loop preserved).

The recovery mode fires up only if no data is read, the ERROR response does not trigger it.

  • Enhanced modem communication logs – the complete message size is possible to find in logs [nnn].
  • Can handle +CME ERROR: and +CMS ERROR: responses.
  • GSM modem auto-recovery – if SMS cannot be sent 3 times then modem is re-initialized.
  • AT+CMGF is a part of device initialization (applies to READ and SEND).
  • Handles the +CMS ERROR: 304 properly – deletes the SMS and removes it from the queue.
  • Ctrl+Z is sent when initializing the device (to recover from receive mode).

Selective Gateways

Gateways have their IDs that you can use to send SMS through a specific gateway by specifying the URL parameter &id=<ID> or selecting the gateway in the GUI where available. SMS Service – Logging – each log contains the gateway ID prefix, so you can see which gateway the log belongs to.

Content filters

SMS gateway supports content filters for incoming and outgoing messages. Any existing SMTP rules are converted to XML format during upgrade to version 10.

This allows deeper system integration by the means of Execute application, Execute SQL Statement actions.

SMS gateway directs incoming messages without any body to trash.

SMTP Transport

Also on each gateway there is the From: edit which lets you rewrite the From: address of the SMS email. This allows you to reply to received SMS emails and the reply will be sent directly to the SMS sender.
Each incoming SMS to e-mail has the To: header set with the value of the final recipient (not applied if Rules are used to deliver message).

Non-Delivery Reports for text messages sent via email or WebClient work exactly the same way as SMTP NDR: a warning if message is still not delivered after some time (the General – Delivery – Warning option) and if the message cannot be delivered and expires (SMS API setting) you will receive the final NDR on message delivery failure. The original text is always included. This applies only if the real sender is known (sent from WebClient, email or specified in the SMS API).

In the Incoming Rules tab, there are two options. The first one checks for #email# inside the SMS and if found, the SMS will be delivered to that email account. The other option is a smart approach to record all sent messages history (sender and destination number) and if incoming SMS is coming from a phone number we previously sent a message to, the sender from history is read and message is sent to that sender (within a time frame). This makes it possible to send SMS over the SMS gateway and receive an answer to that SMS without defining any rules on the SMS server.

SIP Transport

Rules functions for SIP transport are implemented: METHOD (create a regex restriction to SIP method), STOP (stop processing the SIP packet) and SMS (send SMS with parameters e.g. "1" or "maxmsgs=1").

The RESPONSE function is implemented (allows to send your own response to a SIP request). Example of SIP "MESSAGE" command with a SMS gateway:

<NUMBER>^([0-9]).*</NUMBER><METHOD>MESSAGE</METHOD><SMS>1</SMS><RESPONSE>200 OK</RESPONSE>

The SMS rule action integrates smoothly with the SMS service and its authentication just like SMTP or XMPP SMS gateway, that means users already authenticated and granted access to the SMS service do not need to authenticate to SMS service again.

XMPP Transport

XMPP – SMS gateway support is implemented. It shares the library with an email gateway (email.dll/email.so), supports smsparams module parameters which will be added to each sent SMS to the SMS service, if destination JID does not contain '%' for domain delimiter the destination is not an email address but SMS; e.g. JID: john%doe.com@email.domain.com (results in email delivery), JID: 123242342@sms.domain.com (results in SMS delivery), you can use the email gateway service definition (email.domain.com) or create a new sms.domain.com.

Queue Handling

Queue mechanism is implemented which ensures that each item not sent gets re-queued as a new item.

If Use MDA queue for internal message delivery (Mail Service – General – Advanced) is turned on, forwarding to SMS and IM works properly too.

By default, SMS queue expiration is set to 5 days.

International characters

SMS gateway supports both the Unicode and GSM 0338 charsets. Conversion between these two charsets is implemented along with UDH 7bit 00h padding.

Concatenated (long) messages

The gateway allows sending long (concatenated) messages in Binary, Unicode and 8bit formats and also receiving of long messages. SAR support is implemented for:

  • message delivery, long messages are automatically supported via the SMSHTTP function, if data=variable longer then allowed (Unicode 70, 8bit 140, 7bit 160) then the message is automatically split into smaller parts and sent with SAR (message concatenation - long messages).
  • incoming messages.

SyncML Push

SMS service can be used for SyncML 1.2 notifications (e.g. SAN via SMS sent to a Funambol SyncML client).

SyncML Push supports both OMA and OTA configuration SMS, allows sending configuration SMS via GUI and also supports SMS gateway ID.

APIs

You can send an SMS via PHP (API->SendSMS), so HTTP gateway can be created easily. A new function – SMSHTTP can be used. It has the second parameter – BypassAuth – if authorization is required for SMS Gateway and Bypass is true, the request will still be processed.

ValidateAccount() supports SMS.