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

Send MMS from VB.NET

$
0
0

A VB.NET example for sending MMS messages via NowSMS has been posted at the following link: http://www.nowsms.com/download/sendmms.vb.txt

For a C# .NET version of this example, please see the related article Send MMS from C# .NET.

MMS examples for other environments (PHP, Java, command line) can be found at http://www.nowsms.com/sending-mms-messages-with-nowsms.

As discussed in Sending MMS Messages with NowSMS, one of the easiest ways to interface with NowSMS for sending MMS messages is to use what we refer to as the Proprietary URL Submission interface.  This interface is the one used for sending messages via the forms in the built-in NowSMS web interface.  Sending an MMS message via this interface is a matter of using an HTTP POST to submit MMS content in the form using the MIME type “multipart/form-data”.  This technique is often referred to as “HTTP File Upload” and is associated with web pages that have a “Browse” button that allows files to be uploaded.

There’s a great C#.NET HTTP File Upload library at: http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx

A direct link to download the library is here (only the UploadHelper component is needed): http://aspnetupload.com/AspNetUploadSamples.zip

In the event that this link does not work in the future, we have archived a copy of the library at the following link:

 

application/x-zip-compressedAspNetUploadSamples.zip
AspNetUploadSamples.zip(388.7 k)

 

The following VB.NET code example uses code from that library to send an MMS message:

(Note: This example can be downloaded at http://www.nowsms.com/download/sendmms.vb.txt.)

Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Web
Imports System.Web.Services
Imports ClassLibrary1
Imports ClassLibrary1.Krystalware
Imports ClassLibrary1.Krystalware.UploadHelper
Imports ClassLibrary1.Krystalware.UploadHelper.HttpUploadHelper
Imports ClassLibrary1.Krystalware.UploadHelper.MimePart
Imports ClassLibrary1.Krystalware.UploadHelper.StreamMimePart
Imports ClassLibrary1.Krystalware.UploadHelper.StringMimePart
Imports ClassLibrary1.Krystalware.UploadHelper.UploadFile
Imports System.Collections.Specialized

Public Class Form1
    Public Sub SendMMS()
        ' Set the following variables as appropriate for your system. 
        ' URL that points to NowSMS web interface 
        Dim url As New Uri(" http://127.0.0.1:8800/ ")

        ' Valid username/password for account defined in NowSMS under "SMS Users". 
        Dim username As [String] = "testuser"
        Dim password As [String] = "testpass"

        ' Images & Files to be included in the message. 
        ' First parameter is filename and path. 
        ' Second parameter must be MMSFILE 
        ' Third parameter should be MIME type 

        Dim files As UploadFile() = New UploadFile() {
         New UploadFile("c:\mms\tts.mp3", "MMSFILE", "audio/mpeg"),
         New UploadFile("c:\mms\image.png", "MMSFILE", "image/png")}

        ' Create additional form parameters for sending MMS 
        Dim form As New NameValueCollection()

        ' "PhoneNumber" variable contains recipient phone number 
        form("PhoneNumber") = "09059999999"
        ' "MMSFROM" variable contains sender phone number or address
        '  (Note: Ignored when sending via modem) 
        form("MMSFROM") = "09058888888"
        ' "MMSSUBJECT" variable contains subject line for message 
        form("MMSSUBJECT") = "test subject"
        ' "MMSTEXT" variable contains test to appear in message (optional) 
        form("MMSTEXT") = "this is a test message"

        ' Send the request to NowSMS, creating an HttpWebRequest and 
        ' then use HttpUploadHelper to send files in multipart/form-data format 
        Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)

        Dim credCache = New CredentialCache()
        credCache.Add(url, "Basic", New NetworkCredential(username, password))
        req.Credentials = credCache

        Dim resp As HttpWebResponse = HttpUploadHelper.Upload(req, files, form)

        ' Read the HTTP response and echo to console 
        Using s As Stream = resp.GetResponseStream()
            Using sr As New StreamReader(s)
                Dim response As String = sr.ReadToEnd()
                MsgBox(response)
                System.Console.WriteLine(response)
            End Using
        End Using
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SendMMS()
    End Sub
End Class

 

Additional MMS options can be included using the form(“variablename”) = “value” syntax shown in the above example. The other options/variables are described in more detail in http://www.nowsms.com/sending-mms-messages-with-nowsms.


Send MMS from C# .NET

$
0
0

A .NET C# example for sending MMS messages via NowSMS has been posted at the following link: http://www.nowsms.com/download/sendmms.c#.txt

For a VB.NET version of this example, please see the related article Send MMS from VB.NET.

MMS examples for other environments (PHP, Java, command line) can be found at http://www.nowsms.com/sending-mms-messages-with-nowsms.

As discussed in Sending MMS Messages with NowSMS, one of the easiest ways to interface with NowSMS for sending MMS messages is to use what we refer to as the Proprietary URL Submission interface.  This interface is the one used for sending messages via the forms in the built-in NowSMS web interface.  Sending an MMS message via this interface is a matter of using an HTTP POST to submit MMS content in the form using the MIME type “multipart/form-data”.  This technique is often referred to as “HTTP File Upload” and is associated with web pages that have a “Browse” button that allows files to be uploaded.

There’s a great C#.NET HTTP File Upload library at: http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx

A direct link to download the library is here (only the UploadHelper component is needed): http://aspnetupload.com/AspNetUploadSamples.zip

In the event that this link does not work in the future, we have archived a copy of the library at the following link:

 

application/x-zip-compressedAspNetUploadSamples.zip
AspNetUploadSamples.zip(388.7 k)

 

The following code example uses code from that library to send an MMS message:

