Quantcast
Channel: NowSMS
Viewing all 92 articles
Browse latest View live

Using NowSMS with Check Point Connectra

$
0
0

Disclaimer: This information is neither validated nor endorsed by Check Point Software Technologies.

It has come to our attention that the Check Point Connectra unified remote access solution has a security option to send a token via SMS as part of the remote user authentication process.
To facilitate this option, the Check Point Connectra Gateway would be configured to transmit the token via an SMS service provider. While SSL/TLS is available to secure the transmission to the SMS service provider, some end users may not have full confidence in the security mechanisms at the SMS service provider.
An alternative SMS solution is to use the Now SMS & MMS Gateway product (or the entry level NowSMS Lite product) in conjunction with a GSM modem.
The NowSMS server and GSM modem can be installed within the customer network, with appropriate firewall and access controls.
For sending SMS messages, the Check Point Connectra Gateway is configured with an HTTP URL to connect over the local network to the NowSMS server. This HTTP connection is performed each time an SMS message needs to be sent.
The NowSMS server requires a GSM modem with an active SIM card subscription to a mobile operator. To the mobile operator, the GSM modem looks like any other mobile phone. The NowSMS server is able to exchange SMS messages with other mobile phones through the GSM modem.
The configuration of the SMS service provider in the Check Point Connectra Gateway requires the following information:
SMS provider URL – For connecting to a NowSMS Server, we recommend the following setting: http://ip.addr:port/?unused=$APIID&user=$USERNAME&password=$PASSWORD&PhoneNumber=$PHONE&text=$MESSAGE
ip.addr would be the IP address of your NowSMS server installation.
port is the “Port Number for the web interface” configured in NowSMS, which defaults to 8800.
Username – This refers to the “User Name” of a user account created on the NowSMS Server under the “SMS Users” page.
Password – This refers to the “Password” of a user account created on the NowSMS Server.
API ID – This parameter is not relevant to NowSMS can be set as blank, or with the text “unused”.
Once these parameters have been properly configured, whenever the Check Point Connectra Gateway needs to send an SMS message, it will connect to the NowSMS server using HTTP, and the SMS message will be transmitted using whatever type of SMSC connection has been configured in NowSMS.
For more information on the Now SMS & MMS Gateway, or NowSMS Lite, please visit http://www.nowsms.com. For additional technical information, visit our discussion forum at http://www.nowsms.com/messages.

T-Mobile (USA) 3G WebConnect USB Modem – Not for MMS

$
0
0

Update – February 1, 2011: Problems sending MMS messages with a 3G modem on T-Mobile USA can be resolved by using alternate MMSC settings:

GPRS APN: epc.tmobile.com

WAP Gateway Address: http://216.155.165.50:8080

MMS Server URL: http://mms.msg.eng.t-mobile.com/mms/wapenc

End-users of T-Mobile USA have been asking us for feedback on modems that can work on T-Mobile’s 1700Mhz (AWS) US 3G network for sending and receiving SMS and MMS messages. (Other tri-band 3G modems typically only support 850Mhz/1900Mhz/2100Mhz.)

Unfortunately, the only GSM/3G modem that is currently offered by T-Mobile is the WebConnect USB stick (Huawei UMG181).
Like most mobile operators, T-Mobile assumes that you will be using the USB stick modem for internet access, not for sending and receiving SMS and MMS messages. As such, T-Mobile is blocking this device from accessing the “wap.voicestream.com” APN which is used for both WAP and MMS connectivity, and only allowing it to connect to the full internet access APNs with an appropriate data plan (with an inappropriate price).

Even if you take a SIM card from an existing mobile phone device with MMS support and put it into the USB stick, T-Mobile blocks the device from connecting to “wap.voicestream.com”, which is a requirement for sending or receiving MMS message.

As a result, it is not currently possible to use this modem to send or receive MMS messages on the T-Mobile USA network.

This modem appears to do a decent job of sending and receiving SMS messages. However, there is no real speed benefit compared to a decent EDGE modem like the Option ICON 322. And the EDGE modems have the benefit of also being able to support sending and receiving MMS messages.

For discussions of alternative GSM modems, see http://www.nowsms.com/tag/gsm-modem.

Of course, a true 3G modem is desirable for sending and receiving MMS messages, because MMS messages are more bandwidth intensive. We are investigating the Option ICON 452 as a possible alternative for T-Mobile USA users, as for 3G it supports 850Mhz/1700Mhz/1900Mhz/2100Mhz. Based upon experience with other Option ICON modems, we expect that to be an excellent modem, as long as T-Mobile does not block it from the MMS Access Point!

(Side note … in some other parts of the world, the GSM 900Mhz spectrum is starting to be re-allocated for use as 3G. The Option ICON 451 substitutes 900Mhz for 1700Mhz and looks like a good solution for parts of the world that are starting to see 900Mhz 3G coverage.)

SMS and MMS with the Alcatel One Touch X200 or X060 USB Modem

$
0
0

The Alcatel One Touch X200 and X060 USB Modems are good (but not great) modems to use with NowSMS to send and receive SMS and MMS messages.

For alternative modems, please see our other reviews: http://www.nowsms.com/tag/gsm-modem

For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Alcatel One Touch X200 or X060, please see the NowSMS Quick Start Guide at http://www.nowsms.com/doc/quick-start-guide.

To point out one initial point of confusion when configuring NowSMS to work with the Alcatel One Touch modem, the modem driver installed for the modems is named “Modem Interface”. When adding the modem to NowSMS, you must select the modem named “Modem Interface” (which is a less than intuitive choice of name).
The primary problem when using the Alcatel One Touch X200 or X060 modem with NowSMS is that each time your PC is rebooted, the modem will be inaccessible to NowSMS until the Alcatel “HSPA USB Modem” software that ships with the modem is loaded. Until that software is run, the modem functions only as a USB disk drive, and there is no modem functionality.

If you want to run NowSMS automatically each time your PC is restarted, after installing NowSMS and verifying that it works with the Alcatel One Touch modem, reboot your PC. If NowSMS is unable to access the modem after a reboot, you will need to follow the following steps.

We have been unable to identify a solution for this problem, other than configuring the Alcatel “HSPA USB Modem” software application to run at startup.
For some reason, on Windows Vista and Windows Server 2008 systems, the Alcatel “HSPA USB Modem” software requires that it be run with administrative rights.
Therefore, the best way to configure this software to be started automatically when the PC reboots is to configure the Windows Task Scheduler to run it at startup.

The Windows Task Scheduler can be accessed via the “Schedule Tasks” option under “Administrative Tools” in the Windows Control Panel.

Select “Create Task” to create a new task to load the Alcatel “HSPA USB Modem” software at startup.

On the “General” page, give the task a name, such as “Alcatel HSPA USB Modem”, so that you can easily identify the task later. Under “Security Options”, select “Run whether user is logged on or not”, and “Run with highest priveleges”. The other settings on this page can be left at their defaults.

On the “Triggers” page, select “New”, and then specify to “Begin the Task” “At Startup”. Press “OK” to save the trigger.

On the “Actions” page, select “New”, and then specify the “Action” to be “Start a program”. In the “Program/Script” field, press “Browse” and locate “HSPA USB MODEM.EXE”, which is usually located in the “Program Files\HSPA USB MODEM” or “Program Files (x86)\HSPA USB MODEM” directory. Press “OK” to save the action.

On the “Conditions” page, clear any of the checked conditions, so that the program is always run at startup.

On the “Settings” page, check “Stop the task if it runs longer than”, and specify “5 minutes”. Also check “If the running task does not end when requested, force it to stop”.

Press “OK” to save this task. You will be prompted for your username and password.

Reboot your PC to confirm that NowSMS can now access the modem properly when the PC is restarted.

For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Alcatel One Touch X200 or X060, please see the NowSMS Quick Start Guide at http://www.nowsms.com/doc/quick-start-guide.

For alternative modems, please see our other reviews: http://www.nowsms.com/tag/gsm-modem

Frequencies supported by the Alcatel One Touch X200:

  • 3G/UMTS/HSDPA/HSUPA – 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&T USA)
  • EDGE/GPRS – 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)
  • HSPA Max Performance: Download speed – 7.2 Mbps; Upload speed – 2 Mbps
  • UMTS Max Performance: Download speed – 384 Kbps; Upload speed – 384 Kbps
  • EDGE Max Performance: Download speed – 247.4 Kbps; Upload speed – 123.7 Kbps
  • GPRS Max Performance: Download speed – 85.6 Kbps; Upload speed – 42.8 Kbps

The Alcatel One Touch X060 is similar to the X200, except that its HSDPA download speed peaks at 3.6 Mbps, and there is no HSUPA support, limiting HSPA upload support to 384 Kbps.

NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Does not support “Direct to Modem” (“Default” mode is ok).

SMS Delivery Receipts are NOT supported.

The Alcatel One Touch X200 and X060 modems do not support an external antenna (uses internal antenna only).

Sending SMS from Microsoft Excel

$
0
0

A recent posting on the NowSMS Discussion Board has some interesting information on sending an SMS a link within an Excel spreadsheet.

The gist of the posting is that you cannot use the Excel HYPERLINK command to do this. It would be logical to build a NowSMS URL to send a message, but the HYPERLINK command connects to the URL twice, resulting in duplicate messages being sent.
As an alternative, Des created a VBScript macro instead. This macro initiates an HTTP connection to NowSMS to send a message, dynamically creating a message based upon cell values in the Excel spreadsheet. I’ve quoted the details from Des below:

The alternative approach is to write a simple VBScript macro instead.

Today was my first attempt at writing one … but I did manage to create a button in a spreadsheet, where when you click on the button, it reads data from the spreadsheet to send out an SMS.

Here’s what I did …

From the Developer menu in Excel, I added an Active X Command Button.

I then associated the following code with my command button:

Private Sub CommandButton1_Click()
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://192.168.0.222:8800/"
objHTTP.Open "POST", URL, False
objHTTP.send ("&PhoneNumber=" + Range("a9").Text + "&text=" + Range("a10").Text)
End Sub

In this particular case, I am extracting the phone number from cell A9, and the text to send from A10.

Once I exit design mode, I can click on the button, and it triggers this code, which makes the HTTP submission to NowSMS.

I’m using HTTP POST instead of GET to avoid some URL encoding issues.

It’s not as easy as using HYPERLINK, but hopefully you can adapt this to your scenario.



Post any questions or commands in the discussion board posting at http://www.nowsms.com/discus/messages/1/41882.html.

Using NowSMS as a WAP Push Proxy Gateway (PPG)

$
0
0

NowSMS supports the Open Mobile Alliance (OMA) Push Access Protocol (PAP), which allows other applications to use NowSMS as a WAP Push Proxy Gateway (PPG).

Even though NowSMS has its own MMSC capability, we do have customers who are using NowSMS as a push proxy gateway for another vendor’s MMSC.
In addition to providing PPG support for MMS, NowSMS can be used as a push proxy gateway for other types of push messages, including, but not limited to SyncML DM, SyncML DS, Wireless Village/IMPS, OMA Digital Rights Management, OMA E-Mail Notification (EMN), Service Indication and Service Load.
To post a push message via the PAP interface, perform an HTTP POST to the “web” port configured for the NowSMS web interface (not the MMSC), posting to a URL of “/pap”. If user authentication is enabled in NowSMS, user identification can be included as URL parameters (e.g., “/pap?user=username&password=password”), or via an HTTP Basic Authentication “Authorization:” header.
A PAP post is a multipart MIME request, with the first MIME part being the PAP control document that specifies message recipient(s). The second MIME part is the data to be pushed.
An example of a service indication push being sent via PAP is shown below:
—————–BEGIN EXAMPLE—————–
POST /pap?user=username&password=password HTTP/1.0
Content-Type: multipart/related; boundary=mime-boundary; type=”application/xml”
Content-Length: xxxxx

