<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NowSMS &#187; Support Blog</title>
	<atom:link href="http://www.nowsms.com/category/supportblog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nowsms.com</link>
	<description>SMS Gateway, SMS Server Software, MMS Gateway &#38; MMSC</description>
	<lastBuildDate>Thu, 01 Mar 2012 20:11:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>2-Way / Inbound SMS Retry Error Handling</title>
		<link>http://www.nowsms.com/2-way-inbound-sms-retry-error-handling</link>
		<comments>http://www.nowsms.com/2-way-inbound-sms-retry-error-handling#comments</comments>
		<pubDate>Thu, 01 Mar 2012 20:11:12 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[2-way SMS]]></category>
		<category><![CDATA[retry attempts]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13432</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>There are other articles that explain how NowSMS handles retry situations for outbound message delivery.  A good overview can be found in the article <a href="http://www.nowsms.com/smpp-error-code-handling-in-nowsms">SMPP Error Code Handling in NowSMS</a>.  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 <a href="http://www.nowsms.com/sms-retry-error-handling-with-ucpemi-and-cimd">SMS Retry Error Handling with UCP/EMI and CIMD2</a>.</p>
<p>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 &#8220;500 Internal Error&#8221;.  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 &#8230; 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.</p>
<p>If a web server returns a valid HTTP error response, such as &#8220;500 Internal Error&#8221;, 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.</p>
<p>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).</p>
<p>By default, NowSMS will retry 20 times with a staggered delay based upon the number of previous failures.</p>
<p>The default behaviour for the delayed retry schedule works like this:</p>
<p>After the first error, a retry can be attempted immediately (but first NowSMS will try other pending messages).</p>
<p>After the second error, NowSMS will wait 30 seconds before allowing the message to be retried.</p>
<p>After the third error, NowSMS will wait 60 seconds before allowing the message to be retried.</p>
<p>For each successive error, NowSMS waits an additional 30 seconds before allowing a retry.</p>
<p>After 20 errors, the message will be considered as failed.</p>
<p>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):</p>
<p><strong>RetryDelay=</strong><br />
<strong>RetryDelayMultiplier=</strong><br />
<strong>RetryDelayAfterAttempts=</strong><br />
<strong> RetryDelayMax=</strong><br />
<strong> RetryMaxAttempts=</strong></p>
<p><strong>RetryDelay=</strong>#### specifies a number of seconds to wait to retry sending after an error condition, the default value is 30.</p>
<p><strong>RetryDelayMultiplier</strong>=### 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.</p>
<p><strong>RetryDelayAfterAttempts</strong>=### 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.</p>
<p><strong>RetryDelayMax</strong>=### specifies the maximum number of seconds that NowSMS will allow to elapse between retries, putting a limit on the multiplier.</p>
<p><strong>RetryMaxAttempts</strong>=### specifies the maximum number of retries that NowSMS will attempt before a message is rejected, the default value is 20.</p>
<p>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.)</p>
<p>Note that if these same settings names are also used to control retry behaviour for outbound messages.</p>
<p>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.</p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/2-way-inbound-sms-retry-error-handling/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding SMS Accounting Callbacks</title>
		<link>http://www.nowsms.com/understanding-sms-accounting-callbacks</link>
		<comments>http://www.nowsms.com/understanding-sms-accounting-callbacks#comments</comments>
		<pubDate>Tue, 21 Feb 2012 00:05:32 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[accounting callbacks]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13421</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<p>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:</p>
<p><span style="color: #000000;"><span class="notranslate" style="font-family: 'Courier New', monospace;"><span style="font-size: x-small;">SMSAccountingURL=http://server/path</span></span></span></p>
<p>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.</p>
<p>For example:</p>
<p><span style="color: #000000;"><span class="notranslate" style="font-family: 'Courier New', monospace;"><span style="font-size: x-small;">http://server.name/path?PreAuth<span class="notranslate">=Yes</span>&amp;Type=SMSSend&amp;From=UserAccount&amp;To=%2B447777777777<br />
&amp;MsgCount=1&amp;SubmitIP=127.0.0.1&amp;Text=This%20is%20a%20test.<span style="font-family: Georgia;"><span style="font-size: small;"><br />
</span></span></span></span></span></p>
<p>(These variables and transaction types will be described later in this section.)</p>
<p>Accounting callbacks exist primarily to record billing and charging information, however they also can offer the ability to maintain credit control external to NowSMS.</p>
<p>The following accounting callbacks exist for SMS Messaging:</p>
<ul>
<li><strong>SMSSend PreAuth Callback</strong> &#8211; 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.</li>
<li><strong>SMSSend Accounting Callback</strong> &#8211; 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.</li>
<li><strong>SMSOut Accounting Callback</strong> &#8211; 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.</li>
<li><strong>SMSIn Accounting Callback</strong> &#8211; This callback records that an inbound message has been received from an upstream SMSC connection.</li>
</ul>
<p>The remainder of this section provides additional details on the parameters supported by these callbacks.</p>
<h2>SMSSend PreAuth Callback</h2>
<p>This callback is executed when an SMS (web, SMPP, SMTP) user is requesting to send a message.</p>
<p>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 &#8220;PreAuth=Deny&#8221; if the message should be blocked from acceptance.</p>
<p>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 &#8220;MsgCount&#8221; 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.</p>
<p>The following variables will be set for a pre-authorisation request:</p>
<p><strong>PreAuth=</strong>Yes (indicates that the message is a Pre-Authorisation Request)<br />
<strong>Type=</strong>SMSSend<br />
<strong>From=</strong>Defined <span class="notranslate">&#8220;SMS Users&#8221;</span> Account<br />
<strong>To=</strong>Comma delimited list of message recipients (will not be present if message is addressed to more than 100 recipients)<br />
<strong>MsgCount=</strong>#### (number of recipients user is requesting to send the message to)<br />
<strong>SubmitIP=</strong>a.b.c.d<br />
<strong>SMSC<span class="notranslate">Route=</span></strong>xxxxxx (optional, will be present only if an explicit route was requested in message submission)<br />
<strong>Sender=</strong>xxxxxx (optional, will be present only if a sender address was specified in message submission)<br />
<strong>Binary=</strong>1 (optional, will be present if the message is binary)<br />
<strong>PID=</strong># (optional, will be present only if a non-zero PID value was specified in message submission)<br />
<strong>DCS=</strong># (optional, will be present only if a non-zero DCS value was specified in message submission)<br />
<strong>UDH=</strong>HexString (optional, will be present only if message contains User Data Header)<br />
<strong>Data=</strong>HexString (optional, will be present only if message is binary)<br />
<strong>Text=</strong>String (optional, will be present only if message is text)<br />
<strong>ReceiptRequested=</strong>Yes (optional, will be present only if message is requesting a delivery receipt &#8230; only available in v2009.01.26 and later)</p>
<p>Any defined SMPPOption parameters will also be included.</p>
<p>(Note: For SMTP message submissions, only PreAuth, Type, From, To and MsgCount variables will be present.)</p>
<p>Example:</p>
<p><span class="notranslate" style="font-family: 'Courier New', monospace;"><span style="font-size: x-small;">http://server.name/path?PreAuth<span class="notranslate">=Yes</span>&amp;Type=SMSSend&amp;From=UserAccount&amp;To=%2B447777777777&amp;MsgCount=1&amp;SubmitIP=127.0.0.1&amp;Text=This%20is%20a%20test.</span></span></p>
<p>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 &#8220;+&#8221; and %20 is translated back to a space character).</p>
<p>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).</p>
<p><strong>The following Name=Value responses are supported for the SMSSend PreAuth Callback:</strong></p>
<p><strong>PreAuth=</strong>Deny</p>
<p>This causes NowSMS to reject the message, and the submitting client will receive a submission error.</p>
<p><strong>SMPPErrorCode</strong>=0x#### or ####</p>
<p>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&#215;0058 (ESME_RTHROTTLED).</p>
<p><strong>RejectMessage</strong>=text string</p>
<p>This parameter specifies error text to be returned to the user if the submission interface supports returning such text (e.g., HTTP).</p>
<p><strong>The following Name=Value responses are supported only if SMSAccountingPreAuthPerRecip=Yes or SMSAccountingMustSetRoute=Yes is set under the [SMSGW] section header of SMSGW.INI:</strong></p>
<p><strong>SMSCRoute</strong>=routename</p>
<p>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 <a href="http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route">http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route</a>.)  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.</p>
<p>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.</p>
<p>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.</p>
<p><strong>RouteCharge</strong>=####</p>
<p>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).</p>
<p><strong>UserData</strong>=text</p>
<p>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.</p>
<p>&nbsp;</p>
<h2>SMSSend Accounting Callback</h2>
<p>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.</p>
<p>In NowSMS 2009 and later, NowSMS will check the response to the HTTP request. If this response includes the text &#8220;SMSC<span class="notranslate">Route=</span>xxxxx&#8221;, then NowSMS will apply this SMSC route for the message. The specified route &#8220;xxxxx&#8221; can either be the name of a particular SMSC connection (e.g., &#8220;SMPP &#8211; host:port&#8221;), or it can be the value of the &#8220;RouteName=&#8221; attribute defined for one or more connections. (For more information on the &#8220;RouteName=&#8221; attribute, see <a href="http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route">http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route</a>.)</p>
<p>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.</p>
<p>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.</p>
<p>The following variables will be set for the accounting callback:</p>
<p><strong>Type=</strong>SMSSend<br />
<strong>From=</strong>Defined <span class="notranslate">&#8220;SMS Users&#8221;</span> Account<br />
<strong>To=</strong>Message Recipient Phone Number (if the message is sent to multiple recipients, this callback is repeated for each recipient)<br />
<strong>MessageID=</strong>Message ID assigned to the message by NowSMS<br />
<strong>SubmitIP=</strong>a.b.c.d<br />
<strong>SMSC<span class="notranslate">Route=</span></strong>xxxxxx (optional, will be present only if an explicit route was requested in message submission)<br />
<strong>Sender=</strong>xxxxxx (optional, will be present only if a sender address was specified in message submission)<br />
<strong>Binary=</strong>1 (optional, will be present if the message is binary)<br />
<strong>PID=</strong># (optional, will be present only if a non-zero PID value was specified in message submission)<br />
<strong>DCS=</strong># (optional, will be present only if a non-zero DCS value was specified in message submission)<br />
<strong>UDH=</strong>HexString (optional, will be present only if message contains User Data Header)<br />
<strong>Data=</strong>HexString (optional, will be present only if message is binary)<br />
<strong>Text=</strong>String (optional, will be present only if message is text)<br />
<strong>ReceiptRequested=</strong>Yes (optional, will be present only if message is requesting a delivery receipt &#8230; only available in v2009.01.26 and later)</p>
<p>Any defined SMPPOption parameters will also be included.</p>
<p>(Note: For SMTP message submissions, only Type, From, and To variables will be present.)</p>
<p>Example:</p>
<p><span class="notranslate" style="font-family: 'Courier New', monospace;"><span style="font-size: x-small;">http://server.name/path?Type=SMSSend&amp;From=UserAccount&amp;To=%2B447777777777&amp;SubmitIP=127.0.0.1&amp;Text=This%20is%20a%20test.<br />
</span></span><br />
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 &#8220;+&#8221; and %20 is translated back to a space character).</p>
<p>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).</p>
<p><strong>The following Name=Value responses are supported for the SMSSend Accounting callback:</strong></p>
<p><strong>SMSCRoute</strong>=routename</p>
<p>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 <a href="http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route">http://www.nowsms.com/routing-sms-messages-to-a-specifc-smsc-route</a>.)  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.</p>
<p>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.</p>
<p>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.</p>
<p><strong>UserData</strong>=text</p>
<p>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.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>SMSOut Accounting Callback</h2>
<p>This callback is executed when a submitted SMS message is dispatched to an upstream SMSC connection, or queued for a local SMPP user account.</p>
<p>The response to this HTTP callback is currently ignored. A standard HTTP 200 OK response is encouraged for future compatibility.</p>
<p>The following variables can be set for the accounting callback:</p>
<p><strong>Type</strong>=SMSOut<br />
<strong>From</strong>=String (local user account name, or upstream SMSC connection name)<br />
<strong>To</strong>=Message Recipient Phone Number<br />
<strong>MessageID</strong>=Message ID assigned to the message by NowSMS<br />
<strong>SubmitIP</strong>=a.b.c.d (not present for messages received from upstream SMSC connection)<br />
<strong>Sender</strong>=xxxxxx<br />
<strong>Binary</strong>=1 (optional, will be present if the message is binary)<br />
<strong>PID</strong>=# (optional, will be present only if a non-zero PID value was specified in message submission)<br />
<strong>DCS</strong>=# (optional, will be present only if a non-zero DCS value was specified in message submission)<br />
<strong>UDH</strong>=HexString (optional, will be present only if message contains User Data Header)<br />
<strong>Data</strong>=HexString (optional, will be present only if message is binary)<br />
<strong>Text</strong>=String (optional, will be present only if message is text)<br />
<strong>MessageID</strong>=String (NowSMS assigned message ID)<br />
<strong>SMSCMsgId</strong>=String (upstream SMSC assigned message ID, if available)<br />
<strong>SMSCName</strong>=String (the SMSC connection to which this message was routed in the format that it appears in the NowSMS SMSC list, e.g., &#8220;SMPP &#8211; servername:port&#8221;)<br />
<strong>Status</strong>=String (Starts with &#8220;OK&#8221;, &#8220;Retry Pending&#8221; or &#8220;ERROR&#8221; to indicate message disposition)</p>
<p>Any defined SMPPOption parameters will also be included.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>SMSIn Accounting Callback</h2>
<p>This callback is executed when an SMS message is received from an upstream SMSC connection.</p>
<p>The response to this HTTP callback is currently ignored. A standard HTTP 200 OK response is encouraged for future compatibility.</p>
<p>The following variables can be set for the accounting callback:</p>
<p><strong>Type</strong>=SMSIN<br />
<strong>To</strong>=Message Recipient Phone Number<br />
<strong>Sender</strong>=xxxxxx<br />
<strong>Binary</strong>=1 (optional, will be present if the message is binary)<br />
<strong>PID</strong>=# (optional, will be present only if a non-zero PID value was specified in message submission)<br />
<strong>DCS</strong>=# (optional, will be present only if a non-zero DCS value was specified in message submission)<br />
<strong>UDH</strong>=HexString (optional, will be present only if message contains User Data Header)<br />
<strong>Data</strong>=HexString (optional, will be present only if message is binary)<br />
<strong>Text</strong>=String (optional, will be present only if message is text)<br />
<strong>SMSCReceiptMsgID</strong>=String (optional, NowSMS assigned message ID will be present if this is a delivery receipt)<br />
<strong>SMSCReceiptMsgIDOrig</strong>=String (optional, upstream SMSC assigned message ID will be present if this is a delivery receipt)<br />
<strong>SMSCName</strong>=String (the SMSC connection from which this message was received in the format that it appears in the NowSMS SMSC list, e.g., &#8220;SMPP &#8211; servername:port&#8221;)</p>
<p>Any defined SMPPOption parameters will also be included.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/understanding-sms-accounting-callbacks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Provisioning SMS and MMSC User Accounts via HTTP</title>
		<link>http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http-2</link>
		<comments>http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http-2#comments</comments>
		<pubDate>Sun, 19 Feb 2012 00:11:56 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13424</guid>
		<description><![CDATA[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 &#8220;SMS Users&#8221; with the &#8220;Enable Admin Access&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>NowSMS has long supported external account provisioning via HTTP as described in the article at <a href="http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http">http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http</a>.</p>
<p>The purpose of this article is to document additional parameters supported in more recent versions of NowSMS.</p>
<p>This provisioning interface is enabled whenever one or more user accounts is defined in NowSMS under &#8220;SMS Users&#8221; with the &#8220;Enable Admin Access&#8221; checked.</p>
<p>This interface is accessed via the NowSMS web interface port, with a URI of &#8220;/provision&#8221; followed by a series of &#8220;HTTP GET&#8221; parameters. (The admin username and password must be supplied in the HTTP GET request within an &#8220;Authorization:&#8221; header using HTTP Basic Authentication, or they can be be appended to the URL as parameters such as /provision?user=username&amp;password=password.  Using URL parameters for provisioning authentication is supported only in NowSMS 2012.01.10 and later.)</p>
<p>Two different provisioning request formats are defined, one for defining &#8221;SMS Users&#8221; accounts, and a second for defining &#8220;MMSC Users&#8221; accounts.</p>
<p>If a parameter of &#8221;<strong>Type=SMS</strong>&#8220; is specified, the following parameters are supported:</p>
<p><strong>AdminAction</strong>=Add, Modify, Delete, or CreditCheck</p>
<p><strong>Name</strong>=Account Name</p>
<p><strong>Password</strong>=password</p>
<p><strong>Fullname</strong>=Full Name</p>
<p><strong>EnableWebLogin</strong>=Yes/No</p>
<p><strong>EnableSmppLogin</strong>=Yes/No</p>
<p><strong>EnableSmtpLogin</strong>=Yes/No</p>
<p><strong>ForcedSenderAddress</strong>=Sender Address</p>
<p><strong>RestrictIPAddress</strong>=list of IP addresses</p>
<p><strong>EnableCreditBalance</strong>=Yes/No</p>
<p><strong>CreditsToAdd</strong>=####</p>
<p><strong>MessageLimitDefault</strong>=Yes/No</p>
<p><strong>MessageLimitPerDay</strong>=####</p>
<p><strong>MessageLimitPerMonth</strong>=####</p>
<p><strong>RecipientAddresses</strong>=list of recipient phone numbers that should be routed to this account</p>
<p><strong>WebOptions</strong>=All/Advanced/TextOnly/Text/SMSMMS/SMSWAPMM/SMSMMSWAPMM</p>
<p><strong>AdminEnabled</strong>=Yes/No (version 2011.10.18 and later)</p>
<p><strong>ReceiveEnabled</strong>=Yes/No (version 2011.10.18 and later)</p>
<p>As an example, to add credits to an existing account, issue the following URL request:</p>
<p>http://server:port/provision?Type=SMS&#038;AdminAction=Modify&#038;Name=accountname&#038;CreditsToAdd=100</p>
<p>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 &#8220;text/plain&#8221;. The response will start with &#8220;OK&#8221; if the request was successful, or &#8220;ERROR&#8221; if the request failed. If a&#8221;CreditsToAdd&#8221; parameter was specified, or &#8221;AdminAction=CreditCheck&#8221;, the HTTP response will include the text &#8221;Credits=####&#8221;, where &#8220;####&#8221; is the current balance for the account.</p>
<p>If a parameter of &#8221;<strong>Type=MMS</strong>&#8220; is specified, the following parameters are supported:</p>
<p><strong>AdminAction</strong>=Add, Modify, Delete, or CreditCheck</p>
<p><strong>PhoneNumber</strong>=phonenumber</p>
<p><strong>Name</strong>=Alias</p>
<p><strong>Password</strong>=password</p>
<p><strong>Fullname</strong>=Full Name</p>
<p><strong>MessageLimitDefault</strong>=Yes/No</p>
<p><strong>MessageLimitPerDay</strong>=####</p>
<p><strong>MessageLimitPerMonth</strong>=####</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPP Server Adds @ Characters to Text Message</title>
		<link>http://www.nowsms.com/smpp-server-adds-characters-to-text-message</link>
		<comments>http://www.nowsms.com/smpp-server-adds-characters-to-text-message#comments</comments>
		<pubDate>Thu, 16 Feb 2012 00:32:26 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Software Updates]]></category>
		<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP Server]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13412</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.)</p>
<p>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.</p>
<p>(Effected messages had character lengths between (x * 153) + 1 and (x * 153) + 3 inclusive, where x is larger than 2.)</p>
<p>An updated release of NowSMS, which corrects this problem, is available at <a href="http://www.nowsms.com/download/nowsms20120209.zip">http://www.nowsms.com/download/nowsms20120209.zip</a>.</p>
<p>An updated release of NowSMS Lite which includes this fix is available at <a href="http://www.nowsms.com/download/lite20120209.zip">http://www.nowsms.com/download/lite20120209.zip</a>.</p>
<p>&nbsp;</p>
<p><strong>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.</strong></p>
<p>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).</p>
<p>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 &#8220;SMSC Character Setting&#8221; 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.</p>
<p>If you are experiencing problems sending particular characters via SMS, please post a query in our discussion forums at <a href="http://www.nowsms.com/messages">http://www.nowsms.com/messages</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-server-adds-characters-to-text-message/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia N9 Unable to Receive MMS</title>
		<link>http://www.nowsms.com/nokia-n9-unable-to-receive-mms</link>
		<comments>http://www.nowsms.com/nokia-n9-unable-to-receive-mms#comments</comments>
		<pubDate>Mon, 13 Feb 2012 00:06:47 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Software Updates]]></category>
		<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[operator MMSC]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13406</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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 <strong>?id=%2b</strong>, the MMS client converts this to <strong>?id=%252b</strong>.  This errant conversion causes the MMSC to be unable to determine the message that the client is asking to retrieve.</p>