(Note: This example can be downloaded at http://www.nowsms.com/download/sendmms.c#.txt.)

// Set the following variables as appropriate for your system. 

// URL that points to NowSMS web interface 
Uri url = new Uri("http://127.0.0.1:8800/"); 

// Valid username/password for account defined in NowSMS under "SMS Users". 
String username = "testuser"; 
String password = "testpass"; 

// Images & Files to be included in the message. 
// First parameter is filename and path. 
// Second parameter must be MMSFILE 
// Third parameter should be MIME type 

UploadFile[] files = new UploadFile[] 
{ 
new UploadFile("f:\\temp\\image1.png", "MMSFILE", "image/png"), 
new UploadFile("f:\\temp\\image2.jpg", "MMSFILE", "image/jpeg"), 
}; 

// Create additional form parameters for sending MMS 
NameValueCollection form = new NameValueCollection(); 

// "PhoneNumber" variable contains recipient phone number 
form["PhoneNumber"] = "9999999999"; 
// "MMSFROM" variable contains sender phone number or address
//  (Note: Ignored when sending via modem) 
form["MMSFROM"] = "9999999999"; 
// "MMSSUBJECT" variable contains subject line for message 
form["MMSSUBJECT"] = "test subject"; 
// "MMSTEXT" variable contains test to appear in message (optional) 
form["MMSTEXT"] = "This is a test message"; 

// Send the request to NowSMS, creating an HttpWebRequest and 
// then use HttpUploadHelper to send files in multipart/form-data format 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); 

var credCache = new CredentialCache(); 
credCache.Add(url, "Basic", new NetworkCredential(username, password)); 
req.Credentials = credCache; 

HttpWebResponse resp = HttpUploadHelper.Upload(req, files, form); 

// Read the HTTP response and echo to console 
using (Stream s = resp.GetResponseStream()) 
using (StreamReader sr = new StreamReader(s)) 
{ 
string response = sr.ReadToEnd(); 
System.Console.WriteLine(response); 
}

 

Additional MMS options can be included using the form["variablename"] = “value” syntax shown in the above example. The other options/variables are described in more detail in http://www.nowsms.com/sending-mms-messages-with-nowsms.

Nokia N9 Unable to Receive MMS

$
0
0

It has come to our attention that there is a bug in the MMS client of the Nokia N9 which can prevent this phone from being able to receive MMS messages from a NowSMS MMSC.

The problem occurs because the MMS client cannot process an MMS notification message where the MMS Content URL contains a URL escaped parameter.  When the MMS client encounters a URL escaped parameter in a URL, it re-encodes the URL with another level of URL escaping.  As an example, if the MMS client receives an MMS notification which includes a URL with a parameter ?id=%2b, the MMS client converts this to ?id=%252b.  This errant conversion causes the MMSC to be unable to determine the message that the client is asking to retrieve.

As a work-around for this issue, the following configuration setting can be applied in the [MMSC] section of the MMSC.INI file:

CompactMMSURL=Yes

This setting changes the format of the MMS content URL so that it will not include any URL escaped parameters, and will avoid the bug in the Nokia N9 MMS client.

The original intended effect of this setting was to reduce the length of the MMS Content URL by 14 bytes.  This setting should have no other effect on operation.

An updated release of the NowSMS MMSC is also available at http://www.nowsms.com/download/nowsms20120209.zip, which implements a work-around for this problem without requiring any special configuration settings.

 

SMPP Server Adds @ Characters to Text Message

$
0
0

It has come to our attention that a bug exists in the NowSMS SMPP Server implementation for versions dated between 2011.07.xx and 2012.01.xx inclusive.

This bug only effects configurations where NowSMS is being used as an SMPP server.  In other words, an SMPP client is being used to submit messages to NowSMS, and messages are being segmented by the SMPP client before they are submitted to NowSMS.  (If the client uses message_payload submission and allows NowSMS to segment messages, the problem does not occur.)

This bug could cause up 1 to 3 extra @ characters to be appended to message text for long messages that require 3 or more segmented messages.  Specifically effected were messages where the final segment contained less than 4 characters of text, where extra @ characters might be added to cause the segment to have at least four characters.  For example, messages with between 207 and 209 characters inclusive would be padded to 210 characters with extra @ characters at the end.  Messages with between 460 and 462 characters inclusive were similarly effected, and padded to 463 characters in length.

(Effected messages had character lengths between (x * 153) + 1 and (x * 153) + 3 inclusive, where x is larger than 2.)

An updated release of NowSMS, which corrects this problem, is available at http://www.nowsms.com/download/nowsms20120209.zip.

An updated release of NowSMS Lite which includes this fix is available at http://www.nowsms.com/download/lite20120209.zip.

 

Please note that there are numerous other issues that can cause @ characters to appear unexpectedly in SMS messages, which are not specifically related to this bug.  This bug only effects messages of the specified lengths in the listed versions of NowSMS.

Other unexpected problems related to the  @ character can occur because in the GSM character set, the @ character is represented by a NULL (value of 0).

If  you experience a problem where your text messages are truncated at an @ character, or @ characters are missing from text messages, this is indicative that you are using a different character set than the SMSC.  If you experience this problem with an SMPP connection, we recommend changing the “SMSC Character Setting” for the SMPP connection to use iso-8859-1, as this problem suggests that the SMPP provider is expected use of the iso-8859-1 character set.  By default, NowSMS uses the GSM character set for SMPP connections.

If you are experiencing problems sending particular characters via SMS, please post a query in our discussion forums at http://www.nowsms.com/messages.

Provisioning SMS and MMSC User Accounts via HTTP

$
0
0

NowSMS has long supported external account provisioning via HTTP as described in the article at http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http.

The purpose of this article is to document additional parameters supported in more recent versions of NowSMS.

This provisioning interface is enabled whenever one or more user accounts is defined in NowSMS under “SMS Users” with the “Enable Admin Access” checked.

This interface is accessed via the NowSMS web interface port, with a URI of “/provision” followed by a series of “HTTP GET” parameters. (The admin username and password must be supplied in the HTTP GET request within an “Authorization:” header using HTTP Basic Authentication, or they can be be appended to the URL as parameters such as /provision?user=username&password=password.  Using URL parameters for provisioning authentication is supported only in NowSMS 2012.01.10 and later.)

Two different provisioning request formats are defined, one for defining ”SMS Users” accounts, and a second for defining “MMSC Users” accounts.

If a parameter of ”Type=SMS“ is specified, the following parameters are supported:

AdminAction=Add, Modify, Delete, or CreditCheck

Name=Account Name

Password=password

Fullname=Full Name

EnableWebLogin=Yes/No

EnableSmppLogin=Yes/No

EnableSmtpLogin=Yes/No

ForcedSenderAddress=Sender Address

RestrictIPAddress=list of IP addresses

EnableCreditBalance=Yes/No

CreditsToAdd=####

MessageLimitDefault=Yes/No

MessageLimitPerDay=####

MessageLimitPerMonth=####

RecipientAddresses=list of recipient phone numbers that should be routed to this account

WebOptions=All/Advanced/TextOnly/Text/SMSMMS/SMSWAPMM/SMSMMSWAPMM

AdminEnabled=Yes/No (version 2011.10.18 and later)

ReceiveEnabled=Yes/No (version 2011.10.18 and later)

As an example, to add credits to an existing account, issue the following URL request:

http://server:port/provision?Type=SMS&AdminAction=Modify&Name=accountname&CreditsToAdd=100

Assuming that the user is authorized to issue a provisioning command (valid username/password, and supported IP address for originating the request), the server will return a normal HTTP response code of 200 with a MIME content type of “text/plain”. The response will start with “OK” if the request was successful, or “ERROR” if the request failed. If a”CreditsToAdd” parameter was specified, or ”AdminAction=CreditCheck”, the HTTP response will include the text ”Credits=####”, where “####” is the current balance for the account.

If a parameter of ”Type=MMS“ is specified, the following parameters are supported:

AdminAction=Add, Modify, Delete, or CreditCheck

PhoneNumber=phonenumber

Name=Alias

Password=password

Fullname=Full Name

MessageLimitDefault=Yes/No

MessageLimitPerDay=####

MessageLimitPerMonth=####

Understanding SMS Accounting Callbacks for Billing and Charging

$
0
0

Accounting callbacks provide an interface between the NowSMS SMS Gateway and external billing and charging systems.  They can also be used to control message routing, providing a way for a  user application to control which SMSC connections are used for sending particular messages.

These accounting callbacks are HTTP-based. When accounting callbacks are enabled, NowSMS will issue HTTP requests to a customer supplied URL in order to interface with the customer billing and charging systems.

To enable SMS accounting callbacks, it is necessary to manually edit the SMSGW.INI configuration file, and define the callback URL under the [SMSGW] section header, using the following configuration parameter:

SMSAccountingURL=http://server/path

Whenever the SMS Gateway processes an SMS message, it issues an accounting callback by issuing an HTTP transaction to the callback URL. Variables describing the SMS message transaction are appended to the SMSAccoutingURL as HTTP GET CGI-style variables, with standard URL escaping applied for encoding reserved characters.

For example:

http://server.name/path?PreAuth=Yes&Type=SMSSend&From=UserAccount&To=%2B447777777777
&MsgCount=1&SubmitIP=127.0.0.1&Text=This%20is%20a%20test.

(These variables and transaction types will be described later in this section.)

Accounting callbacks exist primarily to record billing and charging information, however they also can offer the ability to maintain credit control external to NowSMS.

The following accounting callbacks exist for SMS Messaging:

  • SMSSend PreAuth Callback – This callback occurs when a client user account is attempting to submit an SMS message to NowSMS.  The callback can choose to accept or reject the message, and can optionally control message routing and some other message attributes.
  • SMSSend Accounting Callback – This callback occurs when a client user account has submitted an SMS message to NowSMS, and NowSMS has accepted this message for processing.  The callback can choose to accept or reject the message, and can optionally control message routing and some other message attributes.
  • SMSOut Accounting Callback – This callback records that a message has been submitted to an upstream SMSC connection, or has an encountered an error condition or rejection when attempting to be sent to an upstream SMSC connection.
  • SMSIn Accounting Callback – This callback records that an inbound message has been received from an upstream SMSC connection.

The remainder of this section provides additional details on the parameters supported by these callbacks.

SMSSend PreAuth Callback

This callback is executed when an SMS (web, SMPP, SMTP) user is requesting to send a message.

This is a “pre-authorisation” request, and does not mean that the message will actually be accepted by NowSMS for delivery. If NowSMS cannot successfully connect to the accounting URL, or the URL returns a response other than a standard “HTTP 200 OK” response, the user request to send a message will be blocked.  To separate error conditions from active blocking of a message, we recommend that the response include the text “PreAuth=Deny” if the message should be blocked from acceptance.

HTTP clients can submit a single message to multiple recipients.  In this case, normal behaviour for NowSMS is to use a single PreAuth callback specifying the  number of messages that will be sent in the “MsgCount” parameter.  It is possible to override this behaviour and generate a separate PreAuth callback per recipient by setting SMSAccountingPreAuthPerRecip=Yes under the [SMSGW] section header of SMSGW.INI.  (The setting SMSAccountingMustSetRoute=Yes also forces this per recipient callback behaviour.)  If a PreAuth callback rejects one recipient of a multiple recipient message, the entire message will be rejected.  For this reason, it is important to understand that a successful PreAuth callback does not mean that NowSMS has accepted a message for processing.  NowSMS will generate a separate SMSSend Accounting Callback (always one per recipient) when it accepts the message for further processing.

The following variables will be set for a pre-authorisation request:

PreAuth=Yes (indicates that the message is a Pre-Authorisation Request)
Type=SMSSend
From=Defined “SMS Users” Account
To=Comma delimited list of message recipients (will not be present if message is addressed to more than 100 recipients)
MsgCount=#### (number of recipients user is requesting to send the message to)
SubmitIP=a.b.c.d
SMSCRoute=xxxxxx (optional, will be present only if an explicit route was requested in message submission)
Sender=xxxxxx (optional, will be present only if a sender address was specified in message submission)
Binary=1 (optional, will be present if the message is binary)
PID=# (optional, will be present only if a non-zero PID value was specified in message submission)
DCS=# (optional, will be present only if a non-zero DCS value was specified in message submission)
UDH=HexString (optional, will be present only if message contains User Data Header)
Data=HexString (optional, will be present only if message is binary)
Text=String (optional, will be present only if message is text)
ReceiptRequested=Yes (optional, will be present only if message is requesting a delivery receipt … only available in v2009.01.26 and later)

Any defined SMPPOption parameters will also be included.

(Note: For SMTP message submissions, only PreAuth, Type, From, To and MsgCount variables will be present.)

Example:

http://server.name/path?PreAuth=Yes&Type=SMSSend&From=UserAccount&To=%2B447777777777&MsgCount=1&SubmitIP=127.0.0.1&Text=This%20is%20a%20test.

Note that URL escaping is performed when building the URL string. Most HTTP scripting languages will automatically unescape these parameters for you (e.g., %2B is translated back to “+” and %20 is translated back to a space character).

The HTTP response can include additional text responses to further control message processing.  These additional responses are expected to appear in the text of the HTTP response, as Name=Value entries appearing with one Name=Value per line of text (e.g., separated by new line characters).

The following Name=Value responses are supported for the SMSSend PreAuth Callback:

PreAuth=Deny

This causes NowSMS to reject the message, and the submitting client will receive a submission error.

SMPPErrorCode=0x#### or ####

Specifies a numeric error code to be returned to the submitting client if the message was submitted via SMPP.  The default error code for a rejected message is 0×0058 (ESME_RTHROTTLED).

RejectMessage=text string

This parameter specifies error text to be returned to the user if the submission interface supports returning such text (e.g., HTTP).

The following Name=Value responses are supported only if SMSAccountingPreAuthPerRecip=Yes or SMSAccountingMustSetRoute=Yes is set under the [SMSGW] section header of SMSGW.INI:

SMSCRoute=routename

If this setting is present in the response, NowSMS will use the specified outbound route name for delivering the message.   (For more information on SMS message routing, see http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route.)  In NowSMS versions 2011.08.11 and later, the SMSCRoute can also take the format localuser:username (the text localuser: followed by a user account name) to indicate that the message should be routed to a local user account instead of an outbound SMSC connection.

Note:  If you are relying on accounting callbacks to set route information, we recommend setting SMSAccountingMustSetRoute=Yes under the [SMSGW] section header of SMSGW.INI.  If this setting is not present, and an accounting callback returns invalid or missing routing information, NowSMS will use its internal routing logic to route the message.   If this setting is present, NowSMS will reject or fail messages if the accounting callback returns invalid or missing routing information.

Further Note:  Routing information can be returned in response to either the SMSSend PreAuth or SMSSend Accounting Callbacks.  If set by the SMSSend PreAuth Callback, any routing response by the SMSSend Accounting Callback will  be ignored and the PreAuth routing information will be used.

RouteCharge=####

If NowSMS credit balances are being used for user accounts, this specifies a charge to be used for the message.  By default, NowSMS assumes 1 credit per message.  This value can support a variable number of credits, including decimal values valid to thousandths of a credit (e.g., .001).

UserData=text

If this value is returned, it will be passed as a parameter to any future SMSSend Accounting Callback referencing this same transaction.  NowSMS versions 2012.02.09 and later will also pass this parameter to any future SMSOut Accounting Callback referencing this same transaction.

 

SMSSend Accounting Callback

This callback is executed after an SMS message that has been submitted by a client user account has been accepted by NowSMS for further processing.

In NowSMS 2009 and later, NowSMS will check the response to the HTTP request. If this response includes the text “SMSCRoute=xxxxx”, then NowSMS will apply this SMSC route for the message. The specified route “xxxxx” can either be the name of a particular SMSC connection (e.g., “SMPP – host:port”), or it can be the value of the “RouteName=” attribute defined for one or more connections. (For more information on the “RouteName=” attribute, see http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route.)

In NowSMS versions 2011.08.11 and later, the SMSCRoute can also take the format localuser:username (the text localuser: followed by a user account name) to indicate that the message should be routed to a local user account instead of an outbound SMSC connection.

Note:  If you are relying on accounting callbacks to set route information, we recommend setting SMSAccountingMustSetRoute=Yes under the [SMSGW] section header of SMSGW.INI.  If this setting is not present, and an accounting callback returns invalid or missing routing information, NowSMS will use its internal routing logic to route the message.   If this setting is present, NowSMS will reject or fail messages if the accounting callback returns invalid or missing routing information.

The following variables will be set for the accounting callback:

Type=SMSSend
From=Defined “SMS Users” Account
To=Message Recipient Phone Number (if the message is sent to multiple recipients, this callback is repeated for each recipient)
MessageID=Message ID assigned to the message by NowSMS
SubmitIP=a.b.c.d
SMSCRoute=xxxxxx (optional, will be present only if an explicit route was requested in message submission)
Sender=xxxxxx (optional, will be present only if a sender address was specified in message submission)
Binary=1 (optional, will be present if the message is binary)
PID=# (optional, will be present only if a non-zero PID value was specified in message submission)
DCS=# (optional, will be present only if a non-zero DCS value was specified in message submission)
UDH=HexString (optional, will be present only if message contains User Data Header)
Data=HexString (optional, will be present only if message is binary)
Text=String (optional, will be present only if message is text)
ReceiptRequested=Yes (optional, will be present only if message is requesting a delivery receipt … only available in v2009.01.26 and later)

Any defined SMPPOption parameters will also be included.

(Note: For SMTP message submissions, only Type, From, and To variables will be present.)

Example:

http://server.name/path?Type=SMSSend&From=UserAccount&To=%2B447777777777&SubmitIP=127.0.0.1&Text=This%20is%20a%20test.

Note that URL escaping is performed when building the URL string. Most HTTP scripting languages will automatically unescape these parameters for you (e.g., %2B is translated back to “+” and %20 is translated back to a space character).

The HTTP response can include additional text responses to further control message processing.  These additional responses are expected to appear in the text of the HTTP response, as Name=Value entries appearing with one Name=Value per line of text (e.g., separated by new line characters).

The following Name=Value responses are supported for the SMSSend Accounting callback:

SMSCRoute=routename

If this setting is present in the response, NowSMS will use the specified outbound route name for delivering the message.   (For more information on SMS message routing, see http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route.)  In NowSMS versions 2011.08.11 and later, the SMSCRoute can also take the format localuser:username (the text localuser: followed by a user account name) to indicate that the message should be routed to a local user account instead of an outbound SMSC connection.

Note:  If you are relying on accounting callbacks to set route information, we recommend setting SMSAccountingMustSetRoute=Yes under the [SMSGW] section header of SMSGW.INI.  If this setting is not present, and an accounting callback returns invalid or missing routing information, NowSMS will use its internal routing logic to route the message.   If this setting is present, NowSMS will reject or fail messages if the accounting callback returns invalid or missing routing information.

Further Note:  Routing information can be returned in response to either the SMSSend PreAuth or SMSSend Accounting Callbacks.  If set by the SMSSend PreAuth Callback, any routing response by the SMSSend Accounting Callback will  be ignored and the PreAuth routing information will be used.

UserData=text

If this value is returned, NowSMS versions 2012.02.09 and later will also pass this parameter to any future SMSOut Accounting Callback referencing this same transaction.

 

 

SMSOut Accounting Callback

This callback is executed when a submitted SMS message is dispatched to an upstream SMSC connection, or queued for a local SMPP user account.

The response to this HTTP callback is currently ignored. A standard HTTP 200 OK response is encouraged for future compatibility.

The following variables can be set for the accounting callback:

Type=SMSOut
From=String (local user account name, or upstream SMSC connection name)
To=Message Recipient Phone Number
MessageID=Message ID assigned to the message by NowSMS
SubmitIP=a.b.c.d (not present for messages received from upstream SMSC connection)
Sender=xxxxxx
Binary=1 (optional, will be present if the message is binary)
PID=# (optional, will be present only if a non-zero PID value was specified in message submission)
DCS=# (optional, will be present only if a non-zero DCS value was specified in message submission)
UDH=HexString (optional, will be present only if message contains User Data Header)
Data=HexString (optional, will be present only if message is binary)
Text=String (optional, will be present only if message is text)
MessageID=String (NowSMS assigned message ID)
SMSCMsgId=String (upstream SMSC assigned message ID, if available)
SMSCName=String (the SMSC connection to which this message was routed in the format that it appears in the NowSMS SMSC list, e.g., “SMPP – servername:port”)
Status=String (Starts with “OK”, “Retry Pending” or “ERROR” to indicate message disposition)

Any defined SMPPOption parameters will also be included.

 

 

SMSIn Accounting Callback

This callback is executed when an SMS message is received from an upstream SMSC connection.

The response to this HTTP callback is currently ignored. A standard HTTP 200 OK response is encouraged for future compatibility.

The following variables can be set for the accounting callback:

Type=SMSIN
To=Message Recipient Phone Number
Sender=xxxxxx
Binary=1 (optional, will be present if the message is binary)
PID=# (optional, will be present only if a non-zero PID value was specified in message submission)
DCS=# (optional, will be present only if a non-zero DCS value was specified in message submission)
UDH=HexString (optional, will be present only if message contains User Data Header)
Data=HexString (optional, will be present only if message is binary)
Text=String (optional, will be present only if message is text)
SMSCReceiptMsgID=String (optional, NowSMS assigned message ID will be present if this is a delivery receipt)
SMSCReceiptMsgIDOrig=String (optional, upstream SMSC assigned message ID will be present if this is a delivery receipt)
SMSCName=String (the SMSC connection from which this message was received in the format that it appears in the NowSMS SMSC list, e.g., “SMPP – servername:port”)

Any defined SMPPOption parameters will also be included.

2-Way / Inbound SMS Retry Error Handling

$
0
0

This article will explain how NowSMS handles retry situations when processing inbound SMS messages via a 2-way command, and there is a connectivity or other problem processing the 2-way command, particularly with regard to HTTP based 2-way SMS message processing commands.

There are other articles that explain how NowSMS handles retry situations for outbound message delivery.  A good overview can be found in the article SMPP Error Code Handling in NowSMS.  While that article focuses primarily on SMPP connections, the general parameters do also apply to modems.  Additional issues specific to CIMD2 and UCP/EMI SMSC connections can be found in the article SMS Retry Error Handling with UCP/EMI and CIMD2.

There are two types of error conditions to consider.   One condition is that the 2-way command is unable to process a message and returns an error response, such as “500 Internal Error”.  This could happen because of a web server configuration problem, or it could also happen because of a logic error in the 2-way command … for example, it is not uncommon to find programming errors in a 2-way command where unexpected message content causes unexpected problems.  The other type of condition, is a connectivity problem where it is not possible to connect to the web server hosting the 2-way command.

If a web server returns a valid HTTP error response, such as “500 Internal Error”, NowSMS policy is to mark the message as bad and never retry the message.  Over 5 years ago, older versions of NowSMS used to retry messages in these situations, but customers who encountered script problems complained about duplicate messages when their scripts returned unexpected errors.   When a message in the 2-way SMS queue fails in this manner, a file with a .BAD file extension is created inside the NowSMS\SMS-IN directory structure.  It is  possible to rename the file with a .IN file extension to trigger NowSMS to reprocess the message.

The remainder of this document explains retry procedures for messages where it is not possible to connect to the web server hosting the 2-way command, or the web server does not return a valid HTTP response (timeout).

By default, NowSMS will retry 20 times with a staggered delay based upon the number of previous failures.

The default behaviour for the delayed retry schedule works like this:

After the first error, a retry can be attempted immediately (but first NowSMS will try other pending messages).

After the second error, NowSMS will wait 30 seconds before allowing the message to be retried.

After the third error, NowSMS will wait 60 seconds before allowing the message to be retried.

For each successive error, NowSMS waits an additional 30 seconds before allowing a retry.

After 20 errors, the message will be considered as failed.

The following parameters can be applied to the [2Way] section of the SMSGW.INI file to provide additional control for this retry schedule (this section of the file will not exist until you create it):

RetryDelay=
RetryDelayMultiplier=
RetryDelayAfterAttempts=
RetryDelayMax=
RetryMaxAttempts=

RetryDelay=#### specifies a number of seconds to wait to retry sending after an error condition, the default value is 30.

RetryDelayMultiplier=### specifies a multiplier to be applied for successive send failures, the default value is 1. For each failed attempt, the retry delay will be the product of RetryDelay*RetryDelayMultiplier*#FailedAttempts. To use a fixed retry delay of RetryDelay, specify RetryDelayMultiplier=0.

RetryDelayAfterAttempts=### specifies that the retry delay should only be applied after ### failed attempts, the default value is 2. NowSMS will immediately retry a failed message send until it has made RetryDelayAfterAttempts, after which it will apply a retry delay.

RetryDelayMax=### specifies the maximum number of seconds that NowSMS will allow to elapse between retries, putting a limit on the multiplier.

RetryMaxAttempts=### specifies the maximum number of retries that NowSMS will attempt before a message is rejected, the default value is 20.

Note: If memory serves me correctly, the default values will result in about 90 minutes worth of retries before erroring out. (And the message file being renamed with a .BAD extension.)

Note that if these same settings names are also used to control retry behaviour for outbound messages.

Retry settings set under the [SMSGW] section header will apply to both inbound (2-way) and outbound messages.  If retry settings exist under both [2Way] and [SMSGW], [2Way] settings are used for inbound (2-way) messages and [SMSGW] settings are used for outbound messages.

Retry settings can also be placed under connection specific headers (e.g., [Modem - xxx] or [SMPP - server:port]) so that different rules can apply to different outbound connections.

Browse Tech Bulletins by Keywords

$
0
0

Our technical bulletins describe advanced technical features of the Now SMS & MMS Gateway and clarify advanced configuration options.

Follow this link to browse all technical bulletins, or select a topic from the list below.

It is also possible to subscribe to receive new technical bulletins automatically via e-mail.


Issue Receiving MMS over GSM Modem on Orange UK

$
0
0

We’d like to draw some attention to an issue that was reported (and quickly diagnosed) on our discussion forum last month.

A customer reported that they were no longer able to process received MMS messages using a GSM modem on the Orange  network in the UK.

There are a variety of potential causes, such as a SIM not being enabled for MMS support, or incorrectly provisioned Operator MMS settings.  However, this case was unusual.

Generally when there is a problem receiving MMS messages via a modem, the first thing we check is whether or not the modem can be used to send MMS messages.  Assuming that is OK, we look to see if NowSMS is reporting receiving any SMS messages when an MMS is expected.  As described in the How MMS Works article, the initial trigger for MMS message delivery is a specially formatted SMS message known as an MMS Notification.

The MMS Notification message was being received via SMS, and looking at the SMSDEBUG.LOG, it was determined that NowSMS was attempting to retrieve the MMS message using valid settings, but the operator MMSC was returning an error code 412 (Precondition Failed).

Needless to say, a web search for more information on HTTP error 412 Precondition Failed does not offer any good suggestions for what the problem might be.

However, in the discussion thread, Des correctly diagnosed that the MMSC was expecting something in the request that was not being provided, and suggested that the MMSC might be complaining that no user agent profile information is present in the request to retrieve the MMS message.

The solution to the problem was to locate and manually edit the MMSC.INI configuration file, adding the following settings under the [MMSC] section header:

HeaderUserAgent=iPhoneOS/4.2.1 (8C148) 
HeaderProfile=http://www.apple.com/mms/uaprof.rdf

For additional details, please refer to the original discussion thread:  Unable to retrieve mms using nowsms and orange.

NowSMS MMSC Diameter MM9 Implementation

$
0
0

This is a preliminary document outlining how MMS charging is to be implemented using Diameter and MM9 in the NowSMS MMSC. It also describes a test program that is used to validate proper Diameter configuration parameters and charging behaviour.

The MMSC implements Diameter Credit Control for charging based upon the following specifications:

[3GPPDIAM] defines a standard format for implementing MMS charging over Diameter, known as MM9 in the MMS protocol specifications. While the MMSC preference is to use MM9, it is also possible to configure the MMSC to use generic charging primitives defined in [DIAMCCA] in order to facilitate interoperability with a wider base of charging systems.

The MMSC will generate two different Diameter requests, which are described in detail in this document.

Capabilities-Exchange-Request is used to initiate the connection and identify that the connection is to be used for Diameter Credit-Control. In response, the MMSC expects to receive a Capabilities-Exchange-Answer that contains a Result-Code of 2001 to indicate success.

Credit-Control-Request is used to provide details for an MMS charging operation. In response, the MMSC expects to receive a Capabilities-Exchange-Answer that contains a Result-Code of 2001 to indicate success. The MMSC will reject the MMS submission if any other Result-Code is received.

 

Capabilities-Exchange-Request AVP Code Protocol Usage Notes
< Diameter Header > DIAMBASE Command-code = 257, REQ
{Origin-Host} 264 DIAMBASE Configurable – Local Origin-Host name associated with MMSC
{Origin-Realm} 296 DIAMBASE Configurable – Local Origin-Realm name associated with MMSC
{Host-IP-Address} 257 DIAMBASE Configurable – Local IP address associated with MMSC
{Vendor-ID} 266 DIAMBASE, 3GPPDIAM Value is 10415, the Vendor-ID value defined for 3GPP extensions in 3GPPDIAM
{Product-Name} 269 DIAMBASE Value is MMSC
{Auth-Application-ID} 258 DIAMBASE, DIAMCCA Value is 4, as specified in DIAMCCA
{Acct-Application-ID} 259 DIAMBASE Value is 0

 

Credit-Control-Request AVP Code Protocol Usage Notes
< Diameter Header > DIAMBASE Command-code = 272, REQ, Application-ID = 4
{Session-Id} 263 DIAMCCA Dynamically generated
{Origin-Host} 264 DIAMBASE Configurable – Local Origin-Host name associated with MMSC
{Origin-Realm} 296 DIAMBASE Configurable – Local Origin-Realm name associated with MMSC
[Destination-Host] 293 DIAMBASE Optional – Destination-Host name associated with charging server
{Destination-Realm} 283 DIAMBASE Configurable – Destination-Realm name associated with charging server
{Auth-Application-Id} 258 DIAMBASE, DIAMCCA Value is 4, as defined in DIAMCCA
{Service-Context-Id} 461 DIAMCCA, 3GPPDIAM Configurable – Default value is 32270@3gpp.org as defined in 3GPPDIAM to indicate MMS charging.

When using generic DIAMCCA, other values may be required, such as SCAP_V.2.0@ericsson.com for Ericsson’s SCAP.

{CC-Request-Type} 416 DIAMCCA Value is EVENT_REQUEST
{CC-Request-Number} 415 DIAMCCA Value is currently 0.Note that other values may be used in the future.
[Event-Timestamp] 55 DIAMBASE Time of Charging Request
{Subscription-Id} 443 DIAMCCA Group AVP contains Subscription-Id-Data and Subscription-Type.

Subscription-Id-Data: MSISDN of the account (including country code).

Subscription-Type: Value is 0 (END_USER_E164)

 

{Requested-Action} 436 DIAMCCA Value is 0 (DIRECT_DEBITING)
[3GPP-MS-TimeZone] 23 3GPPDIAM Value indicates the time-zone of the MMSC. Parameter flag is set as optional, meaning the server can ignore if it does not understand this parameter.

This parameter has been found to be required by some charging servers.

[3GPP-SGSN-MCC-MNC] 18 3GPPDIAM Optionally included only if available to the MMSC, the SGSN MCC-MNC value can be used to detect roaming subscribers. See Operator MMSC Accounting – Detecting Roaming Subscribers
[SGSN-ADDRESS] 1228 3GPPDIAM Optionally included only if available to the MMSC, the IP Address of the SGSN can be used to detect roaming subscribers. See Operator MMSC Accounting – Detecting Roaming Subscribers
[Service-Identifier] 439 DIAMCCA Optional integer value.
[Requested-Service-Unit]

  [CC-Money]

    [Unit-Value]

      [Value-Digits]

      [Exponent]

    [Currency-Code]

  [CC-Service-Specific-Units]

437

413

445

432

429

425

417

DIAMCCA Optional. Used only if generic DIAMCCA charging is being used.

DIAMCCA allows for either a fixed price (with ISO 4217 numeric currency code, e.g., USD=840, EUR=978) or a fixed service specific integer value associated with a Service-Identifier.

MMSC will generate these fields if corresponding Requested-Service values are specified. In the case of CC-Money, MMSC expects a decimal format value and will generate Value-Digits and Exponent as appropriate. (For example, CC-Money = 0.25 generates Value-Digits = 25 and Exponent = -2.)

[Service-Information]

  [MMS-Information]

    [Originator-Address]

      [Address-Type]

      [Address-Data]

    [Recipient-Address]

      [Address-Type]

      [Address-Data]

    [Submission-Time]

    [MM-Content-Type]

      [Type-Number]

      [Content-Size]

    [Message-ID]

    [Message-Type]

    [Message-Size]

    [Message-Class]

      [Class-Identifier]

723

727

886

899

897

1201

899

897

1202

1203

1204

1206

1210

1211

1212

1213

1214

3GPPDIAM Contains grouped AVP values containing information about the MMS message, including originator and recipient.

Parameter flag is set as optional, meaning the server can ignore if it does not understand this parameter. In that case, generic DIAMCCA Requested-Service-Unit parameters of money or units should be used.

 

MM9Test Program

The MM9Test program is used to test and validate proper configuration parameters and charging behaviour by initiating a Diameter connection and sending a charging request for a single MMS message.  The latest version of this program can be downloaded at http://www.nowsms.com/download/mm9test.zip.

The MM9Test program generates the two Diameter requests detailed in this document: Capabilities-Exchange-Request and Credit-Control-Request.

MM9TEST.EXE is a command line program. When run, MM9TEST.EXE will prompt for the following Diameter related configuration parameters:

(Remote) Diameter Server Host Name or IP Address – The DNS host name or IP address of the Diameter Server that will receive the connection.

(Remote) Diameter Server Port Number – The port number for the Diameter server that will receive the connection.

(Remote) Diameter Destination-Host – The Destination-Host parameter to be specified in the Diameter requests.

(Remote) Diameter Destination-Realm – The Destination-Realm parameter to be specified in the Diameter requests.

(Local/Origin) Diameter Host-IP-Address – The IP address of the local host. This is a required property for the Capabilities-Exchange-Requst.

(Local) Diameter Origin-Host – The Origin-Host parameter to be specified in the Diameter requests.

(Local) Diameter Origin-Realm – The Origin-Realm parameter to be specified in the Diameter requests.

Service-Context-Id (optional) – See Credit-Control-Request for parameter definition. Default is 32270@3gpp.org as defined in [3GPPDIAM] to indicate MMS charging.

Service-Identifier (optional, leave black for standard MM9) – See Credit-Control-Request for parameter definition.

Requested-Service-Unit CC-Service-Specific-Units (optional, leave black for standard MM9) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Money and Currency-Code parameters blank.

Requested-Service-Unit CC-Money (optional, use decimal format 1.23) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for Currency-Code parameter.

Requested-Service-Unit Currency-Code (optional, use ISO 4217 currency code) – See Credit-Control-Request for parameter definition. If this parameter is used, leave CC-Service-Specific-Units blank and specify a value for CC-Money parameter.

MMS Sender Phone Number – MSISDN to be charged for sending MMS message. Used to build Subscription-Id and Originator-Address in Credit-Control-Request.

MMS Recipient Phone Number – MSISDN receiving MMS message. Used to build Recipient-Address in Credit-Control-Request.

3GPP-SGSN-MCC-MNC (optional) – If available to the MMSC, the SGSN MCC-MNC value can be used to detect roaming subscribers. If left blank, or not available, this parameter is not included.

SGSN-ADDRESS (optional) – If available to the MMSC, the SGSN-ADDRESS value can be used to detect roaming subscribers. If left blank, or not available, this parameter is not included.

If successful, the last line of output from the test program will read Diameter Result Code 2001.

Raw Diameter packet information will be logged to MM9TEST.LOG. However, for easier troubleshooting, it is recommended that Wireshark be used to capture and log connection details. Wireshark will decode Diameter protocol information to more clearly report any protocol errors returned, as protocol errors typically relate to not having used the parameter values expected by the Diameter server.

SMS Hubbing Considerations

$
0
0

NowSMS is frequently used to provide SMS message routing connectivity between multiple SMSCs using the SMPP protocol. The purpose of this document is to clarify issues that are frequently encountered in SMS hubbing configurations.

In SMS hubbing configurations, NowSMS is connected to one or more service providers using the SMPP protocol. Service providers route selected SMS messages to NowSMS over an SMPP connection, and NowSMS is then used to route the SMS message to a different service provider over another SMPP connection.

The concept is simple, but the implementation can be challenging, due in part to issues of routing and mobile number portability (MNP), and due to the architecture of the SMPP protocol.

Message routing in NowSMS is controlled by either prefix routing or dynamic HTTP-based routing callbacks. Message routing is discussed in a separate article titled Dynamic SMS Message Routing with HTTP Callbacks.

When configuring an SMPP connection for hubbing, an important consideration is which party initiates the connection. This is important because the SMPP protocol assumes a client-server relationship. The party that initiates a connection is the client, or ESME. The party that accepts the connection is considered the server, or SMSC.

SMPP connections where NowSMS initiates the connection (NowSMS = ESME) are defined in the “SMSC” list.

SMPP connections where the other party initiates the connection (NowSMS = SMSC) are defined in the “SMS Users” list.

An ESME transmits SMS messages to an SMSC using an SMPP data packet called submit_sm.

An SMSC transmits SMS messages to an ESME using an SMPP data packet called deliver_sm.

Figure 1 illustrates the typical message flow in a simple ESME to SMSC configuration.

Simple ESME to SMSC

A hub connection is not a client-server relationship, instead logically it is a peer-to-peer connection. However, the SMPP protocol rules must still be followed and submit_sm or deliver_sm must be used depending on the direction of the connection.

Differences between submit_sm and deliver_sm create problems for message ID tracking, particularly with regard to delivery reports. This is because SMPP message IDs are not global, but exist only on a hop-by-hop basis.

When an ESME submits an SMS message to an SMSC using submit_sm, the SMSC assigns a new message ID when accepting the message, and returns the newly assigned message ID in the submit_sm response. The SMSC has no knowledge of any previously assigned message ID. From this point forward, any delivery reports that might be generated will reference the message by this new message ID. Any upstream SMSC will eventually route a deliver_sm packet containing this delivery report back to the ESME, and the ESME will need to have remembered/tracked the message ID assignment from the submit_sm response in order to know the message to which it refers.

In an SMS hubbing scenario, if an SMSC has a message to route to an ESME, it uses deliver_sm to transfer the message. The deliver_sm packet contains no message ID information, so the receiving ESME has no knowledge of message IDs that were previously assigned to the message. To further process the message, the ESME needs to assign a new message ID to the message. Unlike the submit_sm response, the deliver_sm response cannot report this newly assigned message ID back to the other side of the connection. Any delivery reports generated will reference this new message ID, however this message ID is not known to the original SMSC, and it cannot be tracked back to the original message to which it refers.

Figures 2 and 3 highlight the problems encountered when the SMS hub functions solely in the role of SMSC or ESME.

fig2-sms-hub-as-smsc

fig3-sms-hub-as-esme

In a typical SMS aggregator scenario, an upstream SMSC functions as both an SMSC and ESME when routing messages, and is able to successfully route messages from ESME to the upstream SMSC and delivery reports from the upstream SMSC back to the ESME, as shown in Figure 4.

fig4-upstream-smsc-as-hybrid

However, this scenario still expects a client-server relationship.

There are two ways to overcome these limitations for true peer-to-peer SMS hubbing.

1.) Each side of a hub connection connect to the other party as both ESME and SMSC. Regular SMS messages are always routed from ESME to SMSC, and delivery reports are always routed from SMSC to ESME. From a NowSMS perspective, the NowSMS initiated connection is defined in the “SMSC” list, and the other party initiated connection is defined in the “SMS Users” list.