–mime-boundary
Content-Type: application/xml

–mime-boundary
Content-Type: application/xml

<?xml version=”1.0″?>
<!DOCTYPE pap PUBLIC “-//WAPFORUM//DTD PAP 2.0//EN” “http://www.wapforum.org/DTD/pap_2.0.dtd”
[<?wap-pap-ver supported-versions="2.0,1.*"?>]>
<pap>
<push-message push-id=”9fjeo39jf084@pi.com”>
<address address-value=”wappush=xxxxxxxxx/type=user@ppg.operator.com”></address>
</push-message>
</pap>
–mime-boundary
X-Wap-Application-Id: x-wap-application:wml.ua
Content-Type: text/vnd.wap.si

<?xml version=”1.0″?>
<!DOCTYPE si PUBLIC “-//WAPFORUM//DTD SI 1.0//EN”
“http://www.wapforum.org/DTD/si.dtd”>
<si>
<indication href=”http://www.xyz.com/email/123/abc.wml” created=”2009-10-25T15:23:15Z”
si-expires=”2009-11-03T00:00:00Z”>
You have 4 new emails
</indication>
</si>
–mime-boundary–
—————–END EXAMPLE—————–
Note that the “/type=user@ppg.operator.com” included in the WAP Push address specification is optional for NowSMS, and will be ignored, as only the relevant destination phone number is parsed from the request.
NowSMS will perform XML to WBXML conversions for WAP push of the following content types:
  • text/vnd.wap.si
  • text/vnd.wap.sl
  • application/vnd.oma.drm.rights+xml
  • text/vnd.wap.emn+xml (or application/vnd.wap.emn+xml)
  • text/vnd.wap.co
  • text/vnd.wap.connectivity-xml
Other types (including non WBXML based encodings such as “application/vnd.wap.mms-message” for MMS or “application/vnd.syncml.ds.notification” for SyncML SAN/DS) must be submitted via the appropriate binary encoding.
NowSMS supports the following text values for “X-Wap-Application-id”:
  • x-wap-application:push.sia
  • x-wap-application:wml.ua
  • x-wap-application:wta.ua
  • x-wap-application:mms.ua
  • x-wap-application:push.syncml
  • x-wap-application:loc.ua
  • x-wap-application:syncml.dm
  • x-wap-application:drm.ua
  • x-wap-application:enm.ua
  • x-wap-application:wv.ua
Other “X-Wap-Application-id” header values must be submitted to NowSMS using their assigned decimal or hexadecimal value rather than the text name. (If using a hexadecimal value, preface the value with “0x” to indicate hexadecimal format.)
Further information on the WAP Push Access Protocol can be found from by downloading the WAP-247-PAP specification from http://www.openmobilealliance.org/tech/affiliates/wap/wapindex.html
Note that NowSMS does not support guaranteed delivery or delivery notifications.
NowSMS does not support base64 encoding for PAP content, binary content should be posted as 8-bit data using Content-transport-encoding: binary. We further recommend that the MIME part that includes the binary content have a “Content-Length:” header to avoid the potential of extra bytes (such as blank lines) being interpreted as part of the binary stream.
NowSMS sends WAP Push messages using connection-less WDP (Wireless Datagram Protocol) over SMS. SMSC connection from the NowSMS Push Proxy Gateway can use either SMPP, UCP/EMI or CIMD2. GSM modem connections can also be used as the SMSC connection for smaller test environments.
Special considerations exist for WAP Push in CDMA and CDMA2000 environments, namely the SMSC needs to support WDP Adaptation for SMPP. This is described in more detail at http://www.nowsms.com/support/bulletins/tb-nowsms-010.htm.

SMS and MMS with the Novatel Merlin XU870 ExpressCard Modem

$
0
0

If you are using NowSMS in a laptop with an available ExpressCard slot, the Novatel Wireless Merlin XU870 ExpressCard Modem is a good modem to use with NowSMS to send and receive SMS and MMS messages.

This modem supports HSDPA up to 7.2 Mbps (although locating the appropriate firmware driver update seems to be a challenge, without it, it is limited to 3.6 Mbps). That is good for receiving MMS.

However, the modem does not support HSUPA, limiting it to 384 Kbps for uploads and sending MMS.

Although we have yet to test it, the Merlin X950D would likely be a better choice for MMS, as it claims to support HSUPA up to 2.1 Mbps (Note: the X950D requires a firmware update to enable HSUPA and there may be some difficulty locating the firmware update). SMS speeds should not be a difference between the two modems.

Drivers for this modem can be found on the Novatel Wireless web site at http://www.novatelwireless.com/index.php?option=com_content&view=article&id=220&Itemid=272. (If this direct link is broken, navigate from http://www.novatelwireless.com/support/.)

There are no special considerations for using the Novatel XU870 modem with NowSMS. However, it should be noted that this modem does NOT support delivery receipts.

For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Novatel Wireless Merlin XU870, please see the NowSMS Quick Start Guide at http://www.nowsms.com/doc/quick-start-guide.

Frequencies supported by the Novatel Merlin XU870:

  • 3G/UMTS/HSDPA/HSUPA – 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&T USA)
  • EDGE/GPRS – 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)
  • HSDPA Max Performance: Download speed – 7.2 Mbps; Upload speed – 384 Kbps

Bug Sending Long Binary SMS Messages to Java Apps on Motorola Devices

$
0
0

One of the more interesting technical support incidents of the past week comes from Mohit Kumar Sethi at 3i Infotech Consumer Services Ltd.

Mohit is using NowSMS Lite to send binary SMS messages to a Java application that his company is developing.

He noticed that when sending SMS binary messages longer than 140 bytes, the messages were received correctly by Nokia and SonyEricsson devices, however many Motorola devices received corrupted messages.

In GSM environments, a single SMS message can be no longer than 140 bytes.

When you send a text message, as long as the text only contains characters that are included in the GSM 7-bit character set , 160 7-bit characters are compressed into 140 8-bit bytes to produce the 160 character limit that we are so familiar with. (Note: 160 * 7 = 140 * 8 )

There’s more general discussion of SMS message size limits in the article at http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit.

But back to Mohit’s problem…

When sending a binary SMS message longer than 140 bytes, it has to be segmented into multiple SMS messages. A special header is added to each physical SMS message so that the receiving client knows that it is a multipart SMS message that must be reassembled by the client. These headers are known as segmentation or concatenation headers. 6 bytes (8-bits each) are required for these concatenation headers in each physical SMS message.

These headers are placed in the User Data Header (UDH) field of the message, but they do count against the overall size limit of the message.

As a result, a long binary SMS message will be divided into 134 byte segments. Or 153 characters per segment for standard text messages. Or 67 Unicode characters per segment for Unicode text messages.

Mohit observed that with various Motorola RAZR and SLVR models, the received message would lose one byte for each of these segments.

He had his applications on the phones send long binary SMS messages back in to NowSMS.

When his application on a Nokia or SonyEricsson device sent a long binary SMS message, it generated a User Data Header like this: 0B0504232923290003070301

0B is the length of the user data header.
05 indicates that source and destination port information is present in the message.
04 indicates the length of the source and destination port information.
2329 2329 indicates source and destination ports of 2329.
00 indicates that the message is segmented using an 8-bit reference number.
03 indicates the length of the segmentation headers.
07 is the 8-bit reference number for the segmented message.
03 is the number of segments in the overall message.
01 is the number of the current segment (i.e,. 1 of 3).

Long binary messages sent by the Motorola devices were different. A typical user data header looked like this: 0C080400460301050423292329

0C is the length of the user data header.
08 indicates that the message is segmented using a 16-bit reference number.
04 indicates the length of the segmentation headers.
0046 is the 16-bit reference number for the segmented message.
03 is the number of segments in the overall message.
01 is the number of the current segment (i.e,. 1 of 3).
05 indicates that source and destination port information is present in the message.
04 indicates the length of the source and destination port information.
2329 2329 indicates source and destination ports of 2329.

Whether the segmentation headers or port information headers was not significant. But what was significant was that the Motorola device was generating messages that used 16-bit reference numbers.

Mohit determined that when the Motorola device received a long binary message using an 8-bit reference number, it converted this to a 16-bit reference number. If the overall message length including UDH was 140 before this conversion, the conversion would cause the last byte of data in that segment to be lost.

The Motorola device didn’t seem to have any problems with standard long text messages being sent to the SMS client on the device, or with long binary WAP push messages. The bug seems to be in the part of the device code that routes messages to Java applications.

To make a long story short, this is an annoying bug. And if you’re sending messages to Java applications, you may encounter it.

To deal with this scenario, we added a configuration option to NowSMS and NowSMS Lite, which would cause NowSMS to use 16-bit reference numbers when generating concatenated multipart messages. By default, NowSMS uses 8-bit reference numbers, which allows the most characters to be fit in a single SMS.

When 16-bit reference numbers are used, message length per segment rules change. For long text messages, instead of 153 characters per segment, only 152 characters per segment can be achieved.

For Unicode messages, instead of 67 characters per segment, only 66 characters per segment can be achieved.

For binary messages, 133 bytes of binary data can be included per segment, instead of 134 bytes.

This 16-bit reference number support was added in the 2009.11.04 release of NowSMS. This support will be carried through to future releases. For now v2009.11.04 has been made available as a special release at http://www.nowsms.com/download/nowsms20091104.zip (standard version) and http://www.nowsms.com/download/lite20091104.zip (NowSMS Lite).

To enable 16-bit reference numbers, edit SMSGW.INI, and under the [SMSGW] section header, add ConcatRef16Bit=Yes.

Note that when this setting is applied, 16-bit reference numbers are only used when NowSMS performs the segmentation (message submitted either via HTTP, or via SMPP using a single message_payload submission)

NowSMS does not resegment messages that have already been segmented by the submitting client.

For more about sending SMS messages to J2ME apps, see http://www.nowsms.com/sms-port-number.

NowSMS Group Text Messaging

$
0
0
The NowSMS Group Text feature is designed to facilitate group communications over SMS.
At it’s core, it’s about sending a single text message, and having that text message automatically forwarded to a group of people.
NowSMS Group Text is a free add-on for the Now SMS & MMS Gateway and NowSMS Lite.

NowSMS Group Text will only work with NowSMS or NowSMS Lite versions 2008.06.03 or later. It will not work with earlier versions of NowSMS.