<p>As a work-around for this issue, the following configuration setting can be applied in the <strong>[MMSC]</strong> section of the <strong>MMSC.INI</strong> file:</p>
<p><strong>CompactMMSURL=Yes</strong></p>
<p>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.</p>
<p>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.</p>
<p>An updated release of the NowSMS MMSC is also available at <a href="http://www.nowsms.com/download/nowsms20120209.zip">http://www.nowsms.com/download/nowsms20120209.zip</a>, which implements a work-around for this problem without requiring any special configuration settings.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nokia-n9-unable-to-receive-mms/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send MMS from C# .NET</title>
		<link>http://www.nowsms.com/send-mms-from-c-net</link>
		<comments>http://www.nowsms.com/send-mms-from-c-net#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:33:26 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Sending MMS]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13367</guid>
		<description><![CDATA[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, [...]]]></description>
			<content:encoded><![CDATA[<p>A .NET C# example for sending MMS messages via NowSMS has been posted at the following link:  <a href="http://www.nowsms.com/download/sendmms.c%23.txt">http://www.nowsms.com/download/sendmms.c#.txt</a></p>
<p>For a VB.NET version of this example, please see the related article <a href="http://www.nowsms.com/send-mms-from-vb-net">Send MMS from VB.NET</a>.</p>
<p>MMS examples for other environments (PHP, Java, command line) can be found at <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">http://www.nowsms.com/sending-mms-messages-with-nowsms</a>.</p>
<p>As discussed in <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">Sending MMS Messages with NowSMS</a>, 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 &#8220;multipart/form-data&#8221;.  This technique is often referred to as &#8220;HTTP File Upload&#8221; and is associated with web pages that have a &#8220;Browse&#8221; button that allows files to be uploaded.</p>
<p>There&#8217;s a great C#.NET HTTP File Upload library at: <a href="http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx" target="_blank">http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx</a></p>
<p>A direct link to download the library is here (only the UploadHelper component is needed): <a href="http://aspnetupload.com/AspNetUploadSamples.zip" target="_blank">http://aspnetupload.com/AspNetUploadSamples.zip</a></p>
<p>In the event that this link does not work in the future, we have archived a copy of the library at the following link:</p>
<p>&nbsp;<br />
<center></p>
<table border="1">
<tbody>
<tr>
<td><img src="http://cdn3.nowsms.com/discus/icons/mime_zip.gif" alt="application/x-zip-compressed" align="left" />AspNetUploadSamples.zip<br />
<a href="http://www.nowsms.com/discus/messages/485/AspNetUploadSamples-70812.zip" target="_blank"><strong>AspNetUploadSamples.zip</strong></a>(388.7 k)</td>
</tr>
</tbody>
</table>
<p></center></p>
<p>&nbsp;</p>
<p>The following code example uses code from that library to send an MMS message:</p>
<p>(Note: This example can be downloaded at <a href="http://www.nowsms.com/download/sendmms.c%23.txt">http://www.nowsms.com/download/sendmms.c#.txt</a>.)</p>
<pre style="line-height: 12px;">// 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 &amp; 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); 
}</pre>
<p>&nbsp;</p>
<p>Additional MMS options can be included using the <b>form["variablename"] = &#8220;value&#8221;</b> syntax shown in the above example. The other options/variables are described in more detail in <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">http://www.nowsms.com/sending-mms-messages-with-nowsms</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/send-mms-from-c-net/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send MMS from VB.NET</title>
		<link>http://www.nowsms.com/send-mms-from-vb-net</link>
		<comments>http://www.nowsms.com/send-mms-from-vb-net#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:31:32 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Sending MMS]]></category>
		<category><![CDATA[VB]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13376</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>A VB.NET example for sending MMS messages via NowSMS has been posted at the following link:  <a href="http://www.nowsms.com/download/sendmms.vb.txt">http://www.nowsms.com/download/sendmms.vb.txt</a></p>
<p>For a C# .NET version of this example, please see the related article <a href="http://www.nowsms.com/send-mms-from-c-net">Send MMS from C# .NET</a>.</p>
<p>MMS examples for other environments (PHP, Java, command line) can be found at <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">http://www.nowsms.com/sending-mms-messages-with-nowsms</a>.</p>
<p>As discussed in <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">Sending MMS Messages with NowSMS</a>, 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 &#8220;multipart/form-data&#8221;.  This technique is often referred to as &#8220;HTTP File Upload&#8221; and is associated with web pages that have a &#8220;Browse&#8221; button that allows files to be uploaded.</p>
<p>There&#8217;s a great C#.NET HTTP File Upload library at: <a href="http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx" target="_blank">http://aspnetupload.com/Upload-File-POST-HttpWebRequest-WebClient-RFC-1867.aspx</a></p>
<p>A direct link to download the library is here (only the UploadHelper component is needed): <a href="http://aspnetupload.com/AspNetUploadSamples.zip" target="_blank">http://aspnetupload.com/AspNetUploadSamples.zip</a></p>
<p>In the event that this link does not work in the future, we have archived a copy of the library at the following link:</p>
<p>&nbsp;<br />
<center></p>
<table border="1">
<tbody>
<tr>
<td><img src="http://cdn3.nowsms.com/discus/icons/mime_zip.gif" alt="application/x-zip-compressed" align="left" />AspNetUploadSamples.zip<br />
<a href="http://www.nowsms.com/discus/messages/485/AspNetUploadSamples-70812.zip" target="_blank"><strong>AspNetUploadSamples.zip</strong></a>(388.7 k)</td>
</tr>
</tbody>
</table>
<p></center></p>
<p>&nbsp;</p>
<p>The following VB.NET code example uses code from that library to send an MMS message:</p>
<p>(Note: This example can be downloaded at <a href="http://www.nowsms.com/download/sendmms.vb.txt">http://www.nowsms.com/download/sendmms.vb.txt</a>.)</p>
<pre style="line-height: 12px;">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 &#038; 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</pre>
<p>&nbsp;</p>
<p>Additional MMS options can be included using the <b>form(&#8220;variablename&#8221;) = &#8220;value&#8221;</b> syntax shown in the above example. The other options/variables are described in more detail in <a href="http://www.nowsms.com/sending-mms-messages-with-nowsms">http://www.nowsms.com/sending-mms-messages-with-nowsms</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/send-mms-from-vb-net/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowWAP: Enabling Cookies for HTTP Header Enrichment</title>
		<link>http://www.nowsms.com/nowwap-enabling-cookies-for-http-header-enrichment</link>
		<comments>http://www.nowsms.com/nowwap-enabling-cookies-for-http-header-enrichment#comments</comments>
		<pubDate>Wed, 19 Oct 2011 23:00:07 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[HTTP Header Enrichment]]></category>
		<category><![CDATA[NowWAP]]></category>
		<category><![CDATA[WAP Gateway]]></category>
		<category><![CDATA[WAP Proxy]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13334</guid>
		<description><![CDATA[NowWAP HTTP Header Enrichment (HHE) is described in more detail in the following article:  http://www.nowsms.com/nowwap-and-http-header-enrichment In addition to the HHE issues discussed in that article, we frequently receive questions about using HTTP Cookie headers for identifying the MSISDN. These questions are usually asked for the following reasons: Customers migrating from or augmenting an Ericsson MIEP [...]]]></description>
			<content:encoded><![CDATA[<p>NowWAP HTTP Header Enrichment (HHE) is described in more detail in the following article:  <a href="http://www.nowsms.com/nowwap-and-http-header-enrichment">http://www.nowsms.com/nowwap-and-http-header-enrichment</a></p>
<p>In addition to the HHE issues discussed in that article, we frequently receive questions about using HTTP Cookie headers for identifying the MSISDN.</p>
<p>These questions are usually asked for the following reasons:</p>
<ul>
<li>Customers migrating from or augmenting an Ericsson MIEP may have applications that expect to receive the MSISDN via HTTP Cookie headers.</li>
<li>The Opera Mini browser has a tendency to remove the X-MSISDN header that NowWAP would usually generate.</li>
</ul>
<p>For these reasons, recent versions of NowWAP (2011 and later), support a built-in option that can be used to automatically add an HTTP Cookie header for the MSISDN.</p>
<p>To enable this option, edit WAPGW.INI, and under the [WAPGW] header, add MsisdnCookieHeaders=Yes</p>
<p>When this option is set, NowWAP will generate an HTTP Cookie header for the MSISDN, in addition to the standard X-MSISDN header, when communicating with any content domains that are enabled for Basic HHE.</p>
<p>For compatibility purposes, NowWAP generates an HTTP Cookie Header using a format similar to those generated by the Ericsson MIEP:</p>
<p>Cookie: User-Identity-Forward-MSISDN=1234567890</p>
<p>If IMSI information is available via RADIUS, the IMSI will also be included in a User-Identity-Forward-IMSI cookie.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowwap-enabling-cookies-for-http-header-enrichment/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowSMS Status Query with PHP</title>
		<link>http://www.nowsms.com/nowsms-status-query-with-php</link>
		<comments>http://www.nowsms.com/nowsms-status-query-with-php#comments</comments>
		<pubDate>Fri, 07 Oct 2011 07:14:10 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[connection status]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13297</guid>
		<description><![CDATA[Previous articles have described the XML-based status query interface that can be used to programmatically retrieve information about the current status of NowSMS. The XML-based status query interface that reports information similar to what is reported on the “Status” page of the NowSMS configuration dialog. The query results include information about SMSC connection status, the [...]]]></description>
			<content:encoded><![CDATA[<p>Previous articles have described the XML-based status query interface that can be used to programmatically retrieve information about the current status of NowSMS. The XML-based status query interface that reports information similar to what is reported on the “Status” page of the NowSMS configuration dialog. The query results include information about SMSC connection status, the number of messages processed via the different connections, and the number of messages pending in the queues, among other information.</p>
<p>This interface is described in more detail in the following article:</p>
<p><a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics</a></p>
<p>An XML Schema Definition can be found in the following article:</p>
<p><a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2</a></p>
<p>As we frequently receive questions asking how this status information can be accessed via a PHP script, this article will provide some simple examples.</p>
<p>The PHP SimpleXML functions are the easiest way to access and process this information.</p>
<p>In a discussion board posting (<a href="http://www.nowsms.com/discus/messages/1/60149.html">http://www.nowsms.com/discus/messages/1/60149.html</a>), we previously provided a simple example of a PHP script that queries the number of messages waiting in the NowSMS outbound SMS message queue.</p>
<p>The first step to access the data is to load the status URL into a SimpleXML object:</p>
<p><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">&lt;?php</span></p>
<pre>$xmldata = file_get_contents
             ("http://127.0.0.1:8800/admin/xmlstatus?user=adminuser&amp;password=adminpass");</pre>
<pre>$xml = simplexml_load_string($xmldata);</pre>
<pre>?&gt;</pre>
<p>Substitute in your appropriate IP address and port, and the appropriate “adminuser” and “adminpass” values for your NowSMS installation.</p>
<p>To report the number of messages in the outbound SMS message queue, simply access the following variable:</p>
<p><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">$xml-&gt;SMSOUTQ</span></p>
<p>To report the number of messages sent out today, or in the last 7 or last 30 days, use the following variables:</p>
<p><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">$xml-&gt;SMSSent-&gt;MessagesToday<br />
$xml-&gt;SMSSent-&gt;MessagesLast7Days<br />
</span><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">$xml-&gt;SMSSent-&gt;MessagesLast30Days</span></p>
<p>To report the number of active SMPP client connections, use the following variable:</p>
<p><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">$xml-&gt;SMPPClientList-&gt;ActiveConnectionCount</span></p>
<p>Refer to the XML examples and schema referenced in the earlier links to see other status information that is available via this XML-based interface.</p>
<p>As an additional example, here is code that queries SMSC connection status and reports any connections that are experiencing connectivity problems:</p>
<p><span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">&lt;?php</span></p>
<pre>$xmldata = file_get_contents
            ("https://127.0.0.1:8801/admin/xmlstatus?user=adminuser&amp;password=adminpass");</pre>
<pre>$xml = simplexml_load_string($xmldata);</pre>
<pre>$allConnectionsOK = true;</pre>
<pre>foreach ($xml-&gt;SMSCStatus as $smscStatus) {</pre>
<pre>   if (strcasecmp ($smscStatus-&gt;Status, "OK")) {</pre>
<pre>      $allConnectionsOK = false;</pre>
<pre>      echo "Connection Error: " . $smscStatus-&gt;Name . " -- " . $smscStatus-&gt;StatusDetail . "\n";</pre>
<pre>   }</pre>
<pre>}</pre>
<pre>if ($allConnectionsOK) {</pre>
<pre>   echo "OK\n";</pre>
<pre>}</pre>
<pre>?&gt;</pre>
<p>For more information on using the SimpleXML functions, please refer to the PHP documentation at:   <a href="http://us.php.net/manual/en/book.simplexml.php">http://us.php.net/manual/en/book.simplexml.php</a></p>
<p>For more information on the NowSMS Status Query XML interface, please refer to the following articles:</p>
<ul>
<li><a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics</a></li>
<li><a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowsms-status-query-with-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repairing a Corrupt MMSC User Database</title>
		<link>http://www.nowsms.com/repairing-a-corrupt-mmsc-user-database</link>
		<comments>http://www.nowsms.com/repairing-a-corrupt-mmsc-user-database#comments</comments>
		<pubDate>Thu, 06 Oct 2011 07:17:59 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[operator MMSC]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13326</guid>
		<description><![CDATA[We recently had a customer whose MMSC stopped automatically provisioning new users. The MMSC user database had become corrupt, preventing new users from being able to be automatically provisioned.  While it is not known why this corruption occurred, the most common potential cause is an abnormal system shutdown, such as power failure. Future versions of [...]]]></description>
			<content:encoded><![CDATA[<p>We recently had a customer whose MMSC stopped <a href="http://www.nowsms.com/nowsms-operator-mmsc-considerations">automatically provisioning new users</a>.</p>
<p>The MMSC user database had become corrupt, preventing new users from being able to be automatically provisioned.  While it is not known why this corruption occurred, the most common potential cause is an abnormal system shutdown, such as power failure.</p>
<p>Future versions of the MMSC will include start-up logic to detect and repair corrupt MMSC user databases automatically.  However, the following instructions for manual repair may be helpful if someone else encounters this problem.</p>
<p>Copy the MMSCUSERS.DB file (normally located in \ProgramData\NowSMS) to another location. Also copy SQLITE3.EXE from the NowSMS program directory.</p>
<p>From a command line prompt, issue the following command:</p>
<pre>sqlite3 mmscusers.db</pre>
<p>This command  should bring you to an sqlite&gt; prompt.</p>
<p>Issue the following command:</p>
<pre>select name from sqlite_master where type='table';</pre>
<p>The system should respond back with:</p>
<pre>Users
sqlite&gt;</pre>
<p>Issue the following command:</p>
<pre>select count (*) from users;</pre>
<p>The system should report how many users are in the database.</p>
<p>Issue the following command:</p>
<pre>pragma integrity_check;</pre>
<p>If the database is corrupt, this command should return an error.  If there is no corruption problem, this command will return OK.</p>
<p>Use the .quit command to exit the sqlite3 utility.</p>
<p>To attempt to recover the database, issue the following command:</p>
<pre>sqlite3 mmscusers.db .dump &gt; mmscusers.txt</pre>
<p>mmscusers.txt will be a text file of SQL commands containing a database dump.</p>
<p>Inspect this text file to confirm that it has close to the number of users expected. If it does not, please contact NowSMS support for further analysis.</p>
<p>To create a new repaired database, issue the following command:</p>
<pre>sqlite3 mmscusersnew.db &lt; mmscusers.txt</pre>
<p>The repaired database will be named mmscusersnew.db. Rename to mmscusers.db and replace the original database in the NowSMS data directory. It is necessary to stop the NowSMS services in order to do this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/repairing-a-corrupt-mmsc-user-database/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>International Prefix Conversion for SMS</title>
		<link>http://www.nowsms.com/international-prefix-conversion-for-sms</link>
		<comments>http://www.nowsms.com/international-prefix-conversion-for-sms#comments</comments>
		<pubDate>Fri, 30 Sep 2011 17:00:54 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>
		<category><![CDATA[SMPP TON]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13284</guid>
		<description><![CDATA[There are many situations where end users submit messages using local number formats, but the upstream SMSC connection requires that the message be submitted using an international format (e.g., include a country code and possibly require TON=1 for SMPP connections). For example, an end user in the UK might want to send an SMS message [...]]]></description>
			<content:encoded><![CDATA[<p>There are many situations where end users submit messages using local number formats, but the upstream SMSC connection requires that the message be submitted using an international format (e.g., include a country code and possibly require TON=1 for SMPP connections).</p>
<p>For example, an end user in the UK might want to send an SMS message to 0777777777 using the local number format, but the upstream SMSC connection requires a country code to be specified, such as +44777777777.</p>
<p>An end user in the US might sometimes prefix a number with 1, and other times not.</p>
<p>Starting with the 2011.07.05 release of NowSMS (see <a href="http://www.nowsms.com/category/updates">http://www.nowsms.com/category/updates</a>), there are configuration settings that can be used to perform these types of phone number prefix conversions on a per SMSC basis.</p>
<blockquote><p>* SMS Gateway:  Add support for prefix number conversion when submitting SMS messages to an SMSC connection in order to deal with situations where a particular provider requires national or international number format.  In the SMSC specific section of SMSGW.INI (e.g., [Modem - modem driver name] or [SMPP - server:port]) the following settings are now supported to apply number prefix conversions for inbound or outbound messages:  OutRecipPrefixConvert, OutSenderPrefixConvert, InRecipPrefixConvert, InSenderPrefixConvert.  These settings apply to sender (source) and recipient (destination) addresses, as denoted in the settings name.  Prefix conversions can be a comma delimited list, such as 00:+,0:+44   In this case, 0044777777777 is converted to +44777777777, and 0777777777 would be converted to +44777777777.  For outbound messages, the conversion occurs before the message is submitted via this SMSC connection.  For inbound messages, it is applied as the message is received from the SMSC connection.</p></blockquote>
<p>In most cases, you would be applying conversions for the recipient phone number.</p>
<p>For example, a conversion that assumes UK local numbers being converted to international format would look like this:</p>
<pre>[SMPP - server:port]
OutRecipPrefixConvert=00:+,0:+44</pre>
<p>With the above setting, 0044777777777 would be converted to +44777777777, and 0777777777 would be converted to +44777777777.</p>
<p>If the connection is an SMPP connection, the &#8220;+&#8221; is not actually included in the recipient address, but instead NowSMS uses this as a signal to indicate that the recipient TON (dest_addr_ton) value should be set to 1 to indicate an international number.</p>
<p>A similar conversion for USA local numbers would look like this:</p>
<pre>[SMPP - server:port]
OutRecipPrefixConvert=011:+,1:+1,2:+12,3:+13,4:+14,5:+15,6:+16,7:+17,8:+18,9:+19</pre>
<p>With the above setting, 01144777777777 <em>(011 being an old style prefix for an international phone number)</em> would be converted to +44777777777.</p>
<p>15555551212 would be converted to +15555551212.</p>
<p>5555551212 would be converted to +15555551212.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/international-prefix-conversion-for-sms/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multiple SMPP Connections to One SMSC</title>
		<link>http://www.nowsms.com/multiple-smpp-connections-to-one-smsc</link>
		<comments>http://www.nowsms.com/multiple-smpp-connections-to-one-smsc#comments</comments>
		<pubDate>Fri, 23 Sep 2011 09:32:57 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=1535</guid>
		<description><![CDATA[Although it is possible for SMPP Asynchronous connections to process hundreds of SMS messages per second, sometimes there are performance gains by having more than one SMPP connection to the same SMSC.  This is especially the case if the SMSC has per connection speed limits, or other performance limiting characteristics. It may also be necessary to specify [...]]]></description>
			<content:encoded><![CDATA[<p>Although it is possible for <a href="http://www.nowsms.com/smpp-async-mode">SMPP Asynchronous connections</a> to process hundreds of SMS messages per second, sometimes there are performance gains by having more than one SMPP connection to the same SMSC.  This is especially the case if the SMSC has per connection speed limits, or other performance limiting characteristics.</p>
<p>It may also be necessary to specify more than one SMPP connection to the same SMSC in order to process messages for more than one short code.  In this latter case, you may need to specify different credentials for each SMPP connection.  In this case, simply add a second (or third, or fourth&#8230;) SMPP connection, specifying the same server address.  When NowSMS adds the connection to the SMSC list, it will automatically append &#8220;#2&#8243; (or #3, or &#8220;#4&#8243;) to the SMSC address in order to maintain separate settings for each connection.</p>
<p>However, if you are connecting to the same SMSC multiple times using the same account credentials, it can be inconvenient to define the same connection multiple times.  For this reason, NowSMS 2011.07.05 and later releases (see <a href="http://www.nowsms.com/category/updates">http://www.nowsms.com/category/updates</a>) provide a configuration interface to define the number of transmitter, receiver and/or transceiver connections to be allocated for a single SMPP connection, without requiring multiple duplicate connections to be defined.</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2010/11/smppmultiplesessions.png"><img class="alignright size-full wp-image-13293" title="smppmultiplesessions" src="http://c7143.r43.cf2.rackcdn.com/2010/11/smppmultiplesessions.png" alt="Configure Multiple SMPP Sessions" width="361" height="552" /></a>To configure these settings, edit the &#8220;Properties&#8221; of an SMPP connection, and in the &#8220;Advanced Settings&#8221; menu, the following settings are available:</p>
<p>If <strong>&#8220;Send and Receive Messages over the same Connection (SMPP Transceiver)&#8221;</strong> is enabled, specify the number of concurrent SMPP Transceiver sessions that NowSMS should establish.  (Transceiver sessions support both sending and receiving messages over the same connection/session.)</p>
<p>If this transceiver mode is not enabled, the number of Transmitter and Reciever Sessions can be configured independently.</p>
<p>These settings can also be manually configured by editing SMSGW.INI.</p>
<p>In the <strong>[SMPP - server:port]</strong> section of <strong>SMSGW.INI</strong>, the following settings are used:</p>
<p><strong> TransmitterCount</strong>=##<br />
<strong>ReceiverCount</strong>=##</p>
<p><strong>TransmitterCount</strong>=## defines the number of transmitter connections to be established. If transceiver mode is configured, <strong>TransmitterCount</strong> specifies the number of transceiver connections to be established. If transceiver mode is not configured, <strong>ReceiverCount</strong> specifies the number of receiver connections to be established.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/multiple-smpp-connections-to-one-smsc/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NowSMS Update Release 2011.07.05</title>
		<link>http://www.nowsms.com/nowsms-update</link>
		<comments>http://www.nowsms.com/nowsms-update#comments</comments>
		<pubDate>Tue, 12 Jul 2011 21:18:57 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Software Updates]]></category>
		<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13271</guid>
		<description><![CDATA[An updated release of the Now SMS &#38; MMS Gateway is currently available at http://www.nowsms.com/download/nowsms20110705.zip.  Use the executable file in this ZIP to update an existing NowSMS installation. This document details the update release history since the previous official release, version 2010.11.04.  Release history for the changes prior to the current official release can be found [...]]]></description>
			<content:encoded><![CDATA[<p>An updated release of the Now SMS &amp; MMS Gateway is currently available at <a href="http://www.nowsms.com/download/nowsms20110705.zip">http://www.nowsms.com/download/nowsms20110705.zip</a>.  Use the executable file in this ZIP to update an existing NowSMS installation.</p>
<p>This document details the update release history since the previous official release, version 2010.11.04.  Release history for the changes prior to the current official release can be found at  <a href="http://www.nowsms.com/category/updates">http://www.nowsms.com/category/updates</a>.</p>
<p><strong>Customers running any earlier 2011 interim release of NowSMS are strongly encouraged to update to this release due to a number of problems that exist in earlier 2011 interim releases.</strong> <em>(If upgrading is not possible, as a  precaution delete the file NLS.INI if it exists in the Program Files\NowSMS directory, which will disable SMS shift table support that was introduced earlier this year.  Note that this recommendation applies only to NowSMS 2011 releases prior to 2011.07.05.  Do not delete this file if running NowSMS 2011.07.05 or later.)</em></p>
<p>Highlights of this update:</p>
<p>1.) Configuration changes no longer require a NowSMS service restart.  The NowSMS service will activate configuration changes without requiring a full service restart.</p>
<p>2.) Updated web interface templates (we know &#8230; the old ones were perfectly functional, but yes, they were a throwback to web 1.0, or possibly web 0.5).</p>
<p>3.) Increased administrative capabilities from the web browser.  In addition to statistics and log files, it is possible to view alerts, recent activity, inbound and outbound messages.  It is also possible to add and update user accounts.</p>
<p>4.) Easier configuration of logical SMSC Route Names (as compared to server addresses in earlier releases).</p>
<p>5.) SMS Shift Table Support (of interest primarily for those working with Turkish and Portuguese languages, as well as for handset developers/testers working to add support for SMS shift tables in languages of the Indian subcontinent).  For more information, see <a href="http://www.nowsms.com/tag/sms-shift-table">http://www.nowsms.com/tag/sms-shift-table</a>.</p>
<p>6.) SMPP connections can define multiple transmitter and/or receiver sessions.</p>
<p>7.) SMPP relay improvements &#8211; Support for absolute format validity_period settings, support for additional values in message_state TLV parameters.  Also accounting callbacks can now have the capability to modify TLV parameters, as well as source and destination addresses.</p>
<p>8.) MM4 &#8211; Addressed an issue with missing originator/From fields for messages from a particular operator.</p>
<p>9.) E-mail alert improvements (can use SMTP authentication and SSL/TLS to send out via an account).</p>
<p>10.) Numerous accounting callback enhancements (more detailed information can be found in the release notes).</p>
<p>11.) Local PHP script support.  NowSMS can now host PHP scripts directly, so that you do not need to configure an external web server for hosting 2-way commands or accounting callbacks.  For more information, see <a href="http://www.nowsms.com/now-sms-native-php-scripts">http://www.nowsms.com/now-sms-native-php-scripts</a>.</p>
<p>12.) SMPP &#8211; Improved handling of throttling errors especially as an effort to keep multiple parts of a segmented message from being separated.</p>
<p>There are numerous other minor updates that are detailed in the release history information below.  The release history information provides additional information on configuration settings that have been added to address unusual configuration requirements.<img title="More..." src="http://cdn2.nowsms.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><span id="more-13271"></span></p>
<p><strong>2011-07-05:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  SMS accounting callbacks can now be used to route messages to an external SMSC account, or to a local user account.  When the &#8220;SMSSend&#8221; accounting callback is issued, it is possible for the callback to return SMSCRoute=routename in the HTTP response to specify an external route via which the message should be routed, or SMSCRoute=localuser:username to route the message to a local user account.</li>
<li><strong>SMPP</strong>:  message_state TLV parameter is now set according to the text of the delivery receipt.  Previously a value of 5 (undeliverable) was used for all undeliverable status conditions.  Most notable, a value of 3 is now correctly used for messages that were marked expired.</li>
<li><strong>Web Interface</strong>:  Update &#8220;Send Text Message&#8221; HTML form to address issue where Chrome and Firefox count a line break as one character, but when posting the message, post two characters instead.  (Counter now counts two characters for a line break, assuming the browser will post two characters.)  IE counts two characters and posts two characters.</li>
<li><strong>SMS Gateway:</strong> Add support for prefix number conversion when submitting SMS messages to an SMSC connection in order to deal with situations where a particular provider requires national or international number format.  In the SMSC specific section of SMSGW.INI (e.g., [Modem - modem driver name] or [SMPP - server:port]) the following settings are now supported to apply number prefix conversions for inbound or outbound messages:  OutRecipPrefixConvert, OutSenderPrefixConvert, InRecipPrefixConvert, InSenderPrefixConvert.  These settings apply to sender (source) and recipient (destination) addresses, as denoted in the settings name.  Prefix conversions can be a comma delimited list, such as 00:+,0:+44   In this case, 0044777777777 is converted to +44777777777, and 0777777777 would be converted to +44777777777.  For outbound messages, the conversion occurs before the message is submitted via this SMSC connection.  For inbound messages, it is applied as the message is received from the SMSC connection.</li>
<li><strong>2-way SMS</strong>:  Add support for @@SMSCROUTEID@@ replaceable parameter to contain the unique route name identifier (e.g., &#8220;Modem &#8211; Driver Name&#8221; or &#8220;SMPP &#8211; host:port&#8221;).  If the same route name is assigned to multiple connections, the route name is used for @@SMSCROUTE@@.  @@SMSCROUTEID@@ allows distinction of which connection the message was received form.</li>
<li><strong>SMS Gateway</strong>:  Add SMSGW.INI [SMSGW] setting, UserOutboundQueueLimitInterval=## to specify the delay interval between user queue size scans when the UserOutboundQueueLimit=## setting is used.</li>
<li><strong>SMS Gateway</strong>:  Fix for exception errors related to improper decoding of some messages that make use of a single shift table.</li>
</ul>
<p><strong>2011-06-20:</strong></p>
<ul>
<li><strong>SMPP</strong>:  Absolute format validity_period setting is now supported from SMPP clients.  HTTP clients can also use the &#8220;&amp;Validity=&#8221; parameter to submit a validity_period setting in SMPP format.  (SMPP format validity period will only be forwarded to upstream SMPP connections.</li>
<li><strong>MMSC</strong>:  MmsMessageSizeLimit=#### (value in KB) setting in MMSC.INI now also applies to MM7 and MM4 submissions.</li>
<li><strong>MMSC</strong>:  Handle situation where the HTTP POST from an MM7 client includes a host name in the POST URL.  Normally the POST URL in the HTTP request only includes a host name in the URL if the submission is being routed via an HTTP Proxy.  MMSC already handles this case for MM1 submissions, but not for MM7 submissions until this release.  (According to HTTP 1.1 specification, servers must accept this format, but client should not generate this format unless posting via an HTTP proxy.)</li>
</ul>
<p><strong>2011-06-15:</strong></p>
<ul>
<li><strong>2-way SMS</strong>:  Additional fix for restarts associated with a bug introduced in 2011.05.23 version for 2-way SMS messages that include SMPPOptions parameters.</li>
</ul>
<p><strong>2011-06-09:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Fix for a resource leak that can be caused by inbound SSL connnections (HTTP or SMPP) that do not complete the SSL handshake.</li>
</ul>
<p><strong>2011-06-08:</strong></p>
<ul>
<li><strong>2-way SMS</strong>:  Fix for restarts associated with a bug introduced in 2011.05.23 version for 2-way SMS messages that include SMPPOptions parameters.</li>
</ul>
<p><strong>2011-06-06:</strong></p>
<ul>
<li><strong>MM4</strong>:  Fix for a problem where messages received from a particular operator had a missing originator/From field.  This was caused by unexpected horizontal tab characters being included in the SMTP &#8220;From:&#8221; header.  According to the SMTP specification, these horizontal tab characters are legal, and NowSMS needs to ignore them.</li>
</ul>
<p><strong>2011-06-03:</strong></p>
<ul>
<li><strong>SMS Gateway</strong> Startup:  Move most database integrity checks to a background thread so as to not delay startup.</li>
<li><strong>2-way SMS</strong> commands with mailto: links:  Support routing e-mail non-delivery messages back to sender if message undeliverable.</li>
</ul>
<p><strong>2011-06-02:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Fix for 2011-05-23 interface reporting errors with the SMPP server if an SSL port number for SMPP is not defined.</li>
<li><strong>SMS Gateway</strong>:  Route names are now supported in the configuration interface to make it easier to work with SMSC connections.  &#8220;SMSOUT&#8221; and &#8220;SMSIN&#8221; accounting callbacks now include &#8220;&amp;SMSCRouteName=&#8221; parameter.</li>
<li><strong>SMS Gateway</strong>:   Fix for problem where server would not take extra time to shutdown if HTTP SSL connections are supported.</li>
</ul>
<p><strong>2011-05-23:</strong></p>
<ul>
<li><strong>SMS Gateway Web interface</strong>:  Update NowSMS web user interface templates.</li>
<li><strong>SMS Gateway</strong>:  Web Administration Access is now associated as an attribute to an &#8220;SMS Users&#8221; account, instead of being a separate login identity.</li>
<li><strong>SMS Gateway</strong>:  E-Mail alerts can now specify to be sent via a mail server that requires with SMTP Authentication &amp; SSL/TLS.</li>
<li><strong>SMPP</strong>:  Configuration program supports defining the number of simultaneous transmitter and/or receiver sessions to be associated with an SMPP SMSC connection.</li>
<li><strong>HTTP SMSC</strong>:  Configuration program supports defining the number of simultaneous HTTP transmitter sessions to be associated with an HTTP SMSC connection.</li>
<li><strong>SMPP</strong>:  Seldom used configuration parameters for specifying the local TCP port that the SMPP client should bind to have been removed from the configuration program interface.  These parameters continue to be supported by manual configuration file entries under the [SMPP - server:port] section header of SMSGW.INI:  SenderPort=#### specifies the local TCP port to be used for the transmitter or transceiver session, and ReceiverPort=#### specifies the local TCP port to be used for the receiver session.</li>
<li><strong>SMPP</strong>:  Fix for [SMPP] / DeliveryReceiptFlag=Yes not working properly.  (Only worked properly if set as [SMPP] / DeliveryReceiptFlag=1)</li>
<li><strong>SMS Gateway</strong>:  Fix for SMS service restarts/exception errors that could be triggered by updating the SMSGW.INI file.   (Problem was introduced in 2011.03.15 update.)</li>
<li><strong>SMS Gateway</strong>: Fix for service restarts that could occur when using the web administrative interface.</li>
<li><strong>SMS Gateway &amp; MMSC</strong>:  Various configuration restarts no longer require a service restart.  (SMSC connections can be added/deleted/modified without requiring a restart.  Configuration changes will take effect within within approximately 60 seconds.)</li>
<li><strong>Accounting callbacks</strong> now have the ability to change sender/recipient values (useful for source address translation when routing messages), and the ability to modify service type, validity and defined SMPP TLV parameters.  This capability is enabled in the &#8220;SMSSend&#8221; and &#8220;SMSIN&#8221; accounting callbacks when SMSAccountingAllowChanges=Yes is defined in the [SMSGW] section of SMSGW.INI. When this setting is present, NowSMS will parse the HTTP response for &#8220;SMSSend&#8221; and &#8220;SMSIN&#8221; accounting callbacks looking for &#8220;To=&#8221;, &#8220;Sender=&#8221;, &#8220;ServiceType=&#8221;, &#8220;Validity=&#8221; and &#8220;SMPPOption_xxxx=&#8221; settings.  If any of these text strings are present, the value that follows will be used to replace the existing value. (In the case of SMPPOption_xxxx=, a blank value will completely remove the parameter.)  It is recommended that the HTTP response terminate the value with a new line to act as an end of value string delimiter.</li>
<li><strong>SMPP</strong>:  TLV parameters defined in GSM Assocation IR.75 are automatically supported by default using the HexString encoding:  SMPPOption_source_subaddress (0&#215;202) and SMPPOption_dest_subaddress (0&#215;203).  For more information, refer to http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing</li>
<li><strong>Retrieving SMS messages via POP3</strong>:  Fix for carriage return/line feed in an SMS message appearing as \r\n when converted to e-mail format.  Also add sender phone number to subject line of message.</li>
<li><strong>SMPP Client</strong>:  Previously NowSMS tracked upstream SMPP message IDs only if the client asked for a delivery report (or non-delivery report).  However, many SMPP servers always return delivery reports, which can cause confusion, because if NowSMS did not track the upstream message ID, it will not know how to route it or resolve the message ID.  NowSMS now always tracks the upstream SMPP message ID, unless TrackSMPPReceiptsAlways=No is set under the [SMSGW] header of SMSGW.INI.</li>
<li><strong>MMSC</strong>:  Include &#8220;MMSStatus=&#8221; in &#8220;MMSDeliveryReport&#8221; callbacks.   Status values are extracted from the MMS specifications.  Possible values include &#8220;Retrieved&#8221; (success), &#8220;Expired&#8221;, &#8220;Rejected&#8221;, &#8220;Deferred&#8221;, Unrecognised&#8221;, &#8220;Indeterminated&#8221;, &#8220;Forwarded&#8221;, &#8220;Unreachable&#8221; and &#8220;Unknown&#8221;.</li>
<li><strong>MMS Proprietary URL Submission</strong>:  Include &#8220;MMSMessageID=&#8221; parameter in accounting callback for MMS message submissions via this interface.</li>
<li><strong>MMSC</strong>:  Reduce DNS query timeouts that can backlog the processing of MM4 acknowledgments, especially when the &#8220;MM4 Ack Route&#8221; has not been set for a connection.</li>
<li><strong>MMSC</strong>:  Fix for bug receiving MMS messages via MM4 which included filenames that have a &#8220;?&#8221; character in the filename.</li>
<li><strong>E-Mail to SMS</strong>:  When routing e-mail to SMS, a new configuration option supports tracking the e-mail sender address, so that an SMS reply can be routed back to the original e-mail sender.  Note that when this tracking option is enabled, if multiple e-mail senders send to the same SMS phone recipient, NowSMS cannot distinguish which e-mail address should receive the reply, and the reply will be directed to the most recent e-mail sender.  To enable this tracking, add SMSEMailTrackSender=Yes to the [MMSC] section of MMSC.INI.  If it is possible for NowSMS to send/receive SMS using multiple SMS numbers, NowSMS can use the multiple SMS numbers to improve tracking if multiple e-mail addresses send to the same SMS recipient.  To define the SMS sender numbers to be used for e-mail to SMS, add SMSEMailSender= to the [MMSC] section of MMSC.INI.  SMSEMailSender supports a comma delimited list of sender numbers, and also supports ranges of sender numbers such as 800001-800100 to allocate a sequential range of numbers.</li>
<li><strong>SMS Gateway</strong>:  Additional subdirectories created to prevent situations where a large SMS-IN queue makes the system unstable.</li>
<li><strong>SMS Gateway:</strong> NowSMS can now host PHP scripts locally (accounting callbacks, 2-way commands) without requiring an external web server.  Further information and details are avaialble at http://www.nowsms.com/now-sms-native-php-scripts</li>
</ul>
<p><strong>2011-04-19:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Add configuration parameter to allow customisation of the maximum message length for automatic message segmentation to allow for smaller segments that may be necessary in some environments.  These settings can be configured under the [SMSGW] section header of SMSGW.INI, using the following parameters:  MaxSMSSegmentLengthText=160 and MaxSMSSegmentLengthBinary=140</li>
<li><strong>2-Way SMS</strong>:  Previously NowSMS would only retry a 2-way SMS command if the connection to the web server failed or a timeout error occurred.  It would not retry the command if the web server returned an HTTP error (such as 500 Internal Error), and would simply rename the message file to have a .BAD extension.  This version changes the behaviour to perform retries with progressive delays, similar to the processing of outbound SMS messages.  By default, NowSMS uses the same retry parameters as described at http://www.nowsms.com/sms-retry-error-handling-with-ucpemi-and-cimd.  To define retry parameters specific to 2-way SMS processing, place them under a [2Way] section header in SMSGW.INI, instead of under the [SMSGW] section.   If a server hosting a 2-way command is down and is not accepting connections or not returning a valid HTTP response, NowSMS continues to retry the 2-way command indefinitely, but it does introduce a progressive delay for these retries.</li>
<li><strong>MMSC</strong>: Performance optimisation for configuration front end open and displaying statistics, particularly on a multiple server installation, where if the configuration program were open simultaneously on multiple servers, it would become sluggish or unresponsive until other copies were closed.</li>
<li><strong>2-Way MMS</strong>:  Add configuration option to simplify processing received MMS messages so that they can be posted to a PHP script via HTTP.  Previously, it was necessary to create an &#8220;MMSC Routing&#8221; definition to point to a PHP script.  That mechanism is still supported, but it is also possible to now define a 2-way MMS POST URL on the &#8220;2-way&#8221; page of the configuration.  The URL defined on this page will process any received MMS messages that get posted to the MMS-IN directory.  The format of the POST uses the PHP format described at http://www.nowsms.com/doc/2-way-mms-support/receiving-mms-messages-with-a-php-script</li>
</ul>
<p><strong>2011-04-11:</strong></p>
<ul>
<li><strong>Configuration Program</strong>:  Update font selection for configuration program to address issues where some installations were seeing text that was too large to display in the window.</li>
<li><strong>SMS Gateway</strong>:  Fix for problem that could occur if an automated program submitting messages via HTTP uses multiple user accounts over a single HTTP connection.  If some user accounts have &#8220;forced sender address&#8221; configured, and some do not, the &#8220;forced sender address&#8221; from a previously accessed account would be applied to submissions from an account with no &#8220;forced sender address&#8221; setting.  Note that this could only occur if a program was submitting over a single HTTP connection using multiple user accounts for different message submissions.</li>
</ul>
<p><strong>2011-03-21:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Fix for web interface not working properly with Firefox.  (Problem introduced with late 2010 update to enable keep alive sockets.)</li>
</ul>
<p><strong>2011-03-18:</strong></p>
<ul>
<li><strong>MMSC</strong>: Fix for problem in a multiple server installation (SHAREDVOLUME.INI) where only one front-end would actively listen for connections for MMS messages converted to SMS.  (Fix was attempted in 2011-03-15 version, but did not completely fix the problem.)</li>
</ul>
<p><strong>2011-03-15:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Add configuration setting to limit individual user accounts from flooding the outbound message queue.  This setting enforces a maximum number of queued messages that any individual user account can have pending in the outbound message queue.  If a user attempts to submit additional messages when over the limit, a throttling error will be returned.  To enable this throttling, the setting UserOutboundQueueLimit=##### must be added to the [SMSGW] section of SMSGW.INI.  The ##### value sets a default maximum outbound message queue size to be applied to all user accounts.  (A special value of 0 means no limit, but enables non-default settings to be applied to individual user accounts.)  To override the default setting for individual user accounts, create an [UserOutboundQueueLimit] section, and add username=##### to this section to enable a limit for a specific user account.  (A value of 0 will disable limits for that user account.)  Note that queue size monitoring experiences a 30 to 60 second delay, so it is possible that users may slightly exceed configured limits.  Also note that for SMPP accounts, care is taken to ensure that a throttling error does not occur in the middle of a multipart message transmission.</li>
<li><strong>SMS Gateway</strong>:  Improved handling of &#8220;User Queue Size Threshold&#8221; to prevent problems where SMPP user accounts could be allocated multiple queue directories, giving extra priority to that account.</li>
<li><strong>SMS Gateway</strong>:  The SMSGW.INI SMSCSendLimit=x/y setting, which can limit the speed at which messages are sent via a specific SMSC connection, was not functioning accurately at higher speeds.  The setting has been reworked to support throttling at higher speeds.</li>
<li><strong>SMS Gateway</strong>:  Fix for changes to the [Inbound SMS Routing] table (used for routing received messages to local user accounts based upon recipient address matching) not automatically being reloaded by the server without a restart.</li>
<li><strong>2-Way SMS Command Processor</strong>:  Fix for a problem where a message with invalid UDH could be posted repeatedly to a 2-way command.  The problem could occur if the user data header indicated a multipart message where the current part number was larger than the number of indicated message parts.</li>
</ul>
<p><strong>2011-02-16:</strong></p>
<ul>
<li><strong>SMS Gateway</strong>:  Add configuration option to duplicate SMPP receipts being routed to a local SMPP user account, so that they are also routed to 2-way command processing.  This setting would be used when an installation needs to process all delivery receipts via a 2-way command.  To enable this option, edit SMSGW.INI, and under the [SMSGW] header, add DuplicateUserReceiptsFor2Way=Yes.</li>
</ul>
<p><strong>2011-01-14:</strong></p>
<ul>
<li><strong>SMPP Server</strong>:  Fix for a change first introduced in 2010-05-20 version which could cause extra null messages to be delivered to connected SMPP clients.  This problem could only potentially occur if a client had multiple receive (or transceive) connections open to the NowSMS SMPP server.</li>
<li><strong>MMSC</strong>:  Change MM7 transaction ID format to not include @ character, due to suspcion that this was causing a problem for a particular provider.</li>
</ul>
<p><strong>2010-12-21:</strong></p>
<ul>
<li><strong>MM7</strong>:  When AllowAlphaRecip=Yes is enabled, use &lt;Number&gt; instead of &lt;ShortCode&gt; for the recipient address type, even if it is not a number.</li>
<li><strong>Configuration program</strong> opens LOG files using the default program for the .LOG extension instead of always using Notepad.</li>
</ul>
<p><strong>2010-12-14:</strong></p>
<ul>
<li><strong>MMS via GPRS Modem</strong>:  Fix for problem introduced in 2010.11.04 version where MMS messages would not be retrieved from some operator MMSCs, particularly T-Mobile USA.</li>
</ul>
<p><strong>2010-12-07:</strong></p>
<ul>
<li><strong>Web Interface</strong>:  Fix for problem sending pre-compiled MMS messages via the &#8220;Send MMS Message&#8221; web interface that could cause these messages to become corrupted.</li>
<li><strong>SMS Gateway/SMPP Client</strong>:  When a throttling error occurs, additional logic requeues the message that triggered the error so that several retries will be attempted without requiring a pass through the entire message queue before the message is retried.  This is necessary for proper handling of multipart segmented messages, so that if one part of the message encounters a throttling error, it can still be transmitted within the same window as other parts of the message when the outbound message queue is very full.</li>
<li><strong>MM7</strong>:  Don&#8217;t add extra CRLF before closing MIME boundary as this might be confusing some Java libraries.</li>
</ul>
<p><strong>2010-11-26:</strong></p>
<ul>
<li><strong>MMSC</strong>:  Fix for problem where the message ID in a delivery receipt was not formatted correctly (&#8220;/&#8221; characters changed to &#8220;.&#8221;) for delivery receipts that arrived via an MM4 connection.  This prevented sending clients from being able to correctly resolve delivery receipts.</li>
<li><strong>SMS Gateway</strong>:  Fix for web admin interface only sending the first 16KB when attempting to remotely download log files.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowsms-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS Distribution Lists with PHP</title>
		<link>http://www.nowsms.com/sms-distribution-lists-with-php</link>
		<comments>http://www.nowsms.com/sms-distribution-lists-with-php#comments</comments>
		<pubDate>Mon, 16 May 2011 21:16:18 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[distribution lists]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13208</guid>
		<description><![CDATA[An earlier post described the HTTP URL formats for working with NowSMS distribution lists. This post provides some example PHP functions that can be used to simplify this process.  Now that NowSMS can support PHP scripts natively without a separate web server, it is even easier to prototype SMS applications with NowSMS. In this example, [...]]]></description>
			<content:encoded><![CDATA[<p>An earlier post described the <a href="http://www.nowsms.com/editing-distribution-lists-and-address-books-in-nowsms">HTTP URL formats for working with NowSMS distribution lists</a>.</p>
<p>This post provides some example PHP functions that can be used to simplify this process.  Now that <a href="http://www.nowsms.com/now-sms-native-php-scripts">NowSMS can support PHP scripts natively without a separate web server</a>, it is even easier to prototype SMS applications with NowSMS.</p>
<p>In this example, we&#8217;ll use these example PHP functions to allow users to send an SMS message to the NowSMS server to add or remove themselves from a distribution list, and allow any member of a distribution list to send a message that is broadcast to all distribution list members.</p>
<p>This is intended as an example only, and a starting point for adding further logic.</p>
<p><a href="http://www.nowsms.com/examples/nowsmsdlist-php.txt">nowsmsdlist.php</a> is a PHP include file that contains functions for working with NowSMS distribution lists.  This file can be downloaded at the following link:  <a href="http://www.nowsms.com/examples/nowsmsdlist-php.txt">http://www.nowsms.com/examples/nowsmsdlist-php.txt</a>.</p>
<p>The following function are defined in nowsmsdlist.php:</p>
<div>
<pre class="notranslate" style="font-size: 9px; line-height: 9px; margin-bottom: 0;">&lt;?php
// NowSMSDListExists - Returns true if distribution list exists, otherwise false.
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistName - Distribution list name

function NowSMSDListExists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistName) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/DLists?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "DListAction=List&amp;DListName=" . urlencode($dlistName);
   $response = file_get_contents($urlString);
   if (!strncasecmp ($response, "OK", 2)) return true;
   else return false;

}

// NowSMSDListCheckMember - Returns true if member of distribution list, otherwise false.
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistName - Distribution list name
//  $dlistMember - Distribution list member phone number

function NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistName, $dlistMember) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/DLists?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "DListAction=List&amp;DListName=" . urlencode($dlistName);
   $response = file_get_contents($urlString);

   $memberArray = explode("\r\n",$response); 

   for ($i = 1; $i &lt; count($memberArray); $i++) {
      $idxDash = strpos ($memberArray[$i], " -");
      if ($idxDash !== false) {
         $memberArray[$i] = substr ($memberArray[$i], 0, $idxDash);
      }
      if (!strcasecmp ($memberArray[$i], $dlistMember)) return true;
   }

   return false;

}

// NowSMSDListAddMember - Add member to distribution list
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistName - Distribution list name
//  $dlistMember - Distribution list member phone number

function NowSMSDListAddMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistName, $dlistMember) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/DLists?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "DListMemberAction=Add&amp;DListName=" . urlencode($dlistName) . "&amp;DListMember=" . urlencode($dlistMember);
   $response = file_get_contents($urlString);

}

// NowSMSDListDeleteMember - Delete member from distribution list
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistName - Distribution list name
//  $dlistMember - Distribution list member phone number

function NowSMSDListDeleteMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistName, $dlistMember) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/DLists?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "DListMemberAction=Delete&amp;DListName=" . urlencode($dlistName) . "&amp;DListMember=" . urlencode($dlistMember);
   $response = file_get_contents($urlString);

}

// NowSMSDListDeleteMemberAllLists - Scan all distribution lists and remove member
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistMember - Distribution list member phone number

function NowSMSDListDeleteMemberAllLists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistMember) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/DLists?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "DListAction=List";
   $response = file_get_contents($urlString);

   $dlistArray = explode("\r\n",$response); 

   // Loop through all distribution lists and remove member
   for ($i = 0; $i &lt; count($dlistArray); $i++) {
      if ($dlistArray[$i] != "") {
         if (NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistArray[$i], $dlistMember)) {
            NowSMSDListDeleteMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistArray[$i], $dlistMember);
         }
      }
   }

}

// NowSMSDListSendSMS - Send an SMS text message to a distribution list
// Parameters:
//  $nowsmsIP - IP Address or host name of NowSMS server (127.0.0.1 for local host)
//  $nowsmsPort - Web interface port number of NowSMS server (8800 for default configuration)
//  $nowsmsUser &amp; $nowsmsPassword - user name and password for account defined under "SMS Users"
//  $dlistName - Distribution list name

function NowSMSDListSendSMS ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $dlistName, $smsText) {

   $urlString = "http://" . $nowsmsIP . ":" . $nowsmsPort . "/?";
   if (!is_null($nowsmsUser) &amp;&amp; ($nowsmsUser != "")) {
      $urlString = $urlString . "User=" . urlencode($nowsmsUser) . "&amp;Password=" . urlencode($nowsmsPassword) . "&amp;";
   }
   $urlString = $urlString . "PhoneNumber=" . urlencode($dlistName) . "&amp;Text=" . urlencode($smsText);
   $response = file_get_contents($urlString);
   if (strpos ($response, "MessageID=") === false) return false;
   else return true;

}
?&gt;</pre>
</div>
<div></div>
<div><a href="http://www.nowsms.com/examples/dlist-example-php.txt">dlist-example.php</a> is an example implementation of a 2-way command that uses these functions.  This example is intended to show how these PHP functions can be used.  This example is available at the following link:  <a href="http://www.nowsms.com/examples/dlist-example-php.txt">http://www.nowsms.com/examples/dlist-example-php.txt</a></div>
<div>
<p>This example supports receiving the following commands via SMS:</p>
<p>&#8220;JOIN dlistname&#8221; or &#8220;START dlistname&#8221; to join a distribution list</p>
<p>&#8220;STOP dlistname&#8221; or &#8220;LEAVE dlistname&#8221; to be removed from a distribution list.</p>
<p>&#8220;STOP&#8221; by itself will remove the user from all distribution lists.</p>
<p>&#8220;SEND dlistname&#8221; followed by some text  allows any member of the distribution list to broadcast a message to the entire list.</p>
</div>
<div>
<pre class="notranslate" style="font-size: 9px; line-height: 9px; margin-bottom: 0;">&lt;?php

header ("Content-Type: text/plain"); 

// dlist-example.php - This is an example to describe PHP functions for adding and deleting members from an SMS distribution list.
//
// Expected 2-way command format:  http://server/dlist-example.php?sender=@@SENDER@@&amp;text=@@FULLSMS@@
//
// This example supports receiving the following commands via SMS:
//   "JOIN dlistname" or "START dlistname" to join a distribution list
//   "STOP dlistname" or "LEAVE dlistname" to be removed from a distribution list.
//   "STOP" by itself will remove the user from all distribution lists.
//   "SEND dlistname " allows any member of the distribution list to broadcast a message to the entire list.

$nowsmsIP = "127.0.0.1";
$nowsmsPort = "8800";
$nowsmsUser = "test";
$nowsmsPassword = "test";

require_once "nowsmsdlist.php";   // PHP function file that contains functions for working with NowSMS distribution lists

/* Performs explode() on a string with the given delimiter and trims all whitespace for the elements */
function explode_trim($str, $delimiter = ',') {
    if ( is_string($delimiter) ) {
        $str = trim(preg_replace('|\\s*(?:' . preg_quote($delimiter) . ')\\s*|', $delimiter, $str));
        return explode($delimiter, $str);
    }
    return $str;
} 

// Check for required URL parameters, sender and text
// Expected 2-way command format:  http://server/dlist.php?sender=@@SENDER@@&amp;text=@@FULLSMS@@

if (!isset($_REQUEST['sender'])) {
echo "ERROR : 'sender' parameter missing!\r\n";
exit();
}

if (!isset($_REQUEST['text'])) {
echo "ERROR : 'text' parameter missing\r\n";
exit();
} 

$array = explode_trim($_REQUEST['text'],' '); 

// If a list name was not specified, set array with blank value
if (count($array) &lt; 2) $array[1] = "";

if (!strcasecmp($array[0],"JOIN") || !strcasecmp($array[0],"START")) {
   // Check if distribution list exists
   if (NowSMSDListExists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1])) {
      // Distribution list exists, check if sender is already a member
      if (NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender'])) {
         echo "You have already joined list " . $array[1] . ".  Reply STOP " . $array[1] . " to leave.";
      }
      else {
         // Add member to distribution list
         NowSMSDListAddMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender']);
         // Verify that member was added to distribution list
         if (NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender'])) {
            echo "You have joined list " . $array[1] . ".  Reply STOP " . $array[1] . " to leave.";
         }
         else {
            echo "An error occurred attempting to join list " . $array[1];
         }
      }
   }
   else {
      echo "List " . $array[1] . " does not exist.";
   }
}
else if (!strcasecmp($array[0],"LEAVE") || !strcasecmp($array[0],"STOP")) {
   // If a list name was not specified, remove from all lists.
   if ($array[1] == "") {
      NowSMSDListDeleteMemberAllLists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $_REQUEST['sender']);
      echo "You have been removed from all lists";
   }
   // Check if distribution list exists
   else if (NowSMSDListExists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1])) {
      // Distribution list exists, check if sender is a member
      if (NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender'])) {
         // Remove member from distribution list
         NowSMSDListDeleteMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender']);
         // Verify that member was removed
         if (!NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender'])) {
            echo "You are no longer subscribed to list " . $array[1] . ".";
         }
         else {
            echo "An error occurred attempting to leave list " . $array[1];
         }
      }
      else {
         echo "You are not subscribed to list " . $array[1] . ".";
      }
   }
   else {
      echo "List " . $array[1] . " does not exist.";
   }
}
else if (!strcasecmp($array[0],"SEND")) {
   // Check if distribution list exists
   if (NowSMSDListExists ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1])) {
      // Distribution list exists, check if sender is already a member
      if (NowSMSDListCheckMember ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $_REQUEST['sender'])) {
         $smsText = $array[1] . ":" . $_REQUEST['sender'];
         for ($i = 2; $i &lt; count($array); $i++) {
            $smsText = $smsText . " " . $array[$i];
         }
         if (NowSMSDListSendSMS ($nowsmsIP, $nowsmsPort, $nowsmsUser, $nowsmsPassword, $array[1], $smsText)) {
            echo "Message sent";
         }
         else echo "Error sending message";
      }
      else echo "You are not subscribed to list " . $array[i] . ".";
   }
   else echo "Unknown list " . $array[i] . ".";

}
else {
   echo "Unknown request " . $array[0];
}