This scenario is illustrated in Figure 5.

fig5-sms-hub-as-hybrid

2.) Instead of using submit_sm and deliver_sm, the SMPP protocol defines an alternative packet format called data_sm. This data_sm packet can be used regardless of the direction of the connection, and when used in place of deliver_sm, can return message ID information. NowSMS 2013 provides configuration settings to enable the use of data_sm for either an ESME or SMSC connection.

This scenario is illustrated in Figure 6.

fig6-sms-hub-uses-data-sm

NowSMS always performs automatic SMPP message tracking, translation and routing for delivery reports. However, the expected flow of delivery reports is from SMSC to ESME. In order for NowSMS to be able to properly understand and route a delivery report received from an ESME (i.e., “SMS Users” connection), NowSMS must be configured to “Use data_sm PDU” when communicating with this account.

smpp-use-data-smSimilarly, If the connection is defined in the NowSMS “SMSC” list, it is also normal to enable the setting “Re-Route Received Messages for Outbound Delivery” under the Advanced Settings for the SMPP connection. Normally, messages received from an SMSC connection are routed to a 2-way command for processing. This setting changes the behaviour so that messages received from this SMSC connection are queued for outbound delivery.

Important Note: Do not confuse SMS hubbing and ESME/SMSC roles with the concept of whether or not to use a transceiver connection. The concept of one connection vs. two connections is similar, but different.