NowSMS Group Text is a work in progress. Before making the first official release available, we wanted to make a pre-release available for download, and get feedback from existing NowSMS customers.
The best way to explain NowSMS Group Text is to describe some of the different possible usage scenarios.
Smaller teams and workgroups can use NowSMS Group Text to easily share information and communicate as a group. Any member of a group can send a text message that is automatically forwarded and rebroadcast to the entire group.
Larger teams and workgroups can limit which group members are allowed to send a broadcast message to the entire group. Authorised users can send broadcast messages to the group, while standard users only receive these broadcast messages.
It is also possible for end users to opt-in and opt-out of group communications by sending text commands to the NowSMS Group Text server via SMS. Group managers and/or event organisers can create groups and invite users to subscribe to group broadcasts by sending a text message to the NowSMS Group Text Server, freeing them of the need to manually manage subscriber lists.
NowSMS Group Text is implemented using the 2-way command interface of NowSMS, and is compatible with any SMSC interface that supports both sending and receiving SMS messages (GSM modems, SMPP, UCP/EMI, CIMD2). It is also possible to receive SMS message using one SMSC interface, such as a GSM modem, while sending outbound messages via a different SMSC connection, such as an SMPP or HTTP based provider.
Installing NowSMS Group Text
NowSMS Group Text will only work with NowSMS or NowSMS Lite versions 2008.06.03 or later. It will not work with earlier versions of NowSMS.
The Group Text add-on can be downloaded at http://www.nowsms.com/download/grouptext.zip.
For product support, please visit the discussion forum at http://www.nowsms.com/grouptext.
The current pre-release version of the NowSMS Group Text feature requires the manual copying of 2 files to the NowSMS program directory (usually C:\Program Files\NowSMS or C:\Program Files (x86)\NowSMS on 64-bit versions of Windows): SMSGROUPER.EXE and SMSGROUPCMD.EXE.
In NowSMS, on the “2-way” page of the configuration dialog, SMSGROUPER.EXE must be installed as a 2-way command.
To define SMSGROUPER.EXE as a 2-way command, use the following settings:
  • SMS Command Prefix = *
  • Command To Execute = “C:\Program Files\NowSMS\smsgrouper.exe” /s @@SENDER@@ /r @@RECIP@@ /t @@FULLSMS@@
  • Command returns response text = checked
For most installations, “Receive Phone Number(s)” can be left blank. Leaving this field blank means that the SMSGROUPER command will process all received SMS messages. If you have multiple GSM modems or are receiving SMS messages for multiple phone numbers or short codes, then you should specify the phone number or short code that is to be allocated for Group Text in this field.
Creating a Group
The current user interface for NowSMS Group Text is designed to allow groups to be created and maintained via SMS.
A command line utility is also provided so that admin commands can be issued from the computer running the NowSMS Group Text server. All of the administrative commands supported by the SMS interface are supported from the command line interface by running SMSGROUPCMD.EXE and including the command on the command line after SMSGROUPCMD.
Before any groups can be created, a special user account must be created on the NowSMS server in the “SMS Users” area. The user name give to this user account should be the phone number of the owner (or administrator) of the group. This phone number is not the phone number allocated for sending/receiving group text messages. This is a phone number that is allowed to send administrative commands into the group text server for group creation and/or maintenance. In most cases, this phone number should be defined in full international format starting with a “+” (e.g., +4477777777777).
Once this user account is created, it is possible to send a message from the group owner phone number into the group text server to create a group.
This can be done by simply sending a text message that says: CREATE groupname (where groupname is the name of the group to be created).
Note: When using the command line interface, it is necessary to include the owner phone number following the group name. (For example: SMSGROUPCMD CREATE groupname ownerPhoneNumber)
Several parameters can be specified in the CREATE command to specify group attributes. These parameters can be added to the end of the CREATE command.
PUBLIC or PRIVATE – If the group is PUBLIC (default), then anyone will be allowed to join the group. If the group is PRIVATE, any join requests will be forwarded to the group owner and/or administrator for approval before joining.
MOD, UNMOD or BROADCAST – This specifies whether or not group members are allowed to submit messages that are forwarded/rebroadcast to the entire group. An UNMODerated (default) group means that and any group member can send a message to the group. A MODerated group means that specially authorised group members can send a message to the group, messages sent by regular group members will be forwarded to the group owner and/or administrator for approval before being sent to the group. A BROADCAST group means that only specially authorised group members can send a message to the group.
NOTIFY or NONOTIFY – This specifies whether or not the group owner and/or administrators are notified with a text message whenever a member joins or leaves the group. NONOTIFY (default) means that the group owner is not notified. NOTIFY means that the group owner is notified whenever a new member joins the group, or an existing member leaves the group.
Modifying Group Properties
These group attributes can be changed after a group has been created by sending the command ADMIN groupname PROP followed by any of the attributes described in the previous section.
Authorised Members for Broadcast or Moderated Groups
For broadcast or moderated groups, members that are allowed to send messages to the group without moderator approval can be managed via the ADMIN groupname AUTH command.
To add a member to the authorised list, use ADMIN groupname AUTH ADD phonenumber
To remove a member from the authorised list, use ADMIN groupname AUTH REMOVE phonenumber
The command line interface also supports an additional parameter to return a list of currently authorised members: ADMIN groupname AUTH LIST
Specifying Alternative Administrators
For moderated and private groups, administrators must approve certain transactions (new members and/or message postings) before they are processed. By default, the group owner is an administrator. It is also possible to assign additional administers.
To add an administrator, use ADMIN groupname ADMIN ADD phonenumber
To remove an administrator, use ADMIN groupname ADMIN REMOVE phonenumber
The command line interface also supports an additional parameter to return a list of administrators: ADMIN groupname ADMIN LIST
Adding Members
Group owners and administrators are allowed to add new members to a group without requiring the member to first send a message asking to join.
To add a member, use the command ADMIN groupname ADD phonenumber username
Removing and/or Blocking Members
Group owners and administrators are allowed to remove members from a group, and optionally block the member from rejoining the group.
To remove a member, use the command ADMIN groupname REMOVE phonenumber or username
To remove a member and block them from rejoining the group, use the command ADMIN groupname BLOCK phonenumber or username
Listing Group Members
The command line interface supports a command to return a list of all group members. To return this member list, using the command ADMIN groupname LIST
Posting a Message to The Group
The command line interface supports a command to post a message to the group. The format of this command is: ADMIN groupname POST text to post.
To post group messages via SMS, please refer to the next section “Joining Groups and Posting Messages to a Group”.
Joining Groups and Posting Messages to a Group
Members can join a group by sending a message to the group text server with the text JOIN groupname username
Groupname is the name of the group that they are asking to join. Username is a user handle that is used when they post messages to the group.
Members can leave a group by sending a message to the group text server with the text LEAVE groupname
Members can also leave all groups by sending a message to the group text server with the text LEAVE or STOP, without specifying a group name.
Members can post a message to a group by sending a message to the group text server that starts with the text @groupname, where groupname is the name of the group. For example, if the group is named simply “B”.
@B This is a message to the entire group.
If the group is moderated, the message will be first forwarded to the group administrator for approval before being posted to the entire group.
Messages sent through the group text server will be prefaced with the text @groupname:username.
It is also possible for members to send a text message directly to another member of the group without sending it to the entire group by sending a message to the group text server that starts with the text @groupname:username. For example, to send to a member “mike” on a group named “B”, the following text message could be sent:
@B:mike Hey Mike, let’s get out of here!

E-Mail Notification for Updates

XML Status Query for SMSC Connection Status and Statistics

$
0
0
We posted details about an XML-based NowSMS status query in an earlier posting: http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics
This query reports information similar to what is reported on the “Status” page of the NowSMS configuration dialog. The query results include information about SMSC connection status, the number of messages processed via the different connections, and the number of messages pending in the queues, among other information.
The format of the XML data given in the example is relatively straight-forward, but in some environments it may make it easier to have an XSD file to document the format. An XSD file can be downloaded at the following link http://www.nowsms.com/download/xmlstatus.xsd.txt.
For additional information on the XML status query, please refer to the earlier posting: http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics

NowSMS Release – 2010.02.09

$
0
0

This document provides release history information for the current release version of the Now SMS & MMS Gateway, which can be downloaded at http://www.nowsms.com/download-free-trial.

This document covers changes between the last major 2009 release and version 2010.02.09.  An interim update may be available at the following link:   http://www.nowsms.com/nowsms-update.

The release history information provides additional information on configuration settings that have been added to address unusual configuration requirements.

2010-02-03:

* Fixes for UseRouteQueues=Yes setting when “SMSCRoute=” is set by a PreAuth SMS Accounting callback.

2010-01-27:

* 2-way SMS: Fix for problem where SMPPOptions settings and service type were not preserved when recombining a received multipart SMS for passing to a 2-way command.

* MMS Gateway/MM1: Fix for problems routing MMS delivery reports back to an MM7 connection if the MMSC host name is not configured (which is always the case in NowSMS Lite). Also fix a problem where MMS delivery reports were not automatically routed to the default route configured for the modem’s MMS receive settings.