?&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-distribution-lists-with-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowWAP Statistics Reports</title>
		<link>http://www.nowsms.com/nowwap-statistics-reports</link>
		<comments>http://www.nowsms.com/nowwap-statistics-reports#comments</comments>
		<pubDate>Tue, 10 May 2011 09:48:35 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[NowWAP]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13198</guid>
		<description><![CDATA[The log files created by NowWAP are of a text format that follows the common log format for web servers. These log files are stored on the NowWAP server, with one log file created for each day, using a file naming convention of WAPGW-yyyymmdd.LOG, where yyyymmdd is the 4-digit year, 2-digit month and 2-digit day. [...]]]></description>
			<content:encoded><![CDATA[<p>The log files created by NowWAP are of a text format that follows the common log format for web servers.</p>
<p>These log files are stored on the NowWAP server, with one log file created for each day, using a file naming convention of WAPGW-yyyymmdd.LOG, where yyyymmdd is the 4-digit year, 2-digit month and 2-digit day.</p>
<p>NowWAP 2011 has optional functionality which can convert these log files into a database format for further analysis.  This functionality is enabled by checking &#8220;Generate Usage Reports&#8221; on the &#8220;Reports&#8221; page of the configuration dialog.</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2011/05/nowwap-usage-report.png"><img class="alignnone size-full wp-image-13199" title="nowwap-usage-report" src="http://c7143.r43.cf2.rackcdn.com/2011/05/nowwap-usage-report.png" alt="" width="456" height="519" /></a></p>
<p>When usage reports are enabled, NowWAP will automatically generate daily and monthly usage reports.</p>
<p>These reports are located in the <strong>REPORTS</strong> subdirectory of the NowSMS installation.</p>
<p><strong>REPORTS\LOGDB</strong> contains SQLite format databases with one database per month.</p>
<p><strong>REPORTS\TEXT</strong> contains text format summary reports of NowWAP usage.  Daily reports have file names of YYYYMMDD.TXT and monthly reports have file names of YYYYMM.TXT.  Every night at midnight, a new daily report and updated monthly report for the current month will be generated.</p>
<p>The format of the text report will be similar to the following:</p>
<pre>NowWAP Usage Report: YYYYMMDD
#### - Max Active Users
#### - Max Active Requests
#### - Total Unique MSISDN
#### - Total Sessions
#### - Total Requests

Top Active Users
#### - Phone Number 1
#### - Phone Number 2
etc...

Top Content Domains
#### - Domain 1
#### - Domain 2
etc...

Top Content Servers
#### - Server 1
#### - Server 2
etc...</pre>
<p><strong>REPORTS\XML</strong> contains XML formatted summary reports of NowWAP usage.  Daily reports have file names of YYYYMMDD.XML and monthly reports have file names of YYYYMM.XML.  Every night at midnight, a new daily report and updated monthly report for the current month will be generated.</p>
<p>The format of the XML report will be similar to the following.  Note that some XML elements may not be present, depending on NowWAP configuration issues.  Also note that additional XML elements may be added in future releases.</p>
<pre>&lt;NowWAPUsageReport&gt;
&lt;ReportDate&gt;YYYYMMDD&lt;/ReportDate&gt;
&lt;MaxActiveUsers&gt;####&lt;/MaxActiveUsers&gt;
&lt;MaxActiveRequests&gt;####&lt;/MaxActiveRequests&gt;
&lt;TotalUniqueMsisdn&gt;####&lt;/TotalUniqueMsidn&gt;
&lt;TotalSessions&gt;####&lt;/TotalSessions&gt;
&lt;TotalRequests&gt;####&lt;/TotalRequests&gt;
&lt;TopActiveMsisdn&gt;
&lt;Name&gt;Phone Number 1&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;Name&gt;Phone Number 2&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;/TopActiveMsisdn&gt;
&lt;TopContentDomains&gt;
&lt;Name&gt;Domain 1&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;Name&gt;Domain 2&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;/TopContentDomains&gt;
&lt;TopContentServers&gt;
&lt;Name&gt;Server 1&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;Name&gt;Server 2&lt;/Name&gt;&lt;Requests&gt;####&lt;/Requests&gt;
&lt;/TopContentServers&gt;
&lt;/NowWAPUsageReport&gt;</pre>
<p><strong>ReportDate</strong> – YYYYMMDD for a daily report or YYYYMM for a monthly report.</p>
<p><strong>MaxActiveUsers</strong> – The maximum number of active (concurrent) users recorded during the report period.  (Note:  This information cannot be obtained from log files created by earlier versions of NowWAP.)</p>
<p><strong>MaxActiveRequests</strong> – The maximum number of simultaneous requests recorded during the report period.  (Note:  This information cannot be obtained from log files created by earlier versions of NowWAP.)</p>
<p><strong>TotalUniqueMsisdn</strong> – The number of unique MSISDN (phone numbers) that made requests of the proxy.  (Note:  Requires MSISDN/RADIUS integration.)</p>
<p><strong>TotalSessions</strong> – The number of user sessions during the report period.</p>
<p><strong>TotalRequests</strong> – The number of user requests serviced during the report period.</p>
<p><strong>TopActiveMsisdn</strong> – A list of the most active mobile terminals and the number of requests generated by that mobile terminal during the report period.   (Note:  Requires MSISDN/RADIUS integration.)</p>
<p><strong>TopContentDomains</strong> – A list of the content domains which recorded the most requests (hits) during the report period.</p>
<p><strong>TopContentServers</strong> – A list of the content servers which recorded the most requests (hits) during the report period.</p>
<h1>Additional Reports</h1>
<p>It may be possible to create additional reports by developing your own queries of the reports database.</p>
<p>Every day the log files from the previous day get merged into a monthly SQLite database format that is stored in the REPORTS\LOGDB directory.</p>
<p>It is possible to download SQLite from <a href="http://www.sqlite.org">www.sqlite.org</a>, and use sqlite3.exe to run queries against the database.</p>
<p>To better understand the database structure, here are the commands that are used to <strong>create the monthly database</strong>:</p>
<p>CREATE TABLE WAPGWLOG (AUTOID INTEGER PRIMARY KEY AUTOINCREMENT, RequestID text, RequestIP text, MSISDN text, RequestDate text, RequestTime text, RequestType text, RequestServer text, RequestDomain text, RequestURL text, HTTPStatus text, BytesOut integer, BytesIn integer, UserAgent text);<br />
create index RequestID on WAPGWLOG (RequestID);<br />
create index RequestDate on WAPGWLOG (RequestDate);<br />
create index MSISDN on WAPGWLOG (MSISDN);<br />
create index RequestDomain on WAPGWLOG (RequestDomain);<br />
create index RequestServer on WAPGWLOG (RequestServer);<br />
create index RequestType on WAPGWLOG (RequestType);<br />
create index MSISDNByDate on WAPGWLOG (RequestDate,MSISDN);<br />
create index RequestDomainByDate on WAPGWLOG (RequestDate,RequestDomain);<br />
create index RequestServerByDate on WAPGWLOG (RequestDate,RequestServer);<br />
create index RequestTypeByDate on WAPGWLOG (RequestDate,RequestType);</p>
<p><strong>More information about database fields:</strong></p>
<p>RequestID = auto generated ID for request<br />
RequestIP = IP address of device<br />
MSISDN = MSISDN of device<br />
RequestDate format = YYYYMMDD<br />
RequestTime format = HHMMSS<br />
RequestType &#8211; GET, POST, CONNECT, DISCONNECT, STARTSERVICE, STOPSERVICE<br />
RequestServer &#8211; Host name part of URL<br />
RequestDomain &#8211; Host name parsed to higher level domain name<br />
HTTPStatus &#8211; HTTP Status code of request (e.g, 200=OK, 301=Redirect, 304=Not Modified, 404=Not Found, etc.)<br />
BytesOut, BytesIn &#8211; Number of bytes transferred to/from device<br />
UserAgent &#8211; User-agent header from device making request</p>
<p>SQL Commands used to generate information in summary report:</p>
<p><strong>Total Unique MSISDN</strong></p>
<p>select count(*) from (select MSISDN from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (MSISDN != &#8221;) group by MSISDN);</p>
<p><strong>Total Sessions</strong></p>
<p>select count(*) from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (RequestType = &#8216;CONNECT&#8217;) and (RequestURL = &#8221;);</p>
<p><strong>Total Requests</strong></p>
<p>select count(*) from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (RequestType != &#8216;STARTSERVICE&#8217;) and (RequestType != &#8216;STOPSERVICE&#8217;);</p>
<p><strong>Top Active Users</strong></p>
<p>select MSISDN,count(*) from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (MSISDN != &#8221;) group by MSISDN order by count(*) DESC limit 100;</p>
<p><strong>Top Content Domains</strong></p>
<p>select RequestDomain,count(*) from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (RequestDomain != &#8221;) group by RequestDomain order by count(*) DESC limit 100;</p>
<p><strong>Top Content Servers</strong></p>
<p>select RequestServer,count(*) from WAPGWLOG where (RequestDate = &#8216;%s&#8217;) and (RequestServer != &#8221;) group by RequestServer order by count(*) DESC limit 100;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowwap-statistics-reports/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPP TLV Parameters for Advanced Message Routing</title>
		<link>http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing</link>
		<comments>http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing#comments</comments>
		<pubDate>Thu, 05 May 2011 15:05:38 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[accounting callbacks]]></category>
		<category><![CDATA[routing]]></category>
		<category><![CDATA[SMPP TLV Parameters]]></category>
		<category><![CDATA[SMPPOptions]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13192</guid>
		<description><![CDATA[There has been some interesting recent discussion about the use of optional SMPP TLV parameters to help facilitate message routing between SMS hubs. Some of this discussion can be found at the following message thread on the NowSMS discussion forum: http://www.nowsms.com/discus/messages/1/70053.html This article attempts to summarise this information. Those interested in further information are encouraged [...]]]></description>
			<content:encoded><![CDATA[<p>There has been some interesting recent discussion about the use of optional SMPP TLV parameters to help facilitate message routing between SMS hubs.</p>
<p>Some of this discussion can be found at the following message thread on the NowSMS discussion forum: <a href="http://www.nowsms.com/discus/messages/1/70053.html">http://www.nowsms.com/discus/messages/1/70053.html</a></p>
<p>This article attempts to summarise this information.  Those interested in further information are encouraged to join the <a href="http://www.nowsms.com/discus/messages/1/70053.html">discussion thread</a>.</p>
<p>Most NowSMS users will have no reason to be concerned with these parameters.  This article is presented primarily for the interest of those using NowSMS as part of an SMS hub application.</p>
<p>Part of the inspiration for this discussion is the GSM Association document &#8220;Open Connectivity SMS Hubbing Architecture IR.75&#8243;, which can be found at the following link:  <a href="http://www.gsmworld.com/documents/IR7520_unrest.pdf">http://www.gsmworld.com/documents/IR7520_unrest.pdf</a></p>
<p>That document suggests using the SMPP TLV parameters source_subaddress (0&#215;202) and dest_subaddress (0&#215;203) for encoding routing information for the MCC (mobile country code) and MNC (mobile network code) of the source (sender) and destination (recipient) addresses.</p>
<p>This is done to help simplify the routing of messages by intermediary hubs.</p>
<p>Historically, SMS service providers have defined their own proprietary SMPP TLV to encode this information (if it is made available at all).  For example, mBlox defines an mblox_operator parameter using TLV parameter number 0&#215;1402.</p>
<p>Hopefully more providers will use the GSM Association Recommendation in IR.75 in place of proprietary parameters.</p>
<p>Future versions of NowSMS (releases after 2011.05.05) will include automatically include support for forwarding these parameters.</p>
<p>Support can be enabled in prior versions of NowSMS by creating or editing an [SMPPOptions] section in SMSGW.INI and adding the following entries to this section:</p>
<p>[SMPPOptions]<br />
source_subaddress=202,HexString<br />
dest_subaddress=203,HexString</p>
<p>(Note: Support for the HexString parameter format was added in 2007.04.)</p>
<p>It is necessary to use the HexString encoding format for this parameter, because the SMPP specification defines first byte of the value as being a binary code value for the type of subaddress.  In the case of the GSM Association values, this first byte is always A0 (hex), indicating user specified.</p>
<p>The next 3 bytes are the MCC, followed by 3 bytes for the MNC.</p>
<p>ASCII character values are used for the MCC and MNC, and then converted to a hex string.</p>
<p>The IR.75 document provides an example using the MCC and MNC for AT&amp;T USA, where MCC=310 and MNC=380.</p>
<p>Converting the MCC value from ASCII to its hex string encoding would produce the following sequence of bytes: 33 31 30, and MNC would result in the following:  33 38 30.</p>
<p>The resulting parameter value in hex string format would be A0333130333830.</p>
<p>To specify this value as a source subaddress in NowSMS via HTTP, the following parameter value would be used:</p>
<p>SMPPOption_source_subaddress=A0333130333830</p>
<p>This thread discusses the use of NowSMS accounting callbacks, which can be used to query and/or update these parameters.  (Update support was added in the 2011.04.17 release.)</p>
<p>Most NowSMS users will have no reason to be concerned with these parameters.</p>
<p>However, here are a few of the scenarios where it may be necessary to use these parameters.</p>
<p>1.) 2-way (interactive) SMS applications may receive the SMPPOption_source_subaddress parameter to indicate the mobile network from which the request originated, and be required to supply this value as the SMPPOption_dest_subaddress when generating a reply.</p>
<p>Future versions of NowSMS (releases after 2011.05.05) will apply this logic automatically when processing a 2-way command that returns its text response directly.  Other 2-way commands would need to look for the &#8220;&amp;SMPPOption_source_subaddress=&#8221; URL parameter and generate an appropriate &#8220;&amp;SMPPOption_dest_subaddress=&#8221; URL parameter when submitting a message reply back to NowSMS.</p>
<p>2.) When NowSMS is being used to route messages between providers, it may be desirable to route messages based upon the MCC/MNC value.</p>
<p>This can be done via SMS accounting callbacks.  This concept is described in the following article:</p>
<p><a href="http://www.nowsms.com/dynamic-sms-message-routing-with-http-callbacks">http://www.nowsms.com/dynamic-sms-message-routing-with-http-callbacks</a></p>
<p>What is not mentioned in that article is that beginning with release 2010.05.17, NowSMS also includes SMPP TLV parameters in the accounting callbacks.</p>
<p>This allows the callback processor to inspect the &#8220;&amp;SMPPOption_source_subaddress=&#8221; and &#8220;&amp;SMPPOption_dest_subaddress=&#8221; parameters, using those values to determine which route to use for sending the message.  (The callback returns a response of SMSCRoute=xxxxx to specify the route to be used, as described in the link referenced above.)</p>
<p>3.) As an extension to the previous scenario, it may be necessary for a system providing SMS hubbing services to apply or insert the above values.</p>
<p>For example, it may be desirable to apply a source_subaddress automatically to all messages received from a particular connection.</p>
<p>Or it may be desirable to perform HLR lookups and apply dest_subaddress parameters before routing.</p>
<p>NowSMS 2011.04.17 and later allow these TLV parameters to be updated by an accounting callback.</p>
<p>In addition to passing these parameters to accounting callbacks via HTTP URL parameters, NowSMS checks the response from the accounting callback to allow these parameters to be set or updated.</p>
<p>The accounting callback should return a &#8220;text/plain&#8221; response with any parameters to be updated separated by line breaks.</p>
<p>For example:</p>
<p>SMSCRoute=connectionA<br />
SMPPOption_source_subaddress=A0333130333830<br />
SMPPOption_dest_subaddress=A0323334303135</p>
<p>Note:  To enable the ability to override SMPPOption parameter values in the accounting callback response, it is necessary at this time to add SMSAccountingAllowChanges=Yes to the [SMSGW] section of SMSGW.INI.</p>
<p>One other note for those not familiar with the NowSMS concept of accounting callbacks.  These are HTTP callbacks where NowSMS send an HTTP request to a URL that you define.</p>
<p>These callbacks would normally reside on a separate web server.  However, newer versions of NowSMS also support the ability to host PHP scripts locally, as described in the following article:  <a href="http://www.nowsms.com/now-sms-native-php-scripts">http://www.nowsms.com/now-sms-native-php-scripts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using PHP Scripts to Extend NowSMS</title>
		<link>http://www.nowsms.com/now-sms-native-php-scripts</link>
		<comments>http://www.nowsms.com/now-sms-native-php-scripts#comments</comments>
		<pubDate>Tue, 19 Apr 2011 15:33:18 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13173</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>PHP scripts are a great tool for integrating NowSMS into another application environment, or extending the functionality of NowSMS.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>The separate web server requirement can make it more difficult to develop 2-way command scripts or accounting callbacks, especially when prototyping an application.</p>
<p>Beginning with the <strong>2011.04.19</strong> version of NowSMS (currently in test release at <a href="http://www.nowsms.com/download/nowsms20110419.zip">http://www.nowsms.com/download/nowsms20110419.zip</a>), NowSMS supports the ability to interface with a locally installed copy of PHP, without requiring a separate web server to manage PHP callbacks.</p>
<p>To enable this support, it is necessary to first install PHP on the PC that is running NowSMS by following these steps:</p>
<p>1.) Download and run the Windows installer for PHP at <a href="http://windows.php.net/download/">http://windows.php.net/download/</a>.  We recommend using a thread safe version of the current build (5.3.6 at the time this article was written).</p>
<p>2.) When the PHP installer displays its &#8220;Web Server Setup&#8221; selection screen, be sure to select &#8220;Other CGI&#8221;.</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2011/04/php-install-cgi.png"><img class="alignnone size-full wp-image-13174" title="PHP Install CGI Server" src="http://c7143.r43.cf2.rackcdn.com/2011/04/php-install-cgi.png" alt="" width="509" height="400" /></a></p>
<p>3.) The default PHP installation does not include many popular PHP libraries and extensions.  You may want to consider installing other &#8220;Extensions&#8221; and &#8220;Extras&#8221;.  At a minimum, we recommend installing PEAR, which is listed under &#8220;Extras&#8221;.   (In particular, the mail functions built into PHP are extremely limited, and the PEAR Mail Package is frequently used for sending e-mails from PHP scripts.)</p>
<p>﻿<a href="http://c7143.r43.cf2.rackcdn.com/2011/04/php-install-pear.png"><img class="alignnone size-full wp-image-13176" title="php-install-pear" src="http://c7143.r43.cf2.rackcdn.com/2011/04/php-install-pear.png" alt="" width="509" height="400" /></a></p>
<p>4.) After PHP has been installed, let&#8217;s continue and install PEAR and the PEAR Mail package.  Open a Command Prompt window by right clicking on &#8220;Command Prompt&#8221; (usually under Programs/Accessories) and selecting &#8220;Run as Administrator&#8221;.  Once the Command Prompt window is open, change to the directory in which PHP was installed.</p>
<p>5.) To install PEAR, type go-pear and press Enter.  Unless you are an expert at installing and configuring PEAR, accept all of the defaults presented by the installation routine by pressing Enter each time prompted.</p>
<p>6.) To install the PEAR Mail Package, from that same command prompt window, type:</p>
<pre> pear install Mail</pre>
<p>7.) Mail requires an additional PEAR package to function properly: Net_SMTP.  To install the PEAR Net_SMTP Package, from that same command prompt window, type:</p>
<pre> pear install Net_SMTP</pre>
<p>8.) PHP installation is complete.  Now it is necessary to configure NowSMS to use the locally installed copy of PHP.  In the NowSMS configuration, go to the &#8220;2-Way&#8221; page, and select &#8220;Enable Local PHP Processing&#8221;.</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2011/04/nowsms-php-config.png"><img class="alignnone size-full wp-image-13178" title="nowsms-php-config" src="http://c7143.r43.cf2.rackcdn.com/2011/04/nowsms-php-config.png" alt="" width="426" height="704" /></a></p>
<p>NowSMS interfaces with php-cgi.exe, which should have been installed by the PHP installation program.  When &#8220;Enable Local PHP Processing&#8221; is first checked, NowSMS will verify that it can locate php-cgi.exe.  If it cannot locate this file, an error message will be displayed.</p>
<p>You are now ready to create your first PHP script.</p>
<h1>What You Need To Know About NowSMS and Local PHP Scripts</h1>
<p>The <strong>&#8220;2-Way&#8221;</strong> command page displays the directory location of the directory that should contain any local PHP scripts, as shown above, where it displays &#8220;http://nowsmslocal/php resolves to C:\ProgramData\NowSMS\PHP\&#8221;.</p>
<p>This indicates that PHP scripts need to be placed in the C:\ProgramData\NowSMS\PHP directory.  It is possible to change this directory by editing SMSGW.INI, and under the [SMSGW] header, adding PHPDir=c:\path</p>
<p>If, after adding a PHPDir= configuration parameter, the <strong>&#8220;2-Way&#8221;</strong> page does not update to the new location, uncheck <strong>&#8220;Enable Local PHP Process&#8221;</strong>, and then recheck this setting.</p>
<p>When defining a 2-way command (or accounting callback) that points to a local PHP script, the script URL should start with http://nowsmslocal/php (example for a script named echo.php: http://nowsmslocal/php/echo.php&amp;sender=@@SENDER@@&amp;text=@@FULLSMS@@).</p>
<p>It is also possible to access these PHP scripts from a web browser installed on the same machine by referencing the script via the local loopback address, http://localhost:8800/php or http://127.0.0.1:8800/php (assuming that the NowSMS web interface is running on port 8800, otherwise change this port number).  By default, PHP scripts can only be accessed locally.  If access required from other systems, check &#8220;Allow External Web Access to PHP Scripts&#8221;.  When &#8220;Allow External Web Access to PHP Scripts&#8221; is enabled, the scripts will be accessible to any system that can access the NowSMS web interface (i.e., the &#8220;Allowed/Blocked&#8221; list on the &#8220;Web&#8221; configuration dialog).</p>
<p>Let&#8217;s start with a simple 2-way command example.</p>
<p><strong><a href="http://www.nowsms.com/download/echo-php.txt">echo.php</a></strong> is a simple PHP script that parses the text of a received message, and replies back with the same text:</p>
<pre>&lt;?php
header ("Content-Type: text/plain");
if (isset($_REQUEST['text'])) {
   $text = $_REQUEST['text'];
   echo $text;
}
else {
   echo "Invalid request, text= parameter expected.";
}
?&gt;</pre>
<p>This simple example provides a good starting point for building more complex 2-way commands.</p>
<p>Cut and paste the above script into a file named echo.php in your NowSMS PHP directory.</p>
<p>From a web browser on the same machine, access http://127.0.0.1:8800/php/echo.php.  A text page should be returned that says &#8220;Invalid request, text= parameter expected.&#8221;  This indicates that local PHP support is fully configured and operational.</p>
<p>Now let&#8217;s configure NowSMS to execute this command every time it receives an SMS message, sending an echo response back to the sender.</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2011/04/nowsms-php-2way.png"><img class="alignnone size-full wp-image-13183" title="nowsms-php-2way" src="http://c7143.r43.cf2.rackcdn.com/2011/04/nowsms-php-2way.png" alt="" width="426" height="704" /></a></p>
<p>Before continuing, ensure that <strong>&#8220;Process received SMS Messages&#8221;</strong> is checked.</p>
<p>In the <strong>&#8220;SMS Command Prefix&#8221;</strong> field, enter a single asterisk character: *  This character is a wildcard, indicating that the command will match all received messages.  If you want to use this test script for a particular keyword match only (such as &#8220;echo&#8221;), then enter that keyword instead of *.</p>
<p>The <strong>&#8220;Receive Phone Number&#8221;</strong> field can be left blank for the purposes of this test.</p>
<p><strong>&#8220;Command to Execute&#8221;</strong> should be http://nowsmslocal/php/echo.php?text=@@TEXT&amp;sender=@@SENDER@@</p>
<p>This particular command returns its response directly in the script, so <strong>&#8220;Command returns response text&#8221;</strong> should also be checked.</p>
<p>Press <strong>&#8220;Add&#8221;</strong> to add the command to the table, and <strong>&#8220;Apply&#8221;</strong> to save changes.  Restart the NowSMS service.</p>
<p>The simple version of the echo.php script only checks the &#8220;text=&#8221; parameter, which is accessible in the script as <span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; white-space: pre;">$_REQUEST['text'].</span></p>
<p>Try sending an SMS message in to the script.  If the <strong>&#8220;SMS Received&#8221;</strong> counter on the <strong>&#8220;Service&#8221;</strong> page of the NowSMS configuration dialog is not showing an increase in received messages, your messages are not making it as far as NowSMS.  There are some helpful troubleshooting tips for this situation in a post on the NowSMS discussion board at <a href="http://www.nowsms.com/discus/messages/1/4520.html">http://www.nowsms.com/discus/messages/1/4520.html</a>.</p>
<p>Note that it is very dangerous to implement a script that blindly replies back to all received messages, as it is possible to get stuck in an infinite reply loop with other SMS robots.  It is advisable that you include logic in your script to limit replies, especially error replies.  Also, beware of loops where you accidentally send an SMS message from your modem to itself.  You can include a check at the beginning of a PHP script to guard against sending to yourself by checking the number from which the message was received, and make sure it does not match the sending number:</p>
<p>if (!strcmp($_REQUEST['sender'],&#8221;+447777777777&#8243;)) { return; }</p>
<p>This is a real simple example intended to help you get started.</p>
<p>Instead of replying back to the SMS message, your script can issue new requests back to NowSMS to send messages (see <a href="http://www.nowsms.com/nowsms-php-example-send-sms-text-message">Send SMS from PHP Script</a> and <a href="http://www.nowsms.com/nowsms-php-example-send-mms-message">Send MMS Message from PHP Script</a> for these examples).  Or your PHP script could <a href="http://us.php.net/manual/en/refs.database.php">query and/or update a database</a>.  There are many possibilities.</p>
<p>Additional NowSMS PHP examples and information are available at the following links:</p>
<p><a href="http://www.nowsms.com/faq/api">http://www.nowsms.com/faq/api</a></p>
<p><a href="http://www.nowsms.com/tag/php">http://www.nowsms.com/tag/php</a></p>
<p>Additional resources for general PHP API information include:</p>
<p><a href="http://www.php.net/">http://www.php.net/</a></p>
<p><a href="http://pear.php.net/">http://pear.php.net/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/now-sms-native-php-scripts/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Basic MMS SMIL Tutorial</title>
		<link>http://www.nowsms.com/mms-smil-tutorial</link>
		<comments>http://www.nowsms.com/mms-smil-tutorial#comments</comments>
		<pubDate>Thu, 10 Mar 2011 15:00:54 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[Sending MMS]]></category>
		<category><![CDATA[SMIL]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13127</guid>
		<description><![CDATA[A recent thread on the NowSMS discussion board made my head hurt:  MMS: first shows a picture and then the text It started off simple enough. If you send an MMS message using the simple web form in NowSMS, and you include some text and an image, the resulting message displays the text first and [...]]]></description>
			<content:encoded><![CDATA[<p>A recent thread on the NowSMS discussion board made my head hurt:  <a href="http://www.nowsms.com/discus/messages/1/69949.html">MMS: first shows a picture and then the text</a></p>
<p>It started off simple enough.</p>
<p>If you send an MMS message using the simple web form in NowSMS, and you include some text and an image, the resulting message displays the text first and then the image.</p>
<p>What if you want the image displayed first and then the text?</p>
<p>Or what if you want the text to be displayed as a caption under the image, on the same page, instead of on a separate page?</p>
<p>The first scenario is simple to address.  The second scenario is where you may require an aspirin.</p>
<p>Des did an excellent job of addressing the scenario of displaying the image first, and then the text:</p>
<blockquote><p>NowSMS inserts objects in the order that they are presented.</p>
<p>Instead of using the text object, put the text in a file and attach that file after the image.</p>
<p>If you want more full control, you need to create your own SMIL and include it as one of the objects (use a .smil file extension).</p>
<p>If no SMIL is included, NowSMS auto generates some simple SMIL that presents one object per page in the order in which the objects were attached.</p></blockquote>
<p>If only Des didn&#8217;t mention SMIL.  He could have left the answer simple and moved on to another question.</p>
<p>But that is not our way.</p>
<p>So what exactly is SMIL?</p>
<p>SMIL is a presentation language that is used to configure how an MMS message is displayed, similar to how HTML is a presentation language that is used to configure how information on a web page is to be displayed.</p>
<p>However, while HTML is a very powerful and flexible presentation markup language, SMIL is a very simplistic and limited presentation markup language.  And MMS SMIL, which is a subset of Basic SMIL, which is a subset of SMIL, is even more limited still.</p>
<p>I like to think of SMIL as a simple presentation language for slide show presentations.  SMIL organizes the slides, or pages, of an MMS message presentation.  Sort of like PowerPoint, but again, much more limited.</p>
<p>Have I emphasized enough that SMIL, especially MMS SMIL, is very limited?  So don&#8217;t expect to wow your audience with complex charts and graphics.</p>
<p>Before we dive further into SMIL, let&#8217;s backup and look at what an MMS message is.</p>
<p>An MMS message is very similar to an e-mail message, in many ways you can think of MMS as an e-mail system designed for mobile phone networks.  (Looking for more information on the transport level implementation?  If so, see our article <a href="http://www.nowsms.com/faq/how-mms-works">How MMS Works</a>).</p>
<p>Like an e-mail message, an MMS message has a header that contains information such as who the message is &#8220;From&#8221; and who it is &#8220;To&#8221;, along with a &#8220;Subject&#8221;.</p>
<p>The content of an MMS message is a collection of one or more multimedia objects, such as text, image, video and audio.  MMS messages can also contain other objects such as address cards (vCards), calendar appointments (vCal), Java applications, and more, if supported by the MMS client on the mobile phone.  But for the most part you are dealing with one or more text, image, video and/or audio objects.</p>
<p>If you think of an e-mail message, you think of a text object, along with zero or more attachments.</p>
<p>Or, a more modern e-mail message might be HTML formatted, so that the multimedia objects are automatically displayed when the e-mail message is opened.</p>
<p>Similar to HTML being used in an e-mail message, an MMS message should always have a SMIL presentation part which determines how the MMS message is displayed.  (If a SMIL presentation is not included in an MMS message, many operator MMS systems will automatically generate SMIL and add it to the message before it is received by the recipient.)</p>
<p>When included in an MMS message, a SMIL presentation becomes one of the objects within an MMS message.  A typical MMS message that contains text and an image would have three objects contained in the MMS message, a SMIL object, a text object and an image object.</p>
<p>Let&#8217;s stop using the word object.  When building an MMS message, an object is a file.  So our typical MMS message with text and an image has three separate files that are the content of the MMS message, a SMIL file, a text file and an image file (e.g., PNG, JPEG, GIF).</p>
<p>One important conceptual difference between SMIL and HTML is that there is no in-line text within a SMIL presentation.  If you want to include text in a SMIL presentation, you include a reference to a separate text object/file.</p>
<p>Another important conceptual difference is that you have to consider the relatively small screen of most devices that will be receiving MMS messages.</p>
<p>For all practical purposes, you should not include more than one of the same type of object in a single page (slide) of the SMIL presentation.  This means more than one image on a page is generally not recommended because of the limitations of most devices.  More than one text object on a page is also not recommended.</p>
<p>The <a href="http://openmobilealliance.org/Technical/release_program/mms_v1_2.aspx">MMS Conformance Document</a> from the <a href="http://openmobilealliance.org">Open Mobile Alliance</a> goes into more detail.  Basically each page of a SMIL presentation can have no more than two regions, an image region and a text region.  The image region can have a single image or a video.  The text region can have a single text object.  An audio object can play while the page is being displayed.</p>
<p>That&#8217;s really all there is to it.  Full SMIL has capabilities like setting text and background colors, however the subset that is MMS SMIL, as defined in the MMS Conformance Document, does not include those attributes.</p>
<p>Let&#8217;s go back to our original scenario, sending an MMS message that includes text and an image.</p>
<p>The <a href="http://www.nowsms.com/doc/web-menu-interface/send-mms-message">Send MMS Message</a> web form (and the <a href="http://www.nowsms.com/doc/submitting-mms-messages/now-smsmms-proprietary-url-submission">NowSMS Proprietary URL API</a>) include a single text field and zero or more files to include in the message.</p>
<p>When NowSMS processes the web form, if a text field is present, NowSMS automatically converts the text field into a text file to be included as the first object in the MMS message.</p>
<p>If a SMIL file is not included among the files to be included in the message, NowSMS automatically generates one.</p>
<p>For the widest compatibility with different devices, the default SMIL that NowSMS generates has one object per page.  If the text field was used in the submission, it becomes the first page.  Other pages are generated based upon the order in which objects were included in the submission.</p>
<p>The default NowSMS SMIL will typically look like this:</p>
<pre class="notranslate" style="line-height: 12px;">&lt;smil&gt;
&lt;head&gt;
&lt;layout&gt;
&lt;region id="Image" height="100%" width="100%" fit="meet"/&gt;
&lt;region id="Text" height="100%" width="100%" fit="scroll"/&gt;
&lt;/layout&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;par dur="3s"&gt;
&lt;text src="filename.txt" region="Text"/&gt;
&lt;/par&gt;
&lt;par dur="5s"&gt;
&lt;img src="image.jpg" region="Image"/&gt;
&lt;/par&gt;
&lt;/body&gt;
&lt;/smil&gt;</pre>
<p>The start of the SMIL is a header and opening for the body section:</p>
<pre class="notranslate" style="line-height: 12px;">&lt;smil&gt;
&lt;head&gt;
&lt;layout&gt;
&lt;region id="Image" height="100%" width="100%" fit="meet"/&gt;
&lt;region id="Text" height="100%" width="100%" fit="scroll"/&gt;
&lt;/layout&gt;
&lt;/head&gt;
&lt;body&gt;</pre>
<p>The layout section defines two regions, as instructed by the MMS Conformance Document.  For simplicity, NowSMS automatically generated SMIL says that either section can take up the entire height and width of the page.  Images are scaled to &#8220;meet&#8221; the size of the screen, while text is allowed to &#8220;scroll&#8221; if it is too large.</p>
<p>More complex region layouts can be designed, but the MMS Conformance Document states that an MMS Client may choose to replace the layout section with its own terminal specific layout, so we have yet to see the point of such an effort.</p>
<p>Each page of the SMIL presentation is represented by a &lt;par&gt; section:</p>
<pre class="notranslate" style="line-height: 12px;">&lt;par dur="3s"&gt;
&lt;text src="filename.txt" region="Text"/&gt;
&lt;/par&gt;

&lt;par dur="5s"&gt;
&lt;img src="image.jpg" region="Image"/&gt;
&lt;/par&gt;</pre>
<p>text, img, video and audio tags with a src parameter define objects that appear in the MMS message. You&#8217;ll see text and img tags in the above example. The src parameter of one of these object tags refers to another content object/filename that is included in the message.  Unlike HTML format e-mails, you cannot reference content by an external HTTP link.  Any content referenced by your SMIL must be a file that is included in the MMS message content.</p>
<p>The &#8220;dur&#8221; parameter for the &lt;par&gt; element specfies how long a particular slide is displayed.</p>
<p>In this example, the text that was submitted as part of this MMS message was included in a text file named filename.txt.  The image was an image file named image.jpg.</p>
<p>When submitting files to be included in an MMS message with NowSMS it is important to use common filename extensions such as .txt and .jpg.  This is because when NowSMS packages the files into an MMS message, NowSMS needs to specify the MIME content type of the files.  NowSMS uses the filename extension to MIME content type mappings defined in the MMSCTYPE.INI file that is in the NowSMS program directory.</p>
<p>Finally, the SMIL is concluded with tags to close the presentation:</p>
<pre class="notranslate" style="line-height: 12px;">&lt;/body&gt;
&lt;/smil&gt;</pre>
<p>It is easy to override the automatically generated SMIL by creating your own SMIL. You then include this SMIL as one of the content objects in your MMS message. (Again filename extensions are important &#8230;. be sure to give the file a &#8220;.smil&#8221; file extension, so that NowSMS will recognise it as such.)  All &#8220;src=&#8221; references within your SMIL should be for filenames of other files that are being included in the MMS message.</p>
<p>For example, to have the image and text display on a single page, you could do make this change:</p>
<pre class="notranslate" style="line-height: 12px;">&lt;smil&gt;
&lt;head&gt;
&lt;layout&gt;
&lt;region id="Image" height="100%" width="100%" fit="meet"/&gt;
&lt;region id="Text" height="100%" width="100%" fit="scroll"/&gt;
&lt;/layout&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;par dur="5s"&gt;
&lt;text src="filename.txt" region="Text"/&gt;
&lt;img src="image.jpg" region="Image"/&gt;
&lt;/par&gt;
&lt;/body&gt;
&lt;/smil&gt;</pre>
<p>When submitting the MMS message, you would need to include the SMIL file, along with filename.txt and image.jpg.</p>
<p>You could also change the &#8220;%&#8221; of height for the text and image regions for best results, but be aware that a lot of MMS clients will ignore it.</p>
<p>Also note that when you generate your own SMIL, you should include any text objects as separate files, not using the &#8220;MMS Text&#8221; parameter of the NowSMS web interface. This is because NowSMS automatically converts the &#8220;MMS Text&#8221; into a file, but it generates a temporary name for the text file, so it is not possible to reference this text in your SMIL</p>
<p>There is more discussion back on the discussion board thread <a href="http://www.nowsms.com/discus/messages/1/69949.html">MMS: first shows a picture and then the text</a>, but hopefully this discussion is more digestable as a simple tutorial for creating your own SMIL in an MMS message.</p>
<p>For more information, I highly recommend referring to the MMS Conformance Document from the Open Mobile Alliance, which can be found at the following location:  <a href="http://openmobilealliance.org/Technical/release_program/mms_v1_2.aspx">http://openmobilealliance.org/Technical/release_program/mms_v1_2.aspx</a>.</p>
<p>The full SMIL 2.0 specification can be found at <a href="http://www.w3.org/TR/2005/REC-SMIL2-20050107/">http://www.w3.org/TR/2005/REC-SMIL2-20050107/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/mms-smil-tutorial/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowSMS and SSL Certificate Chains</title>
		<link>http://www.nowsms.com/nowsms-and-ssl-certificate-chains</link>
		<comments>http://www.nowsms.com/nowsms-and-ssl-certificate-chains#comments</comments>
		<pubDate>Tue, 08 Mar 2011 02:00:10 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SSL/TLS]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13102</guid>
		<description><![CDATA[If you have purchased an SSL certificate from a certificate authority for use on a NowSMS server, you may encounter a problem with some browsers displaying a warning or refusing to accept the certificate.  This can occur when SSL certificates are not signed by a certificate authorities&#8217; root certificate, but by an intermediate certificate.  (This [...]]]></description>
			<content:encoded><![CDATA[<p>If you have purchased an SSL certificate from a certificate authority for use on a NowSMS server, you may encounter a problem with some browsers displaying a warning or refusing to accept the certificate.  This can occur when SSL certificates are not signed by a certificate authorities&#8217; root certificate, but by an intermediate certificate.  (This has been observed with certificates issued by GoDaddy, see <a href="http://www.nowsms.com/discus/messages/485/69992.html">http://www.nowsms.com/discus/messages/485/69992.html</a>.)</p>
<p>When a certificate is issued by a certificate authority by an intermediate certificate, it is necessary to install not just your certificate on the server, but additionally it is necessary to install the certificate chain for the CA&#8217;s intermediate certificate.  This certificate chain will be provided by the certificate authority along with your signed certificate.</p>
<p>At this time, an updated version of SMSSSL.DLL is required to support an SSL certificate chain.  An update can be downloaded at <a href="http://www.nowsms.com/download/smssslchain.zip">http://www.nowsms.com/download/smssslchain.zip</a>.  To install the update, stop the NowSMS services and exit the NowSMS program.  Next, update the SMSSSL.DLL file in Program Files (or Program Files (x86)) \ NowSMS with the version in this ZIP file.</p>
<p>Locate the directory that contains your SSL certificate request (SSL.CSR).  This is either the ProgramData\NowSMS directory (Windows 7/Vista/2008) or Program Files\NowSMS (XP/2003) directory.</p>
<p>Using a text editor, such as NOTEPAD.EXE, create or edit a file named SSL.CA, which is the filename designated to contain your signed SSL certificate.  Your signed certificate should be placed at the start of this file, including the &#8212;&#8211;BEGIN CERTIFICATE&#8212;&#8211; and &#8212;&#8211;END CERTIFICATE&#8212;&#8211; markers.  Following  your signed certificate, you should include any intermediate certificates in this same text file.  If there are multiple intermediate certificates, they should be ordered in the path from your server certificate toward the root CA certificate.</p>
<p>The NowSMS service must be restarted after updating an SSL certificate file in order for the new certificate to take effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowsms-and-ssl-certificate-chains/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migrating from another vendor&#8217;s MMSC</title>
		<link>http://www.nowsms.com/mmsc-migration</link>
		<comments>http://www.nowsms.com/mmsc-migration#comments</comments>
		<pubDate>Wed, 02 Mar 2011 15:54:02 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[operator MMSC]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13096</guid>
		<description><![CDATA[Customers frequently inquire about the complexity of migrating from an existing MMSC installation to NowSMS.  Is it possible to do this with minimal impact to their subscribers? In most cases, this is possible.  The NowSMS MMSC is designed with minimal administration requirements and automatic subscriber provisioning.  For a typical mobile operator configuration, subscribers are automatically [...]]]></description>
			<content:encoded><![CDATA[<p>Customers frequently inquire about the complexity of migrating from an existing MMSC installation to NowSMS.  Is it possible to do this with minimal impact to their subscribers?</p>
<p>In most cases, this is possible.  The NowSMS MMSC is designed with minimal administration requirements and automatic subscriber provisioning.  For a typical mobile operator configuration, <em>subscribers are automatically provisioned to the NowSMS MMSC the first time a user sends an MMS message</em>.   The following article explains how to configure this:  <a href="http://www.nowsms.com/nowsms-operator-mmsc-considerations">http://www.nowsms.com/nowsms-operator-mmsc-considerations</a></p>
<p>Automatic subscriber provisioning works great for a new MMSC installation, but what if you are replacing an existing MMSC that already has provisioned subscribers?</p>
<p>In some cases, it is not required that subscribers be provisioned on the NowSMS MMSC at all.  If the &#8220;<a href="http://www.nowsms.com/doc/mmsc-messaging-server/connecting-to-an-operator-mmsc/sending-mms-messages">Default Route</a>&#8221; for MMS message delivery, or an explicit route defined just for your subscribers, is configured as &#8220;<a href="http://www.nowsms.com/doc/mmsc-messaging-server/connecting-to-an-operator-mmsc/sending-mms-messages/direct-delivery">Direct Delivery</a>&#8220;, then the MMSC will deliver MMS messages to subscribers whether or not they have been provisioned.</p>
<p>The above approach is used by some smaller mobile operators, but most operators prefer to only deliver MMS messages to subscribers that have been provisioned.  In this case, non-provisioned subscribers receive MMS messages that have been converted into an SMS format with a web link for accessing the multimedia content.  Configuring this option is described in the following article:  <a href="http://www.nowsms.com/mms-conversion-to-sms-with-web-link">http://www.nowsms.com/mms-conversion-to-sms-with-web-link</a></p>
<p>In this case, you will want pre-provision your MMS subscribers in the NowSMS MMSC, so that they will receive MMS messages in normal MMS format, without the SMS conversion &#8230; and without requiring the subscribers to first send an MMS message to provision their account on the NowSMS MMSC.  There is an HTTP interface available for provisioning MMS subscribers which is described in the following article: <a href=" http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http"> http://www.nowsms.com/provisioning-sms-and-mmsc-user-accounts-via-http</a>.</p>
<p>There is an additional alternative that is useful for bulk MMS subscriber provisioning, which is the MMSUSER.EXE command line utility.  MMSUSER accepts a text file that has a list of subscriber phone numbers.  The format of this file should contain one subscriber phone number per line, prefixed by &#8220;A,&#8221; which indicates that the subscriber should be added (conversely &#8220;D,&#8221; means the subscriber should be deleted).  For example:</p>
<pre class="notranslate">A,+441111111111
A,+441111111112
A,+441111111113
A,+441111111114</pre>
<p>Assuming that the file containing the list of subscribers in this format is called subimport.txt, run the following command from a command line prompt in the Program Files\NowSMS directory:</p>
<pre class="notranslate">mmsuser -import subimport.txt</pre>
<p>Additional information of interest to customers planning or considering an MMSC migration/replacement:</p>
<ul>
<li><a href="http://www.nowsms.com/mmsc-accounting-callbacks-for-billing-and-charging">MMSC Accounting Callbacks for Billing and Charging</a></li>
<li><a href="http://www.nowsms.com/mmsc-mm4-interconnection-basics">MM4 Interconnection Basics for exchanging MMS with other mobile operators</a></li>
<li><a href="http://www.nowsms.com/mobile-number-portability-mnp-and-the-nowsms-mmsc">Mobile Number Portability (MNP) and the NowSMS MMSC</a></li>
<li><a href="http://www.nowsms.com/operator-mmsc-accounting-detecting-roaming-subscribers">Detecting Roaming Subscribers</a></li>
</ul>
<p>And for operators using CDMA based technologies, also see:</p>
<ul>
<li><a href="http://www.nowsms.com/using-nowsms-as-an-mmsc-in-cdma-or-cdma2000-environments">MMSC in CDMA and CDMA2000 Environments</a></li>
</ul>
<p>Another frequently asked question regards the role of the WAP Push Proxy Gateway (PPG).  The NowSMSC MMSC includes an integrated PPG that sends WAP Push messages using an SMS bearer, and there is not a requirement for a separate PPG.  However, for specialised configurations, it is possible to configure the NowSMS MMSC to use an external PPG, which is described in the following article:  <a href="http://www.nowsms.com/routing-mms-notifications-via-a-wap-push-proxy-gateway">http://www.nowsms.com/routing-mms-notifications-via-a-wap-push-proxy-gateway</a></p>
<p>It is also possible to use NowSMS as a PPG for other applications, as described in the following article:  <a href="http://www.nowsms.com/using-nowsms-as-a-wap-push-proxy-gateway-ppg">http://www.nowsms.com/using-nowsms-as-a-wap-push-proxy-gateway-ppg</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/mmsc-migration/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NowWAP and HTTP Header Enrichment (HHE)</title>
		<link>http://www.nowsms.com/nowwap-and-http-header-enrichment</link>
		<comments>http://www.nowsms.com/nowwap-and-http-header-enrichment#comments</comments>
		<pubDate>Wed, 23 Feb 2011 06:00:30 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[HTTP Header Enrichment]]></category>
		<category><![CDATA[NowWAP]]></category>
		<category><![CDATA[WAP Gateway]]></category>
		<category><![CDATA[WAP Proxy]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13072</guid>
		<description><![CDATA[The HTTP Header Enrichment (HHE) capability provides solutions for a content provider to identify a subscriber. Basic HHE allows the subscriber to be identified by their MSISDN. Aliased HHE allows the subscriber to be identified without divulging the subscriber&#8217;s MSISDN. A standard feature of the NowWAP Proxy is to provide Basic HTTP Header Enrichment to [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: Arial, sans-serif;">The HTTP Header Enrichment (HHE) capability provides solutions for a content provider to identify a subscriber</span><span style="font-family: Arial, sans-serif;">.</span></p>
<p><span style="font-family: Arial, sans-serif;"><strong><em>Basic HHE allows the subscriber to be identified by their MSISDN.</em></strong></span></p>
<p><span style="font-family: Arial, sans-serif;"><strong> Aliased HHE allows the subscriber to be identified without divulging the subscriber&#8217;s MSISDN.</strong></span></p>
<p><span style="font-family: Arial, sans-serif;">A standard feature of the NowWAP Proxy is to provide Basic HTTP Header Enrichment to facilitate operator billing for HTTP based services, including Multimedia Messaging Services (MMS).</span></p>
<p><span style="font-family: Arial, sans-serif;">Basic HHE is enabled for all subscriber HTTP transactions that  are forwarded to a configurable list of content provider hosts and/or domains (most frequently these are hosts within the operator domain, such as the operator MMSC). Depending on the information available from the RADIUS accounting feed, this basic information can include the subscriber MSISDN, SGSN IP Address, SGSN MCC &amp; MNC (useful for determining if the client is currently roaming), client IP address (useful for identifying which operator APN was accessed), IMSI, and radio access type (4G, 3G or 2.5G) .</span></p>
<p><span style="font-family: Arial, sans-serif;">Basic HHE can result in the following HTTP headers being inserted:</span></p>
<p><span style="font-family: 'Courier New', monospace;" class="notranslate"><span style="font-size: small;">X-MSISDN: xxxxxxxxxxxxxxxxx<br />
X-WAP-3GPP-SGSN-MCC-MNC: xxxxx<br />
X-WAP-3GPP-SGSN-ADDRESS: 1.2.3.4<br />
X-WAP-3GPP-IMSI: xxxxxxxxxxxxxx<br />
X-WAP-3GPP-RAT-TYPE: 1 or 2 (1 = 3G, 2 = EDGE/GPRS) X-WAP-Client-IP: 7.8.9.0</span></span></p>
<p><span style="font-family: Arial, sans-serif;">The list of content provider hosts and/or domains that receive this basic HHE is configurable. Host names can be listed here explicitly, such as mmsc.operator.com, or all hosts within a particular domain can be included by adding the domain name to the list prefaced with a “.”, fo</span><span style="font-family: Arial, sans-serif;">r example .operator.com means that all hosts within the operator.com domain would receive basic HHE (for example, both www.operator.com and mmsc.operator.com).</span></p>
<p><span style="font-family: Arial, sans-serif;"> </span></p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2011/02/hhebasic.png"><img class="alignnone size-full wp-image-13083" title="Basic HHE" src="http://c7143.r43.cf2.rackcdn.com/2011/02/hhebasic.png" alt="Basic HHE" width="456" height="521" /></a></p>
<p><span style="font-family: Arial, sans-serif;">In many instances, it is useful to provide similar identifying information to content provider partners, but without divulging the subscriber MSISDN.  A new feature of the NowWAP Proxy 2011 release is to provide Aliased HTTP Header Enrichment to meet this need.</span></p>
<p><span style="font-family: Arial, sans-serif;">Content provider hosts and domains that are to receive Aliased HHE are configured with a list that is similar, but separate from, the existing Basic HHE content provider domain/host list that is configured on the “MSISDN” page of the NowWAP configuration program.</span></p>
<p><span style="font-family: Arial, sans-serif;">NowWAP does not directly generate the Aliased HHE. Instead, it provides an HTTP callback interface to allow the customer to generate customized Aliased HHE that is appropriate for the target operator environment.</span></p>
<p><span style="font-family: Arial, sans-serif;">A customer-defined Aliased HHE callback interface is defined to NowWAP by adding the following configuration setting to the [WAPGW]  header of WAPGW.INI:  HHECallbackURL=http://server/path</span></p>
<p><span style="font-family: Arial, sans-serif;">When the HHE callback is configured in NowWAP, each time NowWAP receives a RADIUS notification of a new user connecting, NowWAP will make an HTTP GET request to the HHE callback to request HHE/alias information for the user account.</span></p>
<p><span style="font-family: Arial, sans-serif;">The HHE callback request will include MSISDN, and other RADIUS information, if available. </span></p>
<p><span style="font-family: Arial, sans-serif;">Example:</span></p>
<p><span style="font-family: Arial, sans-serif;"><br />
</span><span style="font-family: 'Courier New', monospace;" class="notranslate"><span style="font-size: small;">http://server/path?PhoneNumber=xxxx<br />
&amp;UserName=xxxxx<br />
&amp;AssignedIP=a.b.c.d<br />
&amp;3GPP-SGSN-MCC-MNC=xxxxx<br />
&amp;3GPP-SGSN-ADDRESS=xx<br />
&amp;3GPP-IMSI=xxxxxxxxxxxxxxx<br />
&amp;3GPP-RAT-TYPE=x</span></span></p>
<p><span style="font-family: Arial, sans-serif;">(Line breaks have been inserted in the URL above for readability only.  There are no line breaks in the actual HHE callback URL.)</span></p>
<p><span style="font-family: Arial, sans-serif;">The <span class="notranslate">&#8220;PhoneNumber&#8221;</span> (MSISDN) and &#8220;AssignedIP&#8221; (X-WAP-Client-IP) parameters will always be present.  The 3GPP parameters would be present only if they were presented to NowWAP by the RADIUS feed.</span></p>
<p><span style="font-family: Arial, sans-serif;">The HHE callback response should be a text response containing enriched HTTP headers to be included in all requests that are processed on behalf of this device.  Example:</span></p>
<p><span style="font-family: 'Courier New', monospace;" class="notranslate"><span style="font-size: small;">HTTP/1.1 200 OK<br />
Content-Type: text/plain</span></span></p>
<p><span style="font-family: 'Courier New', monospace;" class="notranslate"><span style="font-size: small;">X-MSISDN-Alias: xxxxxxxxxxxxxxxxxxxxx<br />
X-HHE-Extra-Info: xxxxxxxxxxxxxxxxxxxxx</span></span></p>
<p><span style="font-family: Arial, sans-serif;">As NowWAP processes subsequent requests, if the request is directed to a content domain that receives Aliased HHE, these headers would be included in the HTTP request  that is forwarded to the content provider.  (Basic HHE would not be forwarded to these content providers.)</span></p>
<p><span style="font-family: Arial, sans-serif;">The list of content domains to receive Aliased HHE is defined in the WAPGW.INI file, under the [WAPGW] header, using keyword value pairs of the following format:</span></p>
<p><span style="font-family: Arial, sans-serif;">IncludeHHEForDomain1=.domain1.name<br />
IncludeHHEForDomain2=host.domain2.name<br />
IncludeHHEForDomain3=host.domain3.name</span></p>
<p><span style="font-family: Arial, sans-serif;">Host names can be listed explicitly, such as www.contentprovider.com, or all hosts within a particular domain can be included by adding the domain name to the list prefaced with a “.”, for example .contentprovider.com means that all hosts within the contentprovider.com domain would receive aliased HHE (for example, both www.contentprovider.com and www2.contentprovider.com).</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowwap-and-http-header-enrichment/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send SMS from PHP Script (Updated)</title>
		<link>http://www.nowsms.com/send-sms-from-php-script-updated</link>
		<comments>http://www.nowsms.com/send-sms-from-php-script-updated#comments</comments>
		<pubDate>Tue, 25 Jan 2011 20:27:42 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[sendsms.php]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13053</guid>
		<description><![CDATA[Quite a few people use the PHP script that Bryce provided 7-1/2 years ago for sending an SMS message through NowSMS from PHP. Over the years, we&#8217;ve added a few comments to clarify how the script is to be used.  However, one of the most limiting things about the script is that it doesn&#8217;t support [...]]]></description>
			<content:encoded><![CDATA[<p>Quite a few people use the PHP script that Bryce provided 7-1/2 years ago for <a href="http://www.nowsms.com/discus/messages/1/867.html">sending an SMS message through NowSMS from PHP</a>.</p>
<p>Over the years, we&#8217;ve added a few comments to clarify how the script is to be used.  However, one of the most limiting things about the script is that it doesn&#8217;t support any of the additional <a href="http://www.nowsms.com/doc/submitting-sms-messages/url-parameters">SMS URL parameters</a> supported by NowSMS.</p>
<p>Among other uses, these parameters might be needed in order to <a href="http://www.nowsms.com/doc/configuring-smsc-connections/sms-message-routing-logic">specify the SMSC Route to be used for sending the message</a>, or specifying a sender address.</p>
<p>An updated SendSMS.php script, which supports additional URL parameters is available at <a href="http://www.nowsms.com/download/sendsms2-php.txt">http://www.nowsms.com/download/sendsms2-php.txt</a>.</p>
<p>In the original script, we provided the following example for calling the SendSMS PHP function:</p>
<pre class="notranslate">$x   = SendSMS("127.0.0.1", 8800, "username", "password", "+44999999999", "Test Message");</pre>
<p>The new script supports the above format, but can also support additional optional parameters, specified in &#8220;parameter=value&#8221; format.  For example, the following example specifies an explicit outbound SMSC route and a sender address to be used.</p>
<pre class="notranslate">$x   = SendSMS("127.0.0.1", 8800, "username", "password", "+44999999999", "Test Message",
 "SMSC<span class="notranslate">Route=</span>Test", "Sender=1234");</pre>
<p>For additional usage information regarding this PHP script, please refer to the original discussion of sendsms.php at <a href="http://www.nowsms.com/nowsms-php-example-send-sms-text-message">http://www.nowsms.com/nowsms-php-example-send-sms-text-message</a>.</p>
<p>For more information about NowSMS URL parameters, see <a href="http://www.nowsms.com/doc/submitting-sms-messages/url-parameters">http://www.nowsms.com/doc/submitting-sms-messages/url-parameters</a>.</p>
<p>The updated SendSMS.php script is available at <a href="http://www.nowsms.com/download/sendsms2-php.txt">http://www.nowsms.com/download/sendsms2-php.txt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/send-sms-from-php-script-updated/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone MMS Message Send Failure on GPRS and EDGE</title>
		<link>http://www.nowsms.com/iphone-mms-message-send-failure-on-gprs-and-edge</link>
		<comments>http://www.nowsms.com/iphone-mms-message-send-failure-on-gprs-and-edge#comments</comments>
		<pubDate>Wed, 12 Jan 2011 22:31:48 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[accounting callbacks]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[operator MMSC]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=13039</guid>
		<description><![CDATA[We&#8217;ve recently investigated a problem reported by a NowSMS MMSC customer where iPhone 4 users were reporting a high volume of failed MMS message sending. Our investigation suggests that this problem is related to a software issue in the iPhone MMS client, when operating outside of 3G coverage.  There is no problem in the operation [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve recently investigated a problem reported by a NowSMS MMSC customer where iPhone 4 users were reporting a high volume of failed MMS message sending.</p>
<p>Our investigation suggests that this problem is related to a software issue in the iPhone MMS client, when operating outside of 3G coverage.  There is no problem in the operation of either the <a href="http://www.nowsms.com/productinfo/now-wap-gateway">NowWAP Gateway</a> or the <a href="http://www.nowsms.com/productinfo/mmsc">NowSMS MMSC</a>.</p>
<p>(Note:  Problems with accounting callbacks and routing callbacks in the NowSMS MMSC can cause similar sporadic problems if the web server hosting the callbacks has problems with HTTP Keep-Alive sockets.  To rule out this being a problem, we recommend editing MMSC.INI, and under the [MMSC] header, add RoutingKeepAlive<span class="notranslate">=No</span> and AccountingKeepAlive<span class="notranslate">=No</span>.)</p>
<p>The iPhone appears to have an overall maximum timeout for sending an MMS message.  If it cannot send the entire content of the MMS message within this timeout period, it aborts the attempt and returns an error indication to the sender.   It is unclear exactly how the iPhone determinates this timeout value, as our tests suggest that it is somewhat variable and ranges between 2-1/2 and 3-1/2 minutes.</p>
<p>If an MMS message cannot be transmitted within this timeout period, the iPhone gives up, and automatically initiates a second attempt, and if that attempt fails with a similar timeout error, it returns the dreaded red &#8220;!&#8221; to indicate that the message sending failed.  If this type of timeout error has occurred, the red &#8220;!&#8221; will be returned after 5 to 7 minutes.<br />
<a href="http://c7143.r43.cf2.rackcdn.com/2011/01/iphonemmsfail.png"><img class="alignleft size-medium wp-image-13040" title="iphonemmsfail" src="http://c7143.r43.cf2.rackcdn.com/2011/01/iphonemmsfail-200x300.png" alt="iPhone MMS Sending Failure" width="200" height="300" /></a>This problem is not likely to occur in 3G or HSPA coverage areas, but is more likely to happen in 2.5G coverage areas, especially areas that only have GPRS, but not EDGE, or areas with weaker signal strength, because the data upload speeds are slower, and it takes longer to transmit a message.</p>
<p>It appears that iOS 4.x will generally try to send larger image sizes in MMS messages than previous releases.  During testing, we found that one of the test images that we were sending, taken with the iPhone 4 camera, was 950KB in size.   <strong><em>In order to send a 950KB message in 2 minutes or less, the network must be able to provide an average upload speed of 80 Kbps, which is possible with a strong EDGE class 10 connection (max possible upload speed is 118Kbps), but not with GPRS (max possible upload speed is 40Kbps)</em></strong>.</p>
<p>Note:  When the iPhone is connected with EDGE, it should &#8220;E&#8221; next to the operator name, instead of &#8220;3G&#8221;.   If the phone is connected with GPRS only, a dot is shown instead.</p>
<p>Depending on operator configuration, the iPhone advertises itself to the MMSC as supporting a maximum message size of 1MB (UAProf = <a href="http://www.apple.com/mms/uaprof.rdf">http://www.apple.com/mms/uaprof.rdf</a>) or 2MB (UAProf = <a href="http://iphonemms.apple.com/iphone/uaprof-2MB.rdf">http://iphonemms.apple.com/iphone/uaprof-2MB.rdf</a>)</p>
<p>To rule out any issues potentially related to either NowWAP or the NowSMS MMSC, these same timeout values were observed testing standard issue operator locked iPhones on O2 in the UK and AT&amp;T in the USA with 3G mode disabled on the phone.</p>
<p>Note that in jailbroken iPhones, it is possible to configure a &#8220;MMS Max Message Size&#8221; in the &#8220;Cellular Data Network&#8221; settings.  We experimented with lowering this value, however it appeared that when this value was lowered, if a message was going to exceed this size value, the iPhone would quickly fail the message with a red &#8220;!&#8221;, without actually attempting to send the message.  (Based upon these brief tests, it is not clear what algorithm the iPhone uses to scale down a picture before sending, as the 950KB picture that we referenced above actually has a native size of 2.7MB, and was taken with HDR enabled.)</p>
<p>The bottom line appears to be that sending pictures via MMS will frequently fail if the iPhone 4 is operating in a 2.5G (&#8220;E&#8221; for EDGE or a dot for GPRS) environments.  The problem is due to a sending timeout implemented in the MMS client software in the device.  This problem can only be resolved by changing this timeout in the MMS client software implementation, or changing the MMS client to have an option to send lower resolution pictures when operating in 2.5G environments.  There does not appear to be any solution that can be implemented on the mobile operator side.<br />
<em></em></p>
<p><em><strong>To avoid frustration, it is recommended that users avoid sending picture or video messages when operating outside of a 3G coverage area.</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/iphone-mms-message-send-failure-on-gprs-and-edge/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Shift Tables &#8211; National Language SMS in 160 characters without Unicode</title>
		<link>http://www.nowsms.com/shift-tables-national-language-sms-in-160-characters-without-unicode</link>
		<comments>http://www.nowsms.com/shift-tables-national-language-sms-in-160-characters-without-unicode#comments</comments>
		<pubDate>Thu, 09 Dec 2010 09:00:05 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[160 characters]]></category>
		<category><![CDATA[long SMS]]></category>
		<category><![CDATA[SMS shift table]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=7499</guid>
		<description><![CDATA[The fact that messages that contain characters outside of the GSM character set require Unicode encoding and are limited to 70 characters per message instead of the expected 160 character limit, is a frustrating limitation for many languages. Messages longer than 70 characters can, of course, be sent, but they are sent as multipart (segmented) messages, [...]]]></description>
			<content:encoded><![CDATA[<p>The fact that messages that contain characters outside of the <a href="http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit">GSM character set</a> require Unicode encoding and are limited to 70 characters per message instead of the expected 160 character limit, is a frustrating limitation for many languages.</p>
<p>Messages longer than 70 characters can, of course, be sent, but they are sent as multipart (segmented) messages, and reassembled by the receiving client.  If a message that contains Unicode characters is longer than 70 characters, it is broken into segments of 67 characters for sending.  To send a 160 character message requires 3 SMS messages if the message contains characters that are not part of the GSM character set.</p>
<p>The original GSM protocol was developed in Western Europe, so it includes most Western European characters, plus capital letters in the Greek alphabet in order to facilitate Greek SMS support.  You can view a table of characters in the GSM character set at the following link:  <a href="http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit">http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit</a></p>
<p>A recent posting on the NowSMS Technical Forums discusses recent developments in the 3GPP specifications to add additional national language support to the SMS standard, and eventually overcome these limitations.  For additional discussion of this topic, we recommend joining the discussion at <a href="http://www.nowsms.com/discus/messages/1/69650.html">http://www.nowsms.com/discus/messages/1/69650.html</a>.   The start of this discussion is highlighted below.</p>
<p><strong>Question:</strong></p>
<p><em>I have a question about sending SMS messages using Turkish national characters. Specifically, these characters are a problem:</em></p>
<p><em>Ğ, ğ, Ş, ş, İ, ı, ç (upper case Ç is ok?)</em></p>
<p><em>I can send messages that contain these characters ok, but NowSMS encodes the messages with Unicode. This means if I send a message longer than 70 characters, it costs me to send two or more messages &#8230; instead of normal 160 character limit.</em></p>
<p><em>But in Turkey I have heard that there is a way to send these national characters without forcing the whole message to use Unicode encoding. I do not know how it works, but I have heard that this feature is called a locking shift table. Instead of the standard GSM 7-bit character table, mobile phones in Turkey must support a locking shift table that replaces the GSM characters with national characters for Turkey.</em></p>
<p><em>Can NowSMS support this SMS locking shift table?</em></p>
<p><strong>Response:</strong></p>
<p><em>The fact that messages that contain characters outside of the <a href="http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit">GSM character set</a> require Unicode encoding and are limited to 70 characters per message instead of the expected 160 character limit, is indeed frustrating for many languages.</em></p>
<p><em> </em></p>
<p>The shift tables that you mention are a relatively new development. There is a concept of a locking shift table that replaces the GSM 7-bit character set, and a single shift table which provides additional characters.</p>
<p>You are correct that these shift tables can replace and extend the default GSM 7-bit character set table so that more national characters can fit into a single SMS.</p>
<p>We&#8217;ve received a number of inquiries from handset testing labs about them, but I&#8217;m not sure that they are used in production systems. (Perhaps they are in active use in Turkey as I can see that there was national legislation there that prompted the 3GPP to develop a solution.)</p>
<p>In addition to Turkey, there are shift tables defined for the Spanish and Portuguese languages. These were all added in 3GPP release 8 (3GPP TS <a href="http://www.3gpp.org/ftp/specs/archive/23_series/23.038/">23.038</a> and <a href="http://www.3gpp.org/ftp/specs/archive/23_series/23.040/">23.040</a>), which only started being released in 2008.</p>
<p>The Spanish shift table adds ç, Á, Í, Ó, Ú, á, í, ó, and ú.</p>
<p>The Portuguese shift tables add support for the following national language characters: Á À Â Ã ª á à â ã É Ê é ê Í í Ó Ô Õ º ó ô õ Ú Ü ú ü ` ç ∞</p>
<p>3GPP Release 9 adds 10 shift tables for languages of the Indian subcontinent: Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil , Telugu, and Urdu.</p>
<p><strong><em>Update:  Shift table support is now available in NowSMS.  Additional information and discussion is available at the following link:  <a href="http://www.nowsms.com/discus/messages/1/70000.html">http://www.nowsms.com/discus/messages/1/70000.html</a>.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/shift-tables-national-language-sms-in-160-characters-without-unicode/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WAP Gateway Blocks BlackBerry App World</title>
		<link>http://www.nowsms.com/wap-gateway-blocks-blackberry-app-world</link>
		<comments>http://www.nowsms.com/wap-gateway-blocks-blackberry-app-world#comments</comments>
		<pubDate>Fri, 19 Nov 2010 07:17:07 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[NowWAP]]></category>
		<category><![CDATA[WAP Gateway]]></category>
		<category><![CDATA[WAP Proxy]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=1567</guid>
		<description><![CDATA[It has come to our attention that the default configuration setting for the NowWAP WAP Gateway blocks users from connecting to BlackBerry App World. The reason for this seems to be some unusual communication patterns between the handset and the App World server. The handset attempts to created a tunneled connection to the HTTP port [...]]]></description>
			<content:encoded><![CDATA[<p>It has come to our attention that the default configuration setting for the NowWAP WAP Gateway blocks users from connecting to BlackBerry App World.</p>
<p>The reason for this seems to be some unusual communication patterns between the handset and the App World server. The handset attempts to created a tunneled connection to the HTTP port (80) of the BlackBerry App World server.</p>
<p>Symptoms of the problem include numerous 403 errors for connections to appworld.blackberry.com:80, similar to the WAPGW-yyyymmdd.log entry below:</p>
<pre class="notranslate">10.3.4.63 50373060234 [26/Oct/2010:15:39:45 -0600] "CONNECT appworld.blackberry.com:80" 403 0 "" ""</pre>
<p>The default configuration of NowWAP only allows tunneled connections to the HTTP SSL/TLS port (443).</p>
<p><a href="http://c7143.r43.cf2.rackcdn.com/2010/11/tunnel-nonstandard-ports.png"><img class="alignright size-full wp-image-1569" title="tunnel-nonstandard-ports" src="http://c7143.r43.cf2.rackcdn.com/2010/11/tunnel-nonstandard-ports.png" alt="Tunnel Nonstandard Ports" width="456" height="521" /></a>It is possible to override this default configuration, and allow the connection by applying the following setting on the <strong>&#8220;HTTP&#8221;</strong> page of the NowWAP configuration: <strong>&#8220;Allow SSL/TLS Tunnel to non-standard ports&#8221;</strong>.</p>
<p>Enabling this setting will resolve the problem and allow users to connect to BlackBerry App World.</p>
<p>There are no security concerns involved with enabling this setting. If there are any concerns, they are commercial concerns. Most mobile operators have different APNs that provide different levels of connectivity. The default setting for NowWAP allows only standard web browsing to pass through the proxy. Enabling this setting could allow other applications to function through the proxy by allowing tunnels for other port numbers.</p>
<p>Future versions of NowWAP will include port 80 as an allowed tunneling port to avoid conflicts with the BlackBerry App World service.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/wap-gateway-blocks-blackberry-app-world/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPP Information and Resources</title>
		<link>http://www.nowsms.com/smpp-information</link>
		<comments>http://www.nowsms.com/smpp-information#comments</comments>
		<pubDate>Fri, 12 Nov 2010 18:57:36 +0000</pubDate>
		<dc:creator>brett</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=1523</guid>
		<description><![CDATA[SMPP (Short Message Peer-to-Peer) Protocol is an industry standard protocol that is used for exchanging SMS messages between peer entities.  In SMPP terminology, two types of entities are defined, a Short Message Service Centre (SMSC), and an External Short Messaging Entity (ESME). In simplistic terms, an SMSC manages SMS messages for a mobile operator network, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>SMPP (Short Message Peer-to-Peer) Protocol</strong> is an industry standard protocol that is used for exchanging SMS messages between peer entities.  In SMPP terminology, two types of entities are defined, a <strong>Short Message Service Centre (SMSC)</strong>, and an <strong>External Short Messaging Entity (ESME)</strong>.</p>
<p>In simplistic terms, an <strong>SMSC</strong> manages SMS messages for a mobile operator network, delivering SMS messages to mobile phones.</p>
<p>An <strong>ESME</strong> is any other type of entity that wants to exchange SMS messages with these mobile subscribers.  In other words, it is any type of application or service that wants to be able to send and/or receive SMS messages. These applications or services are also often referred to as Value Added Services (VAS) or Value Added Service Providers (VASP).</p>
<p>The SMPP protocol is designed to facilitate the exchange of these SMS messages over the standard TCP/IP protocol.</p>
<p>SMPP is designed to be fast and efficient to facilitate high volume reliable message exchange.</p>
<p>This page is designed to be a quick resource for more information on SMPP.  The following links provide more detailed information on specific issues or considerations regarding SMPP (especially for users of NowSMS):</p>
<ul>
<li><a href="http://www.nowsms.com/smpp-3-4-protocol-specification-archive"><strong>SMPP Version 3.4 Protocol Specification</strong></a> &#8211; This is the version of the SMPP specification that is in widespread use.  There is a later version 5.0 specification that was defined, but it did not have significant market acceptance, and the group that defined the later version specification has been disbanded.</li>
<li><a href="http://www.nowsms.com/discus/messages/1/24856.html"><strong>SMPP Version 3.3 Protocol Specification</strong></a> &#8211; A few mobile operators still use old SMSCs that implement the version 3.3 specification.  They can be challenging to work with as some areas of the version 3.3 specification are even more vague than version 3.4.</li>
<li><a href="http://www.nowsms.com/doc/configuring-smsc-connections/smpp-smsc"><strong>Connecting to an SMPP SMSC</strong></a> &#8211; Connecting to an SMSC using SMPP can be confusing because of unusual terminology like TON, NPI, and service type.  It can also be confusing because there are many key areas of the SMPP specification that are vague, and different providers have decided to implement things different ways, especially with regard to character set encoding.  This link explains how to configure an SMSC connection in NowSMS, and includes a discussion of some of the terminology and configuration options.</li>
<li><a href="http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit"><strong>SMPP Character Set Issues: Long Text Messages and Unicode</strong></a> &#8211; Some SMPP implementations want you to submit a long message in a single submission, others require you to perform message segmentation based upon the message type (sometimes using TLV parameters, sometimes using GSM UDH).  Some SMPP implementations use the GSM character set, others use iso-8859-1.</li>
<li><a href="http://www.nowsms.com/ton-and-npi-settings-for-smpp-and-ucpemi"><strong>What are TON and NPI Settings?</strong></a> &#8211; TON (Type of Number) and NPI (Numbering Plan Indicator) are two of the settings that can easily give you a headache.  This link provides more information on these settings.</li>
<li><a href="http://www.nowsms.com/tag/smppoptions"><strong>Optional TLV Parameters</strong></a> &#8211; The SMPP Protocol is extensible in that it allows providers to add their own additional parameters, which are known as TLV parameters, so named because of the format of these parameters &#8230; Tag, Length, then Value.   Some TLV parameters are defined in the specification, but are optional and are sometimes used and sometimes not used.  Other parameters are provider specific.  This link helps you learn more about TLV parameters by explaining how to configure NowSMS to support custom TLV parameters for a provider.</li>
<li><a href="http://www.nowsms.com/smpp-error-code-reference"><strong>SMPP Error Code Reference</strong></a> &#8211; What do the error numbers or obscure terms like ESME_RTHROTTLED mean?  Use this link as a quick reference.</li>
<li><a href="http://www.nowsms.com/smpp-error-code-handling-in-nowsms"><strong>SMPP Error Handling in NowSMS</strong></a> &#8211; This link explains how NowSMS handles different SMPP errors, and how can this behaviour be modified.</li>
<li><a href="http://www.nowsms.com/smsc-speed-limits"><strong>Limiting the Speed of an SMPP Connection</strong></a> &#8211; SMS providers limit the speeds at which they will accept messages in order to optimise their resource allocation.  If you try to send faster than your provider allows, you may encounter unexpected errors and delays.</li>
<li><a href="http://www.nowsms.com/smpp-connection-types-sender-receiver-transceiver"><strong>Understanding SMPP Connection Types</strong></a> &#8211; Are you both sending and receiving messages?  Does your provider expect you to establish separate sender and receiver connections, or do they expect you to connect as a single connection transceiver?</li>
<li><a href="http://www.nowsms.com/using-nowsms-as-an-smpp-server-for-another-application"><strong>Using NowSMS as an SMPP Server for Other Applications</strong></a> &#8211; One of the more common uses of NowSMS is to use NowSMS as an SMPP server.  Other clients or applications connect to NowSMS as their SMPP Server, and NowSMS chains to one or more other SMSCs for sending and receiving SMS messages, possibly using SMPP, or possibly using other protocols.</li>
<li><a href="http://www.nowsms.com/smpp-async-mode"><strong>SMPP Asynchronous Mode</strong></a> &#8211; If you&#8217;re sending faster than 10 SMS messages per second, you  need to understand SMPP asynchronous mode.</li>
<li><a href="http://www.nowsms.com/tag/smpp"><strong>NowSMS Tech Support Blog</strong></a> &#8211; This link will display SMPP related posts on the NowSMS Tech Support Blog.</li>
<li><a href="http://www.nowsms.com/messages"><strong>NowSMS Technical Forum / Discussion Board</strong></a> &#8211; Additional discussions of SMPP related topics and issues take place on the NowSMS Technical Forum / Discussion Board.  Feel free to search these discussions and/or post questions.</li>
</ul>
<h2>One more thing &#8230;</h2>
<p>As I wrote this post, I recalled one other bit of SMPP terminology that can drive new users crazy &#8230; <strong>MO</strong> and <strong>MT</strong> messages.  Some people like to throw these terms around just to pretend they know what they are talking about.</p>
<p><strong>MO &#8211; Mobile Originated</strong> message &#8230; in other words, a message that has been sent by a mobile phone subscriber.</p>
<p><strong>MT &#8211; Mobile Terminated</strong> message &#8230; in other words, a message that is destined to be delivered to a mobile phone subscriber.</p>
<p><em>When you are an application provider that is connecting to an SMS service provider, you receive MO messages, and you send MT messages.</em></p>
<p>If you would like more information on interfacing your application to NowSMS for SMS message processing, please refer to our API guide at:  <a href="http://www.nowsms.com/faq/apis-apis-apis-more-apis">http://www.nowsms.com/faq/apis-apis-apis-more-apis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-information/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SMPP Asynchronous Mode</title>
		<link>http://www.nowsms.com/smpp-async-mode</link>
		<comments>http://www.nowsms.com/smpp-async-mode#comments</comments>
		<pubDate>Tue, 09 Nov 2010 17:46:44 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>
		<category><![CDATA[SMPP Async Mode]]></category>
		<category><![CDATA[SMPP Server]]></category>

		<guid isPermaLink="false">http://www.nowsms.com/?p=1338</guid>
		<description><![CDATA[One of the biggest limitations to SMPP performance is protocol implementations that do not support SMPP asynchronous mode, or to state it more correctly, do not take advantage of the speed boost that is possible with SMPP asynchrnous mode. SMPP Synchronous Mode = One Message at a Time In SMPP Synchrnous mode, each side of [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">
<div id="_mcePaste">
<p>One of the biggest limitations to SMPP performance is protocol implementations that do not support SMPP asynchronous mode, or to state it more correctly, do not take advantage of the speed boost that is possible with SMPP asynchrnous mode.</p>
<h2>SMPP Synchronous Mode = One Message at a Time</h2>
<p>In SMPP Synchrnous mode, each side of the SMPP client has only one outstanding transaction active at a time.  For example, when the client is submitting a message <em>(SMPP submit_sm PDU)</em>, it waits to receive an acknowledgement from the server that the server has received the message <em>(SMPP submit_sm_resp PDU)</em> before the next message is submitted.</p>
<p>Depending on the network latency between SMPP client and server <em>(e.g., use the round-trip time for a ping as a starting point)</em>, it may be difficult to exceed anywhere between 3 messages per second and 20 messages per second unless both client and server are located on the same local area network.  The exact speed limit will vary depending on a combination of network latency, and how much processing is involved for the server to accept the message and generate the acknowledgement back to the client.  Server load at that precise moment in time can also be a significant performance limiting factor.</p>
<p>With an average 50ms latency between client and server, it is not possible to exceed 20 messages per second in synchronous mode, and that is if the SMPP server is quick and immediately acts on the received messages, and is extremely efficient in returning its acknowledgement.</p>
<p>An average latency of 100ms lowers this limit to 10 messages per second.</p>
<p>In the real world, we&#8217;ve seen plenty of SMS service provider connections that top out at 3 to 5 messages per second using synchronous mode.</p>
<h2>SMPP Asynchronous Mode = No wait Between Messages</h2>
<p>SMPP Asynchrnous mode is the solution to this performance dilemma.  Each side of the connection is free to send multiple transactions without waiting for a response to the first transaction.  For example, a client may sumbit multiple messages to the SMSC <em>(SMPP submit_sm PDU)</em> before it receives any acknowledgments back <em>(SMPP submit_sm_resp PDU)</em>.</p>
<p>SMPP Async mode is a windowing protocol.  Most SMPP implementations will allow you to tune performance by specifying a maximum window size <em>(maximum number of outstanding transactions before requiring a response to at least one of the outstanding transactions)</em>.  In NowSMS, when configuring an SMPP SMSC connection, this is specified under the &#8220;Advanced Settings&#8221; for the properties of the SMPP connection.  Look for &#8220;Enable SMPP Async Mode (windowing)&#8221; and the &#8220;Window Size (packets)&#8221; parameter.</p>
<p>SMPP Async mode sounds fantastic &#8230; so why don&#8217;t we use it all the time?</p>
<p>Well, the truth is that a lot of typical SMPP connections simply aren&#8217;t that fast.  There&#8217;s a lot of SMPP software out there that can get tripped up by async mode.  So it&#8217;s safest to start with synchronous mode, and verify that async mode can be supported.</p>
<p>There is also an issue that most SMS service provider connections have strict speed limits that clients cannot exceed. This is done by providers to help them manage and control the overall throughput of their entire system.  If you submit messages faster than your SMS provider will allow, you will end up with throttling errors that end up significantly reducing your overall throughput.  So in most cases, when using async mode, it is very important to know the SMS speed limit imposed by your SMS provider.</p>
<p>The article SMSC Speed Limits (<a href="/smsc-speed-limits">http://www.nowsms.com/smsc-speed-limits</a>) explains how to configure a speed limit for an SMPP <em>(or other type of SMSC)</em> connection with the <strong>SMSCSendLimit=x/y</strong> setting in the <strong>[SMPP - server:port]</strong> section of <strong>SMSGW.INI</strong>.</p>
<p>This speed limit setting is designed to work very well with SMPP Async mode to enable NowSMS to send messages as fast as your SMS provider connection <em>(and NowSMS license)</em> will allow.  <em>(x/y = x messages every y seconds, e.g., 58/1 = 58 messages per second, 125/2 = 125 messages every 2 seconds.)</em></p>
<p>It is also worth giving some guidance on window sizes.  Our general recommendation is for the window size to approximate the target number of messages per second.  This is a recommendation only, and not a requirement.  Some SMSCs may react negatively to larger window sizes if they are under stress, so determining an optimal setting may require experimentation and monitoring of log files.</p>
<h2>SMPP Async Mode When NowSMS is the SMPP Server</h2>
<p>Thus far, all of our discussion of SMPP Async Mode has focused on NowSMS as an SMPP client, connecting to an SMPP server to send messages.</p>
<p>What if NowSMS is the SMPP server?  Is it possible to use async mode to speed the pace of delivering SMS messages <em>(especially delivery reports)</em> to a connected client?</p>
<p>Historically, the SMPP implementation in NowSMS has only made use of async mode for connections where NowSMS is the client <em>(NowSMS initiates the SMPP bind)</em>.</p>
<p>SMPP Async Mode support for NowSMS as an SMPP server has just been added in the v2010.11.04 update which is available for download at <a href="http://www.nowsms.com/download/nowsmsupdate.zip">http://www.nowsms.com/download/nowsmsupdate.zip</a>.  <em>(Note: This update link may be reused by a newer version in the future.  Newer versions will also include this functionality.)</em></p>
<p>SMPP Async Mode for the SMPP Server is not automatically enabled by default, as it may cause problems with some SMPP clients.</p>
<p>To enable SMPP Async Mode for all SMPP clients connecting to the NowSMS SMPP Server <em>(not recommended for most installations)</em>, add <strong>SMPPServerAsyncWindowSize=##</strong> to the <strong>[SMSGW]</strong> section of <strong>SMSGW.INI</strong>. <em>(## is the SMPP Async window size.)</em> If this setting is not present, SMPP Async Mode is not enabled by default for the SMPP Server, but may be enabled for select client connections.</p>
<p>To individually enable or disable SMPP Async Mode for selected clients, add an <strong>[SMPPServerAsyncWindowSize]</strong> section to <strong>SMSGW.INI</strong>, and specify <strong>AccountName=##</strong> to set the async window size for a specific SMS User account with a user name of &#8220;AccountName&#8221;.  <em>(A window size of 0 specifies that async mode should be disabled for that account.)</em></p>
<p>This setting is only recommended for situations where it is necessary to improve the performance of delivering messages to an SMPP client.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-async-mode/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowSMS/MMS API Information</title>
		<link>http://www.nowsms.com/now-smsmms-api-information</link>
		<comments>http://www.nowsms.com/now-smsmms-api-information#comments</comments>
		<pubDate>Thu, 29 Jul 2010 16:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=135</guid>
		<description><![CDATA[The primary API for sending and receiving SMS and MMS messages with NowSMS is HTTP-based. Because the API is HTTP based, applications that wish to send or receive messages via NowSMS do not have to run on the same physical server, they can interface with NowSMS over a network. This page contains links to additional [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Times New Roman'; font-size: medium;"> </span></p>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;">The primary API for sending and receiving SMS and MMS messages with NowSMS is HTTP-based. Because the API is HTTP based, applications that wish to send or receive messages via NowSMS do not have to run on the same physical server, they can interface with NowSMS over a network.</p>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;">This page contains links to additional information that describes the raw HTTP interface, as well as links to example scripts for PHP, Java and command-line interfacing with NowSMS.</p>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;">Note that in addition to these APIs, NowSMS also supports the SMPP protocol, allowing SMS clients to connect to <a class="descriptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/using-nowsms-as-an-smpp-server-for-another-application">NowSMS as an SMPP server</a> for both sending and receiving SMS messages. For MMS clients, <a class="descriptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/sending-mms-messages-with-nowsms">NowSMS also supports the MM1, EAIF, MM3 (SMTP), MM4 and MM7 protocols</a> for both sending and receiving MMS messages.</p>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<p><span class="MainText" style="font-size: 85%; color: #696969; text-decoration: none; font-family: verdana, arial;"><strong>HTTP Protocol Information </strong></span></p>
<ul>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/submitting-sms-messages/sending-sms-text-messages">Sending SMS Text Messages over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/submitting-sms-messages/sending-wap-push-messages">Sending WAP Push Messages over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/advanced-configuration-settings/nowsms-as-a-wap-push-proxy-gateway">Sending WAP Push Messages using PAP over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/submitting-sms-messages/url-parameters">NowSMS HTTP URL Parameter Reference</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/sending-mms-messages-with-nowsms">Sending MMS Messages over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/2-way-sms-support">2-Way: Receiving SMS Messages over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/2-way-mms-support">2-Way: Receiving MMS Messages over HTTP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=2-way+SMS">Search the NowSMS Web Site for 2-Way SMS</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=2-way+MMS">Search the NowSMS Web Site for 2-Way MMS</a></p>
</li>
</ul>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<p><span class="MainText" style="font-size: 85%; color: #696969; text-decoration: none; font-family: verdana, arial;"><strong>PHP Scripts for Sending SMS &amp; MMS</strong></span></p>
<ul>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/nowsms-php-example-send-sms-text-message">Sending SMS Text Messages with PHP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/nowsms-php-example-send-mms-message">Sending MMS Messages with PHP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/send-oma-client-provisioning-ota-xml-via-php">Sending OMA Client Provisioning Messages with PHP</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/discus/messages/1/4520.html">2-Way: PHP Examples for Receiving SMS</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/receiving-mms-messages-with-a-php-script-http-file-upload-post">2-Way: Receiving MMS with a PHP Script</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/tag/php">PHP Related Postings on the Technical Blog</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=PHP">Search the NowSMS Web Site for PHP</a></p>
</li>
</ul>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<p><span class="MainText" style="font-size: 85%; color: #696969; text-decoration: none; font-family: verdana, arial;"><strong>Java Examples for Sending SMS &amp; MMS</strong></span></p>
<ul>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/nowsms-java-example-send-sms-message">Sending SMS Messages from Java</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/nowsms-java-example-send-wap-push">Sending WAP Push Messages from Java</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/nowsms-java-example-send-mms-message">Sending MMS Messages from Java</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/tag/java">Java Related Postings on the Technical Blog</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=Java">Search the NowSMS Web Site for Java</a></p>
</li>
</ul>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<p><span class="MainText" style="font-size: 85%; color: #696969; text-decoration: none; font-family: verdana, arial;"><strong>.NET Examples for Sending SMS &amp; MMS</strong></span></p>
<ul>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/submitting-mms-messages/send-mms-message-with-vb-net">Sending MMS Messages from VB .NET</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/doc/submitting-mms-messages/send-mms-message-with-c-net">Sending MMS Messages from C# .NET</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/tag/net">.NET Related Postings on the Technical Blog</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=.NET">Search the NowSMS Web Site for .NET</a></p>
</li>
</ul>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<p><span class="MainText" style="font-size: 85%; color: #696969; text-decoration: none; font-family: verdana, arial;"><strong>Command Line Interface for Sending SMS &amp; MMS</strong></span></p>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><strong>Note:</strong> The Command Line Interface is particularly useful because you can easily spawn a command line script to interface with NowSMS.</p>
<ul>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/sending-sms-from-command-line">Sending SMS Messages</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/sending-wap-push-and-binary-sms-from-the-command-line">Sending WAP Push and Binary SMS Messages</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/sending-mms-from-the-command-line">Sending MMS Messages</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/send-oma-client-provisioning-ota-xml-settings-from-the-command-line">Sending OMA Client Provisioning Messages</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/tag/command-line-interface">Command Line Interface Related Postings on the Technical Blog</a></p>
</li>
<li>
<p class="description" style="font-size: 12px; color: #565656; line-height: 1.8; font-family: arial, helvetica, verdana; text-align: justify;"><a class="desciptionLink" style="font-size: 11px; color: #006699; line-height: 1.8; font-family: verdana, arial; font-weight: bold; text-decoration: underline;" href="http://www.nowsms.com/?s=%22command+line+interface%22">Search the NowSMS Web Site for Command Line Interface</a></p>
</li>
</ul>
<table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#CCCCCC">
<tbody>
<tr>
<td height="1"></td>
</tr>
</tbody>
</table>
<div><span style="font-family: 'Times New Roman';"><span style="font-size: medium;"><span style="color: #565656; line-height: 21px; font-family: arial, helvetica, verdana; font-size: 12px;">In the future, additional API information may be available at the following link:  <a href="http://www.nowsms.com/support/api.htm">http://www.nowsms.com/support/api.htm</a></span></span></span></div>
<div><span style="font-family: arial, helvetica, verdana; font-size: 100%; color: #565656;"><span style="line-height: 21px; font-size: 12px;"><br />
</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/now-smsmms-api-information/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPP Receipt Message ID Tracking Over Multiple Connections</title>
		<link>http://www.nowsms.com/smpp-receipt-message-id-tracking-over-multiple-connections</link>
		<comments>http://www.nowsms.com/smpp-receipt-message-id-tracking-over-multiple-connections#comments</comments>
		<pubDate>Tue, 18 May 2010 17:26:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[delivery receipts]]></category>
		<category><![CDATA[SMPP]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=133</guid>
		<description><![CDATA[One of the standard capabilities of NowSMS is the automatic mapping of receipt message IDs when routing messages to an upstream SMSC connection. The reasoning/logic is simple. When NowSMS accepts a message from a client, NowSMS needs to assign an ID to the message. When the message gets routed to an upstream SMSC, that SMSC [...]]]></description>
			<content:encoded><![CDATA[<p>One of the standard capabilities of NowSMS is the automatic mapping of receipt message IDs when routing messages to an upstream SMSC connection.
<div></div>
<div>The reasoning/logic is simple.  When NowSMS accepts a message from a client, NowSMS needs to assign an ID to the message.</div>
<div></div>
<div>When the message gets routed to an upstream SMSC, that SMSC will assign a new message ID.</div>
<div></div>
<div>NowSMS saves the message ID assigned by the upstream SMSC, so that if a delivery receipt message is received, NowSMS can translate the upstream message ID back to the NowSMS assigned message ID before it is delivered back to the client that submitted the message to NowSMS.</div>
<div></div>
<div>Message IDs are not globally unique.  NowSMS maintains a separate receipt message ID tracking database for each SMSC connection.  For situations where there are multiple connections to the same SMSC <i>(same host name or IP address and port number)</i>, NowSMS automatically shares the same message ID tracking database over all matching connections.  This is because it is possible that the SMSC might return a delivery receipt over any of the connections to that SMSC.</div>
<div></div>
<div>A problem can occur if multliple connections to the same SMSC exist, but with a different host name, IP address or port number.</div>
<div></div>
<div>
<div>There is a way to configure NowSMS to use the same receipt message ID database for multiple connections. This should only be done when you are connecting to an SMSC via multiple IP addresses where you are certain that the SMSC shares a message ID space across the IP addresses. </div>
<div></div>
<div>To enable this, it is necessary to edit the SMSGW.INI file. </div>
<div></div>
<div>Under the [SMPP - server:port] section header for each connection that shares the same receipt message ID namespace, add TrackSMPPReceipts=somename </div>
<div></div>
<div>&#8220;somename&#8221; can be any text that makes sense to you. NowSMS will group together receipt message ID tracking for all connections that share the same TrackSMPPReceipts value.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-receipt-message-id-tracking-over-multiple-connections/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operator MMSC Accounting &#8211; Detecting Roaming Subscribers</title>
		<link>http://www.nowsms.com/operator-mmsc-accounting-detecting-roaming-subscribers</link>
		<comments>http://www.nowsms.com/operator-mmsc-accounting-detecting-roaming-subscribers#comments</comments>
		<pubDate>Wed, 28 Apr 2010 16:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[accounting callbacks]]></category>
		<category><![CDATA[operator MMSC]]></category>
		<category><![CDATA[roaming]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=131</guid>
		<description><![CDATA[One important consideration when charging for MMS messages is whether or not the user is roaming. The NowSMS MMSC can provide this information to the MMS accounting callbacks, however the requisite information is not included in the MMS accounting callbacks by default. Before the MMSC can pass this information to the accounting callbacks, the MMSC [...]]]></description>
			<content:encoded><![CDATA[<p>One important consideration when charging for MMS messages is whether or not the user is roaming.  The NowSMS MMSC can provide this information to the MMS accounting callbacks, however the requisite information is not included in the MMS accounting callbacks by default.
<div></div>
<div>Before the MMSC can pass this information to the accounting callbacks, the MMSC must receive this additional information from the operator network.  The MMSC expects to receive this information via HTTP headers that are inserted into the MMS client request by a WAP gateway or proxy.  This is the same process that the MMSC uses for identifying subscribers, as detailed in the article at <a href="http://www.nowsms.com/support/bulletins/tb-nowsms-002.htm">http://www.nowsms.com/support/bulletins/tb-nowsms-002.htm</a>.</div>
<div></div>
<div>NowWAP 2010 and later include additional RADIUS support for the 3GPP SGSN-MCC-MNC and SGSN-ADDRESS attributes.  If they are present, NowWAP generates additional HTTP headers for these attributes in any requests where it also includes the MSISDN header.  There are no special configuration parameters required in NowWAP to include these parameters, they are always included when present in the Radius Accounting packet.  The HTTP request that is forwarded by NowWAP will include &#8220;X-WAP-3GPP-SGSN-MMC-MNC:&#8221; and &#8220;X-WAP-3GPP-SGSN-ADDRESS:&#8221; headers with the associated values.</div>
<div></div>
<div>The SGSN information identifies the network node to which the subscriber is connected, making it possible to identify whether or not the subscriber is roaming.</div>
<div></div>
<div>It is then possible to configure the MMSC to include these headers in MMS accounting callbacks, when using NowSMS 2009 or later.  To enable this, edit MMSC.INI, and add the following under the [MMSC] header:</div>
<div></div>
<div><span class="Apple-style-span" style="font-size:small;">AccountingExtraHeaders=X-WAP-3GPP-SGSN-MCC-MNC,X-WAP-3GPP-SGSN-ADDRESS</span></div>
<div></div>
<div>When this parameter is present, the MMSC looks for any of the HTTP headers in this comma delimited list and includes them in the MMS accounting callback if they are present.  They are appended to the accounting callback URL like this:</div>
<div></div>
<div><span class="Apple-style-span" style="font-family:'courier new';"><span class="Apple-style-span" style="font-size:small;">&amp;X-WAP-3GPP-SGSN-MCC-MNC=xxxxx&amp;X-WAP-3GPP-SGSN-ADDRESS=1.2.3.4</span></span></div>
<div></div>
<div>
<div>For additional information on MMSC accounting callbacks, please see <a href="http://www.nowsms.com/mmsc-accounting-callbacks-for-billing-and-charging">http://www.nowsms.com/mmsc-accounting-callbacks-for-billing-and-charging</a>.</div>
<div>
<div></div>
<div></div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/operator-mmsc-accounting-detecting-roaming-subscribers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NowSMS and SSL Certificates &#8211; 2048 Bit Key</title>
		<link>http://www.nowsms.com/nowsms-and-ssl-certificates-2048-bit-key</link>
		<comments>http://www.nowsms.com/nowsms-and-ssl-certificates-2048-bit-key#comments</comments>
		<pubDate>Thu, 22 Apr 2010 07:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SSL/TLS]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=130</guid>
		<description><![CDATA[In the last 6 months, many SSL Certificate Authorities (CAs) have made a switch to requiring web servers to use 2048-bit private keys. It is believed that increased computing power will make the commonly used 1024-bit keys possible to break by 2011. There is a side effect in switching to the larger keys that some [...]]]></description>
			<content:encoded><![CDATA[<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">In the last 6 months, many SSL Certificate Authorities (CAs) have made a switch to requiring web servers to use 2048-bit private keys.</p>
<p>It is believed that increased computing power will make the commonly used 1024-bit keys possible to break by 2011. There is a side effect in switching to the larger keys that some old web browsers don&#8217;t support > 1024 bit keys. I can&#8217;t find a good reference that tells me which versions of which browsers, but this is something to keep in mind.</p>
<p>We&#8217;ve rebuilt the NowSMS SSL library to generate 2048 bit keys when generating a new certificate signing request (CSR). An update can be downloaded at </span></span><a href="http://www.nowsms.com/download/smsssl.zip" target="_blank"><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">http://www.nowsms.com/download/smsssl.zip</span></span></a><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">.</p>
<p>To install the update, stop the NowSMS services and exit NowSMS.</span></span></span></div>
<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></span></div>
<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">Replace the existing SMSSSL.DLL in the Program Files\NowSMS directory with this version.</span></span></span></div>
<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;"><br /></span></span></span></div>
<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">If you have not previously requested a signed certificate from a certificate authority, simply go to the SSL/TLS page of the NowSMS configuration, and select &#8220;Generate Server Certificate&#8221;.</span></span></span></div>
<div><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;"><br />Unfortunately, the change to 2048 bit key requirements will cause problems for renewals for customers that already have an SSL certificate signed by a certificate authority (CA).</p>
<p>When your renewal time comes up, many CAs will not renew your certificate until you switch to a 2048 bit key.</p>
<p>However, if you generate a new server certificate request with NowSMS, this forces the existing certificate to be immediately invalidated, which may cause problems for existing clients during the certificate renewal process. </span></span><i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">(This problem is not specific to NowSMS &#8230; many web server administrators are facing similar problems.) </span></span></i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;"></p>
<p>If you face this renewal issue with NowSMS, follow this procedure:</p>
<p></span></span></span></div>
<div>
<ol>
<li><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">Locate and backup the following NowSMS files </span></span><i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">(in either Program Files\NowSMS for Windows XP/2003 or ProgramData\NowSMS for Windows Vista/7/2008)</span></span></i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">:<br />SSL.CRT<br /></span></span><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; "><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">SSL.CSR<br />SSL.CA<br />SSL.INI<br />SSL.KEY </span></span></span></span></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">On the &#8220;SSL/TLS&#8221; page of NowSMS, select the option to &#8220;Generate Server Certificate&#8221;. </span></span></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">You will be warned that doing this will invalidate your existing certificate. If you have backed up the files that I mentioned above, select <span class="notranslate">&#8220;Yes&#8221;</span> to continue. </span></span></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">After the new certificate signing request has been generated, copy the new versions of SSL.CRT, SSL.CSR, SSL.INI and SSL.KEY to a different location for backup. </span></span><i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">(Note: There will not be an SSL.CA file as this file will not exist until you get your signed certificate back from the CA.) </span></span></i></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">Put the old backup copies of these files, </span></span><b><i><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">including SSL.CA,</span></span></i></b><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;"> back in the appropriate NowSMS directory. </span></span></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">Use the new SSL.CSR to request a signed certificate from your CA. When you get the signed certificate back from the CA, save it as SSL.CA.</span></span></li>
<li><span class="Apple-style-span"  style="font-family:'trebuchet ms';"><span class="Apple-style-span" style="font-size: medium;">Copy the new version of these files, including SSL.CA to the appropriate NowSMS directory and restart the NowSMS services. </span></span></li>
</ol>
<p><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica; font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/nowsms-and-ssl-certificates-2048-bit-key/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mobile Number Portability (MNP) and the NowSMS MMSC</title>
		<link>http://www.nowsms.com/mobile-number-portability-mnp-and-the-nowsms-mmsc-2</link>
		<comments>http://www.nowsms.com/mobile-number-portability-mnp-and-the-nowsms-mmsc-2#comments</comments>
		<pubDate>Fri, 16 Apr 2010 13:15:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[MMSC.INI]]></category>
		<category><![CDATA[MNP]]></category>
		<category><![CDATA[operator MMSC]]></category>
		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=129</guid>
		<description><![CDATA[When the NowSMS MMSC is used in environments with mobile number portability (MNP), the MMSC may need to query a database to determine whether a recipient is local to this MMSC or if it belongs to another operator. The interface to support this is defined in the following article: Mobile Number Portability (MNP) and the [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><span style="font-family: verdana;">When the NowSMS MMSC is used in environments with mobile number portability (MNP), the MMSC may need to query a database to determine whether a recipient is local to this MMSC or if it belongs to another operator.</span></span></p>
<p>The interface to support this is defined in the following article:</p>
<p><span style="font-family: verdana;"><a href="/?p=62">Mobile Number Portability (MNP) and the NowSMS MMSC</a></span></p>
<p>However, there is an additional issue that is not discussed in that article.</p>
<p>By default, the routing callback is only called for recipients that are not defined to the MMSC on the &#8220;MMSC Users&#8221; page.</p>
<p>In a typical operator MMSC configuration, new MMSC user accounts are automatically provisioned the first time a user sends an MMS message. This configuration is detailed in the article titled <a href="/doc/mmsc-messaging-server/operator-mmsc-considerations">NowSMS MMSC Operator Considerations</a><span style="font-family: verdana;">.</span></p>
<p>A problem scenario develops if a subscriber moves their number from this operator to another operator, after they have already been provisioned on the MMSC. The MMSC will see the user account and attempt to deliver the MMS message directly, without performing a routing lookup.</p>
<p>To address this scenario, an additional MMSC configuration parameter exists. Under the [MMSC] header or MMSC.INI, add the parameter ForceRoutingCallback<span class="notranslate">=Yes</span>. This setting will cause the routing lookup to always occur.</p>
<p>Prior to the 2009-06-30 release, to address this issue, we recommended instead using the setting DisableMMSDirectDelivery<span class="notranslate">=Yes</span>, a setting name which sounds contrary to the intended purpose. This other setting was originally added to NowSMS for a different purpose, but it does have the side effect of always forcing the routing callback.</p>
<p>We no longer recommend the use of DisableMMSDirectDelivery<span class="notranslate">=Yes</span> for this purpose, and instead recommend the ForceRoutingCallback<span class="notranslate">=Yes</span> setting. This is because DisableMMSDirectDelivery<span class="notranslate">=Yes</span> has an extra side effect of disabling the automatic version tracking of MMS clients. Because the MMS read receipt format was not introduced until OMA MMS v1.2, this can cause some clients to generate read receipts as regular MMS messages instead of using the read receipt format.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/mobile-number-portability-mnp-and-the-nowsms-mmsc-2/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XML Status Query for SMSC Connection Status and Statistics</title>
		<link>http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2</link>
		<comments>http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:24:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[connection status]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=128</guid>
		<description><![CDATA[We posted details about an XML-based NowSMS status query in an earlier posting: http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics This query reports information similar to what is reported on the &#8220;Status&#8221; page of the NowSMS configuration dialog. The query results include information about SMSC connection status, the number of messages processed via the different connections, and the number of messages [...]]]></description>
			<content:encoded><![CDATA[<div><span style="font-family: arial;"><span style="font-size: medium;"></p>
<div>We posted details about an XML-based NowSMS status query in an earlier posting: <a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics</a></div>
<div></div>
<div>This query reports information similar to what is reported on the &#8220;Status&#8221; page of the NowSMS configuration dialog. The query results include information about SMSC connection status, the number of messages processed via the different connections, and the number of messages pending in the queues, among other information.</div>
<div></div>
<div>The format of the XML data given in the example is relatively straight-forward, but in some environments it may make it easier to have an XSD file to document the format.  An XSD file can be downloaded at the following link <a href="http://www.nowsms.com/download/xmlstatus.xsd.txt">http://www.nowsms.com/download/xmlstatus.xsd.txt</a>.</div>
<div></div>
<div>For additional information on the XML status query, please refer to the earlier posting: <a href="http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics">http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics</a></div>
<p></span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/xml-status-query-for-smsc-connection-status-and-statistics-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NowSMS Group Text Messaging</title>
		<link>http://www.nowsms.com/now-sms-group-text-messaging</link>
		<comments>http://www.nowsms.com/now-sms-group-text-messaging#comments</comments>
		<pubDate>Tue, 08 Dec 2009 09:09:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[group SMS]]></category>
		<category><![CDATA[group text]]></category>

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

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=126</guid>
		<description><![CDATA[One of the more interesting technical support incidents of the past week comes from Mohit Kumar Sethi at 3i Infotech Consumer Services Ltd. Mohit is using NowSMS Lite to send binary SMS messages to a Java application that his company is developing. He noticed that when sending SMS binary messages longer than 140 bytes, the [...]]]></description>
			<content:encoded><![CDATA[<p>One of the more interesting technical support incidents of the past week comes from Mohit Kumar Sethi at <a href="http://www.3i-infotech.com/">3i Infotech Consumer Services Ltd.</a></p>
<p>Mohit is using NowSMS Lite to send binary SMS messages to a Java application that his company is developing.</p>
<p>He noticed that when sending SMS binary messages longer than 140 bytes, the messages were received correctly by Nokia and SonyEricsson devices, however many Motorola devices received corrupted messages.</p>
<p>In GSM environments, a single SMS message can be no longer than 140 bytes.</p>
<p>When you send a text message, as long as the text only contains characters that are included in the GSM 7-bit character set , 160 7-bit characters are compressed into 140 8-bit bytes to produce the 160 character limit that we are so familiar with. (Note: 160 * 7 = 140 * 8 )</p>
<p>There&#8217;s more general discussion of SMS message size limits in the article at <a href="http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit">http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit</a>.</p>
<p>But back to Mohit&#8217;s problem&#8230;</p>
<p>When sending a binary SMS message longer than 140 bytes, it has to be segmented into multiple SMS messages.  A special header is added to each physical SMS message so that the receiving client knows that it is a multipart SMS message that must be reassembled by the client. These headers are known as segmentation or concatenation headers. 6 bytes (8-bits each) are required for these concatenation headers in each physical SMS message.</p>
<p>These headers are placed in the User Data Header (UDH) field of the message, but they do count against the overall size limit of the message.</p>
<p>As a result, a long binary SMS message will be divided into 134 byte segments.  Or 153 characters per segment for standard text messages.  Or 67 Unicode characters per segment for Unicode text messages.</p>
<p>Mohit observed that with various Motorola RAZR and SLVR models, the received message would lose one byte for each of these segments.</p>
<p>He had his applications on the phones send long binary SMS messages back in to NowSMS.</p>
<p>When his application on a Nokia or SonyEricsson device sent a long binary SMS message, it generated a User Data Header like this:  <strong>0B0504232923290003070301</strong><br />
<strong></strong></p>
<p><strong>0B</strong> is the length of the user data header.<br />
<strong>05</strong> indicates that source and destination port information is present in the message.<br />
<strong>04</strong> indicates the length of the source and destination port information.<br />
<strong>2329 2329</strong> indicates source and destination ports of 2329.<br />
<strong>00</strong> indicates that the message is segmented using an 8-bit reference number.<br />
<strong>03</strong> indicates the length of the segmentation headers.<br />
<strong>07</strong> is the 8-bit reference number for the segmented message.<br />
<strong>03</strong> is the number of segments in the overall message.<br />
<strong>01</strong> is the number of the current segment <em>(i.e,. 1 of 3)</em>.</p>
<p>Long binary messages sent by the Motorola devices were different.  A typical user data header looked like this:  <strong>0C080400460301050423292329</strong></p>
<p><strong>0C</strong> is the length of the user data header.<br />
<strong>08</strong> indicates that the message is segmented using a 16-bit reference number.<br />
<strong>04</strong> indicates the length of the segmentation headers.<br />
<strong>0046</strong> is the 16-bit reference number for the segmented message.<br />
<strong>03</strong> is the number of segments in the overall message.<br />
<strong>01</strong> is the number of the current segment <em>(i.e,. 1 of 3)</em>.<br />
<strong>05</strong> indicates that source and destination port information is present in the message.<br />
<strong>04</strong> indicates the length of the source and destination port information.<br />
<strong>2329 2329</strong> indicates source and destination ports of 2329.</p>
<p>Whether the segmentation headers or port information headers was not significant.  But what was significant was that the Motorola device was generating messages that used 16-bit reference numbers.</p>
<p>Mohit determined that when the Motorola device received a long binary message using an 8-bit reference number, it converted this to a 16-bit reference number.  If the overall message length including UDH was 140 before this conversion, the conversion would cause the last byte of data in that segment to be lost.</p>
<p>The Motorola device didn&#8217;t seem to have any problems with standard long text messages being sent to the SMS client on the device, or with long binary WAP push messages.  The bug seems to be in the part of the device code that routes messages to Java applications.</p>
<p>To make a long story short, this is an annoying bug.  And if you&#8217;re sending messages to Java applications, you may encounter it.</p>
<p>To deal with this scenario, we added a configuration option to NowSMS and NowSMS Lite, which would cause NowSMS to use 16-bit reference numbers when generating concatenated multipart messages.  By default, NowSMS uses 8-bit reference numbers, which allows the most characters to be fit in a single SMS.</p>
<p>When 16-bit reference numbers are used, message length per segment rules change.  For long text messages, instead of 153 characters per segment, only 152 characters per segment can be achieved.</p>
<p>For Unicode messages, instead of 67 characters per segment, only 66 characters per segment can be achieved.</p>
<p>For binary messages, 133 bytes of binary data can be included per segment, instead of 134 bytes.</p>
<p>This 16-bit reference number support was added in the 2009.11.04 release of NowSMS.  This support will be carried through to future releases.  For now v2009.11.04 has been made available as a special release at <a href="http://www.nowsms.com/download/nowsms20091104.zip">http://www.nowsms.com/download/nowsms20091104.zip</a><em> (standard version)</em> and <a href="http://www.nowsms.com/download/lite20091104.zip">http://www.nowsms.com/download/lite20091104.zip</a> <em>(NowSMS Lite)</em>.</p>
<p>To enable 16-bit reference numbers, edit SMSGW.INI, and under the [SMSGW] section header, add ConcatRef16Bit<span class="notranslate">=Yes</span>.</p>
<p>Note that when this setting is applied, 16-bit reference numbers are only used when NowSMS performs the segmentation <em>(message submitted either via HTTP, or via SMPP using a single message_payload submission)</em> &#8230;</p>
<p>NowSMS does not resegment messages that have already been segmented by the submitting client.</p>
<p>For more about sending SMS messages to J2ME apps, see <a href="http://www.nowsms.com/sms-port-number">http://www.nowsms.com/sms-port-number</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/bug-sending-long-binary-sms-messages-to-java-apps-on-motorola-devices/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Novatel Merlin XU870 ExpressCard Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-novatel-merlin-xu870-expresscard-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-novatel-merlin-xu870-expresscard-modem#comments</comments>
		<pubDate>Mon, 02 Nov 2009 13:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[ExpressCard modem]]></category>
		<category><![CDATA[GSM modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=125</guid>
		<description><![CDATA[If you are using NowSMS in a laptop with an available ExpressCard slot, the Novatel Wireless Merlin XU870 ExpressCard Modem is a good modem to use with NowSMS to send and receive SMS and MMS messages. This modem supports HSDPA up to 7.2 Mbps (although locating the appropriate firmware driver update seems to be a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1.bp.blogspot.com/_YurG55Yaya0/SudkivFdQkI/AAAAAAAAA_0/XR0hJh_j0p4/s1600-h/NovatelXU870.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5397393226344514114" style="float: right; margin: 0 0 10px 10px; cursor: hand; width: 371px; height: 201px;" src="http://1.bp.blogspot.com/_YurG55Yaya0/SudkivFdQkI/AAAAAAAAA_0/XR0hJh_j0p4/s400/NovatelXU870.png" border="0" alt="" /></a> If you are using NowSMS in a laptop with an available ExpressCard slot, the Novatel Wireless Merlin XU870 ExpressCard Modem is a good modem to use with NowSMS to send and receive SMS and MMS messages.</p>
<p>This modem supports HSDPA up to 7.2 Mbps (although locating the appropriate firmware driver update seems to be a challenge, without it, it is limited to 3.6 Mbps).  That is good for receiving MMS.</p>
<p>However, the modem does not support HSUPA, limiting it to 384 Kbps for uploads and sending MMS.</p>
<p>Although we have yet to test it, the Merlin X950D would likely be a better choice for MMS, as it claims to support HSUPA up to 2.1 Mbps (Note: the X950D requires a firmware update to enable HSUPA and there may be some difficulty locating the firmware update).  SMS speeds should not be a difference between the two modems.</p>
<p>Drivers for this modem can be found on the Novatel Wireless web site at <a href="http://www.novatelwireless.com/index.php?option=com_content&amp;view=article&amp;id=220&amp;Itemid=272">http://www.novatelwireless.com/index.php?option=com_content&amp;view=article&amp;id=220&amp;Itemid=272</a>.  (If this direct link is broken, navigate from <a href="http://www.novatelwireless.com/support/">http://www.novatelwireless.com/support/</a>.)</p>
<p>There are no special considerations for using the Novatel XU870 modem with NowSMS.  However, it should be noted that this modem does NOT support delivery receipts.</p>
<p>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Novatel Wireless Merlin XU870, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</p>
<p>Frequencies supported by the Novatel Merlin XU870:</p>
<ul>
<li>3G/UMTS/HSDPA/HSUPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</li>
<li>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</li>
<li>HSDPA Max Performance: Download speed &#8211; 7.2 Mbps; Upload speed &#8211; 384 Kbps</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-novatel-merlin-xu870-expresscard-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using NowSMS as a WAP Push Proxy Gateway (PPG)</title>
		<link>http://www.nowsms.com/using-nowsms-as-a-wap-push-proxy-gateway-ppg</link>
		<comments>http://www.nowsms.com/using-nowsms-as-a-wap-push-proxy-gateway-ppg#comments</comments>
		<pubDate>Thu, 29 Oct 2009 18:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[WAP Proxy]]></category>
		<category><![CDATA[WAP Push]]></category>
		<category><![CDATA[WAP Push Proxy Gateway]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=124</guid>
		<description><![CDATA[NowSMS supports the Open Mobile Alliance (OMA) Push Access Protocol (PAP), which allows other applications to use NowSMS as a WAP Push Proxy Gateway (PPG). Even though NowSMS has its own MMSC capability, we do have customers who are using NowSMS as a push proxy gateway for another vendor&#8217;s MMSC. In addition to providing PPG [...]]]></description>
			<content:encoded><![CDATA[<p>NowSMS supports the <span class="notranslate">Open Mobile Alliance</span> (OMA) Push Access Protocol (PAP), which allows other applications to use NowSMS as a WAP Push Proxy Gateway (PPG).
<div></div>
<div>Even though NowSMS has its own MMSC capability, we do have customers who are using NowSMS as a push proxy gateway for another vendor&#8217;s MMSC.</div>
<div></div>
<div>In addition to providing PPG support for MMS, NowSMS can be used as a push proxy gateway for other types of push messages, including, but not limited to SyncML DM, SyncML DS, Wireless Village/IMPS, OMA Digital Rights Management, OMA E-Mail Notification (EMN), Service Indication and Service Load.</div>
<div></div>
<div>
<div>To post a push message via the PAP interface, perform an HTTP POST to the &#8220;web&#8221; port configured for the NowSMS web interface (not the MMSC), posting to a URL of &#8220;/pap&#8221;.  If user authentication is enabled in NowSMS, user identification can be included as URL parameters (e.g., &#8220;/pap?user=username&amp;password=password&#8221;), or via an HTTP Basic Authentication &#8220;Authorization:&#8221; header.</div>
<div></div>
<div>A PAP post is a multipart MIME request, with the first MIME part being the PAP control document that specifies message recipient(s). The second MIME part is the data to be pushed.</div>
<div></div>
<div>An example of a service indication push being sent via PAP is shown below:</div>
<div></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;BEGIN EXAMPLE&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">POST /pap?user=username&amp;password=password HTTP/1.0 </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">Content-Type: multipart/related; boundary=mime-boundary; type=&#8221;application/xml&#8221; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">Content-Length: xxxxx </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8211;mime-boundary </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">Content-Type: application/xml </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8211;mime-boundary </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">Content-Type: application/xml </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;?xml version=&#8221;1.0&#8243;?&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;!DOCTYPE pap PUBLIC &#8220;-//WAPFORUM//DTD PAP 2.0//EN&#8221; &#8220;http://www.wapforum.org/DTD/pap_2.0.dtd&#8221; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">[&lt;?wap-pap-ver supported-versions="2.0,1.*"?&gt;]&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;pap&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;push-message push-id=&#8221;9fjeo39jf084@pi.com&#8221;&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;address address-value=&#8221;wappush=xxxxxxxxx/type=user@ppg.operator.com&#8221;&gt;&lt;/address&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;/push-message&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;/pap&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8211;mime-boundary </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">X-Wap-Application-Id: x-wap-application:wml.ua </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">Content-Type: text/vnd.wap.si </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;"><br /></span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;?xml version=&#8221;1.0&#8243;?&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;!DOCTYPE si PUBLIC &#8220;-//WAPFORUM//DTD SI 1.0//EN&#8221; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8220;http://www.wapforum.org/DTD/si.dtd&#8221;&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;si&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;indication href=&#8221;http://www.xyz.com/email/123/abc.wml&#8221; created=&#8221;2009-10-25T15:23:15Z&#8221; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">si-expires=&#8221;2009-11-03T00:00:00Z&#8221;&gt;</span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">You have 4 new emails</span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;/indication&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&lt;/si&gt; </span></span></div>
<div><span class="Apple-style-span"  style="font-family:'courier new';"><span class="Apple-style-span" style="font-size: small;">&#8211;mime-boundary&#8211; </span></span></div>
<div><span class="Apple-style-span" style="font-family: 'courier new'; font-size: small; ">&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;END EXAMPLE&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; </span></div>
<div></div>
<div>Note that the &#8220;/type=user@ppg.operator.com&#8221; included in the WAP Push address specification is optional for NowSMS, and will be ignored, as only the relevant destination phone number is parsed from the request.</div>
<div></div>
<div>NowSMS will perform XML to WBXML conversions for WAP push of the following content types:</div>
<div></div>
<div>
<ul>
<li>text/vnd.wap.si</li>
<li>text/vnd.wap.sl</li>
<li>application/vnd.oma.drm.rights+xml</li>
<li>text/vnd.wap.emn+xml (or application/vnd.wap.emn+xml)</li>
<li>text/vnd.wap.co</li>
<li>text/vnd.wap.connectivity-xml</li>
</ul>
</div>
<div></div>
<div>Other types (including non WBXML based encodings such as &#8220;application/vnd.wap.mms-message&#8221; for MMS or &#8220;application/vnd.syncml.ds.notification&#8221; for SyncML SAN/DS) must be submitted via the appropriate binary encoding.</div>
<div></div>
<div>NowSMS supports the following text values for &#8220;X-Wap-Application-id&#8221;:</div>
<div></div>
<div>
<ul>
<li>x-wap-application:push.sia</li>
<li>x-wap-application:wml.ua</li>
<li>x-wap-application:wta.ua</li>
<li>x-wap-application:mms.ua</li>
<li>x-wap-application:push.syncml</li>
<li>x-wap-application:loc.ua</li>
<li>x-wap-application:syncml.dm</li>
<li>x-wap-application:drm.ua</li>
<li>x-wap-application:enm.ua</li>
<li>x-wap-application:wv.ua</li>
</ul>
</div>
<div></div>
<div>Other &#8220;X-Wap-Application-id&#8221; header values must be submitted to NowSMS using their assigned decimal or hexadecimal value rather than the text name.  (If using a hexadecimal value, preface the value with &#8220;0x&#8221; to indicate hexadecimal format.)</div>
<div></div>
<div>Further information on the WAP Push Access Protocol can be found from by downloading the WAP-247-PAP specification from <a href="http://www.openmobilealliance.org/tech/affiliates/wap/wapindex.html">http://www.openmobilealliance.org/tech/affiliates/wap/wapindex.html</a></div>
<div></div>
<div>Note that NowSMS does not support guaranteed delivery or delivery notifications.</div>
<div></div>
<div>NowSMS does not support base64 encoding for PAP content, binary content should be posted as 8-bit data using Content-transport-encoding: binary. We further recommend that the MIME part that includes the binary content have a &#8220;Content-Length:&#8221; header to avoid the potential of extra bytes (such as blank lines) being interpreted as part of the binary stream.</div>
<div></div>
<div>NowSMS sends WAP Push messages using connection-less WDP (Wireless Datagram Protocol) over SMS. SMSC connection from the NowSMS Push Proxy Gateway can use either SMPP, UCP/EMI or CIMD2.  GSM modem connections can also be used as the SMSC connection for smaller test environments.</div>
<div></div>
<div>Special considerations exist for WAP Push in CDMA and CDMA2000 environments, namely the SMSC needs to support WDP Adaptation for SMPP.  This is described in more detail at <a href="http://www.nowsms.com/support/bulletins/tb-nowsms-010.htm">http://www.nowsms.com/support/bulletins/tb-nowsms-010.htm</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/using-nowsms-as-a-wap-push-proxy-gateway-ppg/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending SMS from Microsoft Excel</title>
		<link>http://www.nowsms.com/sending-sms-from-microsoft-excel</link>
		<comments>http://www.nowsms.com/sending-sms-from-microsoft-excel#comments</comments>
		<pubDate>Mon, 26 Oct 2009 20:26:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=123</guid>
		<description><![CDATA[A recent posting on the NowSMS Discussion Board has some interesting information on sending an SMS a link within an Excel spreadsheet. Read the full post here: http://www.nowsms.com/discus/messages/1/41882.html The gist of the posting is that you cannot use the Excel HYPERLINK command to do this. It would be logical to build a NowSMS URL to [...]]]></description>
			<content:encoded><![CDATA[<p>A recent posting on the NowSMS Discussion Board has some interesting information on sending an SMS a link within an Excel spreadsheet.</p>
<div>Read the full post here:  <a href="http://www.nowsms.com/discus/messages/1/41882.html">http://www.nowsms.com/discus/messages/1/41882.html</a></div>
<div>The gist of the posting is that you cannot use the Excel HYPERLINK command to do this.  It would be logical to build a NowSMS URL to send a message, but the HYPERLINK command connects to the URL twice, resulting in duplicate messages being sent.</div>
<div>As an alternative, Des created a VBScript macro instead.  This macro initiates an HTTP connection to NowSMS to send a message, dynamically creating a message based upon cell values in the Excel spreadsheet.  I&#8217;ve quoted the details from Des below:</div>
<hr />
<div><span style="font-family: Verdana, Arial, Helvetica; font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"> </span></div>
<p><span style="font-family: Verdana, Arial, Helvetica; font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;">The alternative approach is to write a simple VBScript macro instead.</span></p>
<p>Today was my first attempt at writing one &#8230; but I did manage to create a button in a spreadsheet, where when you click on the button, it reads data from the spreadsheet to send out an SMS.</p>
<p>Here&#8217;s what I did &#8230;</p>
<p>From the Developer menu in Excel, I added an Active X Command Button.</p>
<p>I then associated the following code with my command button:</p>
<pre class="notranslate">Private Sub CommandButton1_Click()
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://192.168.0.222:8800/"
objHTTP.Open "POST", URL, False
objHTTP.send ("&amp;PhoneNumber=" + Range("a9").Text + "&amp;text=" + Range("a10").Text)
End Sub</pre>
<p>In this particular case, I am extracting the phone number from cell A9, and the text to send from A10.</p>
<p>Once I exit design mode, I can click on the button, and it triggers this code, which makes the HTTP submission to NowSMS.</p>
<p>I&#8217;m using HTTP POST instead of GET to avoid some URL encoding issues.</p>
<p>It&#8217;s not as easy as using HYPERLINK, but hopefully you can adapt this to your scenario.</p>
<hr />
<div><span style="font-family: Verdana, Arial, Helvetica;"><span style="font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><br />
</span></span></div>
<div>
<p><span style="font-family: Verdana, Arial, Helvetica;"><span style="font-size: small; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"><span style="font-family: Georgia, serif; font-size: 16px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px;"> </span></span></span></p>
<div>Post any questions or commands in the discussion board posting at <a href="http://www.nowsms.com/discus/messages/1/41882.html">http://www.nowsms.com/discus/messages/1/41882.html</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sending-sms-from-microsoft-excel/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Alcatel One Touch X200 or X060 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-alcatel-one-touch-x200-or-x060-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-alcatel-one-touch-x200-or-x060-usb-modem#comments</comments>
		<pubDate>Wed, 14 Oct 2009 09:30:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=122</guid>
		<description><![CDATA[The Alcatel One Touch X200 and X060 USB Modems are good (but not great) modems to use with NowSMS to send and receive SMS and MMS messages. For alternative modems, please see our other reviews: http://www.nowsms.com/tag/gsm-modem For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such [...]]]></description>
			<content:encoded><![CDATA[<p>The Alcatel One Touch X200 and X060 USB Modems are good (but not great) modems to use with NowSMS to send and receive SMS and MMS messages.</p>
<p>For alternative modems, please see our other reviews: <a href="http://www.nowsms.com/tag/gsm-modem">http://www.nowsms.com/tag/gsm-modem</a></p>
<p>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Alcatel One Touch X200 or X060, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.<br />
<img id="BLOGGER_PHOTO_ID_5387739845501030514" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_YurG55Yaya0/SsUY2BFOkHI/AAAAAAAAA_U/rnQyuBcO3DQ/s320/AlcatelX200.jpg" border="0" alt="" /><br />
To point out one initial point of confusion when configuring NowSMS to work with the Alcatel One Touch modem, the modem driver installed for the modems is named &#8220;Modem Interface&#8221;.  When adding the modem to NowSMS, you must select the modem named &#8220;Modem Interface&#8221; (which is a less than intuitive choice of name).<br />
The primary problem when using the Alcatel One Touch X200 or X060 modem with NowSMS is that each time your PC is rebooted, the modem will be inaccessible to NowSMS until the Alcatel &#8220;HSPA USB Modem&#8221; software that ships with the modem is loaded.  Until that software is run, the modem functions only as a USB disk drive, and there is no modem functionality.</p>
<p>If you want to run NowSMS automatically each time your PC is restarted, after installing NowSMS and verifying that it works with the Alcatel One Touch modem, reboot your PC.  If NowSMS is unable to access the modem after a reboot, you will need to follow the following steps.</p>
<p>We have been unable to identify a solution for this problem, other than configuring the Alcatel &#8220;HSPA USB Modem&#8221; software application to run at startup.<br />
For some reason, on Windows Vista and Windows Server 2008 systems, the Alcatel &#8220;HSPA USB Modem&#8221; software requires that it be run with administrative rights.<br />
Therefore, the best way to configure this software to be started automatically when the PC reboots is to configure the Windows Task Scheduler to run it at startup.</p>
<p>The Windows Task Scheduler can be accessed via the &#8220;Schedule Tasks&#8221; option under &#8220;Administrative Tools&#8221; in the Windows Control Panel.</p>
<p>Select &#8220;Create Task&#8221; to create a new task to load the Alcatel &#8220;HSPA USB Modem&#8221; software at startup.</p>
<p>On the &#8220;General&#8221; page, give the task a name, such as &#8220;Alcatel HSPA USB Modem&#8221;, so that you can easily identify the task later.  Under &#8220;Security Options&#8221;, select &#8220;Run whether user is logged on or not&#8221;, and &#8220;Run with highest priveleges&#8221;.  The other settings on this page can be left at their defaults.</p>
<p>On the &#8220;Triggers&#8221; page, select &#8220;New&#8221;, and then specify to &#8220;Begin the Task&#8221; &#8220;At Startup&#8221;.  Press &#8220;OK&#8221; to save the trigger.</p>
<p>On the &#8220;Actions&#8221; page, select &#8220;New&#8221;, and then specify the &#8220;Action&#8221; to be &#8220;Start a program&#8221;.  In the &#8220;Program/Script&#8221; field, press &#8220;Browse&#8221; and locate &#8220;HSPA USB MODEM.EXE&#8221;, which is usually located in the &#8220;Program Files\HSPA USB MODEM&#8221; or &#8220;Program Files (x86)\HSPA USB MODEM&#8221; directory.  Press &#8220;OK&#8221; to save the action.</p>
<p>On the &#8220;Conditions&#8221; page, clear any of the checked conditions, so that the program is always run at startup.</p>
<p>On the &#8220;Settings&#8221; page, check &#8220;Stop the task if it runs longer than&#8221;, and specify &#8220;5 minutes&#8221;.  Also check &#8220;If the running task does not end when requested, force it to stop&#8221;.</p>
<p>Press &#8220;OK&#8221; to save this task.  You will be prompted for your username and password.</p>
<p>Reboot your PC to confirm that NowSMS can now access the modem properly when the PC is restarted.</p>
<p>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Alcatel One Touch X200 or X060, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</p>
<p>For alternative modems, please see our other reviews: <a href="http://www.nowsms.com/tag/gsm-modem">http://www.nowsms.com/tag/gsm-modem</a></p>
<p>Frequencies supported by the Alcatel One Touch X200:</p>
<ul>
<li>3G/UMTS/HSDPA/HSUPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</li>
<li>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</li>
<li>HSPA Max Performance: Download speed &#8211; 7.2 Mbps; Upload speed &#8211; 2 Mbps</li>
<li>UMTS Max Performance: Download speed &#8211; 384 Kbps; Upload speed &#8211; 384 Kbps</li>
<li>EDGE Max Performance: Download speed &#8211; 247.4 Kbps; Upload speed &#8211; 123.7 Kbps</li>
<li>GPRS Max Performance: Download speed &#8211; 85.6 Kbps; Upload speed &#8211; 42.8 Kbps</li>
</ul>
<p>The Alcatel One Touch X060 is similar to the X200, except that its HSDPA download speed peaks at 3.6 Mbps, and there is no HSUPA support, limiting HSPA upload support to 384 Kbps.</p>
<p>NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Does not support &#8220;Direct to Modem&#8221; (<span class="notranslate">&#8220;Default&#8221;</span> mode is ok).</p>
<p>SMS Delivery Receipts are NOT supported.</p>
<p>The Alcatel One Touch X200 and X060 modems do not support an external antenna (uses internal antenna only).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-alcatel-one-touch-x200-or-x060-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T-Mobile (USA) 3G WebConnect USB Modem &#8211; Not for MMS</title>
		<link>http://www.nowsms.com/t-mobile-usa-3g-webconnect-usb-modem-not-for-mms</link>
		<comments>http://www.nowsms.com/t-mobile-usa-3g-webconnect-usb-modem-not-for-mms#comments</comments>
		<pubDate>Mon, 12 Oct 2009 09:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=121</guid>
		<description><![CDATA[End-users of T-Mobile USA have been asking us for feedback on modems that can work on T-Mobile&#8217;s 1700Mhz (AWS) US 3G network for sending and receiving SMS and MMS messages. (Other tri-band 3G modems typically only support 850Mhz/1900Mhz/2100Mhz.) Unfortunately, the only GSM/3G modem that is currently offered by T-Mobile is the WebConnect USB stick (Huawei [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1.bp.blogspot.com/_YurG55Yaya0/SsQSPyLbkLI/AAAAAAAAA_M/9Xm01XkM2rA/s1600-h/UMG181.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5387451116619010226" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 280px; height: 280px;" src="http://1.bp.blogspot.com/_YurG55Yaya0/SsQSPyLbkLI/AAAAAAAAA_M/9Xm01XkM2rA/s320/UMG181.jpg" border="0" alt="" /></a><div class='et-box et-shadow'>
					<div class='et-box-content'>Update &#8211; February 1, 2011:  Problems sending MMS messages with a 3G modem on T-Mobile USA can be resolved by using alternate MMSC settings:</p>
<p><strong> GPRS APN:</strong> epc.tmobile.com</p>
<p><strong>WAP Gateway Address:</strong> http://216.155.165.50:8080</p>
<p><strong>MMS Server URL:</strong> http://mms.msg.eng.t-mobile.com/mms/wapenc </div></div></p>
<p>End-users of T-Mobile USA have been asking us for feedback on modems that can work on T-Mobile&#8217;s 1700Mhz (AWS) US 3G network for sending and receiving SMS and MMS messages.  (Other tri-band 3G modems typically only support 850Mhz/1900Mhz/2100Mhz.)</p>
<p>Unfortunately, the only GSM/3G modem that is currently offered by T-Mobile is the WebConnect USB stick (Huawei UMG181).<br />
Like most mobile operators, T-Mobile assumes that you will be using the USB stick modem for internet access, not for sending and receiving SMS and MMS messages.  As such, T-Mobile is blocking this device from accessing the &#8220;wap.voicestream.com&#8221; APN which is used for both WAP and MMS connectivity, and only allowing it to connect to the full internet access APNs with an appropriate data plan <em>(with an inappropriate price)</em>.</p>
<p>Even if you take a SIM card from an existing mobile phone device with MMS support and put it into the USB stick, T-Mobile blocks the device from connecting to &#8220;wap.voicestream.com&#8221;, which is a requirement for sending or receiving MMS message.</p>
<p><strong><em>As a result, it is not currently possible to use this modem to send or receive MMS messages on the T-Mobile USA network.</em></strong></p>
<p>This modem appears to do a decent job of sending and receiving SMS messages.  However, there is no real speed benefit compared to a decent EDGE modem like the <a href="http://www.nowsms.com/sms-and-mms-with-the-option-icon-322-usb-modem">Option ICON 322</a>.  And the EDGE modems have the benefit of also being able to support sending and receiving MMS messages.</p>
<p>For discussions of alternative GSM modems, see <a href="http://www.nowsms.com/tag/gsm-modem">http://www.nowsms.com/tag/gsm-modem</a>.</p>
<p>Of course, a true 3G modem is desirable for sending and receiving MMS messages, because MMS messages are more bandwidth intensive.  We are investigating the Option ICON 452 as a possible alternative for T-Mobile USA users, as for 3G it supports 850Mhz/1700Mhz/1900Mhz/2100Mhz.  Based upon experience with other Option ICON modems, we expect that to be an excellent modem, as long as T-Mobile does not block it from the MMS Access Point!</p>
<p>(Side note &#8230; in some other parts of the world, the GSM 900Mhz spectrum is starting to be re-allocated for use as 3G.  The Option ICON 451 substitutes 900Mhz for 1700Mhz and looks like a good solution for parts of the world that are starting to see 900Mhz 3G coverage.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/t-mobile-usa-3g-webconnect-usb-modem-not-for-mms/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Using NowSMS with Check Point Connectra</title>
		<link>http://www.nowsms.com/using-nowsms-with-check-point-connectra</link>
		<comments>http://www.nowsms.com/using-nowsms-with-check-point-connectra#comments</comments>
		<pubDate>Wed, 07 Oct 2009 17:07:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[Check Point Connectra]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=120</guid>
		<description><![CDATA[Disclaimer: This information is neither validated nor endorsed by Check Point Software Technologies. It has come to our attention that the Check Point Connectra unified remote access solution has a security option to send a token via SMS as part of the remote user authentication process. To facilitate this option, the Check Point Connectra Gateway [...]]]></description>
			<content:encoded><![CDATA[<p><b><i>Disclaimer: This information is neither validated nor endorsed by Check Point Software Technologies.</i></b>
<div></div>
<div>
<div>It has come to our attention that the Check Point Connectra unified remote access solution has a security option to send a token via SMS as part of the remote user authentication process.</div>
<div></div>
<div>To facilitate this option, the Check Point Connectra Gateway would be configured to transmit the token via an SMS service provider.  While SSL/TLS is available to secure the transmission to the SMS service provider, some end users may not have full confidence in the security mechanisms at the SMS service provider.</div>
<div></div>
<div>An alternative SMS solution is to use the Now SMS &amp; MMS Gateway product <i>(or the entry level NowSMS Lite product)</i> in conjunction with a GSM modem.</div>
<div></div>
<div>The NowSMS server and GSM modem can be installed within the customer network, with appropriate firewall and access controls.</div>
<div></div>
<div>For sending SMS messages, the Check Point Connectra Gateway is configured with an HTTP URL to connect over the local network to the NowSMS server.  This HTTP connection is performed each time an SMS message needs to be sent.</div>
<div></div>
<div>The NowSMS server requires a GSM modem with an active SIM card subscription to a mobile operator.  To the mobile operator, the GSM modem looks like any other mobile phone.  The NowSMS server is able to exchange SMS messages with other mobile phones through the GSM modem.</div>
<div></div>
<div>The configuration of the SMS service provider in the Check Point Connectra Gateway requires the following information:</div>
<div></div>
<div><b>SMS provider URL</b> – For connecting to a NowSMS Server, we recommend the following setting:  http://ip.addr:port/?unused=$APIID&amp;user=$USERNAME&amp;password=$PASSWORD&amp;PhoneNumber=$PHONE&amp;text=$MESSAGE</div>
<div></div>
<div>ip.addr would be the IP address of your NowSMS server installation.</div>
<div></div>
<div>port is the &#8220;Port Number for the web interface&#8221; configured in NowSMS, which defaults to 8800.</div>
<div></div>
<div><b>Username</b> – This refers to the &#8220;User Name&#8221; of a user account created on the NowSMS Server under the <span class="notranslate">&#8220;SMS Users&#8221;</span> page.</div>
<div></div>
<div><b>Password</b> – This refers to the &#8220;Password&#8221; of a user account created on the NowSMS Server.</div>
<div></div>
<div><b>API ID</b> – This parameter is not relevant to NowSMS can be set as blank, or with the text &#8220;unused&#8221;.</div>
<div></div>
<div>Once these parameters have been properly configured, whenever the Check Point Connectra Gateway needs to send an SMS message, it will connect to the NowSMS server using HTTP, and the SMS message will be transmitted using whatever type of SMSC connection has been configured in NowSMS.</div>
<div></div>
<div>For more information on the Now SMS &amp; MMS Gateway, or NowSMS Lite, please visit <a href="http://www.nowsms.com/">http://www.nowsms.com</a>.  For additional technical information, visit our discussion forum at <a href="http://www.nowsms.com/messages">http://www.nowsms.com/messages</a>.</div>
<div></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/using-nowsms-with-check-point-connectra/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Huawei E160 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-huawei-e160-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-huawei-e160-usb-modem#comments</comments>
		<pubDate>Mon, 05 Oct 2009 09:32:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=119</guid>
		<description><![CDATA[The Huawei E160 is an &#8220;ok&#8221; modem to use with NowSMS to send and receive SMS and MMS messages. This modem is readily available in many countries, as many mobile operators sell this modem as part of a mobile broadband package. (In the UK alone, we&#8217;ve seen this modem offered by 3, O2 and T-Mobile. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1.bp.blogspot.com/_YurG55Yaya0/SsYvreArXqI/AAAAAAAAA_s/09uIM-V_Z78/s1600-h/huaweie160.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5388046428032163490" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_YurG55Yaya0/SsYvreArXqI/AAAAAAAAA_s/09uIM-V_Z78/s400/huaweie160.jpg" border="0" alt="" /></a> The Huawei E160 is an &#8220;ok&#8221; modem to use with NowSMS to send and receive SMS and MMS messages.</p>
<p>This modem is readily available in many countries, as many mobile operators sell this modem as part of a mobile broadband package. (In the UK alone, we&#8217;ve seen this modem offered by 3, O2 and T-Mobile. Unlocked versions of this modem are avaialable from multiple web sites.)</p>
<p>Unfortunately, this modem has been one of the most difficult and frustrating modems for us to test.  We tried two different E160 modems on at least four different computers, and were consistently frustrated with how unreliable this modem was.  The most frequent problem was that after a couple of hours, the modem would become unresponsive, and NowSMS would be unable to communicate with the modem.</p>
<p>Because of this problem, we actually added a configuration option in the 2009.10.21 release of NowSMS to allow NowSMS to reboot the PC as a &#8220;last resort&#8221; effort to try to recover a non-responsive modem.</p>
<p>However, just when we were about to give up on the E160, we stumbled upon a solution to its reliability problems.</p>
<p>The E160 is bundled with some associated software called &#8220;Mobile Partner&#8221;.  The modem lock-up problems do not seem to occur if the &#8220;Mobile Partner&#8221; software is active along with NowSMS.</p>
<p>There is an important consideration that the Mobile Partner software, by default, will try to process received SMS messages, and may remove these messages from the modem before NowSMS is able to process them.  To correct this problem, it is very important that the Huawei Mobile Partner software be configured not to remove received SMS messages from the SIM card. <strong><em>From within Mobile Partner, select Tools/Options/Text Message and ensure that &#8220;New Message Save Mode&#8221; is set to &#8220;Save on SIM/USIM card or device&#8221;.</em></strong></p>
<p>To address the reliability problems, it is also recommended that the Huawei Mobile Partner software be configured to automatically load on startup. <strong><em>From within Mobile Partner, select Tools/Options/General, and ensure that &#8220;Launch on Windows startup&#8221; and &#8220;Minimize window on startup&#8221; are checked.</em></strong></p>
<p>Note that if your system is restarted, NowSMS runs as a service and will automatically be started without requiring a user to be logged in.  However, the Mobile Partner software will not load until a user logs in to the PC.  The fact that NowSMS is running without Mobile Partner may cause some reliability problems.  One way to address this issue for a system that is to run unattended is to configure the PC to login to an account automatically when it is restarted.  This can be done by going to the Windows Start Menu, selecting the &#8220;Run&#8221; option, and typing &#8220;control userpasswords2&#8243;.  Uncheck the option that says &#8220;Users must enter a user name and password to use this computer, and then when you press OK, you will specify the user name and password that should be used for an automatic login.</p>
<p>The inconvenience of requiring the Mobile Partner software to be active when running NowSMS makes us hesitant to strongly recommend this modem.  It works ok, and it does have the benefit of supporting SMS delivery receipts.</p>
<p>For alternative modems, please see our other reviews: <a href="http://www.nowsms.com/tag/gsm-modem">http://www.nowsms.com/tag/gsm-modem</a></p>
<p>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Huawei E160, please see the NowSMS Quick Start Guide at<a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</p>
<p>One additional note of interest for users of Huawei modems &#8230; updated firmware and drivers for Huawei modems can be found at the following page: <a href="http://www.huawei.com/mobileweb/en/doc/list.do?type=-1&amp;id=5286">http://www.huawei.com/mobileweb/en/doc/list.do?type=-1&amp;id=5286</a></p>
<p>A software update for the E160G is available via the E160 link on that page, or <a href="http://www.huawei.com/mobileweb/en/doc/list.do?type=-1&amp;id=5840">http://www.huawei.com/mobileweb/en/doc/list.do?type=-1&amp;id=5840</a></p>
<p>Note that if you update the modem firmware, this also updates the version of the Mobile Partner software accessible via the USB drive of the modem. After updating the firmware, you should remove Mobile Partner from your system, and then re-install the new version from the modem&#8217;s USB drive.</p>
<p>Frequencies supported by the Huawei E160:</p>
<ul>
<li>3G/UMTS/HSDPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</li>
<li>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</li>
<li>HSDPA Max Performance: Download speed &#8211; 3.6 Mbps; Upload speed &#8211; 384 Kbps (no HSUPA support)</li>
<li>EDGE/GPRS Max Performance: Not specified</li>
</ul>
<p>NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Does not supports &#8220;Direct to Modem&#8221; (<span class="notranslate">&#8220;Default&#8221;</span> mode can be used).<br />
SMS Delivery Receipts are supported.</p>
<p>The Huawei E160 modem does have support for connecting an external antenna to enhance the strength of its internal antenna.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-huawei-e160-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using NowSMS as an SMPP Server for Another Application</title>
		<link>http://www.nowsms.com/using-nowsms-as-an-smpp-server-for-another-application</link>
		<comments>http://www.nowsms.com/using-nowsms-as-an-smpp-server-for-another-application#comments</comments>
		<pubDate>Fri, 02 Oct 2009 08:55:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>
		<category><![CDATA[SMPP Server]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=118</guid>
		<description><![CDATA[One of the more unusual features of NowSMS is its ability to operate as an SMPP server. NowSMS can relay messages submitted to its SMPP server to any outbound SMSC connection, which could be one or more GSM modems and/or SMPP, UCP/EMI, CIMD2 or HTTP SMSC connections. There are a few different reasons why this [...]]]></description>
			<content:encoded><![CDATA[<p>One of the more unusual features of NowSMS is its ability to operate as an SMPP server.  NowSMS can relay messages submitted to its SMPP server to any outbound SMSC connection, which could be one or more GSM modems and/or SMPP, UCP/EMI, CIMD2 or HTTP SMSC connections.<br />
There are a few different reasons why this feature would be used.  The simplest scenario is when an end user wants to use a software product that has an existing SMPP interface, but does not want to enter a commercial arrangement with an SMPP based SMS provider.  In this scenario, NowSMS acts as a protocol converter between SMPP and other types of SMSC connections.</p>
<p>Another scenario is when it is desirable to have multiple applications share an existing SMPP connection.  Multiple SMPP applications can connect to a NowSMS server and share an upstream SMPP connection.</p>
<p>We tend to get the most questions from end users who have an SMPP-based application that they want to interface with NowSMS where NowSMS is sending and receiving SMS messages via a GSM modem.</p>
<p>To answer the most frequently asked question, yes, the SMPP application can both send <em>(MT, or mobile terminated)</em> and receive <em>(MO, or mobile originated)</em> messages.  This does require that the GSM modem being used supports sending and receiving SMS messages over the GSM modem interface <em>(this is normally not a problem, except when using a Nokia phone as a modem &#8230; use a dedicated </em><a href="http://www.nowsms.com/tag/gsm-modem"><span style="text-decoration: none;"><em>GSM modem</em></span></a><em> device instead)</em>.</p>
<p>In this posting, we&#8217;ll give a quick overview of how to configure this type of setup.</p>
<p>Before you configure any SMPP related settings, start by setting up NowSMS to work with your GSM modem.  The first two guides on the <a href="http://www.nowsms.com/doc/quick-start-guide">Quick Start Guide</a> page of the NowSMS web site provide a good overview of this process.</p>
<p>Before continuing to the next step, confirm that you are able to successfully send SMS messages from the NowSMS web interface.<br />
<img id="BLOGGER_PHOTO_ID_5387741600647346946" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 243px; height: 400px;" src="http://1.bp.blogspot.com/_YurG55Yaya0/SsUacLgt-wI/AAAAAAAAA_c/KFIuw9ZP4qg/s400/EnableSmpp.jpg" border="0" alt="" /><br />
To enable an SMPP client to connect to the NowSMS server, there are two configuration steps that are required.</p>
<p>1.) The NowSMS SMPP server needs to be enabled.  To enable the SMPP server, go to the &#8220;Web&#8221; tab of the NowSMS configuration.  Check &#8220;Enable SMPP Server&#8221;, and specify a port on which NowSMS should listen for SMPP connections.</p>
<p>Any firewalls between your SMPP client and the NowSMS server will need to be configured to allow this connection.</p>
<p>2.) A user account needs to be defined on the NowSMS server.  Your SMPP client will authenticate to NowSMS with this account information.</p>
<p>To define a user account, go to the <span class="notranslate">&#8220;SMS Users&#8221;</span> tab of the NowSMS configuration.  Press <span class="notranslate">&#8220;Add&#8221;</span> to define a new user account.</p>
<p>Specify a &#8220;User Name&#8221; and &#8220;Password&#8221; to be used for the account.<br />
<img id="BLOGGER_PHOTO_ID_5387743100290420562" style="float: right; margin: 0 0 10px 10px; cursor: hand; width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_YurG55Yaya0/SsUbzeHfT1I/AAAAAAAAA_k/mKn8NRNbtFQ/s400/SmppClient.jpg" border="0" alt="" /><br />
Ensure that &#8220;Enable SMPP  Login for this User&#8221; is enabled.</p>
<p>We also recommend specifying IP address restrictions to limit the IP addresses from which this account is allowed to connect.  The &#8220;Restrict to IP Address(es)&#8221; field can contain a comma delimited list of allowed IP addresses.  A wildcard character of &#8220;*&#8221; can also be used to specify an entire subnet, such as 192.168.0.*.</p>
<p>It is now possible to configure your SMPP client software to connect to NowSMS using the IP address or host name of the NowSMS server, and the port number that we configured in step 1.</p>
<p>Your SMPP client might refer to the &#8220;User Name&#8221; as a &#8220;system_id&#8221;, but it is just different terminology for the same parameter.</p>
<p>An additional point of confusing in SMPP environments are the <a href="http://www.nowsms.com/ton-and-npi-settings-for-smpp-and-ucpemi">TON and NPI</a> values.  The NPI value is not important for this type of configuration.  The TON value should be set to &#8220;1&#8243; if you are sending messages where the recipient phone number is in international format <em>(includes a country code)</em>.  If the recipient phone number is in local format, use a TON value of &#8220;0&#8243;.</p>
<p>So far we&#8217;ve only covered how an SMPP client can send messages through NowSMS.</p>
<p>It is also possible for an SMPP client to receive messages from NowSMS.  There are two different ways to configure this:</p>
<p>A.) If you are using a GSM modem and want all messages received via that modem to be routed to your SMPP client, select <span class="notranslate">&#8220;Properties&#8221;</span> for the modem in the NowSMS SMSC list.  Select the name of your SMPP user account in the <span class="notranslate">&#8220;Route SMS to local user&#8221;</span> field.  When this option is set, all SMS messages that NowSMS receives via this modem will be routed for delivery to your SMPP client.</p>
<p>B.) An alternative solution is available for more complex systems.  One of the properties for the &#8220;SMS User&#8221; account is &#8220;Recipient address(es) to route to this user&#8221;.  This property can contain a comma delimited list of phone numbers, which can include &#8220;?&#8221; (match 1 character) and &#8220;*&#8221; (match 0 or more characters) wildcards.</p>
<p>Whenever NowSMS routes a message that is addressed to a phone number that matches this list, it will route the message to the SMPP client instead of sending it via an outbound SMSC connection.</p>
<p>This property also applies to SMS messages that are received via an upstream SMSC connection.   For example, if you have an SMSC connection that receives messages for multiple short codes, NowSMS can route the received messages to different SMPP clients depending on the short code number for which the message is received on.</p>
<p>That&#8217;s a quick overview of this functionality.  If you have any questions, please visit us in the <a href="http://www.nowsms.com/messages">NowSMS Support Forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/using-nowsms-as-an-smpp-server-for-another-application/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMPP Error Code Reference</title>
		<link>http://www.nowsms.com/smpp-error-code-reference</link>
		<comments>http://www.nowsms.com/smpp-error-code-reference#comments</comments>
		<pubDate>Mon, 28 Sep 2009 08:54:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[SMPP]]></category>
		<category><![CDATA[SMPP errors]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=117</guid>
		<description><![CDATA[Information on how NowSMS handles different SMPP errors can be found at the following link: http://www.nowsms.com/smpp-error-code-handling-in-nowsms This article is a reference for SMPP error codes. ESME_RINVMSGLEN 1 Invalid Message Length (sm_length parameter) ESME_RINVCMDLEN 2 Invalid Command Length (command_length in SMPP PDU) ESME_RINVCMDID 3 Invalid Command ID (command_id in SMPP PDU) ESME_RINVBNDSTS 4 Incorrect BIND status [...]]]></description>
			<content:encoded><![CDATA[<p>Information on how NowSMS handles different SMPP errors can be found at the following link: <a href="http://www.nowsms.com/smpp-error-code-handling-in-nowsms">http://www.nowsms.com/smpp-error-code-handling-in-nowsms</a></p>
<p>This article is a reference for SMPP error codes.</p>
<div></div>
<div>
<table border="1" cellspacing="0" cellpadding="4" width="600" bordercolor="#000000">
<colgroup>
<col width="133"></col>
<col width="39"></col>
<col width="467"></col>
</colgroup>
<tbody>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVMSGLEN</p>
</td>
<td width="39">
<p lang="en">1</p>
</td>
<td width="467">
<p lang="en">Invalid Message Length (sm_length parameter)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVCMDLEN</p>
</td>
<td width="39">
<p lang="en">2</p>
</td>
<td width="467">
<p lang="en">Invalid Command Length (command_length in SMPP PDU)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVCMDID</p>
</td>
<td width="39">
<p lang="en">3</p>
</td>
<td width="467">
<p lang="en">Invalid Command ID (command_id in SMPP PDU)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVBNDSTS</p>
</td>
<td width="39">
<p lang="en">4</p>
</td>
<td width="467">
<p lang="en">Incorrect BIND status for given command (example: trying to submit a message when bound only as a receiver)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RALYBND</p>
</td>
<td width="39">
<p lang="en">5</p>
</td>
<td width="467">
<p lang="en">ESME 			already in bound state (example: sending a second bind command 			during an existing SMPP session)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVPRTFLG</p>
</td>
<td width="39">
<p lang="en">6</p>
</td>
<td width="467">
<p lang="en">Invalid 			Priority Flag (priority_flag parameter)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVREGDLVFLG</p>
</td>
<td width="39">
<p lang="en">7</p>
</td>
<td width="467">
<p lang="en">Invalid 			Regstered Delivery Flag (registered_delivery parameter)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RSYSERR</p>
</td>
<td width="39">
<p lang="en">8</p>
</td>
<td width="467">
<p lang="en">System 			Error (indicates server problems on the SMPP host)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSRCADR</p>
</td>
<td width="39">
<p lang="en">0x0A</p>
</td>
<td width="467">
<p lang="en">Invalid 			source address (sender/source address is not valid)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDSTADR</p>
</td>
<td width="39">
<p lang="en">0x0B</p>
</td>
<td width="467">
<p lang="en">Invalid 			desintation address (recipient/destination phone number is not 			valid)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVMSGID</p>
</td>
<td width="39">
<p lang="en">0x0C</p>
</td>
<td width="467">
<p lang="en">Message 			ID is invalid (error only relevant to query_sm, replace_sm, 			cancel_sm commands)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RBINDFAIL</p>
</td>
<td width="39">
<p lang="en">0x0D</p>
</td>
<td width="467">
<p lang="en">Bind 			failed (login/bind failed &#8211; invalid login credentials or login 			restricted by IP address)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVPASWD</p>
</td>
<td width="39">
<p lang="en">0x0E</p>
</td>
<td width="467">
<p lang="en">Invalid 			password (login/bind failed)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSYSID</p>
</td>
<td width="39">
<p lang="en">0x0F</p>
</td>
<td width="467">
<p lang="en">Invalid 			System ID (login/bind failed &#8211; invalid username / system id)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RCANCELFAIL</p>
</td>
<td width="39">
<p lang="en">0&#215;11</p>
</td>
<td width="467">
<p lang="en">cancel_sm 			request failed</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RREPLACEFAIL</p>
</td>
<td width="39">
<p lang="en">0&#215;13</p>
</td>
<td width="467">
<p lang="en">replace_sm 			request failed</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RMSGQFUL</p>
</td>
<td width="39">
<p lang="en">0&#215;14</p>
</td>
<td width="467">
<p lang="en">Message 			Queue Full (This can indicate that the SMPP server has too many 			queued messages and temporarily cannot accept any more messages. 			It can also indicate that the SMPP server has too many messages 			pending for the specified recipient and will not accept any more 			messages for this recipient until it is able to deliver messages 			that are already in the queue to this recipient.)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSERTYP</p>
</td>
<td width="39">
<p lang="en">0&#215;15</p>
</td>
<td width="467">
<p lang="en">Invalid 			service_type value</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVNUMDESTS</p>
</td>
<td width="39">
<p lang="en">0&#215;33</p>
</td>
<td width="467">
<p lang="en">Invalid 			number_of_dests value in submit_multi request</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDLNAME</p>
</td>
<td width="39">
<p lang="en">0&#215;34</p>
</td>
<td width="467">
<p lang="en">Invalid 			distribution list name in submit_multi request</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDESTFLAG</p>
</td>
<td width="39">
<p lang="en">0&#215;40</p>
</td>
<td width="467">
<p lang="en">Invalid 			dest_flag in submit_multi request</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSUBREP</p>
</td>
<td width="39">
<p lang="en">0&#215;42</p>
</td>
<td width="467">
<p lang="en">Invalid 			&#8216;submit with replace&#8217; request (replace_if_present flag set)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVESMCLASS</p>
</td>
<td width="39">
<p lang="en">0&#215;43</p>
</td>
<td width="467">
<p lang="en">Invalid 			esm_class field data</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RCNTSUBDL</p>
</td>
<td width="39">
<p lang="en">0&#215;44</p>
</td>
<td width="467">
<p lang="en">Cannot 			submit to distribution list (submit_multi request)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RSUBMITFAIL</p>
</td>
<td width="39">
<p lang="en">0&#215;45</p>
</td>
<td width="467">
<p lang="en">Submit 			message failed</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSRCTON</p>
</td>
<td width="39">
<p lang="en">0&#215;48</p>
</td>
<td width="467">
<p lang="en">Invalid 			Source address TON</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSRCNPI</p>
</td>
<td width="39">
<p lang="en">0&#215;49</p>
</td>
<td width="467">
<p lang="en">Invalid 			Source address NPI</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDSTTON</p>
</td>
<td width="39">
<p lang="en">0&#215;50</p>
</td>
<td width="467">
<p lang="en">Invalid 			Destination address TON</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDSTNPI</p>
</td>
<td width="39">
<p lang="en">0&#215;51</p>
</td>
<td width="467">
<p lang="en">Invalid 			Destination address NPI</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSYSTYP</p>
</td>
<td width="39">
<p lang="en">0&#215;53</p>
</td>
<td width="467">
<p lang="en">Invalid 			system_type field</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVREPFLAG</p>
</td>
<td width="39">
<p lang="en">0&#215;54</p>
</td>
<td width="467">
<p lang="en">Invalid 			replace_if_present flag</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVNUMMSGS</p>
</td>
<td width="39">
<p lang="en">0&#215;55</p>
</td>
<td width="467">
<p lang="en">Invalid 			number_of_messages parameter</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RTHROTTLED</p>
</td>
<td width="39">
<p lang="en">0&#215;58</p>
</td>
<td width="467">
<p lang="en">Throttling 			error (This indicates that you are submitting messages at a rate 			that is faster than the provider allows)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVSCHED</p>
</td>
<td width="39">
<p lang="en">0&#215;61</p>
</td>
<td width="467">
<p lang="en">Invalid 			schedule_delivery_time parameter</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVEXPIRY</p>
</td>
<td width="39">
<p lang="en">0&#215;62</p>
</td>
<td width="467">
<p lang="en">Invalid 			validity_period parameter / Expiry time</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVDFTMSGID</p>
</td>
<td width="39">
<p lang="en">0&#215;63</p>
</td>
<td width="467">
<p lang="en">Invalid 			sm_default_msg_id parameter (this error can sometimes occur if the 			&#8220;Default Sender Address&#8221; field is blank in NowSMS)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RX_T_APPN</p>
</td>
<td width="39">
<p lang="en">0&#215;64</p>
</td>
<td width="467">
<p lang="en">ESME 			Receiver Temporary App Error Code</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RX_P_APPN</p>
</td>
<td width="39">
<p lang="en">0&#215;65</p>
</td>
<td width="467">
<p lang="en">ESME 			Receiver Permanent App Error Code (the SMPP provider is rejecting 			the message due to a policy decision or message filter)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RX_R_APPN</p>
</td>
<td width="39">
<p lang="en">0&#215;66</p>
</td>
<td width="467">
<p lang="en">ESME 			Receiver Reject Message Error Code (the SMPP provider is rejecting 			the message due to a policy decision or message filter)</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RQUERYFAIL</p>
</td>
<td width="39">
<p lang="en">0&#215;67</p>
</td>
<td width="467">
<p lang="en">query_sm 			request failed</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVOPTPARSTREAM</p>
</td>
<td width="39">
<p lang="en">0xC0</p>
</td>
<td width="467">
<p lang="en">Error 			in the optional TLV parameter encoding</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_ROPTPARNOTALLWD</p>
</td>
<td width="39">
<p lang="en">0xC1</p>
</td>
<td width="467">
<p lang="en">An 			optional TLV parameter was specified which is not allowed</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVPARLEN</p>
</td>
<td width="39">
<p lang="en">0xC2</p>
</td>
<td width="467">
<p lang="en">An 			optional TLV parameter has an invalid parameter length</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RMISSINGOPTPARAM</p>
</td>
<td width="39">
<p lang="en">0xC3</p>
</td>
<td width="467">
<p lang="en">An 			expected optional TLV parameter is missing</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RINVOPTPARAMVAL</p>
</td>
<td width="39">
<p lang="en">0xC4</p>
</td>
<td width="467">
<p lang="en">An 			optional TLV parameter is encoded with an invalid value</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RDELIVERYFAILURE</p>
</td>
<td width="39">
<p lang="en">0xFE</p>
</td>
<td width="467">
<p lang="en">Generice 			Message Delivery failure</p>
</td>
</tr>
<tr valign="TOP">
<td width="133">
<p lang="en">ESME_RUNKNOWNERR</p>
</td>
<td width="39">
<p lang="en">0xFF</p>
</td>
<td width="467">
<p lang="en">An 			unknown error occurred (indicates server problems on the SMPP 			host)</p>
</td>
</tr>
</tbody>
</table>
</div>
<div></div>
<p>Error codes between 0&#215;400 and 0x4FF are SMPP provider specific, and it is necessary to consult system documentation for the provider for more details.</p>
<p>For additional information, archived versions of the SMPP specification can be found at the following link: <a href="http://www.nowsms.com/smpp-3-4-protocol-specification-archive">http://www.nowsms.com/smpp-3-4-protocol-specification-archive</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/smpp-error-code-reference/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Option ICON 225 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-option-icon-225-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-option-icon-225-usb-modem#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:40:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=116</guid>
		<description><![CDATA[The Option ICON 225 is an excellent modem to use with NowSMS to send and receive SMS and MMS messages. This modem is readily available in many countries, as many mobile operators sell this modem as part of a mobile broadband package. (The modem that we tested was sold by Orange UK, but unlocked versions [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://1.bp.blogspot.com/_YurG55Yaya0/Srd0VWbi5jI/AAAAAAAAA-8/MOzq09t7Xfo/s1600-h/OptionIcon225.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5383899789691905586" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 320px; height: 159px;" src="http://1.bp.blogspot.com/_YurG55Yaya0/Srd0VWbi5jI/AAAAAAAAA-8/MOzq09t7Xfo/s320/OptionIcon225.jpg" border="0" alt="" /></a></p>
<div>The Option ICON 225 is an excellent modem to use with NowSMS to send and receive SMS and MMS messages.</div>
<div>This modem is readily available in many countries, as many mobile operators sell this modem as part of a mobile broadband package.  (The modem that we tested was sold by Orange UK, but unlocked versions of this modem are avaialable from multiple web sites.)</div>
<div>If you are using an unlocked version of this modem, do not install the software that is included on the USB drive of the modem, which may be branded for a specific carrier. Instead, download the modem driver software from <a href="http://support.option.com/">http://support.option.com</a>.</div>
<div>You may encounter a problem where NowSMS complains that the modem is already in use. The GlobeTrotter software that installs with the modem drivers may try to automatically make a data connection each time Windows is restarted. If this happens, load the GlobeTrotter software by clicking on its icon in the Windows tray (right side of the Windows taskbar, near the date and time display). Open the GlobeTrotter software and press the &#8220;More&#8221; button, then uncheck &#8220;Auto Connect&#8221;.</div>
<div>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Option ICON 225, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</div>
<div>
<div>Frequencies supported by the Option ICON 225:</div>
<div>3G/UMTS/HSDPA &#8211; 2100Mhz (Most of world, not North America)</div>
<div>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</div>
<div>HSDPA Max Performance: Download speed &#8211; 3.6 Mbps; Upload speed &#8211; 384 kbps (no HSUPA)</div>
<div>UMTS Max Performance: Download speed &#8211; 384 Kbps; Upload speed &#8211; 384 Kbps</div>
<div>EDGE Max Performance: Download speed &#8211; 247 Kbps; Upload speed &#8211; 247 Kbps</div>
<div>NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Supports &#8220;Direct to Modem&#8221;.</div>
<div>SMS Delivery Receipts are supported.</div>
<div>The Option ICON 225 modem does not support an external antenna (uses internal antenna only).</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-option-icon-225-usb-modem/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Sierra Wireless Compass 885 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-sierra-wireless-compass-885-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-sierra-wireless-compass-885-usb-modem#comments</comments>
		<pubDate>Thu, 17 Sep 2009 07:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=115</guid>
		<description><![CDATA[The Sierra Wireless Compass 885 USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages. This modem is readily available in the United States, as AT&#38;T sells it as the &#8220;AT&#38;T USBConnect Mercury&#8221;. While this modem works extremely well with NowSMS once it is installed, it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://4.bp.blogspot.com/_YurG55Yaya0/SrEwMneaCGI/AAAAAAAAA-0/4P82BtlW47o/s1600-h/SierraWirelessCompass885.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5382136022997534818" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 191px; height: 320px;" src="http://4.bp.blogspot.com/_YurG55Yaya0/SrEwMneaCGI/AAAAAAAAA-0/4P82BtlW47o/s320/SierraWirelessCompass885.jpg" border="0" alt="" /></a></p>
<div>The Sierra Wireless Compass 885 USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages.</div>
<div>This modem is readily available in the United States, as AT&amp;T sells it as the &#8220;AT&amp;T USBConnect Mercury&#8221;.</div>
<div>While this modem works extremely well with NowSMS once it is installed, it can be very difficult modem to install.  The reason for this is because the primary market for this modem (and other USB modems) is to provide internet connectivity.</div>
<div>If you&#8217;re looking at using this modem (or a similar modem) with NowSMS, it&#8217;s probably best not to purchase the modem from the mobile operator with a data plan.  When you do this, they are assuming that the primary use of the modem is internet connectivity, and NowSMS will not use the modem for that purpose.  Often these data plans don&#8217;t even have SMS or MMS services enabled.</div>
<div>If you purchase this modem unlocked, it is recommended that you do not use the AT&amp;T branded drivers, but instead use the generic Sierra Wireless drivers.  These drivers can be downloaded from <a href="http://www.sierrawireless.com/support">http://www.sierrawireless.com/support</a>, specifying &#8220;Others&#8221; as the &#8220;Carrier&#8221;.</div>
<div>Install these drivers before installing the modem in your PC.  When installing the modem, tell Windows that it can find the drivers in the &#8220;Program Files\Sierra Wireless Inc\TRU-Install\Drivers&#8221; directory.</div>
<div>Unfortunately, when you attempt to add the Sierra Wireless Compass 885 USB Modem to NowSMS, you will most likely encounter the error message &#8220;Modem does not properly support command for sending SMS (AT+CMGS)&#8221;.</div>
<div>Or, with older versions of NowSMS, the modem will add correctly, however any attempt at sending SMS messages will result in the error &#8220;ERROR -Modem Response (1): OK&#8221;.</div>
<div>These errors happen because the driver software for the Sierra Wireless modems actually installs several virtual COM ports for communicating with the modem.</div>
<div>One of these COM ports can be used for sending/receiving SMS messages, while the other COM port can only support data/internet connectivity.</div>
<div>With the 885 modem, multiple virtual COM ports are installed by the Sierra Wireless software.  However, a Windows modem driver is installed for only one of these COM ports, so when you select &#8220;Sierra Wireless HSPA Modem&#8221;, you are connecting to a COM port that only supports data/internet connectivity, not SMS connectivity.</div>
<div>To be able to send/receive SMS messages, it is necessary to identify the other COM port.</div>
<div>To identify the COM port, go into the System applet in the Windows Control Panel, and access &#8220;Device Manager&#8221;.  In the &#8220;Ports (COM &amp; LPT)&#8221; section, you will find a port labeled &#8220;Sierra Wireless AT Command Port (UMTS)&#8221;, followed by a COM port number such as COM24.</div>
<div>Once you have identified the COM port number, it is possible to add the modem to NowSMS by referencing the COM port number directly.</div>
<div>However, if you use the COM port directly in NowSMS, you won&#8217;t be allowed to configure the modem for sending and receiving MMS.  It will support SMS only.</div>
<div>The simple way to enable support for sending/receiving MMS is to manually install a Windows Modem driver for this COM port.  This can be done through the &#8220;Phone &amp; Modem Options&#8221; applet in the Windows Control Panel.  We recommend that you manually select the modem driver, rather than having Windows detect the modem.  For best results, use the &#8220;Standard 33600 bps Modem&#8221; driver.</div>
<div>After installing this Windows modem driver, configure NowSMS to use the &#8220;Standard 33600 bps Modem&#8221; to connect with the Sierra Wireless 885, instead of using the direct COM port reference.</div>
<div>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Sierra Wireless Compass 885, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</div>
<div>
<div>Frequencies supported by the Sierra Wireless Compass 885:</div>
<div>3G/UMTS/HSDPA/HSUPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</div>
<div>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</div>
<div>HSPA Max Performance: Download speed &#8211; 7.2 Mbps; Upload speed &#8211; 2.0 Mbps</div>
<div>EDGE/GPRS Max Performance: Not specified</div>
<div>NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Does not supports &#8220;Direct to Modem&#8221; (<span class="notranslate">&#8220;Default&#8221;</span> mode can be used).</div>
<div>SMS Delivery Receipts are NOT supported.</div>
<div>The Sierra Wireless Compass 885 modem does have support for connecting an external antenna to enhance the strength of its internal antenna.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-sierra-wireless-compass-885-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Option ICON 322 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-option-icon-322-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-option-icon-322-usb-modem#comments</comments>
		<pubDate>Thu, 17 Sep 2009 06:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=114</guid>
		<description><![CDATA[The Option ICON 322 is an excellent modem to use with NowSMS to send and receive SMS and MMS messages. This modem is readily available in the United States, as AT&#38;T sells it as the &#8220;AT&#38;T USBConnect Quicksilver&#8221;. If you are using an unlocked version of this modem, do not install the software that is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://4.bp.blogspot.com/_YurG55Yaya0/SrEvu-M9dFI/AAAAAAAAA-s/CKZtkH2-c1I/s1600-h/OptionIcon322.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5382135513702298706" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_YurG55Yaya0/SrEvu-M9dFI/AAAAAAAAA-s/CKZtkH2-c1I/s320/OptionIcon322.jpg" border="0" alt="" /></a></p>
<div>The Option ICON 322 is an excellent modem to use with NowSMS to send and receive SMS and MMS messages.</div>
<div>This modem is readily available in the United States, as AT&amp;T sells it as the &#8220;AT&amp;T USBConnect Quicksilver&#8221;.</div>
<div>If you are using an unlocked version of this modem, do not install the software that is included on the USB drive of the modem, which may be branded for a specific carrier.  Instead, download the modem driver software from <a href="http://support.option.com/">http://support.option.com</a>.</div>
<div>You may encounter a problem where NowSMS complains that the modem is already in use.  The GlobeTrotter software that installs with the modem drivers may try to automatically make a data connection each time Windows is restarted.  If this happens, load the GlobeTrotter software by clicking on its icon in the Windows tray (right side of the Windows taskbar, near the date and time display).  Open the GlobeTrotter software and press the &#8220;More&#8221; button, then uncheck &#8220;Auto Connect&#8221;.</div>
<div>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Option ICON 322, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</div>
<div>
<div>Frequencies supported by the Option ICON 322:</div>
<div>3G/UMTS/HSDPA/HSUPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</div>
<div>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</div>
<div>HSDPA Max Performance: Download speed &#8211; 3.6 Mbps; Upload speed &#8211; 1.46 Mbps</div>
<div>UMTS Max Performance: Download speed &#8211; 384 Kbps; Upload speed &#8211; 384 Kbps</div>
<div>EDGE Max Performance: Download speed &#8211; 247 Kbps; Upload speed &#8211; 247 Kbps</div>
<div>NowSMS Support Summary: Supports sending and receiving both SMS and MMS messages. Supports &#8220;Direct to Modem&#8221;.  This is one of the fastest modems that we have seen for sending SMS messages on circuit switched networks, even on 2G/2.5G networks, where speeds of 1 message every 2 to 3 seconds is typical.</div>
<div>SMS Delivery Receipts are supported.</div>
<div>The Option ICON 322 modem does not support an external antenna (uses internal antenna only).</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-option-icon-322-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the Novatel MC950D USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-novatel-mc950d-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-novatel-mc950d-usb-modem#comments</comments>
		<pubDate>Thu, 17 Sep 2009 05:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=113</guid>
		<description><![CDATA[The Novatel Wireless Ovation MC950D USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages. Drivers for this modem can be found on the Novatel Wireless web site at http://www.novatelwireless.com/index.php?option=com_content&#38;view=article&#38;id=139&#38;Itemid=305. (If this direct link is broken, navigate from http://www.novatelwireless.com/support/.) There are no special considerations for using [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://2.bp.blogspot.com/_YurG55Yaya0/SrEvLxdrLlI/AAAAAAAAA-k/uaxZ4UtpB64/s1600-h/NovatelMC950D.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5382134908987321938" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 298px; height: 123px;" src="http://2.bp.blogspot.com/_YurG55Yaya0/SrEvLxdrLlI/AAAAAAAAA-k/uaxZ4UtpB64/s320/NovatelMC950D.jpg" border="0" alt="" /></a></p>
<div>The Novatel Wireless Ovation MC950D USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages.</div>
<div>Drivers for this modem can be found on the Novatel Wireless web site at <a href="http://www.novatelwireless.com/index.php?option=com_content&amp;view=article&amp;id=139&amp;Itemid=305">http://www.novatelwireless.com/index.php?option=com_content&amp;view=article&amp;id=139&amp;Itemid=305</a>.  (If this direct link is broken, navigate from <a href="http://www.novatelwireless.com/support/">http://www.novatelwireless.com/support/</a>.)</div>
<div>There are no special considerations for using the Novatel MC950D modem with NowSMS.</div>
<div>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the Novatel Wireless Ovation MC950D, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</div>
<div>
<div>Frequencies supported by the Novatel Ovation MC950D</div>
<div>3G/UMTS/HSDPA/HSUPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</div>
<div>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</div>
<div>HSPA Max Performance: Download speed &#8211; 7.2 Mbps; Upload speed &#8211; 2.1 Mbps</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-novatel-mc950d-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMS and MMS with the SonyEricsson MD300 or MD400 USB Modem</title>
		<link>http://www.nowsms.com/sms-and-mms-with-the-sonyericsson-md300-or-md400-usb-modem</link>
		<comments>http://www.nowsms.com/sms-and-mms-with-the-sonyericsson-md300-or-md400-usb-modem#comments</comments>
		<pubDate>Thu, 17 Sep 2009 04:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[3G modem]]></category>
		<category><![CDATA[GPRS modem]]></category>
		<category><![CDATA[GSM modem]]></category>
		<category><![CDATA[USB modem]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=112</guid>
		<description><![CDATA[The SonyEricsson MD300 USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages. When attempting to add the MD300 modem to NowSMS, you may encounter the error &#8220;Modem does not properly support command for sending SMS (AT+CMGS)&#8221;. This is due to a power management feature of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://2.bp.blogspot.com/_YurG55Yaya0/SrEuio_cT0I/AAAAAAAAA-c/yKUfdGMr8-s/s1600-h/SonyEricssonMD300.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5382134202338398018" style="float: left; margin: 0 10px 10px 0; cursor: hand; width: 320px; height: 224px;" src="http://2.bp.blogspot.com/_YurG55Yaya0/SrEuio_cT0I/AAAAAAAAA-c/yKUfdGMr8-s/s320/SonyEricssonMD300.jpg" border="0" alt="" /></a></p>
<div>The SonyEricsson MD300 USB Modem is a very good modem to use with NowSMS to send and receive SMS and MMS messages.</div>
<div>When attempting to add the MD300 modem to NowSMS, you may encounter the error &#8220;Modem does not properly support command for sending SMS (AT+CMGS)&#8221;.</div>
<div>This is due to a power management feature of the modem.  You may notice that there when using the SonyEricsson Wireless Manager, there is a blinking light on the modem.  However, the light is not blinking when NowSMS reports this error.</div>
<div>NowSMS versions after 2009.08.14 include support for automatically powering up SonyEricsson modems, which will resolve this problem.  If you are using an earlier version of NowSMS, an update can be downloaded at <a href="http://www.nowsms.com/download/nowsmsupdate.zip">http://www.nowsms.com/download/nowsmsupdate.zip</a>.</div>
<div>For general information on configuring NowSMS to send and receive SMS and MMS messages with a GSM modem, such as the SonyEricsson MD300, please see the NowSMS Quick Start Guide at <a href="http://www.nowsms.com/doc/quick-start-guide">http://www.nowsms.com/doc/quick-start-guide</a>.</div>
<div>Frequencies supported by the SonyEricsson MD300:</div>
<div>3G/UMTS/HSDPA &#8211; 850Mhz/1900Mhz/2100Mhz (Good for most of the world, plus AT&amp;T USA)</div>
<div>EDGE/GPRS &#8211; 850Mhz/900Mhz/1800Mhz/1900Mhz (Global)</div>
<div>
<div>HSDPA Max Performance:  Download speed &#8211; 3.6 Mbps; Upload speed &#8211; 384 Kbps (no HSUPA support)</div>
<div>UMTS Max Performance:  Download speed &#8211; 384 Kbps; Upload speed &#8211; 384 Kbps</div>
<div>EDGE Max Performance:  Download speed &#8211; 247.4 Kbps; Upload speed &#8211; 123.7 Kbps</div>
<div>GPRS Max Performance:  Download speed &#8211; 85.6 Kbps; Upload speed &#8211; 42.8 Kbps</div>
</div>
<div>NowSMS Support Summary:  Supports sending and receiving both SMS and MMS messages. Supports &#8220;Direct to Modem&#8221; (does not support Phase 2+).</div>
<div>SMS Delivery Receipts are supported, but  problems are noted.  If a delivery report is received while a message is being sent, the modem will neglect to acknowledge that the current message was sent, resulting in a delayed retry, and most likely a duplicate message.</div>
<div>The SonyEricsson MD400 supports the same frequencies as the MD300, but adds higher speed HSDPA and HSUPA support:</div>
<div>
<div>HSPA Max Performance:  Download speed &#8211; 7.2 Mbps; Upload speed &#8211; 2 Mbps</div>
<div>
<div>The SonyEricsson MD300 and MD400 modems do not support an external antenna (uses internal antenna only).</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/sms-and-mms-with-the-sonyericsson-md300-or-md400-usb-modem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing NowWAP 2009</title>
		<link>http://www.nowsms.com/introducing-nowwap-2009</link>
		<comments>http://www.nowsms.com/introducing-nowwap-2009#comments</comments>
		<pubDate>Tue, 11 Aug 2009 08:00:00 +0000</pubDate>
		<dc:creator>bryce</dc:creator>
				<category><![CDATA[Support Blog]]></category>
		<category><![CDATA[NowWAP]]></category>
		<category><![CDATA[operator MMSC]]></category>

		<guid isPermaLink="false">http://www.nowsms.co.uk/?p=111</guid>
		<description><![CDATA[NowMobile is proud to introduce the latest version of the NowWAP Proxy/Gateway, NowWAP 2009. We&#8217;d like to take this opportunity to let you know what is new in NowWAP 2009. And if you missed our recent announcements regarding NowSMS 2009, the NowSMS MMSC, and NowSMS Lite, you can learn more at http://www.nowsms.com/nowsms2009. The most significant [...]]]></description>
			<content:encoded><![CDATA[<p>NowMobile is proud to introduce the latest version of the NowWAP Proxy/Gateway, <a href="http://www.nowwap.com/">NowWAP 2009</a>.  We&#8217;d like to take this opportunity to let you know what is new in NowWAP 2009.</p>
<p>And if you missed our recent announcements regarding NowSMS 2009, the NowSMS MMSC, and NowSMS Lite, you can learn more at <a href="http://www.nowsms.com/nowsms2009">http://www.nowsms.com/nowsms2009</a>.</p>
<p>The most significant improvements in the NowWAP 2009 release are in the areas of <b>scalability</b>, <b>performance</b> and <b>reporting</b>.</p>
<p>For <b>scalability</b> and <b>performance</b>, NowWAP 2009 includes both 32-bit and 64-bit versions of the product.</p>
<p>Porting the application to a 64-bit platform increases the amount of memory available to NowWAP, allowing it to support larger numbers of concurrent users, and scale to thousands of transactions per second.</p>
<p>Performance analysis of NowWAP during this process also resulted in significant performance enhancements that could be applied to both 32-bit and 64-bit versions of the product.  Our internal benchmark tests show significant speed improvements of 33% to 50% in core transaction processing speed.</p>
<p>Best of all, these performance enhancements required minimal changes to internal program logic, meaning that you&#8217;ll enjoy the same rock solid reliability that you&#8217;ve expected from NowWAP over the years.</p>
<p><b>Reporting</b> has historically been one of the weak pieces of NowWAP.  NowWAP 2009 introduces new activity reports that will help in managing network capacity.</p>
<p>Additional details on these reports can be found in the PDF version of the <a href="http://www.nowwap.com/NowWAP.pdf">NowWAP 2009 Manual</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nowsms.com/introducing-nowwap-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.958 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-14 13:23:36 -->
<!-- Compression = gzip -->