When an ESME initiates a connection to an SMSC, it specifies what type of connection it wants. Connection types are transmitter (send only), receiver (receive only) and transceiver (send and receive). When NowSMS connects to an SMSC, the default behaviour is to use separate transmitter and receiver connections. Transceiver mode can be enabled to use a single connection for both sending and receiving messages.

With a transceiver connection, the initiating side of the connection is still considered to be in the role of ESME. Therefore the hubbing considerations of which party is ESME and which is SMSC still apply.

WAP Push Work-Around for AT&T USA

$
0
0

Some of our customers have been frustrated by an AT&T policy that blocks the sending of mobile originated WAP Push messages.  This prevents WAP Push messages from being sent over a GSM modem.  This blocking affects all messages that are sent via WAP Push, not just service indication messages, but also blocking OMA OTA settings and MMS notifications.

A NowSMS customer discovered a potential work-around by changing the TP-Protocol-ID (PID) value in the SMS message.

NowSMS has been updated to use configurable DCS and PID values when sending all types of WAP Push messages (including OMA OTA config). Previous versions of NowSMS only allowed the DCS value to be configured for WAP Push. These settings are available in NowSMS version 2013.04.01 and later.  (An update that supports these configurable values is available at http://www.nowsms.com/download/nowsms20130401.zip.)

By default, NowSMS uses a DCS value of F5 (binary, message class=2, ME specific) and a PID value of 0, which would be considered normal values.

It has been previously noticed that some providers will not accept DCS=F5 over a GSM modem connection and require a value of DCS=4 (generic binary).

One of our customers noticed in testing that by changing the PID value to 1 allowed WAP Push messages to be sent over a modem on the AT&T network. Technically speaking, PID=1 is an odd setting as it technically means the message originated as a Telex. We are suggesting that customers instead try using PID=41, which is a more normal setting, meaning replace short message type 1.

To set DCS or PID overrides for WAP Push messages generated by NowSMS, it is necessary to manually edit SMSGW.INI and under the [SMSGW] header, add:

PushDCS=F5
PushPID=41

(or try PushPID=1 if 41 does not work)

Please note that it is possible that AT&T may also decide to prevent this work-around. And note that cross operator WAP Push continues to be unavailable for messages submitted via a GSM modem in the USA.

Additional discussion of this issue can be found on our discussion forum at http://www.nowsms.com/discus/messages/1/71586.html.

Mobile Operator MMSC APN & Settings (Updated)

$
0
0

The Now SMS & MMS Gateway can use a GSM/GPRS or 3G/UMTS/WCDMA modem to send and receive MMS messages via an operator MMSC. In this type of configuration, there is no special setup requirement required by the mobile operator. The Now SMS & MMS Gateway sends and receives MMS messages using the same protocol that is used by the MMS client in a mobile phone, so it simply requires that the SIM card in your mobile phone be provisioned by your mobile operator for MMS support.

However, in order to make this work, you need to configure NowSMS with the appropriate MMS settings for the mobile operator whose SIM card is being used in the GSM modem.

To simplify this process, we include a list of settings for many mobile operators that can be selected from a drop down list within the NowSMS configuration.

However, it has been awhile since we last updated that list, so you might find that your mobile operator is not included in the list.

This post contains an updated list of mobile operator MMSC settings. You can also download this list in a NowSMS compatible format from http://www.nowsms.com/download/mmsop.ini. Save the “mmsop.ini” file to your NowSMS program directory (usually \Program Files\NowSMS or \Program Files (x86)\NowSMS, and NowSMS will automatically use the updated list.

In the following table, note that most versions of NowSMS refers to the “MMS Proxy” setting as the “WAP Gateway Address”.  If this address includes a port number (address:port), versions of NowSMS prior to 2013 releases require the address to be prefixed by http:// (for example http://10.1.2.3:8080).

For more information on configuring NowSMS to send MMS messages via a modem, please see: Using a GPRS Modem.

Country Operator APN MMS Proxy MMSC Server URL Username Password
Albania AMC mms 10.10.10.20:8080 http://195.167.65.220:8002/
Albania Vodafone vfalmms 10.0.9.2:8080 http://mmsc.vodafone.al
Algeria Djezzy djezzy.mms 172.24.97.158:8080 http://172.24.97.152:10021/mmsc
Algeria Nedjma nedjmamms 192.168.52.3:3128 http://10.10.111.1/ mms mms
Andorra STA mms 192.168.21.50:8080 http://mms.ad/mmsc
Anguilla Cable and Wireless internet 10.20.5.34:8080 http://mmsc/
Anguilla Lime multimedia 10.20.5.34:8799 http://mmsc/
Antigua & Barbuda Cable and Wireless internet 10.20.5.34:8080 http://mmsc/
Antigua & Barbuda Digicel wap.digicelantigua.com 172.16.7.12:8080 http://mmc.digiceljamaica.com/servlets/mms wapant wapant
Antigua & Barbuda Lime multimedia 10.20.5.34:8799 http://mmsc/
Argentina CTI Movil mms.ctimovil.com.ar 170.51.255.240:8080 http://mms.ctimovil.com.ar/ ctimms ctimms999
Argentina Personal mms 172.25.7.31:8080 http://172.25.7.31/ mms mms
Argentina Movistar (Unifon) mms.gprs.unifon.com.ar 200.68.32.239:8080 http://mms.movistar.com.ar/ mms mms
Aruba Digicel wap.digicelaruba.com 172.16.7.12:8080 http://mmc.digiceljamaica.com/servlets/mms waparuba wap03aruba
Aruba Setar mms.setar.aw 209.88.130.210:8080 http://mms.setar.aw/
Australia Lebara purtona.wap 10.202.2.20:8080 http://purtona.mms/mmssend
Australia Optus mms 61.88.190.10:8070 http://mmsc.optus.com.au:8002/ 411 optus
Australia Telstra telstra.mms 10.1.1.180:80 http://10.0.3.70:8002/
Australia Virgin VirginInternet 202.139.83.152:8070 http://mms.virginvibe.com.au:8002/
Australia Vodafone live.vodafone.com 10.202.2.60:8080 http://pxt.vodafone.net.au/pxtsend
Australia 3 3services 10.176.57.25:8799 http://mmsc.three.net.au:10021/mmsc
Austria A1 MobilKom A1.net 194.48.124.71:8001 http://mmsc.A1.net/ ppp@A1plus.at ppp
Austria One web.one.at 194.24.128.118:8080 http://mmsc.one.at/mms/wapenc wap wap
Austria T-Mobile gprsinternet 10.12.0.2:80 http://mmsc.t-mobile.at/servlets/mms
Austria Drei drei.at 213.94.78.133:8799 http://mmsc/
Austria Tele Ring mms 212.95.31.50:8080 http://relay.mms.telering.at/ wap@telering.at wap
Azerbaijan Azercell mms 10.0.154.101:8080 http://mms.azercell.com/cMMSC/post
Azerbaijan Bakcell mms 213.172.91.46:8080 http://mms.bakcell.com/mms/wapenc
Bahrain Batelco mms.batelco.com 192.168.1.2:80 http://192.168.36.10/servlets/mms wap wap
Bangladesh Aktel WAP 192.168.23.7:8080 http://192.168.23.4/wap
Barbados Digicel wap.digicelbarbados.com 172.16.7.12:8080 http://mmc.digiceljamaica.com/servlets/mms wapbarb wap03barb
Barbados Lime multimedia 10.20.5.34:8799 http://mmsc/
Belarus Velcom mms.velcom.by 10.200.15.15:8080 http://mms.velcom.by/servlets/mms mms mms
Belgium Mobistar mms.be 212.65.63.143:8080 http://mmsc.mobistar.be/ mobistar mobistar
Belgium Mobistar (Tempo) tempomms.be 212.65.63.143:8080 http://mmsc.mobistar.be/ mobistar mobistar
Belgium Proximus event.proximus.be 10.55.14.75:8080 http://mmsc.proximus.be/mms mms mms
Belgium BASE mms.base.be 217.72.235.1:8080 http://mmsc.base.be/ base base
Bolivia Tigo mms.tigo.bo 172.25.100.8:8888 http://mms/
Bosnia & Herzegowina BH Telecom mms.bhmobile.ba 195.222.56.41:8080 http://mms.bhmobile.ba/cmmsc/post
Bosnia & Herzegowina Mobis mms 192.168.61.11:8080 http://mms.065mobis.com/mms/wapenc
Botswana Orange mms.orange.co.bw 10.0.0.226:8080 http://10.0.0.242/servlets/mms
Brazil Claro mms.claro.com.br 200.169.126.10:8080 http://mms.claro.com.br/ claro claro
Brazil CTBC mms.ctbc.br 172.29.7.70:8080 http://mms.ctbccelular.com.br/was ctbc 1212
Brazil Oi mmsgprs.oi.com.br 192.168.10.50:8080 http://200.222.42.204:8002/ oimms oioioi
Brazil TIM mms.tim.br 200.179.66.242:8080 http://mms.tim.br/ tim tim
Brazil Brazil Telecom mms.brt.br 200.96.8.29:8080 http://mms.brasiltelecom.com.br/ brt brt
Brazil Telemig mmsgprs.telemigcelular.com.br 200.192.230.142:8080 http://mms.telemigcelular.com.br celular celular
Brazil VIVO mms.vivo.com.br 200.142.130.104:8080 http://termnat.vivomms.com.br:8088/mms vivo vivo
British Virgin Islands Lime multimedia 10.20.5.34:8799 http://mmsc/
Brunei DST dst.mms 10.100.6.101:8080 http://mms.dst.com.bn/mmsc mms mms
Bulgaria Globul mms.globul.bg 192.168.87.11:8080 http://mmsc1.mms.globul.bg:8002/ mms
Bulgaria Mtel mms-gprs.mtel.bg 10.150.0.33:8080 http://mmsc/ mtel mtel
Bulgaria Vivacom mms.vivacom.bg 192.168.123.123:8080 http://mms.vivacom.bg mms mms
Cambodia Beeline mms.beeline.com.kh 10.18.34.135:8080 http://mms.beeline.com.kh/mms/wapenc
Cambodia Camshin Camshin 172.16.203.85:8080 http://172.16.205.10:38090
Cambodia Hello / Smart hellomms 10.221.41.33:8088 http://mmsc.tmic.com.kh/mssc
Cambodia Mobitel mms 203.144.95.98:3130 http://mms.mobitel.com.kh/mmsc mobitel mobitel
Cambodia qb MMS 172.16.96.66:8080 http://mms.qbmore.mobi/
Cameroon Orange orangecmgprs 192.168.122.101:8080 http://mms.orange.cm/ orange orange
Canada Bell pda.bell.ca web.wireless.bell.ca:80 http://mms.bell.ca/mms/wapenc
Canada Fido mms.fido.ca 205.151.11.13:8080 http://mms.fido.ca/
Canada Fido (Alternate) fido-core-appl1.apn 205.151.11.13:80 http://mms.fido.ca/
Canada Koodo sp.koodo.com 74.49.0.18:80 http://aliasredirect.net/proxy/mmsc
Canada Rogers media.com 10.128.1.69:80 http://mms.gprs.rogers.com/ media mda01
Canada SaskTel proxy.stm.sk.ca mig.sasktel.com:8080 http://mms.sasktel.com/
Canada TELUS sp.telus.com 74.49.0.18:80 http://aliasredirect.net/proxy/mmsc
Canada Virgin Mobile pda.bell.ca web.wireless.bell.ca:80 http://mms.bell.ca/mms/wapenc
Canada Wind mms.windmobile.ca 74.115.197.70:8080 http://mms.Windmobile.ca/
Cayman Islands Lime multimedia 10.20.5.34:8799 http://mmsc/
Channel Islands Airtel Vodafone airtel-ci-mms.com 10.200.61.17:9401 http://10.200.61.17/servlets/mms
Chile Claro mms.clarochile.cl 172.23.200.200:8080 http://mms.clarochile.cl/ clarochile clarochile
Chile Entel PCS mms.entelpcs.cl 10.99.0.10:8080 http://mmsc.entelpcs.cl/ entelmms entelpcs
Chile Movistar (Telefonica) mms.tmovil.cl 172.17.8.11:8080 http://mms.tmovil.cl/ mms mms
China China Mobile cmwap 10.0.0.172:8080 http://mmsc.monternet.com/
Columbia Comcel mms.comcel.com.co 198.228.90.225:8799 http://www.comcel.com.co/mms/
Columbia Movistar mms.movistar.com.co 192.168.222.7:9001 http://mms.movistar.com.co/ movistar movistar
Columbia Tigo mms.colombiamovil.com.co 200.58.228.81:8080 http://mms.tigo.com.co/ mms-cm1900 mms-cm1900
Costa Rica Claro mms.ideasclaro 216.230.133.66:8080 http://mms.ideasclaro.com:8002
Costa Rica ICE (Kolbi) kolbi3g 10.184.202.24:8080 http://mmsice/
Croatia T-Mobile mms.htgprs 10.12.0.4:8080 http://mms.t-mobile.hr/servlets/mms
Croatia Tele2 mms.tele2.hr 193.12.40.66:8080 http://mmsc.tele2.hr/
Croatia Tele2 (Prepaid) wap.tele2.hr 193.12.40.66:8080 http://mmsc.tele2.hr/
Croatia Tomato mms.tomato.com.hr 212.91.99.91:8080 http://mms.Tomato.com.hr/servlets/mms
Croatia VIPNet mms.vipnet.hr 212.91.99.91:8080 http://mms.vipnet.hr/servlets/mms
Cyprus Areeba mms.areeba.com.cy 172.24.97.1:8080 http://mms.areeba.com.cy/mmsc
Cyprus CytaMobile Vodafone cytamobile 212.31.96.161:8080 http://mmsc.cyta.com.cy/ user pass
Cyprus MTN mms 172.24.97.1:3130 http://mms.mtn.com.cy/mmsc mms mms
Cyprus Primetel ip.primetel mms.primetel:80 http://mms.primetel/
Czech Republic Eurotel mms 160.218.160.218:8080 http://mms.eurotel.cz:8002/ mms mms
Czech Republic O2 mms 160.218.160.218:8080 http://mms.o2active.cz:8002/
Czech Republic Vodafone mms 10.11.10.111:80 http://mms/ mms mms
Czech Republic T-Mobile mms.t-mobile.cz 10.0.0.10:80 http://mms/ mms mms
Denmark 3 data.tre.dk 172.16.1.25:8799 http://mms.3.dk/
Denmark BiBob internet 212.88.64.8:8080 http://mms.telenor.dk/
Denmark Call Me mmsSP 193.209.134.131:8080 http://mms.telia.dk/
Denmark Oister data.dk 172.16.53.12:8799 http://mms.oister.dk/
Denmark Onfone mms 194.182.251.15:8080 http://192.168.241.114:8002/
Denmark Sonofon sonofon 212.88.64.8:8080 http://mms.sonofon.dk/
Denmark TDC mms 194.182.251.15:8080 http://192.168.241.114:8002/
Denmark Telenor internet 212.88.64.8:8080 http://mms.telenor.dk/
Denmark Telia www.mms.telia.dk 193.209.134.131:8080 http://mms.telia.dk/
Denmark Telmore mms 194.182.251.15:8080 http://192.168.241.114:8002/
Dominica Lime multimedia 10.20.5.34:8799 http://mmsc/
Dominican Republic Claro mms.ideasclaro.com.do 190.80.147.8:8080 http://mms.ideasclaro.com.do/mms/wapenc
Dominican Republic Orange orangeworld 172.16.126.70:8080 http://mms.orange.com.do/servlets/mms
Ecuador Movistar mms.movistar.com.ec 10.255.15.193:8088 http://mms.movistar.com.ec/ movistar movistar
Ecuador Porta mms.porta.com.ec 216.250.208.94:8799 http://iesmms.porta.com.ec portamms portamms2003
Egypt Etisalat etisalat 10.71.130.29:8080 http://10.71.131.7:38090
Egypt MobileNil Mobinilmms 62.241.155.54:8080 http://10.7.13.24:8002/
Egypt Vodafone mms.vodafone.com.eg 163.121.178.2:8080 http://mms.vodafone.com.eg/servlets/mms
El Salvador Claro mms.ideasclaro 216.230.133.66:8080 http://mms.ideasclaro.com:8002
El Salvador Movistar mms.movistar.sv 10.12.20.1:80 http://mms.movistar.sv/ movistarsv movistarsv
El Salvador Tigo mms.tigo.sv 10.16.17.12:8888 http://mms/
Estonia Elisa mms 213.161.41.57:80 http://mms.elisa.fi/
Estonia EMT mms.emt.ee 217.71.32.82:8080 http://mms.emt.ee/servlets/mms
Estonia Tele2 mms.tele2.ee 193.12.40.6:8080 http://mmsc.tele2.ee/
Fiji Digicel wap.digicelpacific.com 10.150.122.12:8080 http://mms.digicelpacific.com:8990/
Finland Alands mms.amt.aland.fi 194.110.177.70:8080 http://mms.amt.aland.fi/
Finland Dicame (GSM Suomi) mms.gsm-suomi.fi 10.1.1.13:8080 http://mmsc.gsm-suomi.fi/
Finland DNA mms 10.1.1.2:8080 http://mmsc.dnafinland.fi/ dna mms
Finland Elisa mms 213.161.41.57:8080 http://mms.elisa.fi/
Finland Go Mobile mms.gomobile.fi 10.1.1.11:8080 http://mmsc.gomobile.fi/
Finland PGFree mms.pgfree.com 10.1.1.1:8080 http://mmsc.pgfree.fi/
Finland Saunalahti mms.saunalahti.fi 62.142.4.197:8080 http://mms.saunalahti.fi:8002/
Finland Sonera wap.sonera.net 195.156.25.33:8080 http://mms.sonera.fi:8002/
Finland TDC mms.tdc.fi 10.1.12.2:8080 http://mmsc.tdc.fi/
France Bouygues mmsbouygtel.com 62.201.137.17:8080 http://mms.bouyguestelecom.fr/mms/wapenc
France Orange orange.acte 192.168.10.200:8080 http://mms.orange.fr/ orange orange
France SFR mmssfr 10.151.0.1:8080 http://mms1/
French Guiana Orange orangewap 10.0.0.10:8082 http://193.251.160.246/servlets/mms orange orange
F.Y.O.R.M. One mms 212.158.178.36:8080 http://mm/
Georgia Magti mms.ge 81.95.160.1:8080 http://mms.magticom.ge/
Germany E-Plus internet.eplus.de 212.23.97.153:8080 http://mms/eplus mms eplus
Germany O2 internet 195.182.114.52:8080 http://10.81.0.7:8002/
Germany T-Mobile mms.t-d1.de 172.28.23.131:8008 http://mms.t-mobile.de/servlets/mms t-mobil mms
Germany Vodafone D2 event.vodafone.de 139.7.29.17:8080 http://139.7.24.1/servlets/mms
Gibraltar Gibtelecom mms.gibtele.com 172.17.0.5:8080 http://mms:8081/
Greece Cosmote mms 10.10.10.20:8080 http://195.167.65.220:8002/
Greece Q-Telecom q-mms.myq.gr 192.168.80.134:8080 http://mms.myq.gr/
Greece TIM mnet.b-online.gr 192.168.200.11:8080 http://192.168.200.95/servlets/mms wap wap
Greece Vodafone mms.vodafone.net 213.249.19.49:8080 http://mms.vodafone.gr/ user pass
Grenada Lime multimedia 10.20.5.34:8799 http://mmsc/
Guadeloupe Orange orangewap 10.0.0.10:8082 http://193.251.160.246/servlets/mms orange orange
Guatemala Claro mms.ideasclaro 216.230.133.66:8080 http://mms.ideasclaro.com:8002
Guatemala Movistar mms.movistar.gt 10.12.22.1:80 http://mms.movistar.gt/ movistargt movistargt
Guatemala Tigo mms.tigo.gt 10.16.17.12:8888 http://mms/
Haiti Digicel wap.digicelha.com 172.20.134.12:8080 http://mmc.digicelhaiti.com/servlets/mms
Honduras Digicel wap.digicelhn.com 172.26.5.12:8080 http://172.26.5.132/servlets/mms
Honduras Claro mms.megatel.hn 10.6.32.2:8080 http://10.6.32.27/servlets/mms mmsmegatel mmsmegatel
Honduras Tigo mms.tigo.hn 10.16.17.12:8888 http://mms/
Hong Kong CSL hkcsl 192.168.59.51:8080 http://192.168.58.171:8002/
Hong Kong New World mms 192.168.111.1:8080 http://mmsc.nwmobility.com:8002/
Hong Kong Orange mms.orangehk.com 10.30.15.53:8080 http://10.30.15.51:10021/mmsc orange 1234
Hong Kong Peoples peoples.mms 172.31.31.36:8080 http://mms.peoples.com.hk/mms
Hong Kong SmarTone smartone 10.9.9.9:8080 http://mms.smartone.com.hk/server
Hong Kong Sunday smms 10.131.2.1:8080 http://mmsc.mms.sunday.com:8002/
Hong Kong 3 mobile.three.com.hk 172.20.99.240:8080 http://mms.um.three.com.hk:10021/mmsc
Hungary Pannon mms 193.225.154.22:8080 http://mmsc.pgsm.hu/
Hungary T-Mobile mms-westel 212.51.126.10:8080 http://mms.westel900.net/servlets/mms mms mms
Hungary Vodafone mms.vodafone.net 80.244.97.2:8080 http://mms.vodafone.hu/servlets/mms mms mms
India Airtel airtelmms.com 100.1.201.172:8080 http://100.1.201.171:10021/mmsc
India BPL mizone 10.0.0.10:8080 http://mms.bplmobile.com:8080
India CellOne bsnlmms 10.31.54.2:8080 http://10.31.53.18/mms/ ppp ppp123
India Hutch Vodafone portalnmms 10.10.1.100:8080 http://mms1.live.vodafone.in/mms/
India Idea mmsc 10.4.42.15:8080 http://10.4.42.21:8002/
Indonesia AXIS AXISmms 10.8.3.8:8080 http://mmsc.AXIS/ AXIS 123456
Indonesia IM-3 mms.indosat-m3.net 10.19.19.19:8080 http://mmsc.m3-access.com/ mms im3
Indonesia Mentari indosatmms 10.19.19.19:8080 http://mmsc.indosat.com/ indosat indosat
Indonesia ProXL www.xlmms.net 202.152.240.50:8080 http://mmc.xl.net.id/servlets/mms xlgprs proxl
Indonesia Sat-C mms.satelindogprs.com 202.152.162.88:8080 http://mmsc.satelindogprs.com/ satmms satmms
Indonesia Telkomsel mms 10.1.89.150:8080 http://mms.telkomsel.com/ wap wap123
Indonesia 3 3mms 10.4.0.10:3128 http://mms.hutch.co.id/ 3mms 3mms
Ireland Vodafone mms.vodafone.net 10.24.59.200:80 http://www.vodafone.ie/mms dublin dublin
Ireland Meteor mms.mymeteor.ie 10.85.85.85:8799 http://mms.mymeteor.ie my mms
Ireland O2 wap.dol.ie 62.40.32.40:8080 http://mmsc.mms.o2.ie:8002 gprs gprs
Ireland O2 (PrePaid) pp/wap.o2.ie 62.40.32.40:8080 http://mmsc.mms.o2.ie:8002 gprs gprs
Ireland 3 3ireland.ie 213.190.129.170:8799 http://mms.um.3ireland.ie:10021/mmsc/
Israel Cellcom mms 172.31.29.38:8080 http://mms.cellcom.co.il/
Israel Orange uwap.orange.co.il 192.118.11.55:8080 http://192.168.220.15/servlets/mms
Israel Pelephone mms.pelephone.net.il 10.170.9.54:9093 http://mmsu.pelephone.net.il/ pcl@3g pcl
Italy TIM mms.tim.it 213.230.130.89:80 http://mms.tim.it/servlets/mms
Italy Vodafone mms.vodafone.it 10.128.224.10:8080 http://mms.vodafone.it/servlets/mms
Italy Wind mms.wind 212.245.244.11:8080 http://mms.wind.it/
Italy 3 tre.it 62.13.171.3:8799 http://10.216.59.240:10021/mmsc tre tre
Jamaica Claro mms.ideasclaro.com.jm 190.80.147.118:8080 http://mms.ideasclaro.com.jm:8002
Jamaica Digicel wap.digiceljamaica.com 172.16.7.12:8080 http://mmc.digiceljamaica.com/servlets/mms wapuser wap03jam
Jamaica Lime multimedia 10.20.5.34:8799 http://mmsc/
Jordan MobileCom mms.mobilecom.jo 172.16.1.2:8080 http://172.16.1.96/servlets/mms mms mms
Jordan Orange mms.orange.jo 172.16.1.2:8080 http://172.16.1.96/servlets/mms mmc mmc
Kazakhstan K Mobile mms.k-mobile 172.27.6.93:8080 http://mms.kartel.kz/mms/wapenc @mms.k-mobile k-mobile
Kazakhstan Kcell mms 195.47.255.15:8080 http://192.168.75.10:6001/MM1Servlet
Kenya Safaricom safaricom 172.22.2.38:80 http://mms.gprs.safaricom.com/ saf data
Kuwait MTC pps 176.0.0.65:8080 http://176.0.0.1/ annyway online
Kuwait Wataniya mms.wataniya.com 194.126.53.64:8080 http://action.wataniya.com/
Latvia Amigo mms.amigo.lv 212.93.97.201:8080 http://mmsc.lmt.lv/mmsc
Latvia LMT mms.lmt.lv 212.93.97.201:8080 http://mmsc.lmt.lv/mmsc
Latvia Tele2 mms.tele2.lv 193.12.40.38:8080 http://mmsc.tele2.lv/ wap wap
Liechtenstein MobilKom free.fl1.net 194.48.124.71:8080 http://mmsc.a1.net ppp@a1plus.at
Lithuania Omnitel mms.omnitel.net 10.16.35.50:8080 http://mms:8002/
Luxembourg Lux GSM mms.pt.lu 194.154.192.88:8080 http://mmsc.pt.lu
Luxembourg Tango mms 212.66.75.3:8080 http://mms.tango.lu/ tango tango
Luxembourg VOX vox.lu 212.88.139.44:8080 http://mms.vox.lu/
Macau CTM ctmmms 192.168.99.3:8080 http://mms.wap.ctm.net:8002/
Macedonia Cosmofon mms 10.10.10.20:8080 http://195.167.65.220:8002/
Madagascar Orange orangemms 10.150.0.115:8080 http://10.152.10.70:38090/ mms orange
Malaysia Celcom mms.celcom.net.my 10.128.1.242:8080 http://mms.celcom.net.my/
Malaysia DiGi digimms 203.92.128.160:8080 http://mms.digi.com.my/servlets/mms mms mms
Malaysia Maxis net 202.75.133.49:80 http://172.16.74.100:10021/mmsc maxis wap
Maldives Dhiraagu mms.dhimobile 172.24.97.4:8080 http://mmsc.dhimobile.com.mv/
Malta Vodafone mms.vodafone.com.mt 10.12.0.3:8080 http://mms.vodafone.com.mt/servlets/mms
Martinique Digicel wap.digicelfr.com 172.20.6.12:8080 http://mmc.digicelfr.com/servlets/mms wap wap
Martinique Orange orangewap 10.0.0.10:8082 http://193.251.160.246/servlets/mms orange orange
Mauritius Emtel mms 192.168.0.7:8080 http://192.168.0.25:8514/ 230YourNumber mmsc
Mauritius Orange orangemms 10.2.1.20:8080 http://10.2.1.20:8514/ mmsc mmsc
Mexico Iusacell mms.iusacell3g.mx 192.200.1.110 http://mms.iusacell3g.com/
Mexico Movistar mms.movistar.mx 10.2.20.1 http://mms.movistar.mvx/ movistar movistar
Mexico Telcel mms.itelcel.com 148.233.151.240:8080 http://mms.itelcel.com/servlets/mms mmsgprs mmsgprs2003
Moldova MoldCell mms 10.0.10.10:8080 http://mms.moldcell.md/cmmsc/post
Moldova Orange mms.orange.md 192.168.127.125:3128 http://mms/mms
Monaco Monacell orange.acte 192.168.1.2:8080 http://mms.orange.fr/ orange orange
Montenegro Promonte mms.promonte.com 192.168.246.5:8080 http://mm.vor.promonte.com/ mms mms
Montserrat Lime multimedia 10.20.5.34:8799 http://mmsc/
Morocco IAM mmsiam 10.16.35.50:8080 http://mms:8002/
Morocco Maroc Telecom mmsiam 10.16.35.50:8080 http://mms:8002/
Mozambique mcel mms.mcel.mz 10.1.4.35 http://mcelmms/
Namibia MTC mms 10.40.10.252:80 http://www.mtcmobile.com.na/ mms mms
Netherlands KPN portalmmm.nl 10.10.100.20:5080 http://mp.mobiel.kpn/mmsc
Netherlands Telfort multimedia 193.113.200.195:8080 http://mmsc.mms.telfort.nl:8002/
Netherlands T-Mobile mms 10.10.10.11:8080 http://t-mobilemms/ tmobilemms tmobilemms
Netherlands Vodafone live.vodafone.com 192.168.251.150:8799 http://mmsc.mms.vodafone.nl/ vodafone vodafone
New Zealand Vodafone live.vodafone.com 172.30.38.3:8080 http://pxt.vodafoen.net.nz/pxtsend
Nicaragua Claro mms.ideasalo.ni 10.6.32.2:8080 http://mms.ideasalo.ni/ mms mms
Nicaragua Movistar mms.movistar.ni 10.12.23.1:80 http://mms.movistar.ni/ movistarni movistarni
Nigeria Glomobile glomms 10.100.82.4:8080 http://mms.gloworld.com/mmsc mms
Nigeria MTN web.gprs.mtnnigeria.net 10.199.212.2:8080 http://10.199.212.8/servlets/mms web web
Norway Netcom mms.netcom.no 212.169.66.4:80 http://mm/ mms netcom
Norway Onecall mms 89.254.65.20:80 http://mms.nwn.no/
Norway Telenor mms 10.10.10.11:8080 http://mmsc/
Norway Tele2 internet.tele2.no 193.12.40.14:8080 http://mmsc.tele2.no/
Norway Ventelo mms.ventelo.no 10.10.10.11:8080 http://mmsc/ ventelo 1111
Oman Nawras mms.nawras.com.om 10.128.240.16:8080 http://10.128.240.16/servlets/mms
Oman Oman Mobile mms 192.168.203.35:8080 http://mmsc.omanmobile.om:10021/mmsc mms mms
Pakistan Telenor mms 172.18.19.11:8080 http://mmstelenor/ telenor telenor
Pakistan Ufone ufone.mms 172.16.13.27:8080 http://www.ufonemms.com:80/alias=id
Pakistan Warid mms.warid 10.4.2.1:8080 http://10.4.0.132/servlets/mms
Panama Cable & Wireless apn01.cwpanama.com.pa 172.25.3.5:8080 http://mms.zonamovil.com.pa:80/i.bin
Panama Claro mms.claro.com.pa 10.240.3.129:8799 http://www.claro.com.pa/mms/ CLAROMMS CLAROMMS
Panama Digicel wap.digicelpanama.com 172.27.99.99:8080 http://mmc.digicelpanama.com/servlets/mms
Panama Movistar mms.movistar.pa 10.12.21.1:80 http://mms.movistar.pa/ movistarpamms movistarpamms
Paraguay Tigo mms.tigo.py 10.16.17.12:8888 http://mms/
Paraguay VOX vox.wap 172.24.97.29:8080 http://srvvirtual.vox.com.py/mmsc
Peru Claro mms.claro.pe 192.168.231.30:80 http://claro/servlets/mms claro claro
Peru Movistar mms.movistar.pe 200.4.196.118:8080 http://mmsc.telefonicamovistar.com.pe:8088/mms/ movistar@mms movistar
Philippines Globe mms.globe.com.ph 192.40.100.20:8080 http://192.40.100.22:10021/mmsc
Philippines Smart mms 10.102.61.46:8080 http://10.102.61.238:8002/
Philippines SUN / Digitell mms 202.138.159.78:8080 http://mmscenter.suncellular.com.ph/
Poland ERA eramms 213.158.194.226:8080 http://mms.era.pl/servlets/mms eramms eramms
Poland Heyah heyahmms 213.158.194.226:8080 http://mms.heyah.pl/ servlets/mms heyah heyah
Poland Idea mms 192.168.6.104:8080 http://192.168.6.104/ idea idea
Poland Orange mms 192.168.6.104:8080 http://mms.orange.pl/ mms mms
Poland Play mms 10.10.25.5:8080 http://10.10.28.164/mms/wapenc
Poland Plus mms.plusgsm.pl 212.2.96.16:8080 http://mms.plusgsm.pl:8002/ brak brak
Poland Sami Swoi wap.plusgsm.pl 212.2.96.16:8080 http://mms.plusgsm.pl:8002/
Portugal Optimus mms 62.169.66.1:8799 http://mmsc:10021/mmsc mms mms
Portugal TMN mmsc.tmn.pt 10.111.2.16:8080 http://mmsc/ tmn tmnnet
Portugal Vodafone vas.vodafone.pt 213.30.27.63:8799 http://mms/servlets/mms vas vas
Qatar Qtel mms.qtel 10.23.8.3:8080 http://mmsr.qtelmms.qa/ mms mms
Reunion Orange orangerun.acte 192.168.10.200:8080 http://mms.orange.re/ orange orange
Romania Connex-Vodafone mms.connex.ro 193.230.161.231:8080 http://multimedia/servlets/mms mms.connex.ro connex
Romania Orange mms 62.217.247.252:8080 http://wap.mms.orange.ro:8002/
Russia A Mobile mms.mts.ru 212.44.140.25:8080 http://mmsc/ mts mts
Russia Beeline wap.beeline.ru 192.168.94.23:8080 http://192.168.17.7/servlets/mms beeline beeline
Russia Megafon mms 10.10.10.10:8080 http://mmsc:8002/
Russia Motiv mms.ycc.ru 172.16.2.10:8080 http://mms.ycc.ru/ motiv motiv
Russia Smarts mms.smarts.ru 172.24.128.5:8080 http://172.24.120.135/mms/wapenc wap wap
Russia USI mms.usi.ru 192.168.168.192:8080 http://mms/
Saint Barthelemy Orange orangewap 10.0.0.10:8082 http://193.251.160.246/servlets/mms orange orange
Saint Kitts & Nevis Lime multimedia 10.20.5.34:8799 http://mmsc/
Saint Lucia Lime multimedia 10.20.5.34:8799 http://mmsc/
Saint Martin Orange orangewap 10.0.0.10:8082 http://193.251.160.246/servlets/mms orange orange
Saint Vincent & The Grenadines Lime multimedia 10.20.5.34:8799 http://mmsc/
Saudi Arabia STC mms.net.sa 10.1.1.1:8080 http://mms.net.sa:8002/
Singapore M1 miworld 172.16.14.10:8080 http://mmsgw:8002/ 65 user123
Singapore Singtel e-ideas 165.21.42.84:8080 http://mms.singtel.com:10021/mmsc 65eideas eideas
Singapore StarHub shmms 10.12.1.80:8080 http://mms.starhubgee.com.sg:8002/
Slovakia O2 o2mms 10.97.1.11:8080 http://mms.o2world.sk:8002/
Slovakia Orange mms 213.151.208.145:8799 http://imms.orange.sk/ wap wap
Slovakia T-Mobile mms 192.168.1.1:8080 http://mms/ mms mms
Slovenia Izi Mobil mms.izimobi 213.229.249.40:8080 http://mms.mobitel.si/servlets/mms izimobil izimobil
Slovenia Mobitel mms.mobitel.si 213.229.249.40:8080 http://mms.mobitel.si/servlets/mms mobitel internet
Slovenia Si Mobil mms.simobil.si 80.95.224.46:8080 http://mmc/ simobil internet
Slovenia Tusmobile mms.tusmobil.si 91.185.221.85:8080 http://mms.tusmobil.si:8002/ tusmobil mms
South Africa CellC mms 196.31.116.250:8080 http://mms.cmobile.co.za/
South Africa MTN myMTN 196.11.240.241:8080 http://mms.mtn.co.za/mms/wapenc mtnmms
South Africa Virgin Mobile vmms 196.31.116.242:8080 http://mms.virginmobile.co.za
South Africa Vodacom internet 196.6.128.13:8080 http://mmsc.vodacom4me.co.za/
South Africa 8TA mms 41.151.254.162:8080 http://mms.8ta.com:38090/was
Spain Amena amenamms 172.22.188.25:8080 http://mms.amena.com/ MMS AMENA
Spain Movistar mms.movistar.es 10.138.255.5:8080 http://mms.movistar.com MOVISTAR@mms MOVISTAR
Spain Pepephone mms.pepephone.com 212.73.32.10:80 http://mmsc.pepephone.com/servlets/mms wap@wap wap125
Spain SIMYO gprs-service.com 217.18.32.181:8080 http://mms-services.eu/
Spain Vodafone mms.vodafone.net 212.73.32.10:80 http://mmsc.vodafone.es/servlets/mms wap@wap wap125
Spain Yoigo mms 193.209.134.141:80 https://services.sonera.net/authentication/21404/login.html
Sri Lanka Dialog www.dialogsl.com 192.168.122.2:8080 http://mms.dialog.lk:3130/mmsc
Sweden Glocalnet services.glocalnet.se 172.30.253.241:8799 http://mms/
Sweden Tele2 internet.tele2.se 130.244.202.30:8080 http://mmsc.tele2.se/
Sweden Telenor services.telenor.se 172.30.253.241:8799 http://mms/
Sweden Telia mms.telia.se 193.209.134.132:8080 http://mmss/ mms telia
Sweden Vodafone services.vodafone.net 172.30.253.241:8799 http://mms/
Sweden 3 data.tre.se 172.16.53.11:8799 http://mms.tre.se/
Switzerland Orange mms 192.168.151.2:8080 http://192.168.151.3:8002/
Switzerland Sunrise mms.sunrise.ch http://mmsc.sunrise.ch/ mms mms
Switzerland Swisscom event.swisscom.ch 192.168.210.2:8080 http://mmsc.swisscom.ch/
Syria Syriatel mms.syriatel.com 172.20.5.6:8080 http://mymms.syriatel.com/
Taiwan Chunghwa emome 10.1.1.1:8080 http://mms.emome.net:8002/
Taiwan FarEasTone fetnet01 210.241.199.199:8080 http://mms/
Taiwan KG Telcom kgtmms 172.28.33.5:8080 http://mms.kgtmms.net.tw/mms/wapenc
Taiwan MoBiTai gprs1 192.168.77.5:8080 http://mms.mobeelife.net/mms/wapenc gprs gprs
Taiwan TWN mms 10.1.1.2:8080 http://mms/
Taiwan TransAsia hank 211.78.224.100:8080 http://mms/
Taiwan Vibo internet 210.241.199.199:8080 http://mms/
Thailand AIS multimedia 203.170.229.34:8080 http://mms.mobilelife.co.th/
Thailand DTAC mms 203.155.200.133:8080 http://mms.dtac.co.th:8002/ - 0
Thailand Mobilelife multimedia 203.170.229.34:8080 http://mms.mobilelife.co.th/
Thailand Orange mms 10.4.7.39:8080 http://mms.orange.co.th:8002/ orange orange
Tunisia Tuntel mms.t1 213.150.186.106:8080 http://mms/ mms@tt1 mms
Turkey Avea mms 213.161.151.201:8080 http://mms.avea.com.tr/servlets/mms mms mms
Turkey Turkcell mms 212.252.169.217:8080 http://mms.turkcell.com.tr/servlets/mms mms mms
Turkey Vodafone mms 217.31.233.18:8080 http://mms:6001/MM1Servlet mms mms
Turks & Caicos Islands Lime multimedia 10.20.5.34:8799 http://mmsc/
UAE Etisalat mms 10.12.0.30:8080 http:/mms/servlets/mms mms mms
UK ASDA asdamobilies.co.uk 212.183.137.12:8799 http://mms.asdamobiles.co.uk/servlets/mms wap wap
UK BT mobile.bt.uk 62.239.21.123:8080 http://mmsc.btmms.co.uk:8002/ user btmms
UK GiffGaff giffgaff.com 193.113.200.195:8080 http://mmsc.mediamessaging.co.uk:8002/ giffgaff password
UK Jersey Telecom mms 212.9.19.199:3130 http://mms.surfmail.com/mmsc mms mms
UK Lebara uk.lebara.mobi 212.183.137.12:8799 http://mms.lebara.co.uk/servlets/mms wap wap
UK Manx Telecom (Isle of Man) mms.manxpronto.net 195.10.99.46:8080 http://mms.manxpronto.net:8002/ mms mms
UK Manx Telecom Pay As You Go (Isle of Man) mms.prontogo.net 195.10.99.41:8080 http://mms.manxpronto.net:8002/ mmsgo mmsgo
UK O2 wap.o2.co.uk 193.113.200.195:8080 http://mmsc.mms.o2.co.uk:8002/ o2wap password
UK Orange orangemms 192.168.224.10:8080 http://mms.orange.co.uk/ Orange Multimedia
UK Sure C&W mms 10.0.3.101:80 http://mmsc.gprs.cw.com/
UK Tesco prepay.tesco-mobile.com 193.113.200.195:8080 http://mmsc.mms.o2.co.uk:8002/ tescowap password
UK T-Mobile general.t-mobile.uk 149.254.211.10:8080 http://mmsc.t-mobile.co.uk:8002/ user one2one
UK Virgin goto.virginmobile.uk 193.30.166.1:8080 http://mms.virginmobile.co.uk:8002/ user
UK Vodafone wap.vodafone.co.uk 212.183.137.12:8799 http://mms.vodafone.co.uk/servlets/mms
UK 3 three.co.uk 217.171.129.2:8799 http://mms.um.three.co.uk:10021/mmsc
Ukraine Kyivstar mms.kyivstar.net 10.10.10.10:8080 http://mms.kyivstar.net/ mms mms
Ukraine Life mms 212.58.162.230:8080 http://mms.life.com.ua/cmmsc/post
Ukraine UMC mms.umc.ua 192.168.10.10:8080 http://mmsc:8002/ mms umc
Uruguay Ancel mms 200.40.246.2:3128 http://mmsc.mms.ancuelutil.com.uy/
Uruguay Claro mms.ctimovil.com.uy 170.51.255.240:8080 http://mms.ctimovil.com.uy/ ctigprs ctigprs999
Uruguay Movistar mmsapn.movistar.com.uy 10.0.2.29:8080 http://mmsc.movistar.com.uy/ mmsuy mmsuy
USA AT&T wap.cingular 216.68.79.202:8080 http://mmsc.cingular.com/ wap@cingulargprs.com cingular1
USA Cincinnati Bell wap.gocbw.com 216.68.79.202:80 http://mms.gocbw.com:8088/mms
USA Claro Puerto Rico mms.claropr.com 10.50.38.3:8799 http://mmsg.claropr.com:10021/mmsc
USA Net10 (AT&T) tfdata 66.209.11.33:80 http://mms-tf.net/
USA Net10 (T-Mobile) wap.tracfone 216.155.165.40:8080 http://mms.tracfone.com/
USA Straight Talk (AT&T) att.mvno 66.209.11.33:80 http://mmsc.cingular.com/
USA Straight Talk (T-Mobile) wap.tracfone 216.155.165.40:8080 http://mms.tracfone.com/
USA T-Mobile wap.voicestream.com 216.155.165.50:8080 http://216.155.174.84/servlets/mms
USA Tracfone att.mvno 66.209.11.33:80 http://mmsc.cingular.com/
USA Union Wireless union.mms.com 166.230.4.83:80 http://mms.unionwireless.com
Uzbekistan Beeline mms.beeline.uz 172.30.30.166:8080 http://mms.beeline.uz/mms/wapenc beeline beeline
Uzbekistan Unitel mms.unitel 10.10.0.10:8080 http://mms.unitel.uz/was
Venezuela Digitel gprsweb.digitel.ve 10.99.0.10:8080 http://mms.412.com.ve/serviets/mms
Venezuela Movilnet mm.movilnet.com.ve 192.168.16.12:8080 http://mms2.movilnet.com.ve/servlets/mms
Venezuela Movistar mms.movistar.ve 200.35.64.73 http://mms.movistar.com.ve:8088/mms
Vietnam Mobifone m-wap 203.162.21.114:8080 http://203.162.21.114/mmsc mms mms
Vietnam Vinafone m3-mms 10.1.10.46:80 http://mms.vinaphone.vnn.vn:8002/ mms mms
Yemen Sabafon mms 192.168.30.174:8080 http://mms.sabafon.com/ wap wap
Yugoslavia Mobtel mms 217.65.192.33:8080 http://mms.mobtel.co.yu/servlets/mms
Yugoslavia Monet mms.monetcg.com 10.0.5.19:8080 http://192.168.180.100/servlets/mms

 

Emoticons and Emoji in SMS Text Messsages

$
0
0

Emoticons have long been part of text messaging (and before that e-mail), ranging from simple smileys such as : ) and : – ) to flowers @>–>—.  Traditionally, emoticons have been pictorial representation of a feeling or expression, with that picture being constructed by combining punctuation characters and other standard text characters.  Some messaging clients automatically replace common emoticons such as smileys with a graphic image, such as :) .