* SMS Gateway/SMPP Client: Update configuration parameter that allows the “users” directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients, as well as user specific log files. Under the [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS “users” directory. When this parameter is set, the “SMS Users” database files (SMSUSERS.D2A and SMSUSERS.D2I) will also be located in this directory (by default, when this parameter is not set, these files are in the NowSMS program directory). With this release, it is now possible to separate the queued messages and log files from other user related data. Under the [SMSGW] header, use UsersQDir=d:\path\ or UsersQDir=\\Server\Volume\path\ to specify the location of the user directories that will hold queued messages only. Under the [SMSGW] header, use UsersLogDir=d:\path\ or UsersLogDir=\\Server\Volume\path\ to specify the location of the user directories that will hold log files. Other user directories and files will be stored relative to the “UsersDir=” setting, or in their default location if “UsersDir=” is not present.

* SMPP: Add SMSC specific configuration option to suppress TLV receipt parameters when delivery receipts are routed to an outbound SMSC connection (this would generally only happen when the ReRouteReceived option is used). Under the [SMPP - server:port] header of SMSGW.INI, if you want to suppress the receipt TLV parameters for messages routed to this server, add IgnoreReceiptTLV=Yes.

2010-01-19:

* SMS Gateway: Add a configuration option to add separate queues for explicitly routed messages. In SMSGW.INI, under the [SMSGW] header, add UseRouteQueues=Yes.

* SMS Gateway: Add a configuration option to possibly speed up receiving of SMS messages when accounting callbacks are enabled and SMPP async mode is enabled for a connection. When this configuration option is enabled, inbound SMS message processing and accounting callbacks are moved to a separate thread. To enable this setting, edit SMSGW.INI, and under the [SMSGW] header add AsyncReceiveMessages=Yes. (Note: This setting is still considered experimental.)

2010-01-06:

* MMSC: Fix for problem with MSISDN header parsing where the MMSC was looking for both the X-MSISDN header and a value configured for the “MSISDNHeader=” setting, when it should only be looking for the “MSISDNHeader=” setting.

2009-12-24:

* SMS Gateway: Fix for problem where if “Separate outbound message queues” for each user is not enabled, NowSMS would not send out any SMS messages that originated via SMTP.

2009-12-22:

* SMS Gateway: Fix for problem where NowSMS would keep re-initialising a modem if the user had never edited and saved properties for the modem after the initial add.

2009-12-21:

* SMPP: If routing a delivery receipt via an outbind SMSC connection, use esm_class of 8 in submit_sm. (Previously, a value of 4 was being used, which is not valid in submit_sm.) Also add a configuration option to suppress TLV paramters (message_state and receipted_message_id) for delivery receipts routed via an outbind SMSC connection. To suppress these TLV parameters, edit SMSGW.INI, and under the appropriate [SMPP - server:port] section header, add IgnoreReceiptTLV=Yes.

* SMPP: Add message_id to data_sm_resp if we receive a data_sm from an outbind SMSC connection, and the message is rerouted to another outbind SMSC connection because of a “ReRouteReceived” configuration setting.

* SMS Gateway: Update preferred service_type handling for routing particular service_type values to specific SMSC connections to support pattern matching and “best match”. See http://www.nowsms.com/discus/messages/1/42107.htm and http://www.nowsms.com/discus/messages/1/24460.html.

* Add option to disable writing anything to the Windows Event Log. Add DisableEventLog=Yes under [SMSGW] header in SMSGW.INI.

* SMS Gateway: Allow retry parameters to be specified on a per-SMSC connection basis, so that different connections can have different retry settings. If any of the following retry parameters is found in the SMSC specific section of SMSGW.INI, it will override the default setting under the [SMSGW] header: RetryDelay, RetryDelayMultiplier, RetryDelayAfterAttempts, RetryDelayMax, RetryMaxAttempts, InitRetryDelay, InitRetryDelayMultiplier, InitRetryDelayAfterAttempts, InitRetryDelayMax.

2009-12-08:

* MMSC/MM4: Implement checks to prevent circular routing for MM4 interconnects. If a message is received via an MM4 connection, and the MMSC determines that its delivery path to the recipient is via that same MM4 connection, the message will be rejected with a negative response in the MM4_forward.RES. For compatibility with previous releases, this check can be disabled with the setting DisableCircularRoutingCheck=Yes in MMSC.INI.

2009-12-01:

* MMSC: Fix for MMSUSER.EXE -quotareport listing up to 1000 blank user entries after the last user.

2009-11-25:

* SMS Gateway: Fix for a problem where individual parts of a multipart message were not routed out via the same SMSC connection if NowSMS was able to fully route one part before the next part was received.

* SMPP: Add a configuration option to override the character set for received SMS messages. A customer encountered a situation where the SMSC was encoding text using the iso-8859-1 character set. However, the SMSC was setting the character set flag in the message to indicate that text was using the GSM character set. NowSMS was configured to use the iso-8859-1 character set with this SMSC, however, since the character set was explicitly set as GSM in the received message, NowSMS could not decode the text properly. To address this issue, it is possible to add SMSCCharsetReceiveTextOverride=Yes under the [SMPP - server:port] section of SMSGW.INI. When this parameter is present, NowSMS will always interpret received text messages as being encoded in the character set configured for the connection.

* SMPP: Add a configuration setting to allow a default PID value to be used for all messages routed to a specific SMSC connection. Under the [SMPP - server:port] section of SMSGW.INI, add DefaultPID=XX, where XX is the PID value in hex.

2009-11-04:

* MMSC: When the sender of an MMS message is an e-mail address (instead of a short code or phone number), and the message arrives via a VASP connection, requesting a delivery receipt, the MMSC would always try to send the delivery receipt back via e-mail. This was only an issue if the MMSC was delivering the message directly, if it was routing to an upstream MMSC connection, delivery receipts back to an e-mail recipient would be routed correctly.

* SMS Gateway: Add a configuration option to use 16-bit reference numbers when generating concatenated multipart messages. By default, NowSMS uses 8-bit reference numbers, which allows the most characters to be fit in a single SMS. However, a customer observed that when sending binary messages to a Java application on many Motorola phones, one byte of data per message segment would be lost when using 8-bit reference numbers due to a bug in the phone software. When 16-bit reference numbers are used, message length per segment rules change. For long text messages, instead of 153 characters per segment, only 152 characters per segment can be achieved. For Unicode messages, instead of 67 characters per segment, only 66 characters per segment can be achieved. For binary messages, 133 bytes of binary data can be included per segment, instead of 134 bytes. To enable 16-bit reference numbers, edit SMSGW.INI, and under the [SMSGW] section header, add ConcatRef16Bit=Yes. Note that when this setting is applied, 16-bit reference numbers are only used when NowSMS performs the segmentation (message submitted either via HTTP, or via SMPP using a single message_payload submission) … NowSMS does not resegment messages that have already been segmented by the submitting client.

2009-10-28:

* SMPP: Add SMPP character support for an unusual “Roman-8″ character set needed for a specific SMSC.

2009-10-23:

* GSM Modem: Add code to detect a system waking up from sleep or hibernation where we may need to reset the modem.

* SMPP: Add configuration setting to prevent NowSMS from remapping GSM message class DCS values which are invalid in SMPP to valid SMPP values. To apply this setting for a specific SMSC, edit SMSGW.INI, and under the SMSC specific section (e.g., [SMPP - server:port]), add emapMessageClassDCS=No.

2009-10-21:

* SMS/GSM Modem: For messages received via GSM modem, if a phone number property is not set for the modem, read the phone number from the modem and apply it as the received phone number.

* SMSLite: Configuration program was not allowing the “Route SMS to local user” setting to select users.

2009-10-19:

* SMS/GSM Modem: Fix for problem initialising Telit HSPA Modem. Previously, attempts to initialise modem were returning error: “Error initializing modem – 0″

2009-10-12:

* MMSC: EnableReadReceipt=No was disabling read receipts from being generated by local recipients, but it was not disabling the read receipt request from being routed to external recipients. It now blocks both.

2009-10-07:

* SMPP Server: Fix for change in 2009.10.01 version which caused server to accept messages from an SMPP client even if a user was over quota.

2009-10-01:

* GSM Modem: More GSM modem handling updates.  Added code to reset the modem after persistent errors sending SMS or MMS messages to try to recover “hung” modems. MMS sending updated to address an issue where if a modem was removed/reinserted, the MMS part of NowSMS could not recognize the modem again until the service restarted. (This could also happen with buggy modems that restart themselves periodically.) An additional option was added to the GSM modem configuration to trigger NowSMS to restart the server if a modem becomes unresponsive and NowSMS is unable to access the modem. (Note: NowSMS retries for about 15 minutes before triggering a reboot when this option is enabled.)

* SMPP/WDP Adaptation: Fix for 2009.06.30 change. If BinaryDCS override is not specified for the SMPP connection, and WDP Adaptation is being used, continue to remap DCS value 0xF5 to 4, as was done in earlier releases.

* SMPP Server: When accepting messages from an SMPP client, if the client specifies TON=1 (international), but the address starts with “0″, assume that the number is in local format, not international.

2009-09-16:

* MMSC/MM4: Work-around for situation where MM4 delivery reports were not being accepted because the recipient address (original sender) for the delivery report was not being specified in the “RCPT TO:” command. Instead, the other MMSC was specifying the MMSC system address in the “RCPT TO:” command and only included the original recipient in the “To:” header of the message.

2009-09-15:

* SMS Gateway: Fix for an exception error that could occur with segmented SMS messages submitted to recipient phone numbers longer than 70 characters. Problem most frequently occurred with multiple outbound SMSC connections.

* Receiving MMS via GPRS Modem: Fix for problem where when received SMS messages are being routed to a local user, NowSMS would also route MMS notifications to that local user account instead of processing them as received MMS messages.

2009-09-08:

* MM7: Add configuration option to allow selected MM7 status codes to be classified as success or retry status codes. By default, NowSMS accepts only StatusCode 1000 as an inidication of successful message submission. To add additional status codes, edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, define SuccessStatusCodes=1000,1001,1002 (comma delimited list of status codes). Similarly, NowSMS considers all errors except 2001, 3003, 4000, 4006 and 4007 to be permanent status errors. If NowSMS receives a StatusCode response with any other value, the message submission will not be reattempted (3003 is a special status code case indicating that the MMSC only accepts one recipient at a time). To add additional StatusCode responses that should be treated as temporary errors, edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, add RetryStatusCodes=2001,4000,4006,4007 (comma delimited list of status codes, include the default StatusCodes that should be retried).

2009-08-31:

* SMPP: Add SMPP character support for the unusual “ASCII 437″ code page that is used by Telstra.

* SMPP: Add configuration setting to set the initial SMPP sequence_number value to be used by a connection as a random value. To enable this setting, edit SMSGW.INI, and under the [SMSGW] header add SMPPSeqRandom=Yes.

2009-08-26:

* GSM Modem Handling: If errors occurred when sending MMS messages via a modem route, the MMSC would not timely release the modem to allow SMS sending to continue.

* SMPP: Fix for improper sequence_number generation issues.

* Add “BCC” option for sending an MMS message via the web interface. If using NowSMS proprietary URL submission, include “MMSBCC=Yes” to force recipients to be BCC.

* SMS Gateway/SMPP Client: Update configuration parameter that allows the “users” directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients, as well as user specific log files. Under the [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS “users” directory. When this parameter is set, the “SMS Users” database files (SMSUSERS.D2A and SMSUSERS.D2I) will also be located in this directory (by default, when this parameter is not set, these files are in the NowSMS program directory). With this release, it is now possible to separate the queued messages from other user related data and logs. Under the [SMSGW] header, use UsersQDir=d:\path\ or UsersQDir=\\Server\Volume\path\ to specify the location of the user directories that will hold queued messages only. Other user directories and files will be stored relative to the “UsersDir=” setting, or in their default location if “UsersDir=” is not present.

* MMSC/MM4: Add the ability to use different source/sender domain names for different groups of users. This may be useful when multiple mobile operator networks are serviced by a single MMSC. To specify the outbound domain name, edit VASPOUT\accountname\VASP.INI for the outbound MM4 connection … creating a [DomainMapping] section. Within this section, specify address pattern to domain name mappings using the following format addresspattern=domain.name (e.g., +111*=domain1.com). Note: To support these additional domain names when receiving messages, add domain name alias settings under the [MMSC] section of MMSC.INI using the format DomainNameAlias1=domain1.com … DomainNameAlias2=domain2.com … etc.

2009-08-20:

* GSM Modem Handling: Internal updates for improved performance and compatiblity. Change the default receive polling interval to 3 seconds when “Direct to Modem” is the “SMS Message Storage” type. The polling interval is set to 2 seconds for other “SMS Message Storage” types (prior to NowSMS 2009, it was always 1 second). To change the default add ReceivePoll=##, where ## is the number of seconds, under the appropriate [Modem - driver name] section header of SMSGW.INI. Modem polling logic also optimised to be less resource intensive on the modem. If this change causes problems receiving messages with older phone modem implementations that worked with previous version of NowSMS, add OldPollingLogic=Yes under the appropriate [Modem - driver name] section header of SMSGW.INI.

* MMSC: When routing MM7 to MM1, do not encode “Content-Disposition:” headers in the MM1 message, as this seems to confuse some operator MMSCs.

2009-08-15:

* 2-way SMS processing: Non-delivery receipts generated by NowSMS when an SMSC connection rejected a message were being marked with a “.IN” extension instead of a “.REC” extension. While not necessarily a problem, this could cause delays for other “.IN” messages being processed. These receipts are now marked with a “.REC” extension so that they will be processed in the 2-way SMS receipt queue instead of the normal inbound message queue.

2009-08-14:

* Multimedia Content Push: WML format is used by default. HTML format is only used if the receiving client does not support WML.

* Internal changes (updated debug log information) for 2-way SMS processing in the SMS-IN directory.

* GSM Modem Handler: Improved compatibility with SonyEricsson USB modems (especially MD300).

2009-08-05:

* Multimedia Content Push: Fix XHTML generated for multimedia content push. Update install to include missing CSS file for XHTML version of multimedia content push.

* SMS Gateway: Modem handling – Change “Default” and “Direct to Modem” handling to prefer SIM message storage.

2009-07-29:

* Fix for 2009 changes to multimedia WAP push causing problems displaying content that includes Unicode text.

2009-07-23:

* SMS Gateway: When NowSMS generates a non-delivery receipt because an upstream SMSC connection has rejected a message, the non-delivery receipt was not being logged. It is now logged to the SMSIN log file.

* SMS Gateway: Add configuration option to suppress the creation of “.ERR” files when an SMSC connection rejects a message. To suppress these files, edit SMSGW.INI, and under the [SMSGW] header, add ErrorQRetainDays=0.

2009-07-21:

* MMSC: Fix for AccountingKeepAlive=No and RoutingKeepAlive=No settings not working for MMS accounting and routing callbacks. Use of these settings would cause a handle leak and after a period of time, the MMSC would no longer be able to accept or initiate connections.


Mobile Number Portability (MNP) and the NowSMS MMSC

$
0
0

When the NowSMS MMSC is used in environments with mobile number portability (MNP), the MMSC may need to query a database to determine whether a recipient is local to this MMSC or if it belongs to another operator.

The interface to support this is defined in the following article:

Mobile Number Portability (MNP) and the NowSMS MMSC

However, there is an additional issue that is not discussed in that article.

By default, the routing callback is only called for recipients that are not defined to the MMSC on the “MMSC Users” page.

In a typical operator MMSC configuration, new MMSC user accounts are automatically provisioned the first time a user sends an MMS message. This configuration is detailed in the article titled NowSMS MMSC Operator Considerations.

A problem scenario develops if a subscriber moves their number from this operator to another operator, after they have already been provisioned on the MMSC. The MMSC will see the user account and attempt to deliver the MMS message directly, without performing a routing lookup.

To address this scenario, an additional MMSC configuration parameter exists. Under the [MMSC] header or MMSC.INI, add the parameter ForceRoutingCallback=Yes. This setting will cause the routing lookup to always occur.

Prior to the 2009-06-30 release, to address this issue, we recommended instead using the setting DisableMMSDirectDelivery=Yes, a setting name which sounds contrary to the intended purpose. This other setting was originally added to NowSMS for a different purpose, but it does have the side effect of always forcing the routing callback.

We no longer recommend the use of DisableMMSDirectDelivery=Yes for this purpose, and instead recommend the ForceRoutingCallback=Yes setting. This is because DisableMMSDirectDelivery=Yes has an extra side effect of disabling the automatic version tracking of MMS clients. Because the MMS read receipt format was not introduced until OMA MMS v1.2, this can cause some clients to generate read receipts as regular MMS messages instead of using the read receipt format.

NowSMS and SSL Certificates – 2048 Bit Key

$
0
0
In the last 6 months, many SSL Certificate Authorities (CAs) have made a switch to requiring web servers to use 2048-bit private keys.

It is believed that increased computing power will make the commonly used 1024-bit keys possible to break by 2011. There is a side effect in switching to the larger keys that some old web browsers don’t support > 1024 bit keys. I can’t find a good reference that tells me which versions of which browsers, but this is something to keep in mind.

We’ve rebuilt the NowSMS SSL library to generate 2048 bit keys when generating a new certificate signing request (CSR). An update can be downloaded at

http://www.nowsms.com/download/smsssl.zip.

To install the update, stop the NowSMS services and exit NowSMS.


Replace the existing SMSSSL.DLL in the Program Files\NowSMS directory with this version.

If you have not previously requested a signed certificate from a certificate authority, simply go to the SSL/TLS page of the NowSMS configuration, and select “Generate Server Certificate”.

Unfortunately, the change to 2048 bit key requirements will cause problems for renewals for customers that already have an SSL certificate signed by a certificate authority (CA).

When your renewal time comes up, many CAs will not renew your certificate until you switch to a 2048 bit key.

However, if you generate a new server certificate request with NowSMS, this forces the existing certificate to be immediately invalidated, which may cause problems for existing clients during the certificate renewal process.

(This problem is not specific to NowSMS … many web server administrators are facing similar problems.)

If you face this renewal issue with NowSMS, follow this procedure:

  1. Locate and backup the following NowSMS files (in either Program Files\NowSMS for Windows XP/2003 or ProgramData\NowSMS for Windows Vista/7/2008):
    SSL.CRT
    SSL.CSR
    SSL.CA
    SSL.INI
    SSL.KEY
  2. On the “SSL/TLS” page of NowSMS, select the option to “Generate Server Certificate”.
  3. You will be warned that doing this will invalidate your existing certificate. If you have backed up the files that I mentioned above, select “Yes” to continue.
  4. After the new certificate signing request has been generated, copy the new versions of SSL.CRT, SSL.CSR, SSL.INI and SSL.KEY to a different location for backup. (Note: There will not be an SSL.CA file as this file will not exist until you get your signed certificate back from the CA.)
  5. Put the old backup copies of these files, including SSL.CA, back in the appropriate NowSMS directory.
  6. Use the new SSL.CSR to request a signed certificate from your CA. When you get the signed certificate back from the CA, save it as SSL.CA.
  7. Copy the new version of these files, including SSL.CA to the appropriate NowSMS directory and restart the NowSMS services.

Operator MMSC Accounting – Detecting Roaming Subscribers

$
0
0

One important consideration when charging for MMS messages is whether or not the user is roaming. The NowSMS MMSC can provide this information to the MMS accounting callbacks, however the requisite information is not included in the MMS accounting callbacks by default.

Before the MMSC can pass this information to the accounting callbacks, the MMSC must receive this additional information from the operator network. The MMSC expects to receive this information via HTTP headers that are inserted into the MMS client request by a WAP gateway or proxy. This is the same process that the MMSC uses for identifying subscribers, as detailed in the article at http://www.nowsms.com/support/bulletins/tb-nowsms-002.htm.
NowWAP 2010 and later include additional RADIUS support for the 3GPP SGSN-MCC-MNC and SGSN-ADDRESS attributes. If they are present, NowWAP generates additional HTTP headers for these attributes in any requests where it also includes the MSISDN header. There are no special configuration parameters required in NowWAP to include these parameters, they are always included when present in the Radius Accounting packet. The HTTP request that is forwarded by NowWAP will include “X-WAP-3GPP-SGSN-MMC-MNC:” and “X-WAP-3GPP-SGSN-ADDRESS:” headers with the associated values.
The SGSN information identifies the network node to which the subscriber is connected, making it possible to identify whether or not the subscriber is roaming.
It is then possible to configure the MMSC to include these headers in MMS accounting callbacks, when using NowSMS 2009 or later. To enable this, edit MMSC.INI, and add the following under the [MMSC] header:
AccountingExtraHeaders=X-WAP-3GPP-SGSN-MCC-MNC,X-WAP-3GPP-SGSN-ADDRESS
When this parameter is present, the MMSC looks for any of the HTTP headers in this comma delimited list and includes them in the MMS accounting callback if they are present. They are appended to the accounting callback URL like this:
&X-WAP-3GPP-SGSN-MCC-MNC=xxxxx&X-WAP-3GPP-SGSN-ADDRESS=1.2.3.4
For additional information on MMSC accounting callbacks, please see http://www.nowsms.com/mmsc-accounting-callbacks-for-billing-and-charging.

NowSMS Update – Interim Release 2010.05.07

$
0
0

An interim update release of NowSMS is available for download at http://www.nowsms.com/download/nowsmsupdate.zip.

The most interesting updated features/capabilities include:
Major SMS performance enhancements (and reduced CPU overhead) for configurations with large outbound message queues and/or a large number of outbound SMSC connections.
A simpler way to define multiple transmitter, receiver and/or transceiver connections for a single outbound SMPP connection. Previously, NowSMS allowed the same account credentials to be defined multiple times to allow multiple connections to the same SMSC. While the old approach is still supported, it is also possible to define a single SMPP connection, and then define the number of transmitter and receiver connections to be established.
A complete list of changes since the 2010.02.09 release follows:
2010-05-07:
* SMS Gateway: Add the capability to define the number of transmitter, receiver and/or transceiver connections to be allocated for a single SMPP connection, without requiring multiple duplicate connections to be defined. In the [SMPP - server:port] section of SMSGW.INI, the following settings are supported: TransmitterCount=## and ReceiverCount=##. TransmitterCount=## defines the number of transmitter connections to be established. If transceiver mode is configured, TransmitterCount specifies the number of transceiver connections to be established. If transceiver mode is not configured, ReceiverCount specifies the number of receiver connections to be established. Note that the number of receiver connections cannot be greater than TransmitterCount.
* SMS Gateway: Performance optimisations for large message queues, especially when there are a large number of outbound SMSC connections. Previously documented UseRouteCache=Yes parameter setting is now enabled by default. In the event of unexpected problems, the new routing logic can be disabled with a setting of UseRouteCache=No under the [SMSGW] header of SMSGW.INI.
* SMS Accounting Callbacks: Add SMPPOptions TLV parameters to the accounting callbacks.
* SMS Accounting Callbacks: Fix for a problem with accounting callbacks if text included “@@”.
* MMSC: Fix problem with automatic MMS version detection that was preventing some MMS clients from recognising that the MMSC supports read receipts, causing clients to send read receipts as standard messages (bug was introduced in early 2009 versions).
* MMSC: Add pre-auth callback for “MMSReadReport” when an MM1 client is submitting a message read receipt. (A pre-auth callback is not necessarily required for this event, however it is being added for consistency, since a pre-auth callback does exist for delivery reports.) Pre-auth delivery report callback also modified to include AccountingExtraHeaders if configured.
* MMSC: Fix for MMSC routing callback not including the “From=” parameter for messages submitted via the web interface.
2010-04-20:
* SMS Gateway: Fix for a routing issue where multiple SMSC connections have the same sender address, where one route has one or more preferred routes, and another route with the same sender address has “Support any outbound message traffic” checked. Messages with a matching sender address should only be routed to the first route if the recipient matches a preferred route, however it was being routed to either route. Note: This only applies to sender based routing.
2010-04-15:
* Accounting Callbacks: Add additional parameter “AcctInfo=” that can be included when
submitting a message via HTTP. If included on submission, this parameter will be passed to
subsequent accounting callbacks regarding the message.
* MMSC: Fix for MM4 message decoding problem when “Content-Location:” header contains a space character. According to RFC2557, White space characters do not appear to be valid as part of a location name in this header. A change to allow them is being implemented to address a problem where customers are receiving corrupt messages from some Verizon phones.
* SMS Gateway: New performance optimisations for performance problems with large message queues, especially when combined with a large number of outbound SMSC connections. These performance optimisations are only enabled in this version when UseRouteCache=Yes is specified under the [SMSGW] header of SMSGW.INI. (Note: UseRouteCache=Yes was made a default setting in 2010.05.07 release.)
* Internal: Include additional error checking to detect and automatically repair SQLite databases that are used for receipt tracking.
* Internal: Update SQLite databased (used for message id receipt tracking) to v3.6.23.
2010-03-18:
* SMS Gateway: Fix for 2-way SMS problem on Windows XP systems, where early 2010 versions would have problems sending replies to 2-way SMS messages because of corrupt “SMSCRoute=” information being added to the SMS message.
* SMS Gateway: Add configuration settings to disable user logging and quota management features to add performance for systems that do not need user logs and/or quota tracking. Under the [SMSGW] header of SMSGW.INI, the following settings have been added: DisableUserLog=Yes – This setting disables the creation of user specific log files in the USERS\username directory structure. DisableUserQuota=Yes – This setting disables the tracking of how many messages each user account sends in a day.
2010-03-10:
* SMS Gateway: Fix for delivery receipts message IDs not being tracked if the sender address is alphanumeric containing a ‘ (single quote/apostrphe) character.
* SMS Gateway: Minor performance optimisation for large message queues (could be major for some installations, minor for others).
* WAP Push testing parameters added to meet a particular conformance test which required support for WAP Push SI, SL and CO messages using WBXML version 1.1 and the iso-8859-1 character set. NowSMS defaults to using WBXML version 1.2 and the UTF-8 character set. To set the WBXML version, edit SMSGW.INI and under the [SMSGW] section header, add
WAPPushWBXMLVersion=1.1. To specify iso-8859-1 as the WAP Push character set, use WAPPushUseUTF8=No in the [SMSGW] section of SMSGW.INI.
2010-02-10:
* Fix for error message confusion where NowSMS would report an error about the SMPP port already being in use when the port conflict actually involved the SMTP port.

SMPP Receipt Message ID Tracking Over Multiple Connections

$
0
0

One of the standard capabilities of NowSMS is the automatic mapping of receipt message IDs when routing messages to an upstream SMSC connection.

The reasoning/logic is simple. When NowSMS accepts a message from a client, NowSMS needs to assign an ID to the message.
When the message gets routed to an upstream SMSC, that SMSC will assign a new message ID.
NowSMS saves the message ID assigned by the upstream SMSC, so that if a delivery receipt message is received, NowSMS can translate the upstream message ID back to the NowSMS assigned message ID before it is delivered back to the client that submitted the message to NowSMS.
Message IDs are not globally unique. NowSMS maintains a separate receipt message ID tracking database for each SMSC connection. For situations where there are multiple connections to the same SMSC (same host name or IP address and port number), NowSMS automatically shares the same message ID tracking database over all matching connections. This is because it is possible that the SMSC might return a delivery receipt over any of the connections to that SMSC.
A problem can occur if multliple connections to the same SMSC exist, but with a different host name, IP address or port number.
There is a way to configure NowSMS to use the same receipt message ID database for multiple connections. This should only be done when you are connecting to an SMSC via multiple IP addresses where you are certain that the SMSC shares a message ID space across the IP addresses.
To enable this, it is necessary to edit the SMSGW.INI file.
Under the [SMPP - server:port] section header for each connection that shares the same receipt message ID namespace, add TrackSMPPReceipts=somename
“somename” can be any text that makes sense to you. NowSMS will group together receipt message ID tracking for all connections that share the same TrackSMPPReceipts value.

NowSMS/MMS API Information

$
0
0

The primary API for sending and receiving SMS and MMS messages with NowSMS is HTTP-based. Because the API is HTTP based, applications that wish to send or receive messages via NowSMS do not have to run on the same physical server, they can interface with NowSMS over a network.

This page contains links to additional information that describes the raw HTTP interface, as well as links to example scripts for PHP, Java and command-line interfacing with NowSMS.

Note that in addition to these APIs, NowSMS also supports the SMPP protocol, allowing SMS clients to connect to NowSMS as an SMPP server for both sending and receiving SMS messages. For MMS clients, NowSMS also supports the MM1, EAIF, MM3 (SMTP), MM4 and MM7 protocols for both sending and receiving MMS messages.

HTTP Protocol Information

PHP Scripts for Sending SMS & MMS

Java Examples for Sending SMS & MMS

.NET Examples for Sending SMS & MMS

Command Line Interface for Sending SMS & MMS

Note: The Command Line Interface is particularly useful because you can easily spawn a command line script to interface with NowSMS.

In the future, additional API information may be available at the following link: http://www.nowsms.com/support/api.htm

SMPP Asynchronous Mode

$
0
0

One of the biggest limitations to SMPP performance is protocol implementations that do not support SMPP asynchronous mode, or to state it more correctly, do not take advantage of the speed boost that is possible with SMPP asynchrnous mode.

SMPP Synchronous Mode = One Message at a Time

In SMPP Synchrnous mode, each side of the SMPP client has only one outstanding transaction active at a time. For example, when the client is submitting a message (SMPP submit_sm PDU), it waits to receive an acknowledgement from the server that the server has received the message (SMPP submit_sm_resp PDU) before the next message is submitted.

Depending on the network latency between SMPP client and server (e.g., use the round-trip time for a ping as a starting point), it may be difficult to exceed anywhere between 3 messages per second and 20 messages per second unless both client and server are located on the same local area network. The exact speed limit will vary depending on a combination of network latency, and how much processing is involved for the server to accept the message and generate the acknowledgement back to the client. Server load at that precise moment in time can also be a significant performance limiting factor.

With an average 50ms latency between client and server, it is not possible to exceed 20 messages per second in synchronous mode, and that is if the SMPP server is quick and immediately acts on the received messages, and is extremely efficient in returning its acknowledgement.

An average latency of 100ms lowers this limit to 10 messages per second.

In the real world, we’ve seen plenty of SMS service provider connections that top out at 3 to 5 messages per second using synchronous mode.

SMPP Asynchronous Mode = No wait Between Messages

SMPP Asynchrnous mode is the solution to this performance dilemma. Each side of the connection is free to send multiple transactions without waiting for a response to the first transaction. For example, a client may sumbit multiple messages to the SMSC (SMPP submit_sm PDU) before it receives any acknowledgments back (SMPP submit_sm_resp PDU).

SMPP Async mode is a windowing protocol. Most SMPP implementations will allow you to tune performance by specifying a maximum window size (maximum number of outstanding transactions before requiring a response to at least one of the outstanding transactions). In NowSMS, when configuring an SMPP SMSC connection, this is specified under the “Advanced Settings” for the properties of the SMPP connection. Look for “Enable SMPP Async Mode (windowing)” and the “Window Size (packets)” parameter.

SMPP Async mode sounds fantastic … so why don’t we use it all the time?

Well, the truth is that a lot of typical SMPP connections simply aren’t that fast. There’s a lot of SMPP software out there that can get tripped up by async mode. So it’s safest to start with synchronous mode, and verify that async mode can be supported.

There is also an issue that most SMS service provider connections have strict speed limits that clients cannot exceed. This is done by providers to help them manage and control the overall throughput of their entire system. If you submit messages faster than your SMS provider will allow, you will end up with throttling errors that end up significantly reducing your overall throughput. So in most cases, when using async mode, it is very important to know the SMS speed limit imposed by your SMS provider.

The article SMSC Speed Limits (http://www.nowsms.com/smsc-speed-limits) explains how to configure a speed limit for an SMPP (or other type of SMSC) connection with the SMSCSendLimit=x/y setting in the [SMPP - server:port] section of SMSGW.INI.

This speed limit setting is designed to work very well with SMPP Async mode to enable NowSMS to send messages as fast as your SMS provider connection (and NowSMS license) will allow. (x/y = x messages every y seconds, e.g., 58/1 = 58 messages per second, 125/2 = 125 messages every 2 seconds.)

It is also worth giving some guidance on window sizes. Our general recommendation is for the window size to approximate the target number of messages per second. This is a recommendation only, and not a requirement. Some SMSCs may react negatively to larger window sizes if they are under stress, so determining an optimal setting may require experimentation and monitoring of log files.

SMPP Async Mode When NowSMS is the SMPP Server

Thus far, all of our discussion of SMPP Async Mode has focused on NowSMS as an SMPP client, connecting to an SMPP server to send messages.

What if NowSMS is the SMPP server? Is it possible to use async mode to speed the pace of delivering SMS messages (especially delivery reports) to a connected client?

Historically, the SMPP implementation in NowSMS has only made use of async mode for connections where NowSMS is the client (NowSMS initiates the SMPP bind).

SMPP Async Mode support for NowSMS as an SMPP server has just been added in the v2010.11.04 update which is available for download at http://www.nowsms.com/download/nowsmsupdate.zip. (Note: This update link may be reused by a newer version in the future.  Newer versions will also include this functionality.)

SMPP Async Mode for the SMPP Server is not automatically enabled by default, as it may cause problems with some SMPP clients.

To enable SMPP Async Mode for all SMPP clients connecting to the NowSMS SMPP Server (not recommended for most installations), add SMPPServerAsyncWindowSize=## to the [SMSGW] section of SMSGW.INI. (## is the SMPP Async window size.) If this setting is not present, SMPP Async Mode is not enabled by default for the SMPP Server, but may be enabled for select client connections.

To individually enable or disable SMPP Async Mode for selected clients, add an [SMPPServerAsyncWindowSize] section to SMSGW.INI, and specify AccountName=## to set the async window size for a specific SMS User account with a user name of “AccountName”. (A window size of 0 specifies that async mode should be disabled for that account.)

This setting is only recommended for situations where it is necessary to improve the performance of delivering messages to an SMPP client.

NowSMS Update Release – 2010.11.04

$
0
0

An interim update release of the Now SMS & MMS Gateway is currently available at http://www.nowsms.com/download/nowsms20101104.zip.  Use the executable file in this ZIP to update an existing NowSMS installation.

This document details the update release history since the current official release, version 2010.02.09.  Release history for the changes prior to the current official release can be found at  http://www.nowsms.com/category/updates.

Highlights of this update:

1.) SMS Gateway: Performance enhancements for processing large message queues, especially when there are 4 or more outbound SMSC connections.

2.) SMS Gateway: Improved performance for accepting HTTP message submissions, HTTP keep-alive sockets now supported.

3.) SMS Gateway/SMPP Client: Added the capability to define the number of transmitter, receiver and/or transceiver connections to be allocated for a single SMPP connection, without requiring multiple duplicate connections to be defined.

