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.
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 was enhanced, 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 SMTP - 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 webmail, email or specifed 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 (the sender and the 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 requeued as a new item.
If Use MDA queue for internal message delivery (SMTP Service) 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:
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.