In Japan, emoji characters were added to mobile phones to provide users with access to graphic pictograms that were richer in presentation than this character based representation.

Due to interoperability considerations, emoji characters were incorporated into the Unicode 6.0 standard in 2010.

While Apple had supported emoji characters in prior versions of iOS, Apple began supporting these characters using Unicode encoding in iOS5.  Emoji characters are also widely supported with Unicode encoding in Windows Phone.  A smaller number of emoji characters are supported by current Android releases (as of version 4.3).

To include these emoticon/emoji characters in a text message, the text message must be sent over the air using Unicode format, more specifically UTF-16.

For this reason, it is appropriate to recall the message formats and size limitations for SMS.

GSM text messages are limited in size to 140 8-bit bytes of message data per message.  To facilitate longer messages, headers can be included in the SMS message data to tell the receiving client to combine multiple segmented messages and display them as a single long message.  This segmentation header (included in the user data header of the message data) requires 6 bytes, meaning that each segment of a long message can include no more than 134 bytes of message data (134 + 6 = 140).

In practice, there are three types of encoding that can be used for a text message.

Binary – Used for system messages, such as voice mail notification, WAP Push, MMS Notification, SIM update, etc.

Text – Message can only contain characters included in the GSM 7-bit character set (see tables and info in Long SMS Text Messages and the 160 Character Limit). This restricted character set which contains English characters, plus a few symbols, and some international characters for Western Europe and Greece (Greek capital letters are included). 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 ) For long messages, up to 153 7-bit characters can be present in each message segment.