4.) SMPP Server: Support for using SMPP Asynchronous mode to speed the delivery of messages to SMPP Clients when NowSMS is acting as an SMPP Server.  Also an improvement message ID generation logic to prevent duplicate message IDs (SAR-phonenumber-x-x-x format) from being generated.

5.) MMSC: Fix for corrupt message problems that could trigger internal restarts of the MMSC service when processing such a message.

6.) MMSC/MM4: Tolerance improved in decoding received messages where the Content-Location header does not conform to the relevant SMTP specifications, which previously resulted in some users receiving occasional corrupt messages over some MM4 interconnections.  Forwarding of these corrupt messages is suspected in the corrupt message problems that triggered internal restarts of the MMSC service.  Also, fix foran  interoperability problem that was causing some customers problems interconnecting with NTT DoCoMo Japan.  Received messages from this interconnect were not strictly following the 3GPP TS 23.140 Message-ID and Transaction-ID formats.  NowSMS used to correct the encoding problem when sending acknowledgments, but now returns acknowledgments with these ID values in the same format in which they were received, even if the values are invalid per the 3GPP TS 23.140 specification.

There are numerous other minor updates that are detailed in the release history information below.  The release history information provides additional information on configuration settings that have been added to address unusual configuration requirements.


2010-11-04:

* E-Mail to SMS: Translate Greek capital letters to visually equivalent 7-bit characters in attempts to send SMS messages out using 7-bit encoding. (The NowSMS web interface already does this.)

* MM7 Client: Change Content-Type: text/xml; charset=”utf-8″ to Content-Type: text/xml; charset=utf-8 to address a compatibility problem with a particular operator MMSC. (Whether or not this parameter is quoted should not matter. Removing the quotes should not cause a problem with other MMSCs.)

2010-10-28:

* SMPP Client: Fix for some BinaryDCS= values not working properly, especially BinaryDCS=2. If BinaryDCS=2 was set for a connection, NowSMS would garble the data.

2010-10-22:

* SMPP Client: Fix for a problem introduced in mid-2010 where message receipt IDs were not properly evaluated if the receipt was received two or more days after the message was originally sent.

* SMPP Server: Add preliminary support for NowSMS acting as an SMPP server to use async mode to deliver messages to SMPP clients (NowSMS has previously supported async mode in the other direction, where NowSMS is the SMPP client). This can provide increased performance in delivering messages to connected SMPP clients, provided that the client can support SMPP async mode. To enable SMPP async mode for all clients, add SMPPServerAsyncWindowSize=## to the [SMSGW] section of SMSGW.INI. Alternatively to enable or disable for selected clients, add an [SMPPServerAsyncWindowSize] section to SMSGW.INI, and specify AccountName=## to set the async window size for a specific SMS User account. (A window size of 0 disables async mode.)