Unicode – For text messages that include any characters outside of the GSM 7-bit character set, UTF-16 Unicode encoding must be used for the entire message.  This encoding uses 16 bits (2 bytes) for each character (with some characters, such as many emoticons requiring 32 bits, or 4 bytes, per character).  Each and every character in a Unicode format message must be encoded using at least 16 bits, even if the character is part of the GSM 7-bit character set.  This results in a limit of 70 16-bit characters in a single Unicode format message, or up to 67 characters per segment in a long message.

(Side note:  For some languages, especially Turkish, shift tables can be used as an alternative to Unicode format.  For more detail, see Shift Tables – National Language SMS in 160 characters without Unicode.)

For more review of these issues, please see Long SMS Text Messages and the 160 Character Limit.

NowSMS automatically decides whether to use Unicode format depending on whether or not characters present in the message are all part of the GSM character set.

Emoticon and emoji symbols are outside of the GSM character set, requiring that any SMS text messages using these characters be encoded in Unicode format.

As an example, the smiley emoticon :) is Unicode character 0x16F03.

One thing that you will immediately notice by its character code is that this character code is larger than can be represented in 16 bits.

As the Unicode standard has grown, it has been determined that not all universal characters can be accommodated within the 65,536 possible codes available in a 16-bit alphabet.