2010-10-18:

* SMS Gateway: E-mail alerts now support multiple recipients, separated by a comma.

2010-10-13:

* MMSC: When NowSMS generates an MM7 error response, it was not encoding the error in an a SOAP envelope <fault> element, as required by Section 8.7.8.3 of 3GPP TS 23.140. (Note: The issue is not as cut and dried as it may seem, as the MM7 element defintions for the error response are in conflict with this Section 8.7.8.3. We are choosing to follow Section 8.7.8.3 and assume that the definitions that conflict with it are mistakes in the specification. Further discussion of this issue is at http://www.nowsms.com/discus/messages/485/60182.html.)

2010-10-04:

* SMPP – Fix for a problem where recent versions have not properly passed the “Bind TON”, “Bind NPI” or “Address Range” parameter in SMPP connection tests from the configuration dialog when initially defining a new SMSC connection.

* SMS Gateway: Initial HTTP Keep-Alive socket support in the SMS gateway in the last release caused a problem for “/provision” requests. This problem has been resolved.

* MMSC: Add configuration option to block routing callback for short codes (many routing callbacks expect standard phone numbers). If ForceRoutingCallback=Yes is set in the MMSC.INI, then ForceRoutingCallbackShortCodes=No can be set to exclude short codes from the routing callback. Note: The default maximum short code length is 6 digits, this can be adjusted with the ShortCodeMaxLength=## setting. (All settings referenced in this description are in the [MMSC] section of MMSC.INI.)

2010-09-30:

* SMS Gateway: HTTP Keep-Alive sockets are now supported for HTTP submissions to offer improved performance. If this causes a problem for some applications, keep-alive sockets can be disabled by editing SMSGW.INI and under the [SMSGW] header, adding EnableKeepAlive=No.

2010-09-21:

* SMS Gateway: The SMPPRejectErrorCodes setting described in http://www.nowsms.com/smpp-error-code-handling-in-nowsms can now be set on an individual connection basis. SMPPRejectErrorCodes= is now supported under individual [SMPP - server:port] section headers to allow settings that apply to only that connection.

* SMS Gateway: Improve performance of accepting new HTTP connections for message submissions.

* SMPP Server: Fix message id generation logic to avoid duplicate message IDs when accepting long messages from SMPP clients.

2010-09-14:

* SMPP: When receiving a delivery report from an upstream SMPP connection, if the TLV parameter message_state is not set, NowSMS would previously assume that the delivery report signals successful delivery and would generate TLV parameter message_state=2 if the delivery report is relayed to an SMPP client. Effective with this update, NowSMS now parses the text of the delivery report to determine the status. If the status cannot be determined, NowSMS will not generate a message_state parameter.

2010-08-23:

* MMSC: Add configuration setting to allow the SMTP host name to be set independently of the MMSC “Local Host Name”. To set the SMTP Host name, edit MMSC.INI, and under the [MMSC] header, add SMTPHostName=xxxx. If this parameter is not present, the “Local Host Name or IP Address” field will be used as the SMTP host name. (This setting was added on 2010-06-17, but the original implementation was for SMTP only, not MM4. It now also applies to MM4.)

* SMPP: Fix for a problem with delivery receipt handling for a delivery receipt that was received in Unicode text format.

2010-08-17:

* MMSC: Fix for an exception error that could trigger MMSC restarts when processing MMS to “SMS web link with code” conversions.

2010-08-13:

* MMSC/MM7: Fix for “MMSBCC=Yes” parameter not properly encoding recipients as “BCC” if routing externally via an MM7 or MM4 connection.

* SMPP: Add support for iso-8859-15 character set. This character set may be required if you are experiencing problems sending the Euro € character. When using the GSM character set, the Euro is encoded as an escape character followed by e. However, the Euro character is not actually defined in the iso-8859-1 character set. When NowSMS is configured to use the iso-8859-1 character set, it encodes the Euro with hexadecimal value 0×80, which is the standard encoding from the Microsoft Windows extension of iso-8859-1. However, some SMPP servers expect the Euro to be encoded as 0xA4, which is defined in the iso-8859-15 character set, a character set which was originally intended to be a replacement for iso-8859-1, but that did not see widespread implementation. When an SMPP connection is configured to use the iso-8859-15 (or iso-8859-1) character set, the default behaviour of NowSMS is to submit messages using a data_coding value of 3 to indicate iso-8859-1 encoding. Additional SMPP character set notes: 1.) Some SMSCs expect iso-8859-1 (or -15) encoding to be used, but do not understand the data_coding = 3 setting. For those environments, it is possible to manually edit SMSGW.INI, and under the [SMPP - server:port] section header for the SMPP connection, add SMSCCharsetDefault=Yes, which will tell NowSMS to use a data_coding value of 0 with the character set that is configured for the connection. 2.) If there are character set encoding problems receiving a message from a connection, note that NowSMS uses the configured character set for the connection for interpreting text messages only if the data_coding value is 0. If the data_coding value is 3, NowSMS will decode the text as iso-8859-1 (or iso-8859-15), regardless of the character set configured for the connection. If the data_coding value is 1, or a text encoding value other than 3, NowSMS will decode the text as using the GSM character set. To override this decoding behaviour for received messages, and force NowSMS to always use the character set configured for the connection, edit SMSGW.INI and under the [SMPP - server:port] section header for the SMPP connection, add SMSCCharsetReceiveTextOverride=Yes.

* SMPP Server: Support for SMPP clients connecting to the NowSMS server via SMPP using the iso-8859-15 character set has been added, similar to the settings described for outbound SMPP connections from NowSMS. Default settings for the NowSMS SMPP server character set can be configured under the [SMPP] header of SMSGW.INI. If there is a need to support SMPP clients that use different default character sets, it is possible to add additional user-specific section headers to SMSGW.INI. Under a header of [SMPP - username], the following parameters can be applied to a specific SMPP client account: SMSCCharset=IA5 (for GSM), iso-8859-1 or iso-8859-15; SMSCCharsetDefault=Yes (tells NowSMS to use a data_coding value of 0 with the configured character set), SMSCCharsetReceiveTextOverride=Yes (tells NowSMS to always use the character set configured for the user for text messages, even if the data_coding value implies a different character set is being used).

2010-08-03:

* SMS Accounting Callbacks: Add additional parameters to accounting callbacks, including SMPP “ServiceType” and “Validity” parameters.

2010-07-27:

* MMSC: Fix for a problem sending a message to a large number of MMS recipients, where a problem occurred because initial message recipients would receive the message notification before the MMS message file was closed on the MMSC. This caused message download failures unless MSISDNMatchRequiredForReceive=No was set under the [MMSC] header of MMSC.INI. (Most MMS clients would re-attempt download later and the message would be successfully delivered.)

* Web Interface/Send MMS Message: Fix for an exception error that could occur in the SMS gateway when sending an MMS message to a large number of recipients that include a “+” character.

2010-06-30:

* SMPP & MM7: Add configuration option to support alphanumeric recipients for SMS messages sent over SMPP and MMS messages sent over MM7. This is to support a provider that maintains server side distribution lists which are addressed as alphanumeric recipients. Alphanumeric recipients are only supported if AllowAlphaRecip=Yes is added to the [SMSGW] section of SMSGW.INI. (Fix problem sending to SMS recipients that include a “:” character.)

2010-06-28:

* MMSC/inbound MMS Messages: A new “MMSC Routing” option has been added for “MMSC VASP” definitions. “Local MMS Recipients Only” means that the connection will only accept messages that the MMSC can handle directly without routing to an external MMSC Routing (MM4, MM7) definition. “Local MMS Recipients Only” includes both local MMS users, as well as recipients that are automatically converted to WAP Push or SMS with web link (code). The purpose of the setting is to disallow selected MM4 or MM7 connections from being able to route externally via another MM4 or MM7 connection.

* MMSC: The MSISDNHeaderConvertToLocalNumber=Yes setting now affects both MMS headers and MMS messages that have been converted to SMS with web link (with code) for delivery, so that the message sender phone number is displayed in local number format instead of international number format.

* MMSC: Some temporary files (TEMPxxxxxxxx.TMP) were being created in the NowSMS program directory, and would fail to be deleted. These files are now properly created in the TEMP subdirectory and automatically cleaned up.

* SMS Gateway: When an HTTP message submission is rejected, it could be because the user is out of credits, has exceeded daily/monthly allowances, been denied by a response from an accounting callback, or an error has occurred processing an accounting callback. To aid in troubleshooting, the HTTP 403 error response now includes text that explains the reason for the message rejection. Additionally, it is easier to search for rejection information in the SMSDEBUG.LOG, as the error information in the log will be preceded by “MessageAccountingReject:”.

2010-06-17:

* SMPP Configuration: Add a scroll bar to the “SMSC Character Set” options list to allow easier selection of different character sets.

* SMS Gateway Accounting Callbacks: Fix “SMSOut” accounting callback to start with the text “Retry Pending” for “Status” when a message delivery attempt fails, but a retry is still pending, allowing temporary errors to be properly distinguished from final error conditions.

* SMS Gateway: Optional fix for segmentation logic to avoid repeating UDH headers when NowSMS is automatically segmenting a long message submitted via SMPP “message_payload” or via HTTP. Repeating UDH headers in all segments can cause problems for some uses, particularly SIM data download. To enable this logic, add RepeatUDHAllSegments=No under the [SMSGW] header of SMSGW.INI.

* SMS Gateway/SMPP Client: When operating in sync mode, if ESME_RTHROTTLED is returned, after waiting for the throttle delay, the same message will be re-attempted up to 5 times.

* SMS Gateway/SMPP Client: The SMPP Throttle error delay is now configurable on a per connection basis. The default throttle error delay is 5 seconds. To set a global throttle error delay that applies to all connections, add SMPPThrottleErrorDelay=## (where ## is a number of seconds) under the [SMSGW] header of SMSGW.INI. To specify a delay that should be used only for a specific connection, add SMPPThrottleErrorDelay=## to the [SMPP - server:port] section for the connection.

* SMS Gateway/SMPP Client: Add configuration option to treat the ESME_RMSGQFUL (receive message queue full) error the same way as a throttling error, subjecting it to the SMPPThrottleErrorDelay pause. This option can be activated for inidividual SMPP connections if desired by adding ThrottleForQFull=Yes under the [SMPP - server:port] section header for a connection.

* SMS Gateway: Additional performance optimisations for user credit balance and quota tracking.

* SMS Gateway: Fix for a message encoding problem when sending long text messages via an outbound SMPP connection with WDP Adaptation enabled if the message contains source and/or destination port addressing.

2010-06-04:

* SMS Gateway/GSM Modem Receive Message: Fix for a problem where the sender phone number was not being interpreted correctly for some messages. For some reason, the problem messages were being received with the sender address type being set to a reserved/unknown value, which was causing NowSMS to mistakenly interpret the sender address as being alphanumeric.

2010-06-02:

* SMS Gateway: Performance optimisations for user credit balance tracking.

2010-06-01:

* MMSC/MM4: When generating MM4_forward.RES acknowledgments include the “X-Mms-Message-ID:” and “X-Mms-Transaction-ID:” headers exactly as they were received. Previously, quote characters were added to these values if they were not present in the received message, because the MM4 specification (3GPP 23.140) defines these headers as requiring quoted-string values. This was causing a problem with an MM4 interconnect to NTT DoCoMo Japan, which is not properly formatting these headers with quoted-string values. In the unlikely event that this change causes a problem with other MM4 interconnects, a configuration setting has been added to force the old behaviour which would always format these values as quoted-string. To enable this old behaviour, edit MMSC.INI and under the [MMSC] header, add ForceMM4QuotedMessageID=Yes.

2010-05-25:

* MMSC: Fix for a corrupt message problem that triggered repeated MMSC restarts and denial of service.

2010-05-24:

* SMS Gateway: Fix for bug effecting the “ReRouteReceived” setting, which allows messages received via an SMSC connection to be redirected for delivery via another SMSC connection. Recent changes to allow accounting callbacks to specify message routing was causing invalid routing information to be recorded for these messages, causing them to be stuck in the queue.

2010-05-20:

* GSM Modem Handling: When routing messages received via a GSM modem to an SMPP client account, if the modem phone number is not available, insert a value of “1″ as the destination address instead of blocking the message from being received by the SMPP client.

2010-05-17:

* SMS Gateway: 2010-05-07 version had a problem with “Stuck messages” if messages were submitted with explicit queue routing (&SMSCRoute=routename), and the setting UseRouteQueues=Yes was not applied.

2010-05-13:

* GSM Modem Handling: Additional checks to stop polling memory locations that don’t exist on unusual modems like the Multitech CDMA modem. (Was not an operational problem, but resulted in a lot of error information in debug logs.)

2010-05-12:

* GSM Modem Handling: Add an additional modem test (AT+CREG?) to check if the modem reports loss of signal. If the loss of signal condition persists, trigger a soft reset of the modem to try to get the modem to reconnect with the operator.

* GSM Modem Handling: Fix for a “CMS ERROR: 340″ issue that could occur with some CDMA modems that emulate GSM modems, where NowSMS would try to use support for GSM Phase 2+, even if it was not enabled in the configuration.

2010-05-07:

* SMS Gateway: Add the capability to define the number of transmitter, receiver and/or transceiver connections to be allocated for a single SMPP connection, without requiring multiple duplicate connections to be defined. In the [SMPP - server:port] section of SMSGW.INI, the following settings are supported: TransmitterCount=## and ReceiverCount=##. TransmitterCount=## defines the number of transmitter connections to be established. If transceiver mode is configured, TransmitterCount specifies the number of transceiver connections to be established. If transceiver mode is not configured, ReceiverCount specifies the number of receiver connections to be established. Note that the number of receiver connections cannot be greater than TransmitterCount.

* SMS Gateway: Performance optimisations for large message queues, especially when there are a large number of outbound SMSC connections. Previously documented UseRouteCache=Yes parameter setting is now enabled by default. In the event of unexpected problems, the new routing logic can be disabled with a setting of UseRouteCache=No under the [SMSGW] header of SMSGW.INI.

* SMS Accounting Callbacks: Add SMPPOptions TLV parameters to the accounting callbacks.

* SMS Accounting Callbacks: Fix for a problem with accounting callbacks if text included “@@”.

* MMSC: Fix problem with automatic MMS version detection that was preventing some MMS clients from recognising that the MMSC supports read receipts, causing clients to send read receipts as standard messages (bug was introduced in early 2009 versions).

* MMSC: Add pre-auth callback for “MMSReadReport” when an MM1 client is submitting a message read receipt. (A pre-auth callback is not necessarily required for this event, however it is being added for consistency, since a pre-auth callback does exist for delivery reports.) Pre-auth delivery report callback also modified to include AccountingExtraHeaders if configured.

* MMSC: Fix for MMSC routing callback not including the “From=” parameter for messages submitted via the web interface.

2010-04-20:

* SMS Gateway: Fix for a routing issue where multiple SMSC connections have the same sender address, where one route has one or more preferred routes, and another route with the same sender address has “Support any outbound message traffic” checked. Messages with a matching sender address should only be routed to the first route if the recipient matches a preferred route, however it was being routed to either route. Note: This only applies to sender based routing.

2010-04-15:

* Accounting Callbacks: Add additional parameter “AcctInfo=” that can be included when submitting a message via HTTP. If included on submission, this parameter will be passed to subsequent accounting callbacks regarding the message.

* MMSC: Fix for MM4 message decoding problem when “Content-Location:” header contains a space character. According to RFC2557, White space characters do not appear to be valid as part of a location name in this header. A change to allow them is being implemented to address a problem where customers are receiving corrupt messages from some Verizon phones.

* SMS Gateway: New performance optimisations for performance problems with large message queues, especially when combined with a large number of outbound SMSC connections. These performance optimisations are only enabled in this version when UseRouteCache=Yes is specfied under the [SMSGW] header of SMSGW.INI.

* Internal: Include additional error checking to detect and automatically repair SQLite databases that are used for receipt tracking.

* Internal: Update SQLite databased (used for message id receipt tracking) to v3.6.23.

2010-03-18:

* SMS Gateway: Fix for 2-way SMS problem on Windows XP systems, where early 2010 versions would have problems sending replies to 2-way SMS messages because of corrupt “SMSCRoute=” information being added to the SMS message.

* SMS Gateway: Add configuration settings to disable user logging and quota management features to add performance for systems that do not need user logs and/or quota tracking. Under the [SMSGW] header of SMSGW.INI, the following settings have been added: DisableUserLog=Yes – This setting disables the creation of user specific log files in the USERS\username directory structure. DisableUserQuota=Yes – This setting disables the tracking of how many messages each user account sends in a day.

2010-03-10:

* SMS Gateway: Fix for delivery receipts message IDs not being tracked if the sender address is alphanumeric containing a ‘ (single quote/apostrphe) character.

* SMS Gateway: Minor performance optimisation for large message queues (could be major for some installations, minor for others).

* WAP Push testing parameters added to meet a particular conformance test which required support for WAP Push SI, SL and CO messages using WBXML version 1.1 and the iso-8859-1 character set. NowSMS defaults to using WBXML version 1.2 and the UTF-8 character set. To set the WBXML version, edit SMSGW.INI and under the [SMSGW] section header, add WAPPushWBXMLVersion=1.1. To specify iso-8859-1 as the WAP Push character set, use WAPPushUseUTF8=No in the [SMSGW] section of SMSGW.INI.

2010-02-10:

* Fix for error message confusion where NowSMS would report an error about the SMPP port already being in use when the port conflict actually involved the SMTP port.

SMPP Information and Resources

$
0
0

SMPP (Short Message Peer-to-Peer) Protocol is an industry standard protocol that is used for exchanging SMS messages between peer entities.  In SMPP terminology, two types of entities are defined, a Short Message Service Centre (SMSC), and an External Short Messaging Entity (ESME).

In simplistic terms, an SMSC manages SMS messages for a mobile operator network, delivering SMS messages to mobile phones.

An ESME is any other type of entity that wants to exchange SMS messages with these mobile subscribers.  In other words, it is any type of application or service that wants to be able to send and/or receive SMS messages. These applications or services are also often referred to as Value Added Services (VAS) or Value Added Service Providers (VASP).

The SMPP protocol is designed to facilitate the exchange of these SMS messages over the standard TCP/IP protocol.

SMPP is designed to be fast and efficient to facilitate high volume reliable message exchange.

This page is designed to be a quick resource for more information on SMPP.  The following links provide more detailed information on specific issues or considerations regarding SMPP (especially for users of NowSMS):

  • SMPP Version 3.4 Protocol Specification – This is the version of the SMPP specification that is in widespread use.  There is a later version 5.0 specification that was defined, but it did not have significant market acceptance, and the group that defined the later version specification has been disbanded.
  • SMPP Version 3.3 Protocol Specification – A few mobile operators still use old SMSCs that implement the version 3.3 specification.  They can be challenging to work with as some areas of the version 3.3 specification are even more vague than version 3.4.
  • Connecting to an SMPP SMSC – Connecting to an SMSC using SMPP can be confusing because of unusual terminology like TON, NPI, and service type.  It can also be confusing because there are many key areas of the SMPP specification that are vague, and different providers have decided to implement things different ways, especially with regard to character set encoding.  This link explains how to configure an SMSC connection in NowSMS, and includes a discussion of some of the terminology and configuration options.
  • SMPP Character Set Issues: Long Text Messages and Unicode – Some SMPP implementations want you to submit a long message in a single submission, others require you to perform message segmentation based upon the message type (sometimes using TLV parameters, sometimes using GSM UDH).  Some SMPP implementations use the GSM character set, others use iso-8859-1.
  • What are TON and NPI Settings? – TON (Type of Number) and NPI (Numbering Plan Indicator) are two of the settings that can easily give you a headache.  This link provides more information on these settings.
  • Optional TLV Parameters – The SMPP Protocol is extensible in that it allows providers to add their own additional parameters, which are known as TLV parameters, so named because of the format of these parameters … Tag, Length, then Value.   Some TLV parameters are defined in the specification, but are optional and are sometimes used and sometimes not used.  Other parameters are provider specific.  This link helps you learn more about TLV parameters by explaining how to configure NowSMS to support custom TLV parameters for a provider.
  • SMPP Error Code Reference – What do the error numbers or obscure terms like ESME_RTHROTTLED mean?  Use this link as a quick reference.
  • SMPP Error Handling in NowSMS – This link explains how NowSMS handles different SMPP errors, and how can this behaviour be modified.
  • Limiting the Speed of an SMPP Connection – SMS providers limit the speeds at which they will accept messages in order to optimise their resource allocation.  If you try to send faster than your provider allows, you may encounter unexpected errors and delays.
  • Understanding SMPP Connection Types – Are you both sending and receiving messages?  Does your provider expect you to establish separate sender and receiver connections, or do they expect you to connect as a single connection transceiver?
  • Using NowSMS as an SMPP Server for Other Applications – One of the more common uses of NowSMS is to use NowSMS as an SMPP server.  Other clients or applications connect to NowSMS as their SMPP Server, and NowSMS chains to one or more other SMSCs for sending and receiving SMS messages, possibly using SMPP, or possibly using other protocols.
  • SMPP Asynchronous Mode – If you’re sending faster than 10 SMS messages per second, you  need to understand SMPP asynchronous mode.
  • NowSMS Tech Support Blog – This link will display SMPP related posts on the NowSMS Tech Support Blog.
  • NowSMS Technical Forum / Discussion Board – Additional discussions of SMPP related topics and issues take place on the NowSMS Technical Forum / Discussion Board.  Feel free to search these discussions and/or post questions.

One more thing …

As I wrote this post, I recalled one other bit of SMPP terminology that can drive new users crazy … MO and MT messages.  Some people like to throw these terms around just to pretend they know what they are talking about.

MO – Mobile Originated message … in other words, a message that has been sent by a mobile phone subscriber.

MT – Mobile Terminated message … in other words, a message that is destined to be delivered to a mobile phone subscriber.

When you are an application provider that is connecting to an SMS service provider, you receive MO messages, and you send MT messages.

If you would like more information on interfacing your application to NowSMS for SMS message processing, please refer to our API guide at:  http://www.nowsms.com/faq/apis-apis-apis-more-apis

Viewing all 92 articles
Browse latest View live