Characters that can be encoded in 16 bits are known as the UCS-2 alphabet.  The full Unicode character set, which includes characters 0×10000 and above is known as the UCS-4 alphabet.

Unicode SMS format was originally defined as using UCS-2 encoding, but standards updates have changed this to use UTF-16 encoding instead.  Characters below 0×10000, which are part of the UCS-2 range, are encoded in UTF-16 as their standard 16-bit character value.  Characters 0×10000 and above (UCS-4) are encoded in UTF-16 with two 16-bit characters.  (Portions of the UCS-2 character space were reserved to prevent conflicts.)

Our friend the smiley emoticon :) is 0x00016F03 in UCS-4 (or UTF-32) encoding.  In UTF-16 encoding, it is encoded as two 16-bit characters, 0xD83D followed by 0xDE0x.

But wait … it gets a little more complicated.

When working with the HTTP protocol, Unicode characters are more typically encoded using UTF-8 encoding.  This is the default character set used by NowSMS HTTP interfaces.

In UTF-8 encoding, :) (0x16F03) is encoded as four 8-bit characters 0xF0 0x9F 0×98 0×83.

NowSMS version 2013.08.30 or higher is required to support emoticon characters outside of the 16-bit UCS2 range.

send-text-message-with-emoji

Beginning with this version of NowSMS, we have added an emoticon and emoji character chart to make it easier to insert these characters into a text message. Click on the smiley :) below the text box in the “Send Text Messsage” web form to access this character chart. Click on any character to insert the character into the message text. Click on any section header (i.e., the text that says “Emoticons”) to toggle on or off a chart that displays the UTF-32, UTF-16 and UTF-8 characters for characters in that row … simply replace “x” with the hex digit from the column header.

We have also included a version of this chart at the bottom of this post.

Note that not all web browsers support all defined characters, and not all phones support all defined characters. Of particular note, current versions of Google Chrome do not support emoji without an extension (Chromoji). Current versions of that extension do not support emoji in embedded frames. A non-embedded version of this chart is available at http://www.nowsms.com/emoticons.htm.

National flags supported by current versions of iOS are also included in this chart without character codes, as their encoding is more complex, requiring two UTF-32 characters or four UTF-16 characters to represent a flag. The two UTF-32 characters are regional indicator symbols based upon ISO 3166-1 alpha-2 two-letter country codes. The regional indicator symbol range starts with A=0x1F1E6 and continues thru Z=0x1F1FF. As an example, for the UK flag, GB is the ISO 3166-1 alpha-2 country code. G=0x1F1EC and B=0x1F1E7. Conversions to UTF-16 and/or UTF-8 are left as an exercise for the reader.

Note:  A non-embedded version of this chart is available at http://www.nowsms.com/emoticons.htm.

 

 

Burst Mode Licensing Support

$
0
0

Burst mode is a licensing enhancement to help customers better handle bursts of SMS and/or MMS messaging activity. Instead of just tracking message throughput per minute or second, NowSMS also keeps track of activity over the past two hours, and allows unused throughput capacity during that period to be applied as a performance burst.

Performance burst activity will provide up to double the license throughput for up to 60 minutes.

For example, consider a 10 message per second license which has been completely idle with no messaging traffic for at least 60 minutes. A large bulk submission occurs and burst mode will be automatically activated to operate at 20 messages per second for 60 minutes. After 60 minutes, burst mode deactivates and the speed reverts to 10 messages per second, until there is again a period of time where messaging traffic is below the licensed limit.

That is an extreme example. In more typical usage scenarios, burst mode helps better manage the peaks and valleys of message traffic by applying the license speed cap on a rolling two hour period, allowing unused capacity from the previous 120 minutes to be reclaimed with burst mode.

Burst mode licensing support is enabled in NowSMS versions 2013.08.30 and later.


SMPP TLV Optional Parameters

$
0
0

The SMPP protocol defines support for optional parameters, known as TLV parameters. Some TLV parameters are defined in the core specification, and NowSMS may use them depending on configuration settings. These TLV parameters include message_payload, source_port, dest_port, sar_msg_ref_num, sar_total_segments, sar_segment_seqnum, payload_type, message_state and receipted_message_id. (There are also advanced configuration settings to generate values for user_message_reference and callback_num, which were required by specific customer implementations.)

SMS service providers are free to define their own TLV parameters, which sometimes may be required when interfacing with a mobile operator.  These TLV parameters might include operator information for inbound messages, pricing information for premium rate SMS, or other security and fraud prevention parameters required by that service provider.

NowSMS provides flexibility to configure support for custom TLV parameters as needed.  TLV parameters must be manually defined to NowSMS before they can be used.

TLV stands for Tag, Length and Value, which is the basic format of these parameters.

Tag is a numeric value, usually expressed as a hexadecimal value, that the provider defines for the parameter.   These values are usually 0×1400 or higher for service provider specific parameters.  While the parameter is logically thought of as a Name=Value pair, this number is used in the SMPP request instead of a parameter name.

Length and Value are used to encode the parameter value in the SMPP request.

Interpreting a TLV parameter can be tricky because the format of the value depends on how the provider defines the parameter.  Values might be encoded as a string value, a numeric value, or binary data.  For string values, it can sometimes be more complicated because the SMPP protocol defines two types of strings, a C format string that is null terminated (as is common for strings when working with the C programming language) and another that does not include the null terminator.  Some provider parameter implementations can become confused over this minor difference.

Generally, to define a TLV parameter to NowSMS, you need to know its Tag number (hexadecimal) and format of the value data.

When this is known, manually edit SMSGW.INI and create or modify an [SMPPOptions] section to define the parameter details.

The basic format is:

[SMPPOptions]
parametername=####,Type,Len

parametername is a descriptive name to be associated with the parameter.  NowSMS will use this name when converting the parameter to and from HTTP formats.

#### is the parameter tag number as a hexadecimal number. Do not include any prefix to indicate hex format…for example, 0×1400 is  just 1400 for this parameter setting.

Type specifies the parameter type: Integer, String, CString or HexString.

Len is optional, but is usually required for Integer values to specify a 1, 2 or 4 byte value, as defined by the provider.  (4 byte integer parameters require NowSMS 2013.08.30 or later. Earlier versions of NowSMS can only support 4 byte integers using the HexString format.)

CString is a text string that is null terminated (e.g., final 00 byte at the end), String is a text string that is not null-terminated.

HexString treats the value as binary data and converts it to a string of hex characters for HTTP (and back to binary for SMPP).

Len can be used for String or HexString to force a length (truncate value at length or pad with nulls).  In most cases, Len is omitted from the parameter definition for String, CString and HexString format parameters, unless the provider requires the parameter to have a specific length.  (NowSMS will generate the L for the TLV based on actual value string length.)

Example

This is all easier to explain with an example.

For the purpose of this example, we will assume that our provider has defined a TLV parameter called request_id.  It is a text string and has a tag number of 0×1555.

We define the following in SMSGW.INI:

[SMPPOptions]
request_id=1555,String

If NowSMS receives an SMS from the provider via SMPP which includes this parameter, accounting callbacks and 2-way commands will automatically have this parameter added to the HTTP request as &SMPPOption_request_id=xxxxx (xxxxx is the value of the parameter that was parsed from the message).

When submitting a message to NowSMS via HTTP, this same &SMPPOption_request_id=xxxxx can be used to specify that the TLV parameter should be included when submitting the message to the SMPP provider.

To Always Include Parameter With A Default Value

If you want to automatically include a TLV parameter in every message without requiring it to be explicitly set for each message submission, it is possible to configure NowSMS to use a default value for this parameter when submitting messages to your SMPP connection.

To define a default value for this parameter, manually edit the SMSGW.INI, and in the section header for an SMPP connection (e.g., [SMPP - ip.address:port]), add a “DefaultSMPPOptions=” setting, where the value of this setting can contain any of the “SMPPOptions” settings. For example:

DefaultSMPPOptions=request_id=myrequest

(If you have multiple SMPPOptions parameters defined that need to be set as default, separate them with a “;”. For example: DefaultSMPPOptions=request_id=myrequest;otherparm=othervalue)

To Include TLV Parameter In 2-Way SMS Reply

Another common requirement for some TLV parameter is that when generating an automatic reply to a message, the value of the TLV parameter in the received message must be copied over to the new reply message. If you are using 2-way SMS to send replies to incoming messages (“Command returns response text” is checked for the 2-way command), add 2WayReplyCopySMPPOptions=requestid to the [SMSGW] section of SMSGW.INI. This setting tells NowSMS that if it is processing a 2-way command reply, it should automatically copy the request_id TLV parameter from the source message to the reply.

More Examples

Additional examples can be found at the following links:

mBlox TLV Parameters: http://www.nowsms.com/mblox-and-nowsms-premium-rate-sms-and-oppc

For a more recent mBlox parameter, also see: http://www.nowsms.com/discus/messages/1/71879.html

Copying a TLV parameter for a 2-way reply where the actual sender address is hidden:  http://www.nowsms.com/discus/messages/1/71840.html

Provider specific parameters: http://www.nowsms.com/premium-rate-sms-oppc-with-verisign-and-nowsms

More provider specific parameters: http://www.nowsms.com/discus/messages/1/70296.html

Using TLV for advanced message routing: http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing

TLV for 2-way response via USSD: http://www.nowsms.com/discus/messages/1/41585.html

SMPP TLV parameter for PRICEPOINT: http://www.nowsms.com/discus/messages/1/71897.html

NowSMS/NowMMS Update (Version 2013.09.26)

$
0
0

An updated release of NowSMS & NowMMS is now available for general release.

Existing customers who have a current software update license can use the trial download to update their existing installation.  Please see the Serial # page of the NowSMS configuration program to determine software update eligibility.

There are numerous enhancements in this release, some of which have been made available and tested in interim releases over the past year.

This document will highlight some of the more significant changes in this release.  For additional detail, please refer to our changes log for NowSMS.

Burst Mode Licensing

Burst mode is a licensing enhancement to help customers better handle bursts of SMS and/or MMS messaging activity. Instead of just tracking message throughput per minute or second, NowSMS also keeps track of activity over the past two hours, and allows unused throughput capacity during that period to be applied as a performance burst. Performance burst activity will provide up to double the license throughput for up to 60 minutes.

For additional detail, see Burst Mode Licensing Support.

MMSC Diameter MM9 Implementation

The Now MMSC supports the use of MM9 or Diameter based charging for MMS messages. This MM9/Diameter implementation is highly configurable, with configuration options that allow the Diameter requests to be tuned to meet the requirements of different operator charging systems.

For Extensive additional information, see Now MMSC Diamteter MM9 Implementation.

SMS Hubbing Considerations

NowSMS is frequently used to provide SMS message routing connectivity between multiple SMSCs using the SMPP protocol.

In SMS hubbing configurations, NowSMS is connected to one or more service providers using the SMPP protocol. Service providers route selected SMS messages to NowSMS over an SMPP connection, and NowSMS is then used to route the SMS message to a different service provider over another SMPP connection.

This update includes several enhancements to provide flexibility for SMS hubbing configurations.

Configuration options allow inbound deliver messages to be rerouted to outbound submit format for delivery to another SMSC connection. Delivery report message ID tracking has been enhanced to support these rerouted messages to the extent that is technically possible with extensive configurable support for the SMPP data_sm message format.

SMS hubbing considerations are discussed in the article SMS Hubbing Considerations, and we welcome further discussion and clarification in our Support Forum.

SMPP Optional TLV Parameter Support

The SMPP protocol defines support for optional parameters, known as TLV parameters. SMS service providers are free to define their own TLV parameters, which sometimes may be required when interfacing with a mobile operator. These TLV parameters might include operator information for inbound messages, pricing information for premium rate SMS, or other security and fraud prevention parameters required by that service provider.

NowSMS has long supported configurable TLV parameters.  This version adds improved support for long integer format parameters.

Learn more about TLV parameter settings in the article SMPP Optional TLV Parameters.

MM7 and MM4 Performance

Overall speed and performance has been greatly improved for message processing over MM7 and MM4 protocol, and for conversions between different MMS message formats including MM1, MM4 and MM7.

MM4 forward.RES acknowledgment performance has also been greatly enhanced to remove potential performance bottlenecks with operator interconnects.

Outbound connections can now be configured to specify the number of concurrent connections allowed and the maximum number of recipients per message instance. (For proper delivery report handling across some MM4 interconnects, it is necessary to break multiple recipient messages into separate message instances for each recipient.)

MMSC Group Messaging Support Across MM4 & MM7 Interconnects

MMS is about more than just sending pictures and videos.  The biggest growth driver in MMS messaging volume over the past year has been increased usage of MMS to deliver group text messages.  The benefit of MMS for group text messages is that a complete list of recipients can be maintained, allowing recipients to reply all, and hence driving a large increase in messaging traffic.

Most current Android, iPhone and Windows Phone devices now default to using MMS for group messaging.

When NowSMS is functioning as an MMSC, previous versions would not always maintain the complete recipient headers when messages were transferred between operators over an MM4 or MM7 interconnect.

ICAP Protocol Support for Additional MMSC Deployment Flexibility

The Now MMSC can now support subscriber identification/authentication for configurations that do not use a WAP gateway or proxy server, or for configurations where some subscribers use a proxy/gateway and other subscribers do not.

The MMSC can issue ICAP client requests to request subscriber identification from an ICAP server that can provide HTTP Header Enrichment.

The latest version of NowWAP has been enhanced to provide HTTP Header Enrichment via an ICAP server interface for the type of configuration described.  This ICAP server interface can also be used for configurations that are using a Squid based proxy server, as Squid can easily be configured to selectively request HTTP Header Enrichment from NowWAP.

For more information, start a discussion on our support forum, or contact us via e-mail.

Emoticons and Emoji in SMS Messages

Emoticons have long been part of text messaging (and before that e-mail), ranging from simple smileys such as : – ) to flowers @>->-. Traditionally, emoticons have been pictorial representation of a feeling or expression, with that picture being constructed by combining punctuation characters and other standard text characters. In Japan, emoji characters were added to mobile phones to provide users with access to graphic pictograms that were richer in presentation than this character based representation.

Some messaging clients automatically replace common emoticons such as smileys with a graphic image, such as :) .

Due to interoperability considerations, emoji characters were incorporated into the Unicode 6.0 standard. NowSMS now supports 32-bit Unicode characters in SMS messages, whereas previous versions were limited to 16-bit Unicode support.

More information on how these characters are encoded in the modern world of SMS can be found in the article Emoticons and Emoji in SMS Messages.

MMS to SMS Conversion for Multimedia Message Delivery

Sometimes the most cost effective way to deliver MMS message content is to convert the MMS content to a web-link that is sent via SMS.

NowSMS has long supported this capability, but we’ve greatly improved the message templates and formatting compared to previous releases.

Easier E-Mail to/from SMS and/or MMS

Additional flexibility has been added for bi-directional e-mail to SMS and/or MMS configurations. Instead of requiring NowSMS to be setup as a separate SMTP mail server, it is now also possible to configure NowSMS to route all e-mail communication through a shared POP3 or IMAP mailbox.

IMAP, with a service that supports the IDLE command, such as GMail, is recommended, as this allows e-mail messages to be pushed to NowSMS automatically as they are received. (POP3 requires periodic polling of the mailbox to retrieve new messages.) E-mail related settings have been moved to a separate configuration tab. E-mail services are provided by the MMSC service, which must be active. (GMail configuration notes: use Server Type IMAP with SSL/TLS. IMAP server is imap.gmail.com:993 and SMTP server is smtp.gmail.com:587.)

When sending an SMS or MMS to the shared mailbox via e-mail, the phone number of the recipient must be specified at the start of the subject line of the message.

Configuring NowSMS as an SMTP server provides more power and flexibility as the phone number is part of the e-mail address.  However, this additional configuration option provides an additional option that is better suited for some deployment scenarios.

SMPP Server Enhancements

Numerous improvements have been made to the SMPP Server interface built into NowSMS.

Individual clients can be configured to use different formats for message delivery, including different default character sets, whether port numbers and segmentation are sent via TLV or UDH parameters, whether or not to use data_sm format for message delivery, and async mode support for message delivery.

Message speed limits for accepting messages from an SMPP client are also more accurately enforced at higher speeds.

Mobile Operator MMS APN Settings

NowSMS and NowSMS Lite are frequently used in configurations that include GSM Modems. We’ve updated our list of mobile operator MMS settings to include the preferred WAP2/HTTP proxy settings for several hundred mobile operators around the world.

If you are not currently using WAP2/HTTP settings, you might not be receiving all MMS messages sent to the GSM modem, as one of our customers recently encountered.

Updated settings are included in the latest release, but you can also find more information in the article Mobile Operator MMS APN Settings.

Using PHP Scripts to Extend NowSMS

PHP scripts are a great tool for integrating NowSMS into another application environment, or extending the functionality of NowSMS.
PHP scripts are often used for 2-way SMS or MMS processing, providing a convenient mechanism for processing the received message content in an application, and optionally replying back to the received message, updating or querying a database, or taking other action upon the message which could involve sending one or more messages to other parties.

PHP scripts are also frequently used to implement accounting or routing callbacks. Accounting callbacks can be used to record messaging activity, and to integrate with external billing or accounting systems. These accounting callbacks also support the ability to block messaging activity when external billing criteria indicates that a message operation should be be allowed. Routing callbacks can be used to provide additional control for selecting the outbound route to be used for message delivery, such as interfacing into mobile number portability databases or HLR lookups.

NowSMS interfaces with PHP scripts via an HTTP interface, which has historically required a separate HTTP web server with PHP installed. By using an HTTP interface, NowSMS can integrate with other web based scripting languages and environments, including ASP, ASP.Net, Java and Perl.

The separate web server requirement can make it more difficult to develop 2-way command scripts or accounting callbacks, especially when prototyping an application.

Since 2011, NowSMS has supported an interface that could work with a local copy of PHP without requiring a separate web server. However, this interface has relied on environment settings that were expected to be set by the PHP installation program, which were sometimes mysteriously missing. To better address these issues which are beyond our control, the new version of NowSMS is far more robust in detecting and enabling local PHP installations.

Click here for more information on NowSMS and PHP.

Click here for more information about accounting and routing callbacks.

NowSMS / NowMMS Update 2013.11.15

$
0
0

An updated release of NowSMS is now available for download. Version 2013.11.15 is a critical update for customers using MMSC functionality.

This update fixes two different denial of service problems and improves recovery handling of unexpected problems. One problem was new to the 2013.09.26 release and can be triggered by a corrupt message received via an MM4 connection. The other problem affects all previous versions of NowSMS and can be triggered by a corrupt MM1 message submission that is to be routed externally via MM4 or MM7.

This release also corrects a problem where some To/Cc recipient headers were lost or incomplete for MMS group messages received via an MM4 interconnect.

Additional details on this release can be found in our changes log at http://www.nowsms.com/download/changes.txt.

For a summary of major new features introduced in recent releases, please see http://www.nowsms.com/nowsms2013.

The trial version download can be used to update an existing installation: http://www.nowsms.com/download-free-trial

 

 

SMPP Character Set Issues

$
0
0

This article provides troubleshooting advice when sending SMS messages with NowSMS and experiencing one or more of the following issues:

a.) Some characters such as @, $, £ or € are not correct.

b.) Some or all messages are truncated or garbage (possibly only messages over a certain length).

c.) Some accented characters are not correct (è, é, etc.)

d.) Some or all Greek characters are not correct (Δ, Φ, etc.)

e.) Messages containing non-English/Latin characters are not correct (Arabic, Chinese, Japanese, Korean, etc.)

f.) Emoticon/Emoji characters are not correct ( :) , etc.)

One of the most frustrating issues facing some SMS implementations is character set issues, especially for SMPP environments, where different providers use different character sets and tend to be oblivious about how their implementation differs from others.

The NowSMS approach is to offer as much flexibility as we can with regard to character set handling, however limitations of some provider implementations may require compromises and trade offs.

In this post, we’re going to focus on common issues, troubleshooting and configuration options to address commonly encountered problems.

Unfortunately, the process of finding the best settings for use with your provider can often require trial and error testing methods.

For a technical discussion of these issues, see http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit

The first step of troubleshooting is to perform test messages containing problem characters from the NowSMS web interface only, using the built in “Send Text Message” form. This is very important for troubleshooting. It is necessary to determine whether the character encoding problem is with input from a client to NowSMS or with output from NowSMS to the SMSC provider.

If the characters are sent correctly using the “Send Text Message” form, then the encoding issue is input related. If using HTTP, NowSMS expects UTF-8 character encoding to be used for all text (which is the character set that the web form is configured to use). If you cannot convert your text to UTF-8, you can add a parameter to your HTTP request to tell NowSMS what character set is being used. More information can be found here: http://www.nowsms.com/discus/messages/1/5754.html

This article will focus on output issues where there is a character set issue between NowSMS and the SMSC provider, or in other words, issues where the character problem can be recreated using the built-in “Send Text Message” form.

We recommend working through each of these issues in sequence. Verify that you are not experiencing the problem described before moving on to the next issue, as the solution may be related to an issue that you do not realise you are experiencing.

a.) Some characters such as @, $, £ or € are not correct.

The character set used for SMS is different than the standard character sets used by computers.

By default, NowSMS uses the GSM SMS character set encoding over SMPP. However, some SMPP providers expect one of the computer character sets to be used.

Test first with @ and $ characters. If those characters do not work, go into the “Advanced Settings” for the SMPP connection in NowSMS and try changing the “SMSC Character Set” to “iso-8859-1 as Default”. Note that in order to save and activate that setting change it is necessary to press “OK” twice then “Apply” when you are returned to the “SMSC” list. (If NowSMS asks if you wish to test the SMSC connection, it is ok to answer “No”.) Wait about 60 seconds for the server to activate the settings change and try another test message.

Other character sets can also be tried, but they are more rarely used.

Assuming that @ and $ are correct, but the € character is not correct, try changing the “SMSC Character Set” to “iso-8859-15″. If this causes problems, it may be necessary to manually add a setting to the SMSGW.INI file. Under the [SMPP - server:port] section header of SMSGW.INI, which contains your SMPP configuration information, there should be a setting SMSCCharset=iso-8859-15. Below that setting, on a new line add SMSCCharsetDefault=Yes

b.) Some or all messages are truncated or garbage (possibly only messages over a certain length).

The @ character is encoded as a NULL value in the GSM SMS character set, so if messages are truncated where the @ character should appear, this is a good indication that the provider expects iso-8859-1 or iso-8859-15 as described in the previous section.

If simple short text messages containing only English alphabet characters appear as corrupt, then it is possible that you are interfacing with an older SMPP server that expects all text messages to be in 7-bit packed encoding, which is the actual over the air format. Under the “Advanced Settings” for the SMPP connection in NowSMS, enable the “Encode text messages with 7-bit packing” setting. Note that in order to save and activate that setting change it is necessary to press “OK” twice then “Apply” when you are returned to the “SMSC” list. (If NowSMS asks if you wish to test the SMSC connection, it is ok to answer “No”.) Wait about 60 seconds for the server to activate the settings change and try another test message.

If only longer messages are impacted … then try the following:

If long messages produce garbage output, under the “Advanced Settings” for the SMPP connection in NowSMS, change the “Encode long text messages with 7-bit packing” setting. Different versions of NowSMS have different defaults for this setting. Most SMPP servers will want this setting disabled, but there are also a sizable number that want this setting enabled.

If the messages contain some garbage characters mixed in with the text, or the receiving device sees multiple message segments instead of one long message, try enabling “Use TLV Parameters for port numbers and segmentation”. By default, NowSMS builds GSM User Data Header (UDH) to encode message segmentation information. Some providers expect segmentation to be encoded using optional TLV parameters instead.

Some providers might prefer that you do not segment long messages, but instead send the entire long message in one transaction and allow the provider to perform segmentation for delivery. This is often referred to as the “message payload” method. This setting can be enabled in NowSMS by enabling “Use WDP Adaptation for WAP Push and MMS” and disabling “Use TLV Parameters for port numbers and segmentation”.

Another situation that can affect only some long messages is that some SMPP providers have different encoding expectations if a message contains “message class” encoding. Normal text messages will have a DCS/data_coding value of 0 (standard text) or 8 (Unicode text). If the problem messages show a different DCS value in the NowSMS logs, refer to the following discussion threads for information on advanced settings: http://www.nowsms.com/discus/messages/1/71597.html http://www.nowsms.com/discus/messages/1/71862.html

c.) Some accented characters are not correct (è, é, etc.)
and/or
d.) Some or all Greek characters are not correct (Δ, Φ, etc.)

Refer to the GSM character set table at http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit

Are the characters in the GSM character set?

If they are not in the GSM character set, NowSMS is using Unicode format (DCS/data_coding=8) to encode the message, and you may need to speak with your provider about enabling Unicode support. It is possible to to disable automatic Unicode detection for SMS text messages submitted via HTTP. When DisableHttpUnicodeSMS=Yes is set under the [SMSGW] header of SMSGW.INI, NowSMS will disable automatic Unicode detection and will replace Unicode characters with a close equivalent, or with – or ?.

If the characters are in the GSM character set, it is possible that you are using the iso-8859-1 or iso-8859-15 character set, and those characters are not in that character set. In NowSMS 2014.02.17 and later, there are configuration settings that can force unicode encoding to be used for these characters. Under the [SMSGW] header, add either TestUnicodeSMSForISO88591=Yes or TestUnicodeSMSForASCII=Yes. The latter setting forces Unicode if a message contains characters outside of the ASCII (7-bit subset of iso-8859-1) character set.

The upside of forcing Unicode encoding is that no characters are lost. The downside is that segmentation occurs for these messages at 70 characters instead of 160.

e.) Messages containing non-English/Latin characters are not correct (Arabic, Chinese, Japanese, Korean, etc.)

NowSMS uses Unicode format (DCS/data_coding=8) to encode a message if it contains any characters outside the 7-bit GSM character set. You may need to speak with your provider about enabling Unicode support. It is possible to to disable automatic Unicode detection for SMS text messages submitted via HTTP. When DisableHttpUnicodeSMS=Yes is set under the [SMSGW] header of SMSGW.INI, NowSMS will disable automatic Unicode detection and will replace Unicode characters with a close equivalent, or with – or ?.

f.) Emoticon/Emoji characters are not correct ( :) , etc.)

:( How very sad for you.

Emoticon and Emoji encoding is discussed in excruciating detail at http://www.nowsms.com/emoticons

Android Phone Modem Support in NowSMS

$
0
0

NowSMS Beta Release – Android Phone Modem Support

New versions of NowSMS and NowSMS Lite will soon be available, and we are looking for beta release feedback. This beta will primarily be of interest to customers who are using, or are interested in using, modem devices to send and receive SMS and MMS messages via NowSMS.

The new release will include support for using most standard Android phones to send and receive SMS and MMS messages. (We have performed internal testing with devices running Gingerbread version 2.3 thru KitKat version 4.4.)

The beta release is expected to be available starting Wednesday, April 16. To request access to the beta, please send an e-mail to nowsms@nowsms.com. Additional details will be posted in the support forum area of the NowSMS web site on April 16.

Supporting Android phones as modems is significant for several reasons:

  • LTE Support – LTE based Android devices can provide higher speed support for MMS sending and receiving.
  • Network Compatibility – Some mobile operators (and modem device manufacturers) assume that modems are used for internet access only and disable SMS and/or MMS support for modems. This is not an issue for Android phones.
  • CDMA Support – For years, US based customers have asked us about modems that can support Verizon and Sprint. Android phone support allows us to support those network operators using both CDMA and high speed LTE.
  • Broad Device Availability – For customers interested in trying NowSMS, it is far easier to locate or acquire an Android device than a conventional modem.
  • MMS Performance – With conventional GSM modems, MMS performance is limited by the mode switching required to switch between data and SMS channels. There are no mode switching delays mixing SMS and MMS traffic on Android devices.
  • Multiple Modems – USB connectivity (and driver quality or lack thereof) is a major limitation for systems with multiple conventional GSM modems. For Android phones, the NowSMS server connects to the Android phones over WiFi, providing far greater performance for NowSMS to simultaneously control multiple modems. Modems can even be located in different physical locations to maximize signal strength. (The NowSMS server communicates over WiFi to a new app running on the Android phone.)

Additional New Features

For this update, we have focused on improving features that are of interest to modem based configurations. Some highlights:

Simplified Setup & Configuration

No more messing with finicky USB modem drivers and meddlesome modem manufacturer software.

MMS Settings can be automatically determined for most configurations.

NowSMS setup simplified for defining integrated SMS and MMS related settings in one dialog.

Modem discovery/selection in either NowSMS or NowSMS Lite

SMS and MMS Modem Settings Integration

Improved Bi-Directional E-Mail to SMS/MMS Gateway

If you’re looking to use connect office workers on e-mail with mobile workers or customers, options have been added to simplify setup. A single gateway mailbox on Gmail can replace the need for setting up a separate e-mail domain. And SMS or MMS replies can be automatically routed back to the original e-mail sender.

E-Mail to SMS and MMS can also make use of distribution lists, making it easier to get your content to interested subscribers.

E-Mail Gateway Configuration

More Powerful 2-Way Commands

We’ve kept what works, but made it easier to get started. Simple keyword setup allows static text or image content to be sent in reply to a received message.

Keyword actions can also add or remove a subscriber from a distribution list, or forward a received message to an e-mail address.

2-Way Command Options

 

More Information

For more information visit:

http://www.nowsms.com/discus/messages/1/72365.html

Viewing all 92 articles
Browse latest View live