NowSMS Update History 2024-02-16: https://nowsms.com/download/nowsms20240216.zip * 2-way SMS command procesing: Fix for an issue where 2-way command actions were randomly not found, resulting in inbound messages not being processed, and remaining as .SMS files in the SMS-IN directory. 2023-12-04: https://nowsms.com/download/nowsms20231204.zip * Configuration program requires being run as an administrator. This is to address a problem where Windows creates shadow copies of updated configuration files when the user account running the configuration program does not have rights to access the NowSMS directory. 2023-10-30: https://nowsms.com/download/nowsms20231030.zip * Fix for socket handle leak that would occur on non-TLS connection attempts to any of the SSL/TLS server ports. After many repeated occurrences, the service process could run out of handles, and become non-responsive. * Fix for bug processing accounting and/or routing callbacks where the HTTP keep-alive socket is unexpectedly closed. In the Linux version, this bug would generate "Shutdown triggered by SIGABRT" restarts, while in the Windows version, the server could become non-responsive. For more information, see https://support.nowsms.com/discus/messages/113328/114181.html 2023-02-27: https://nowsms.com/download/nowsms20230227.zip * Diameter protocol: Reset connection to Diameter server when an invalid packet is received. 2023-01-18: https://nowsms.com/download/nowsms20230118.zip * SMPP: Add configuration setting to ignore esm_class values when processing received SMS messages. This is intended as a work-around for dealing with an application that is setting this value incorrectly. IgnoreESMClass=Yes can be addeded to the settings for a particular SMPP SMSC connection or SMPP Client account under the [SMPP - server:port] or [SMPPClient - username] section of SMSGW.INI. 2022-10-03: https://nowsms.com/download/nowsms20221003.zip * Fix for problems with the MMSC feature to convert MMS to "SMS with Web Link (Direct)". Change made in 2022-06-09 update caused this feature to create invalid links as percent encoding was applied when it should not have been. * Add functionality to allow "SMS Users" accounts to change their own password. When enabled, this functionality appears in the web interface, under the "Settings" menu at the top right of the page. To enable this feature, it is necessary to edit SMSGW.INI, and create a [UserPasswords] section header. Under this section headeer add ChangeAllowed=Yes to enable this feature. Additional settings supported in this section include: MinLength=# to enforce a minimum character length for passwords; RequireUpperCaseAlpha=Yes to require at least one upper case letter (A-Z); RequireLowerCaseAlpha=Yes to require at least one lower case letter (a-z); RequireNumber=Yes to require at least one number (0-9); RequireSpecial=Yes to require at least one non-alphanumeric character. * Fix for issue in the web interface that could potentially be exploited by cross-site scripting. * XML status report now adds a suffix of "_secure" to the connection type, to make it possible to determine whether or not an SMPP client is connected using SSL/TLS. 2022-08-31: https://nowsms.com/download/nowsms20220831.zip * Fix for problems with sending test MMS messages vis the configuration UI. Screen was not being updated to show information if retries were being attempted to send the message. Also a fix for an issue where some US operators were rejecting the test message because of a valid but unusual attribute in the message header. 2022-06-16: https://nowsms.com/download/nowsms20220616.zip * Fix for issue editing 2-way commands using POST formats, where line breaks in the HTTP template were incorrectly replaced with "
". * Fix for 2022.06.09 change that broke the ability to download log files via the web admin interface. 2022-06-09: https://nowsms.com/download/nowsms20220609.zip * "Percent encoding" was not being properly applied for some characters when encoding URL parameters used by accounting callbacks, 2-way SMS and HTTP SMSC connections. RFC 3986 defines the characters that should be percent encoded (a.k.a. URL escaped). This update adds encoding for the following characters that were not encoded in previous versions: ' $ ( ) / = @ [ ] { } | ^ ` 2022-03-30: https://nowsms.com/download/nowsms20220330.zip * Legacy log format: In 2016, the time format in MMSC, SMSOUT, SMSIN and SMSWEB log files was changed from hh:mm:ss to hh:mm:ss:mmm. This was causing problems for customers updating from older versions. The 2020-12-29 version reverted to the hh:mm:ss format without milliseconds. It is now possible to add millseconds to the log file time format by adding LogMSecDelimiter=. or LogMSecDelimiter=: to the [SMSGW] section of SMSGW.INI. These settings will include milliseconds in the log file with the specified delimter (hh:mm:ss.mmm or hh:mm:ss:mmm). 2022-03-23: https://nowsms.com/download/nowsms20220323.zip * Fix for incorrect encoding of 3GPP-MS-TimeZone parameter in Diameter charging requests. 2022-02-22: https://nowsms.com/download/nowsms20220222.zip * Fix for restart triggered by an MM4 message addressed to a large number of recipients. * Fix for buffer overflow that occurs if MMS messages are submitted via an MMSFILE=http:// URL reference, and the URL returns a redirect response that redirects to a URL that is longer than approximately 2000 characters. * MMSC: Minor log file update to address CSV format issue with HTTPGET transactions where the size column was not included for 0 byte files. 2021-10-18: https://nowsms.com/download/nowsms20211018.zip * Fix for MM4 outbound connection "Max Recipients Per Message" setting. A bug caused non-default values to fail. The default value is 1. This does This does not block messages to multiple recipients, it just sends a separate copy of the message for each recipient (To/CC headers are maintained, so recipients still see the complete group). * MMSC: Performance improvements when submitting MMS messages via the proprietary URL interface (which is used by PHP and Java examples on the NowSMS web site). This change resolves an "Internal Error" report that could sporadically occur under heavy load, related to localhost connections stuck in a TIME_WAIT state. 2021-07-30: https://nowsms.com/download/nowsms20210730.zip * MMSC: Fix for a resource leak that could potentially occur when an ICAP server unexpectedly terminates a connection after response, instead of keeping the socket open. A similar leak could also potentially occur if HTTP keep-alive sockets are not enabled on the web server hosting MMS accounting or routing callbacks. Over time, this leak could result in the MMSC being unable to accept connections. 2021-07-07: https://nowsms.com/download/nowsms20210707.zip * Fix for circular rerouting that could occur when SMSC connections are configured with both ReRouteOnError and BackupForRouteLive settings. More detail at https://support.nowsms.com/discus/messages/1/113910.html 2021-06-11: https://nowsms.com/download/nowsms20210611.zip * Extra care is taken to ensure segments of a multipart message are sent over the same SMPP bind. Previously, controls were in place to use the same SMSC connection, but if multiple binds were defined for the connection, different segments could be sent via different binds. * Reduce CPU usage overhead when SMSCSendLimit setting is applied to throttle connection speed. 2021-04-28: https://nowsms.com/download/nowsms20210428.zip * Fix for problems sending MMS with a large number of outbound MMSC connections. 2021-03-20: https://nowsms.com/download/nowsms20210320.zip * Add additional statistic counter for "SMPP Client Queue" which reports the number of messages pending for delivery to SMPP clients. (Note: SMPP clients must initiate a connection to NowSMS to complete the delivery process.) The "Status" page in the NowSMS Web Admin interface now displays the total queue size for these pending messages, as well as the number of messages pending for each defined SMPP client. These values have also been added to the XML status query interface. 2021-01-15: https://nowsms.com/download/nowsms20210115.zip * Fix for (optional) new & improved CSV log format, which was encoding the " character incorrectly, if this character appeared in message text. Previously it was encoded as \" however the proper encoding is "" 2021-01-07: https://nowsms.com/download/nowsms20210107.zip * Fixes for new & improved CSV Log format to prevent some messages from causing crashes with the UseCSVLogFormat=Yes setting. 2020-12-29: https://nowsms.com/download/nowsms20201229.zip * Legacy log format: In 2016, the time format in MMSC, SMSOUT, SMSIN and SMSWEB log files was changed from hh:mm:ss to hh:mm:ss:mmm. This is causing problems for customers updating from older versions. This version reverts to the hh:mm:ss. Milliseconds are only included in time stamps in the debug logs or when the new CSV log format is enabled. 2020-10-15: https://nowsms.com/download/nowsms20201015.zip * Serial/USB GSM Modem: Fix for 15 second processing delays where "Error 3E4" and "CancelIO" references appear in SMSDEBUG.LOG. (Windows 2019) 2020-10-07: https://nowsms.com/download/nowsms20201007.zip * New & Improved CSV Log format available for logging SMS message activity. When UseCSVLogFormat=Yes is set under the [SMSGW] header of SMSGW.INI, message activity will be logged to nowsms-yyyymmdd.csv instead of SMSOUT-yyyymmdd.LOG, SMSWEB-yyyymmdd.LOG and SMSIN-yyyymmdd.LOG. The new CSV log format is compatible with the format used by NowSMS NextGen. * NowSMS now has the option to log message submissions to NowSMS that are not accepted by NowSMS. This is activated by default when UseCSVLogFormat=Yes is enabled, and can be disabled with the LogRejectedMessages=No setting. (When the new CSV log format is not active, this setting can be enabled with LogRejectedMessges=Yes.) 2020-07-22: https://nowsms.com/download/nowsms20200722.zip * SMPP Delivery Reports: The SMPP specification states that the format of the message text in a delivery report message is SMSC vendor specific, but defines a typical example format. It has become common practice for SMPP servers to follow this format, and many applications process the DLR after the message is converted to HTTP, so they rely on this format. Historically, NowSMS behavior is that if a message identifies as a DLR, but the message text does not start with "id:", NowSMS replaces the text of the DLR formatted consistent with the typical format. If the message text starts with "id:", NowSMS keeps the text, but replaces the message ID that immediately follows "id:", as needed. NowSMS has been updated to detect additional formatting problems (such as white space between "id:" and the actual message ID), and will replace the message text completely to avoid problems with DLR format expectations. DLR text replacement can be disabled by adding FixSMPPReceipts=No under the [SMSGW] header in SMSGW.INI. * New HTTP URL Parameter added to simplify delivery report tracking for HTTP based apps: The HTTP URL Parameter &UserMessageID=xxxxxxxxxxxxxx is used to specify an application generated message ID. Any delivery reports returned for the message will reference this ID instead of the message ID assigned by NowSMS. 2020-07-16: https://nowsms.com/download/nowsms20200716.zip * Many customers would like to have the option to process messages (and delivery reports) that are destined for an SMS User account, and post them via HTTP. 2-Way commands would appear to be a potential solution, but they process messages in the SMS-IN queue. One work-around is to define additional receive-only HTTP SMSC connections, with NowSMS connecting to itself via HTTP, logging in with the user account. (To ensure the connection is receive-only, make sure that the "Preferred" recipient list for the connection is empty and the Sender Address for the connection is blank.) It is then possible to define a 2-way command that processes messages received for this SMSC connection only. Currently, the only way to define a 2-way command that processes a single SMSC connection is via the web interface. To access this interface, you must login to the web interface using an SMS User account with admin privileges, then select 2-Way Commands under the Admin menu option. This update fixes a problem where the processing of delivery reports in this configuration were delayed for 10 minutes because of confusion over message ID conversion. 2020.07.10: https://nowsms.com/download/nowsms20200710.zip * Add SMSGW.INI parameter EnforcePreferredRoutes=Yes, when this setting is enabled, messages submitted via HTTP with explicit routing (&SMSCRoute= parameter) will be rejected if the route has a "preferred" recipient list and a recipient does not match that list. * SMS Credits were previously checked before message submission, but not deducted until the message is queued. This could allow an account with a low balance to submit multiple messages very quickly to send more messages than allowed by their remaining credits. 2020.06.02: https://nowsms.com/download/nowsms20200602.zip * SMS Gateway: Reduce CPU load when there is a large number of outbound SMPP SMSC connections. * SMS Gateway: Priority queue user account attribute disabled pending further investigation of performance problems. * SMS Gateway: Fix for feature to take an SMSC account offline not taking immediate effect with SMPP connections where async mode is enabled. 2020.02.03: https://nowsms.com/download/nowsms20200203.zip * User provisioning via HTTP URL: Fix for "send messages with high priority" aways being enabled for users provisioned via this interface. 2020.01.31: https://nowsms.com/download/nowsms20200131.zip * SMPP Server: Fix for improper encoding of Unicode messages received via the Android modem interface. 2020.01.15: https://nowsms.com/download/nowsms20200115.zip * XML Status: Reduce latency of reported queue size. * E-Mail Alerts: For multiserver configurations, add MessageIDPrefix value as server name in the text of the message. * MMSC: Add configuration settings to set an SMS Sender address and/or specific SMSC route for MMS notifications generated by the MMSC. In MMSC.INI, under the [MMSC] header, use MMSSMSSender=############## and/or MMSSMSCRoute=routename * MMSC: Add the ability to specify the source IP to be used when initiating outbound MM4 or MM7 connections. In VASPOUT\accountname\VASP.INI, under the [VASP] header, use SourceIP=a.b.c.d * SMS: Address an issue where unexpected results were experienced when an SMPP client segments text messages at 152 characters per segment instead of 153 characters, causing an extra white space character to be inserted at the end of the message segment. This is the result of logic that was added in 2006, where a customer was experiencing a problem with unexpected @ characters appearing at the end of some long (multi-segment) messages. At the time, this was found to be the result of encoding ambiguity for SMPP servers that use GSM 7-bit encoding for multi-segment messages. As a safety measure, message segments of particular lengths were padded with a white space to avoid an unexpected @ character, regardless of SMSC type or encoding. A setting has been added to disable this padding: DisableLongMessagePadding=Yes under the [SMSGW] header of SMSGW.INI. 2019.10.04: * Fix for Priority Message causing outbound message queue to get stuck. Problem was observed when long messages were submitted with priority with a specific route in the request. 2019.09.25: * MM4: Add work-around for MM4 provider using invalid address format. Specification defines two address formats: MMS-address = +number/TYPE=PLMN and SMTP-address = MMS-address@domain. SMTP-address is used at the SMTP transport level (MAIL FROM/RCPT TO), and MMS-address is used in thee message headers (From/To/CC)> This MM4 provider was using the SMTP-address in both cases, causing problems for replies. 2019.07.05: * SMPP: Add option for SMPP service_type value of WAP when WDP Adaptation is enabled to be overridden. In the SMSGW.INI file, under the [SMPP - server:port] section header, use ServiceTypeWAP=xxxxx to override this value. 2019.04.12: * System-wide Blacklist/Blocked Number support modified to support separate sender and recipient blacklists. Blacklist is accessible via the following interfaces: Web Interface under Admin/Blocked Numbers; text files Blacklist.TXT (for recipients to block) and Blacklist-Sender.TXT (for sender/source addresses to block) in the DLISTS directory (one entry per line); public distribution lists named Blacklist and Blacklist-Sender via DList APIs. * Android Modem: Fix for a reported problem where server to modem communication could get out of sync, leading to corrupt inbound MMS messages. * SSL/TLS Update to fix problems connecting to some service providers that require SNI. 2018.11.21: * SSL/TLS Fix for 2-way command or HTTP SMSC processing getting stuck with some servers. * Fix for priority queue handling issue with long messages segments sometimes being routed to different outbound routes. * Web interface: Delete all button added for message queue. 2018.11.16: * Web Interface: Fix for /ADMIN/XMLSTATUS requests returning "401 Auth Required". 2018.11.01: * Web Interface: Fix for "Recent System Activity" link not working in version 2018.10.01 * System Blacklist feature now blocks on both sender and recipient addresses. 2018.10.01: * MM4: Fix for circular routing check not working when there are multiple default routes. * MM4: Fix for missing log entries when an inbound MM4 are rejected for circular routing. * GSM Modem: Fix for unexpected service restarts when polling some modems for received messages. * SharedVolume.INI Settings: DebugLogDirectory= setting will now be read from SharedVolume.INI. LogFilenamePrefix=xx setting added to allow logs from different front-end servers to be more easily identified. 2018.09.04: * MM4 Inbound account definition under MMSC VASP now supports wildcard IP addresses, instead of requiring a separate VASP entry for every possible IP. To define this type of entry, leave the VASP account password blank, and use IP Address restrictions. * Recipient routing now supports consecutive MSISDN number ranges. For example +12345678900-29 matches +12345678900, +12345678901, +12345678902, ... , +12345678929 * Separate text files named ROUTESMS.TXT and ROUTEMMS.TXT can be created to define SMS and/or MMS routing for specific MSISDN numbers and ranges. Example: Route=NameOfRoute +14442223310-15 +14442225500-799 +1410876* +141033378?? Route=NameOfOtherRoute +12125437777 * Web interface: Fix for "Send Binary Message" Javascript errors. 2018.07.17: * Android client update: Fix for problem receiving MMS messages when operator MMSCs use SSL/TLS links. Fix for problems sending/receiving MMS on some operator networks when using newer Android versions. * SMS Priority Queue Support: A new user account setting has been added to give high priority to all SMS messages submitted by the account. Messages submitted by priority accounts will be given priority over messages from other accounts. * Various restrictions added for SMSC connections to limit the flow of messages: daily limits, monthly limits, quiet hours, "x" messages every "y" seconds. * Add configuration parameters to [SMSGW] section of SMSGW.INI to enable SMS reply routing when multiple user accounts are sharing the SMS gateway. These settings track outbound messages sent by different NowSMS user accounts. ReplyTrackSimple=Yes tracks only the destination address of the outbound message. If an inbound message has a matching source address, the message is routed to the user account that most recently sent to that address. ReplyTrack=Yes tracks both source and destination of outbound messages. For an inbound message to be considered a reply match, the inbound source/destination must match the outbound destination/source. * Various performance improvements for groups/distribution lists in the web interface. * "ExtraAVP" support for additional custom DIAMETER parameter. * Reduced CPU utilisation with large message queues with messages in retry state. * Added UCP/EMI Server support, allowing UCP clients to connect to NowSMS. UCP is a legacy protocol. This support is mostly useful for proxying UCP clients to send SMS via an SMPP or HTTP based service. The UCP server is enabled by specifying a UCP server port number on the "Web" page of the configuration program. If clients are authenticating via UCP type 60, an account for the client should be defined in "SMS Users", with the username and password matching UCP credentials (username is typically a short code or phone number), and SMPP access enabled. It is also possible to authenticate by IP address with or without UCP type 60 authentication by specifying the client IP address as the username of an "SMS Users" account, with SMPP access enabled. (In this authentication by IP address scenario, if the client sends a UCP type 60 auth, it will be accepted regardless of content.) It is also possible to accept all UCP connections, without defining accounts, by adding UCPAcceptAll=Yes to the [SMSGW] section of SMSGW.INI. By default, NowSMS will disconnect any clients idle for more than 12 hours. This timeout is configurable using the UCPInactivityTimeout=#### setting in the [SMSGW] section header of SMSGW.INI, where #### is a value in seconds, and 0 disables idle disconnect. 2017-07-04: * Android App: Fix for a handle leak which could cause the app to restart. * SMS Routing Restrictions by user account (AllowedUser settings): Fix for a bug where adding a user account to the preferred list for an SMSC connection only worked if a "Default Sender Address" is defined for that SMSC connection (or the "Phone Number" setting for modems). * E-Mail to SMS: When e-mail addresses are used for user account names, the forced sender setting for the account is now used. * Fix for an issue where services would not start on a system with 8.3 short filename support disabled. (Work-around for older versions is to install to a short directory name, e.g., C:\NowSMS, instead of the default location C:\Program Files (x86)\NowSMS) * Web Interface Updates: Usability improvements for address book and groups. Admin ability added to define/update 2-way commands. 2017-04-07: * IPV6 Support for all functions except 1.) sending MMS via GSM modem (if IPV6 required for this interface, se Android device as mode); and 2.) Local WiFi interface for Android devices requires IPV4. * Android Modems: Add support for a remote mode, which allows Android devices to register as modems with the NowSMS server from remote locations using either cellular data or WiFi. * System-wide Blacklist/Blocked Number support added. Blacklist is accessible via the following interfaces: Web Interface under Admin/Blocked Numbers; text file Blacklist.TXT in the DLISTS directory; public distribution list named Blacklist via DList APIs. * GSM Modems: Add support for simultaneous MMS transmission with USB modems. (Previously, simultaneous MMS transmission could not occur when multiple USB modems were connected to the same mobile operator.) * Android Modem: Reduce the amount of broadcast traffic generated if a configured Android modem drops off-line. * SMS Accounting Callbacks: Fix for problems overriding the To= recipient when a message was addressed to multiple recipients. * SMS Accounting Callbacks: Fix for issue where callback keywords were parsed from the HTTP header of the response, when they should only be processed in the HTTP content. * Web Admin: Fix for "Activity" button not working under "SMS Users" if a full name is defined for an account. * MM4: Address an issue where some operator MMSCs were not complaining that they were not receiving delivery reports from our MMSC. This issue was caused because the other MMSC was using the MM4 "X-Mms-Originator-R/S-Delivery-Report:Yes" header to request a delivery report independent of whether or not one was requested by the message originator. These delivery report requests are now supported. * MM4: Fix for a time conversion error that could occur when processing expiry dates on inbound MM4 messages. If an absolute expiration date is specified in the inbound MM4, in some cases, NowSMS would translate this as one hour earlier than intended. In one customer installation, an interconnect partner was setting the expiration date in MM4 messages to one hour ahead of the current time. As a result, the MMS notification to devices would contain an expiration date of the current time, or a time that had just passed, causing the device to ignore the notification as expired. (Note that these expiration times apply to how long delivery attempts should occur, they do not affect retention time on the receiving device.) * Web Interface: Fix for sporadic problems accessing address book and distribution lists. * Fix for two instances where timestamps were off by one hour in some configurations. One report involved the MM9/Diameter timestamp. The other report involved the displayed time for event log messages. * MMSC: Improved error handling for configurations with multiple front-end servers. * MMSC: By default, the MMSC will now refuse to accept messages larger than 4MB. (Most clients have limits of 1MB or 2MB.) The existing MMSC.INI setting MmsMessageSizeLimit=#### (value in KB) can be used to adjust this value. If not configured, the new default is 4096 (4096KB = 4MB). * MMSC: Fix for a denial of service issue that could be triggered by submission of an extremely large MMS message. * GSM Modems: Add support for configurations with no WAP Proxy (T-Mobile US and others). * Message Queue Size Alerts were previously only triggered if warning alerts were also enabled. This dependency has been removed, and queue size alerts are enabled independent of warning alerts. * Android Modem: Fix for a problem where, when first defined, some devices could not send MMS because the configuration program did not always provision all required settings. (Editing and saving modem settings would usually fix this issue.) * Install Issue - Web Services not available: Fix for an issue where NowSMS services would not start properly until some MMS settings were configured on the system. 2016-07-31: * MM7: Fix for problems parsing Subject headers that contain CDATA. * MM4: Add MMSCACKThreadCount=## configuration setting to allocate more threads for RES/ACK processing. This was necessary for a customer that was encountering a backlog because of a partner system that was very slow to accept these acknowledgments. * MMSC: Fix for problems with extremely slow user database access, especially with multiple front end servers or when MMSUSER -export is processing a large user database. 2016-05-24: * SMS Gateway: Includes fixes to web interface for installations that do not use passwords. * MMSC: ContentClass attribute added to accounting and routing callbacks (except inbound MM4). This parameter specifies the content type of the MMS message. Current defined values are: Video, Image, Object, Text, DeliveryReport and ReadReport. * MMSC DIAMETER: 3GPP Content-Class AVP is supported in Diameter templates using keyword @@ContentClass@@. Values 0 - 5 are supported (values 6 and 7 are to esoteric and more about handset capabilities). Any content > 300KB will be classified as megapixel. Binary objects (PDFs, documents) will be classified as images if <= 300KB. (Contact info/vCard objects will be classified as text.) * MMSC DIAMETER: Different templates are supported for each Diameter connection. Each Diameter connection has a name. By default, the MMSC looks for templates (diameter-capabilities-exchange.xml and diameter-credit-control.xml) in the DIAMETER folder. The MMSC now checks first for connection specific templates in DIAMETER\ConnectionName. 2016-03-28: * SMS Gateway: Performance improvements for multiserver configurations where NowSMS is using network storage. (One site experienced sporadic 2-3 second delays with the SMPP server accepting some messages from SMPP clients.) * SMS Gateway: Performance improvements: NowSMS is now quicker routing SMS and MMS messages to an outbound connection. Previously, if the system was idle, there was a 1/2 to 1 second delay between accepting the message, and starting the outbound processing. Routing is now instantaneous. * SMS Gateway: Fix for an issue where unroutable messages could get stuck in the outbound message queue when routes are restricted to specific user accounts combined with preferred route prefixes, and "Support any outbound message traffic" is not set for any route. * SMPP Server: Non-numeric characters will be stripped from destination/recipient addresses, unless AllowAlphaRecip=Yes is enabled in the [SMSGW] section of SMSGW.INI. * SMPP Server: If an SMPP client submits a source/sender address that is alphanumeric, but has a TON value of 1 indicating international format, this update will no longer add + to the alphanumeric source address and will treat it as TON=5 (alphanumeric). * MM9/DIAMETER: Response AVP values checking now also checks for response status embedded inside a Multiple Services Credit Control AVP group to support more complex billing scenarios. * Android App: Updated to address automatic restart after device reboot on Android 6.x. * Android modem: Configuration setting added to allow the screen to turn of on the Android device. Requires updated app on device and updated NowSMS on PC. To turn off screen, add KeepScreenOn=No under the [NowSMSModem - name] section of SMSGW.INI. Note that some device are more likely to take longer to send SMS when the screen is off, and some devices may go to sleep and go off line, requiring a manual wake up. Test your device thoroughly if using this setting. 2016-03-17: (Version # not updated, only SMSGWS.EXE) * 2-way MMS with HTTP POST: Fix for problem where some systems failed to connect to the server to deliver 2-way MMS via HTTP POST. 2016-03-01: * SMPP Server: Fix for a crash/exception error that could occur when the SMPP server is enabled and a long SMS message is received from an Android modem and routed to a local SMPP user account. 2016-02-23: * DIAMETER/MM9: Add support for encoding SGSN-MCCMNC using the 3GPP-User-Location-Info format. The DIAMETER XML template supports a @@UserLocationInfo@@ variable that is built from SGSN-MCCMNC. Typical encoding in the template is to use the OctetString format: * DIAMETER/MM9: Previous versions only supported a server initiated "device watchdog" check. The MMSC would respond to watchdog checks received from the server, but would not initiate sending watchdog requests to the DIAMETER server. Beginning with this version, a timer can be set for client initiated "device watchdog" checks when the connection is idle. To enable this watchdog, add WatchdogTimer=## to the [MM9Diameter] section of MMSC.INI (## is an interval in seconds). * MMSC: "Retry MMS Notifications" was only supported for configurations where the MMSC sends MMS Notifications via WAP Push over SMS. It is now also supported for configurations where MMS Notifications are routed via an external Push Proxy Gateway (PPG). * SMS Gateway: ReRouteOnError SMSC setting updated to prevent circular routing/infinite loops. * SMS Gateway: Add alternative support for backup (fail-over) routes for SMSC connections. A backup route is normally activated only when a primary route is down. To configure a backup route, define the SMSC connection to NowSMS as normal, then manually edit the SMSGW.INI file. Under the SMSC section header (e.g., [Modem - driver name] or [SMPP - server:port]), add BackupForRoute=xxxxxx where xxxxxx is either the name of another SMSC connection or a "RouteName=" setting defined for one or more SMSC connections. If xxxxxx is the name of another SMSC connection, this SMSC connection will only be activated if that other SMSC connection is down. If xxxxxx is a "RouteName=" setting defined for one or more SMSC connections, this SMSC connection will only be activated if all other SMSC connections with this route name are down. If the backup route should always be active, use BackupForRouteLive=xxxx instead of BackupForRoute. If route/connection xxxx is down, this route adds that workload to its own. * SMS Gateway/SMPP server: Fix for an issue where an SMPP client submitting a multipart long message to a number that includes dash characters (-) could cause backlogs in the outbound message queue. * Configuration Utility: Changing the server address or port number of an SMPP SMSC would cause custom settings for that connection to be removed (applies only to settings that can only be added by manually editing SMSGW.INI). Fixed. * Android Modem: By default, NowSMS polls modems every 3 minutes (180 seconds). In previous versions, this default was 10 minutes. If the Android app does not see activity within that period, it assumes there is a problem and begins to take corrective action. Previously, this would take between 11 and 20 minutes for recovery action to complete. This is now configurable. In SMSGW.INI, under the [SMSGW] header, add ModemAppCheckInterval=###, where ### is the polling interval in seconds. The Android app will initiate recovery attempts at interval + 10%. 2016-02-10: * Recent versions made changes to how NowSMS chooses which IP address to use for an outbound connection on a system with multiple IP addresses. The IPAddress= setting in SMSGW.INI and MMSC.INI specifies the IP address for all inbound server connections. By default, this address will also be used for outbound connections. Use an IPAddressOut= setting to specify a different IP address for outbound connections. SMPP connections can override these settings by adding a BindIP=a.b.c.d setting in the [SMPP - server:port] section of SMSGW.INI. * MM9/DIAMETER: Add @@VASPID@@ parameter to template variables for messages submitted by a VASP. * MM4: Some servers do not like the use of the SMTP RSET command to enable multiple messages to be transferred in a single session. By default, after each MM4 transmission, NowSMS will send the RSET command, and keep the session open for up to 90 seconds to send additional messages. To disable this behaviour, edit VASPOUT\routename\VASP.INI, and add add UseKeepAlive=No under the [VASP] header. Previously this setting applied only to messages, not ACKs (MM4_forward.RES). It now applies to both. 2016-02-01: * Web Interface/Received Messages: Fix for date string display in various languages. Add @@RECIP@@ variable support to template. * MMSC Routes that use the MM7/PHP interface can now receive delivery reports. Delivery status will be reported in the MMSStatus parameter, and the message ID in the MMSMessageID parameter. * When running a multiserver installation with a shared back-end storage, do not start with default settings if back-end is unavailable. * MMSC: Convert MMS to SMS with web link was not properly handling text only MMS messages from some handsets, resulting in missing text. (Observed with MMS message submitted with Motorola i876 on iDEN network.) * MMSC: Change X-WAP-Application-id header to X-WAP-Application-Id to match capitalization of the header as defined in WAP WSP. This applies only to configurations where MMS notifications are routed to a separate Push Proxy Gateway via PAP. 2015-12-12: * Web Interface: New login interface replaces browser based authentication. HTTP Basic Authentication (Authorization: header) is still supported for application based HTTP submissions, but normal web users will login via a web form. New settings are added to the [SMSGW] section of SMSGW.INI: WebLoginNew=No disables the new login form and reverts to HTTP Basic Authentication. LoginTitle=XXXXXX sets the title on the new login form. 2015-12-03: * SMS Gateway: Fix for AllowedUserOnly setting on SMSC routes. The web interface no longer displays routes that the user cannot access. (And the server will reject messages with an SMSCRoute parameter that the user cannot access.) 2015-12-01: * Web Admin: Add counter stat for yesterday activity to XML and web admin interface. * Web Admin: Fix for legacy ("Convert to SMS with Web Link") message retrieval not incrementing MMS retrieval statistics. * Fix for desktop icon for "Web Interface" attempting to access 127.0.0.1 when server is bound to a different IP. * MMSC: Fix for problems associated with configurations where the MMSC is bound to a public IP and the SMS GW is bound to a private IP. In this configuration, the MMSC could not post SMS messages for legacy handsets where MMS messages are converted to SMS with web link. * Web Admin: Fix for Web Admin not displaying log files if configuration settings moved the logs to a different directory. * MM4/MM7: Add configuration parameter to use an alternative character set for text in outbound MM4 and MM7 messages. By default utf-8 is used. To specify an alternate character set, edit VASPOUT\routename\VASP.INI, and under the [VASP] header, add TextCharset=xxxxxxx. Only 8-bit multibyte character sets are supported (do not attempt to use UCS2 or UTF-16). 2015-11-08: * Web Interface: The NowSMS web interface has been updated to use a more modern style. Previous version templates will be saved to the html.old directory. * MMSC/MM4/SMTP: Some MM4 interconnects do not understand SMTP "quoted-printable" encoding. NowSMS uses "quoted-printable" encoding to preserve compatibility with old SMTP relays when MMS content does not include line breaks. By default, NowSMS will no longer use quoted=printable encoding unless MM4QuotedPrintableOK=Yes is set under the [MMSC] header of MMSC.INI. 2015-10-21: * SMS Routing: Enhanced existing option 2WayReplySameServer=Yes. 2WayReplySameServer=Yes specifies that replies from all 2-way commands should be routed back via the same SMSC connection as which the original message was received. Previously this setting applied only to simple 2-way commands that return an immediate reply. This setting now supports delayed replies. When this setting is enabled, each time a message is received from an SMSC connection, NowSMS remembers which SMSC the message was received from. Future messages sent to that same number are routed to the same SMSC connection. 2015-10-09: * Android Modem MMS Interface: Fix to stop excessive retries if the operator MMSC is reporting an unresolved sender. Verizon uses this error code incorrectly for invalid or blocked recipients. Improvements to logging of errors when MMS messages are rejected by the MMSC. 2015-09-15: * MMSC: Fix for problems associated with configurations where the MMSC is bound to a public IP and the SMS GW is bound to a private IP. In this configuration, the MMSC could not post SMS messages for legacy handsets where MMS messages are converted to SMS with web link. 2015-09-01: * MMSC: Fix for MMSC VASP "Local MMS Recipients Only" setting. When an inbound MM4 message to a non-local recipient arrives on an account with this setting, previous versions would report a temporary SMTP error of "451 Insufficient Memory". Update now returns a permanent error code "551 unsupported non-local recipient". 2015-08-26: (No version number update, only MMSC.EXE, SMSGWS.EXE, SMSSSL.DLL and Android modem app updated.) * GSM Modem Handler: Possible work-around for a particular Huawei modem where receive message processing would stop due to a modem fault. This version uses alternative GSM modem commands if the modem reports waiting messages, but the normal commands do not return any messages. For more info, see http://support.nowsms.com/discus/messages/33365/72924.html * SSL/TLS: Update for SHA-256 and updated security requirements required by the latest web browsers. See http://www.nowsms.com/ssl-sha1-deprecation-and-sha256-support 2015-08-21: (No version number update, only MMSC.EXE, SMSGWS.EXE and Android modem app updated.) * MMSC: Add support for parsing subscriber MSISDN from a Cookie: header. To enable, use this syntax in the MSISDNHeader setting under the [MMSC] section of MMSC.INI: MSISDNHeader=Cookie:User-Identity-Forward-MSISDN (In this example, User-Identity-Forward-MSISDN is the cookie name that contains the MSISDN.) 2015-08-07: (No version number update, only SMSGWS.EXE and Android modem app updated.) * Android Modem: By default, NowSMS polls modems every 10 minutes (600 seconds). If the Android app does not see activity within that period, it asssumes there is a problem and begins to take corrective action. Previously, this would take between 11 and 20 minutes for recovery action to complete. This is now configurable. In SMSGW.INI, under the [SMSGW] header, add ModemAppCheckInterval=###, where ### is the polling interval in seconds. The Android app will initiate recovery attempts at interval + 10%. 2015-06-24: * Add support for different editions: MMSC Edition - full functionality including operator MMSC support. Gateway Edition - full SMS and MMS gateway support, does not support operator MMSC functionality (cannot automatically provision MMS subscribers). Modem Edition - Can only support sending and receiving MMS over modem connections. * Burst Mode Licensing Support Enhanced for both SMS and MMS - Burst mode is a licensing enhancement to help customers better handle bursts of activity. Instead of just tracking at message throughput per minute or second, NowSMS also keeps track of activity over the past two hours, and allows unused throughput capacity to be applied as a performance burst. Performance burst activity can provide up to double the license throughput for up to 60 minutes. * GSM Modem Handler: Undo 2014-05-30 change to USB modem timeouts because it caused high CPU utilization with some modems. If you experience problems with a GSM modem becoming unresponsive, the alternate logic can be reenabled by adding AltModemTimeouts=Yes to [SMSGW] section of SMSGW.INI to activate this alternate logic. 2015-05-19: * Android Modem: Fix for configuration issue that would occur if a modem was added using ip.address:port format instead of by name. In this case, the configuration for MMS sending would not get properly enabled. Test MMS messages would work, but other MMS messages would fail. * MMSC/DIAMETER: Fix for problem that prevented the SGSN-MCC-MNC value from being included in DIAMETER packets. Work-around for previous versions was to add the following to the [MM9Diameter] section of MMSC.INI: SGSNMCCMNCHeader=X-WAP-3GPP-SGSN-MCC-MNC * GSM Modem/USSD: Fix for USSD responses being truncated at the first line break. 2015-04-27: * E-Mail to SMS: By default, all white space and line breaks are removed from email messages and replaced with a single space character. To disable this behavior, add SMSEMailFilterWhiteSpace=No to the [MMSC] section of MMSC.INI. * SMPP: Previous versions assumed that the ESME_RTHROTTLED error code indicated a system level issue at the upstream SMSC, not an error specific to a message recipient. Some SMSCs return this error if there are too many pending messages for the message recipient. NowSMS expects the ESME_RMSGQFUL error code to be used for this scenario. An existing setting has been enhanced to allow ESME_RTHROTTLED to be remapped to ESME_RMSGQFUL. To perform this remapping, edit SMSGW.INI, and under the [SMSGW] header (or [SMPP - server:port] header), add SMPPQFullErrorCodes=58 (0x58 is the numerical value for ESME_RTHROTTLED). * SMPP: Change to ESME_RTHROTTLED error handling. Previous versions assumed that this error code indicated a system level issue at the upstream SMSC, not an error specific to a message recipient. Old default behavior was to attempt to resubmit the same message up to 5 times before moving on to the next message in the queue. This default has been changed to a single resubmit, with a configuration setting, SMPPThrottleQuickRetry=## in the [SMSGW] or [SMPP - server:port] section used to adjust the number of resubmit attempts before moving on to other queued messages. * SMPP: Change to ESME_RTHROTTLED error handling. Previous versions assumed that this error code indicated a system level issue at the upstream SMSC, not an error specific to a message recipient. Old default behavior was to delay submitting for 5 seconds when this error was encountered. SMPPThrottleErrorDelay=## in the [SMSGW] or [SMPP - server:port] section was used to adjust this delay. Previously, this delay was expressed in seconds, it is now expressed in milliseconds. SMPPThrottleErrorDelay=5000 would represent a 5 second delay, or a value of 0 indicates no delay. The default delay is now 5 milliseconds (thousandths of a second). 2015-03-24: * MMSC: For test environments only, a setting has been added to define a default MMSC user account. If a message is received without subscriber identification (X-MSISDN or URL parameters), a default user account can be specified by adding MSISDNHeaderDefaultUser=xxxxxxx to the [MMSC] section of MMSC.INI. * E-Mail to SMS: Add PreAuth SMS Accounting callback for SMS to e-mail to allow the callback to properly route the message to a specific SMSC. 2015-03-13: * 2-way SMS: @@MSGDATE@@ and @@MSGTIME@@ variables now report the date/time at which NowSMS received the message. Previously, for GSM modem connections, the SMSC time stamp (SCTS) was used, but found to be frequently inaccurate. @@SCTS@@ variable can report this other timestamp, if available. 2015-02-26: * MMS via modem: Test message updated to include optional parameters that are normally present in normal MMS messages. This is to fix suspected problems in some environments where the test message didn't work, but other submitted MMS did work. 2015-02-12: * MMSC: Fix for critical error where a message with particular characteristics could cause inbound MM4 to stop processing. 2015-02-05: * MMSC: Add setting to enable detection and prevention of duplicate message submission via MM1. This may happen if accounting callbacks process too slowly, causing the device to timeout and resubmit. To enable, add MM1DupCheck=Yes to the [MMSC] section of MMSC.INI. This setting might be enabled by default in future versions. 2015-01-17: * Android Modem App - Changes to automatically recover from multiple error conditions that may cause some devices to go off-line. * MMSC: Improvements for handling subscribers from multiple countries on the same MMSC. Support for 7, 10 and 11 digit recipient formats enabled automatically for subscribers in the +1 country code. * SMS Gateway: Fix for SMSRetried count no being accurate in XMLStatus response. * Lite: Fix for default settings not enabling "Receive MMS". 2014-12-12: * SMPP Client (Async Mode) - Fix for a memory leak that could occur when a significant number of messages fail with the ESME_RMSGQFUL error. * Queue Size Alerts - Fix for a problem where an alert would be triggered for SMS queue size, but then be followed by an email indicating the situation was resolved because the MMS queue size was under the alert threshold. * SMPP: If the SMS service is bound to a specific IP address, ensure that SMPP requests are initiated only from that source IP address. This can be overrode by adding a BindIP=a.b.c.d setting in the [SMPP - server:port] section of SMSGW.INI. * Accounting callback for SMTP email to SMS now uses Type=SMSEMail to distinguish from SMTP email to MMS which continues to use Type=MMSEMail. The callback is still classified as an MMS accounting callback because it is processed by the MMSC. * MMS/SMS to E-Mail: Add specialised configuration parameter to stop the sender phone number from being included in the subject header when forwarding to e-mail. To activate this setting, add EMailSubjectBlockSender=Yes under the [MMSC] section of MMSC.INI. * Android Modem App updated to fix an issue that prevented NowSms from being able to connect to the modem in a specific installation. 2014-11-22: * SMPP Receipt tracking: Improve support for SMSC connections that intermix message Id formats between hex and decimal formats to support larger (64-bit) values. * Android Modem App updated with foreground service notification banner to prevent Android from pausing or prematurely terminating the service to make more resources available for other apps. * Internal changes for IPv6 support. * DIAMETER: Add support for DIAMETER callbacks for message submissions from VASP accounts via MM1, EAIF and MM7. By default, only MM1 submissions from MMSC user accounts trigger DIAMETER. To also use DIAMETER for VASP requests, add DiameterChargeVASP=Yes to the [MM9Diameter] section of MMSC.INI. * DIAMETER: If the MMSC service is bound to a specific IP address, ensure that DIAMETER requests are initiated only from that source IP address. * SMSOUt log: Add text information for SMPP errors related to a receiver connection, so that it can be distinguished from a transmitter. * Alert warning message changed to include submit user. 2014-08-29: * E-Mail to SMS or MMS: Add support for parsing text from HTML format messages. Previously NowSMS only supported HTML format messages when encoded using MIME multipart/alternative encoding, which is almost always used for HTML formatted messages, and HTML only messages would appear blank to NowSMS. This support improves compatibility when connecting to Microsoft Exchange Server via POP3 or IMAP. 2014-08-21: * GSM Modem Handler: If a modem begins reporting errors when polling for received messages, reinitialize the modem to attempt to recover. 2014-08-19: (Version still displays as 2014.08.11) * MMSC: MM7 parser could not decode multipart messages with white space between the boundary attribute and value (e.g., boundary=xxx worked, but boundary = xxx did not), and would return a 500 error with the fault string "Closing MIME boundary for second content part not found". It was determined that this behaviour was not a bug, as the HTTP 1.1 specification (RFC 2616), section 3.7 states: "Linear white space (LWS) MUST NOT be used between the type and subtype, nor between an attribute and its value." Although the extra space is invalid encoding, the decoding logic of the MM7 receiver has been relaxed to allow white space within attribute and value pairs in order to improve interoperability with other applications. 2014-08-11: * E-Mail to SMS/MMS: Authorised e-mail address check was case sensitive. Now case insensitive. (Fix attempted previously, but did not work properly with wildcards.) * MMSC: Fix for recipient based routing not working properly for route selection with Android modems. * MMS from Web Interface: If a user account has a "forced sender address", apply for MMS as well as SMS. * 2-way MMS using 2-way SMS Commands: MMS delivery reports are now converted to SMS format (id:xxxxxxxx) for 2-way command processing. Previously, they were discarded. Note that our estimates suggest that 50% of mobile operators do not generate MMS delivery reports. 2014-08-05: * SMPP: Add configuration parameter to allow "messaging mode" values to be set for esm_class. This was necessary for a USSD interface that required the messaging mode to be set to datagram mode. To set the messaging mode, edit SMSGW.INI, and under the SMPP connection section header (e.g. [SMPP - server:port]), add MessagingMode=# to set the mode value (MessagingMode=1 for datagram mode). 2014-07-22: * GSM Modem: Add support for sending USSD commands (e.g., #777#). The USSD string is specified as the recipient phone number (To:). If the USSD command returns a response, this response will be directed to 2-way SMS. The text of the response will start with USSD Response and include the MessageID of the message that initiated the USSD request, followed by a blank line, then the operator response. For example: USSD Response for MessageID=54345AAA Service response text 2014-06-30: * MMSC: Add setting to force MMS Accounting Callbacks to be synchronous (one active at a time). To enable this setting, add MMSAccountingCallbackSync=Yes to the [MMSC] section of MMSC.INI. * MMSC: Add support for "lawful interception" of MMS messages. Sender and recipient addresses can be flagged to copy messages to an additional address. To enable this functionality, create a file named LawfulIntercept.INI in the NowSMS directory. The file must start with a header line [LawfulIntercept]. Under that header, phone numbers can be added with a BCC copy to address. For example: [LawfulIntercept] +447777777771=forward1@external.com +447777777772=forward2@external.com With these settings, if the MMSC processes a message from or to +447777777771, a (blind) copy of the message would be sent via SMTP to forward1@external.com. * Android modem updated to support sending binary message types when sending via HTC Android phones supporting HTC Sense (includes most HTC phones, excludes CDMA versions, Google Play edition, or custom ROMs). This support requires 2014.06.30 version or later of both Android app and NowSMS server. * Android modem support updated to support binary message types using the Xposed framework on rooted phones. NowSMS can be configured to submit messages requiring PDU mode support in text format with a special prefix, allowing an Xposed framework module to intercept the message and send it out in PDU format. To enable this support, edit SMSGW.INI, and under the [NowSMSModem - devicename] header, add PDUModePrefix=xxxxxxx to specify the prefix to be used when a message needs to be sent out using PDU format. For example, see the following Xposed module: https://github.com/johnzweng/XposedSendRawSMS. To use that module for sending binary messages, add PDUModePrefix=sendSmsByRawPDU|00| to the appropriate NowSMSModem section header in SMSGW.INI. When NowSMS has a binary message to be sent, it will submit the message in text format, starting with this prefix, followed by the PDU. 2014-06-24: * Configuration program: Fix for crash that would occur when adding an Android modem when running on Windows XP. 2014-06-15: * Android modem auto-discovery performance improvements. * Android modem - Implement work-arounds required for sending MMS on Virgin Mobile USA/Sprint/Boost (also requires 2014.06.15 app version). * Android app updated (version 2014.06.15) to request the display to remain on (but allowed to dim) while the app is active, only if the device is connected to power. This improves performance and ensures that the device is always available on WiFi. The power button can be used to turn off the screen, but depending on the device, it may take NowSMS several seconds or longer to wake the device when there is a message to be sent. Confirmation added to "Stop" button to prevent the modem service from being accidentally deactivated. 2014-05-30: * GSM Modem Handler: Adjust modem timeouts to better handle bugs in some USB Modem drivers. If this change causes unexpected problems, add OldModemTimeouts=Yes to [SMSGW] section of SMSGW.INI to activate old timeout handling of previous versions. * Accounting Callbacks: New settings added to filter/limit accounting callbacks. The following settings can be applied in SMSGW.INI under the [SMSGW] header: SMSAccountingOnlyIfNoRoute=Yes - Disables PreAuth and SmsSend callbacks for messages where a route has been explicitly set. SMSAccountingLimitCallbacks=PreAuth,SMSSend,SMSIn,SMSOut - If this setting is present, any accounting callback types not listed are disabled. For example, SMSAccountingLimitCallbacks=PreAuth,SMSSend enables only PreAuth and SMSSend callbacks (SMSIn and SMSOut are disabled). * SSL/TLS: Restore support for SSL v3.0, which had been removed in recent versions. Also fix a problem where SSL handshakes may timeout too quickly, causing connection failures. * MMS over GSM Modem: Fix for receiving issue where an unusual (but valid) MMS Notification message was not being parsed correctly, preventing NowSMS from retrieving the MMS message. * MMS over GSM Modem: Properly support transient error codes and retry MMS message sending, instead of treating the errors as permanent failure. 2014-05-23: * Fix for slow loading of 2-way page on some systems when local PHP support is enabled. * Add support for using SMS 2-way commands for MMS processing with full keyword support. URL references to retrieve any images or other content objects will be added to the 2-way command automatically using variables AttachFile1, AttachFile2, AttachFile3, etc. The URL reference will contain a path only. For example a URL reference will for a image object will look like this: &AttachFile1=/SMSAttachFile/534E9722/IMG_8738.jpg To retrieve this object, connect to the NowSMS web interface port, including the IP address or host name, such as http://127.0.0.1:8800/SMSAttachFile/534E9722/IMG_8738.jpg These objects will be automatically deleted after approximately 2 hours. 2014-05-20: * Android Modem Configuration: Fix for bug that didn't allow "Send MMS" to be enabled if "Receive SMS" was not enabled. * Receive MMS via modem: Fix for bug introduced in recent beta version that prevented forward to email address setting from working. * E-Mail Settings: Reorganize some settings to simplify setup for new users. * SMS Gateway: If web menu interface is disabled, return HTTP error 403 instead of using error 401 to prompt for credentials. 2014-05-15: * Android Modem App (2014.05.15): Fix for issue where an error was not returned when the device reports an error sending a message (e.g. no credit or no service). * Android Modem Connection: Improved performance locating devices with the NowSMS Modem app loaded. Fix for Lite version not allowing modem definition by IP address. * MMSC: Fix for a message encoding error that could occur in some configurations if an MMS message was sent from the web interface to a local MMSC user with a blank sender. 2014-05-11: * SMS Gateway: Add configuration settings to limit the number of SMS messages sent per day or month through a specific SMSC connection. Under the SMSC specific section header in SMSGW.INI (e.g., [Modem - Name] or [NowSMSModem - name]), the following settings are available: CreditLimitDay=####, CreditLimitMonth=#### and CreditLimitResetDay=##. #### is the number of messages allowed to be sent via this connection for the specified period. CreditLimitResetDay specifies the day of the month on which the monthly allocation should be reset, as most mobile plans are not fixed to a calendar month, but start on a particular day of the month. When the limit is hit, the modem will be taken off-line until the next period and will appear in an error status. An e-mail alert will be set if error alerts are configured. * SMS Gateway: Add configuration settings to disable message traffic for all or selected SMSC connections during "quiet hours". QuietHourStart specifies the hour during which the quiet period should start and QuietHourEnd specifies the hour at which the quiet period ends. Hours are expressed in 24 hour format. For example QuietHourStart=14 and QuietHourEnd=16 means no messages will be sent between 14:00 (2:00pm) and 15:59 (3:59pm). QuietHourStart=20 and QuietHourEnd=8 means no messages will be sent between 20:00 (8:00pm) and 7:59 (7:59am). These settings can be added in the [SMSGW] section of SMSGW.INI to apply to all connections, or in an SMSC specific section to apply to a specific connection only. * MMSC: Add configuration parameter to remove + characters from recipient addresses in the MNP routing callback. To enable, add MMSRoutingURLRemovePlus=Yes under the [MMSC] header of MMSC.INI. * MMSC: Fix for configuration specific problem where "SMS with web link (code)" routes would not work and the following error would appear in SMSDEBUG.LOG: "SendTextSMS: Internal Error - Unable to connect to SMS Gateway to send message." The problem would occur if the MMSC was bound to a specific IP address and the SMS gateway was bound to "all available" IP addresses. * Android Modem connection: Periodically connect to the device to verify it is still active. By default, checks will be performed after 600 seconds (10 minutes) of inactivity. To change this interval, add ModemAppCheckInterval=#### under the [SMSGW] header in SMSGW.INI, where #### is a value in seconds. * Android Modem App (2014.05.05): Update to save received messages and temporarily hold them if they cannot be delivered to NowSMS server. * Android Modem App (2014.05.11): Fix for problems sending/receiving MMS with some operators who are using IPv6. 2014-04-28: * Configuration Program: Fix for missing "MMSC Users" display in recent beta versions. 2014-04-26: * Android Modem App: Fix memory leaks that led to excessive memory usage over time. 2014-04-24: * MMSC/MNP: Update handling for ForceRoutingCallback=Yes configurations. If the Route= response points to a "Direct Delivery" route, and the default route is other than Direct Delivery (such as a "Convert to SMS" route), direct delivery will only be used if the recipient is provisioned in the "MMSC Users" list, while non provisioned recipients will be routed to the default outbound route. * MMSC: Potential fix for a sporadic MM1 timeout problem when multiple front end servers are sharing access to a common back end server. * Android modem performance improvements. 2014-04-14: * SSL/TLS: Update to OpenSSL 1.0.1g for "Heartbleed" fix. * Add Android Modem support. * 2-way Command changes: Add simple text and/or image reply. Add support for adding or removing subscriber from distribution list. * Numerous e-mail gateway updates. * Add "Test" button to web interface to allow sending test SMS/MMS messages. * Add "Route" selection to web interface (if enabled in settings). * Web Linked Multimedia - Stop including "." character in short URLs. 2014-02-28: * SMS Gateway: HTTP SMSC Message ID reporting - MessageIDResponsePrefix parsing updated to search for match in content taking precedence over a match in content. * SMS Gateway: Preliminary support for binary PDU mode on some CDMA modems (Telit DE910, Multitech MTSMC-EV3-xx, MTD-EV3-xx, MTSMC-C2-xx, MTCMR-EV3, MTCMR-C2, MT100UCC-EV3-xx, MT100UCC-C2-xx) 2014-02-17: * MMSC: Fix for critical error where a message with particular characteristics could cause a denial of service issue when UndeliverableRouteToSMS setting is enabled in MMSC.INI. * Web Interface: Fix for issue that could cause truncated subjects for messages submitted via the web interface. * Web interface: Require authentication for web interface is enabled by default. 2014-02-07 (Version # not updated): * SMS Gateway: Fix for GlobalRecipPrefixConvert setting not being applied when sending to distribution list members. 2014-02-03: * Web Interface/Distribution Lists: Sort display of distribution list members. Add "Find" button to filter member list. * SMS Accounting Callbacks: SMSIN callback processing can now cause an inbound message to be actively rejected, returning an SMPP error code if the message was received via an SMPP connection. To reject a message, include the text SMPPErrorCode=0x#### in the HTTP response to the callback. (For example, use SMPPErrorCode=0x58 to return the error ESME_RTHROTTLED.) It is also possible to discard the received message without further processing, without reporting an error, by including the text AcceptMessage=No in the HTTP response to the callback. * SMS Gateway: Add configuration setting to force SMS to Unicode format if messages contain characters outside of the ASCII (7-bit iso-8859-1) character set. To enable this test, add TestUnicodeSMSForASCII=Yes under the [SMSGW] header of SMSGW.INI. * SMS Gateway: Recent versions of NowSMS added support for SegRef, SegNum and SegCount HTTP variables to report segmented message information in accounting callbacks and 2-way commands. This version also supports these parameters when messages are submitted via HTTP. * SMPP: Add support for custom character set overrides for messages sent or received using the GSM, iso-8859-1 or iso-8859-15 character sets. These character overrides allow selected characters to be remapped to a different value. Under the [SMPP - server:port] section header, InChar= and OutChar= parameters can contain a comma delimited list of characters to remap. This is best illustrated with an example. The GSM character set includes some Greek capital letters, while the iso-8859-1 and iso-8859-15 character sets do not. An SMPP service provider that encodes with iso-8859-15 was observed to encode these Greek characters in unused positions of the iso-8859-15 character set. The following parameter remaps hex character values from the inbound message to the Unicode values for the corresponding Greek letters (all character values are in hex): InChar=80:0394,82:03A6,89:0398 Outbound character mapping uses a similar OutChar keyword, and should be defined in the format UUUU=xx or UUUU=xxyy where UUUU is a 4 hex digit Unicode character code, xx is a 2 hex digit character code and yy is an optional 2 hex digit character code. * SMPP: SMPPQFullErrorCodes Add configuration option to specify SMPP error codes that should be treated equivalent to ESME_RMSGQFUL and given special retry handling. To add additional error codes that should be treated the same as ESME_RMSGQFUL, edit SMSGW.INI, and under the [SMSGW] header (or [SMPP - server:port] header), add "SMPPQFullErrorCodes=x,y,z". This value can contain a comma delimited list of SMPP error codes. Values should be specified in hex, with no leading zeroes, e.g., "SMPPQFullErrorCodes=411,412". * SMPP: ESME_RMSGQFUL error handling has been updated with the RMSGQFULByNumber=Yes setting that was added 2013-12-19 now enabled by default. For many SMPP providers, this error indicates that too many messages are currently queued for the specified recipient, often because the receiving device is off-line. If this error is received, NowSMS will hold other messages for the same recipient in queue and only retry the oldest message for that recipient. Once that oldest message is processed, the other messages will be released for processing. (If this setting is disabled by setting RMSGQFULByNumber=No under the [SMSGW] header of SMSGW.INI, NowSMS retries each message separately and the staggered retry pattern can produce unusual delays and/or unusual message order when the device comes back on-line.) * MMSC/Outbound MM1: 4xx series HTTP errors (except for 401/407 authorization requested) are now treated as permanent failures that should not be retried. * MMSC/MM1: When UseCustomRecipHeaders=Yes is enabled for an outbound MMSC route, the MMS message ID is included in the HTTP header X-MMS-Message-ID (as the MMS message ID is not allowed in the MM1 binary m-send.req PDU). * MMSC/MM1: X-MMS-Message-ID: HTTP header can be used by VASP accounts to specify an MMS message ID value to be used (instead of the MMSC generating a new message ID). * MMSC/Outbound MMSC Routing: Fix for a problem where when Keep-Alive sockets are used for a connection, some error conditions would fail to increment the retry counter, triggering excessive retry attempts. * MMSC/Outbound MMSC Routing: FIXED. When saving MM1 connection details, if a custom ThreadCount= setting was configured for the connection, previous versions would inadvertently remove the custom setting. 2013-12-19: * SMPP: Add configuration option to improve ESME_RMSGQFUL handling for some environments. For many SMPP providers, this error indicates that too many messages are currently queued for the specified recipient, often because the receiving device is off-line. When RMSGQFULByNumber=Yes is set under the [SMSGW] section header of SMSGW.INI, if this error is received, NowSMS will hold other messages for the same recipient in queue and only retry the oldest message for that recipient. Once that oldest message is processed, the other messages will be released for processing. (Without this setting, NowSMS retries each message separately and the staggered retry pattern can produce unusual delays and/or unusual message order when the device comes back on-line.) * MM7: Add support for ShortCodeMaxLength=# setting in the [VASP] section of VASPOUT\routename\VASP.INI to allow the setting to be applied only for a specific connection. * SMPP: RemapMessageClassDCS=No was not supported on async mode connections. * HTTP POST File Upload (multipart/form-data) submission would not accept file names that include a + character. 2013-12-05: * MMSC: Messages received by a VASP connection configured to write received messages to the MMS-IN directory were not being logged. * CIMD: Add support for Subaddr parameter, which can be manually added by using the Subaddr= parameter in the [CIMD - server:port] section of SMSGW.INI. * SMS Gateway: Potential solution for configuration where inbound HTTP messages were being limited to around 3mps. 2013-11-15: * MMSC: Critical update. Fix for two different denial of service problems and improvements to recovery handling of unexpected problems. One problem is new to the 2013.09.26 release and can be triggered by a corrupt message received via an MM4 connection. The other problem affects all previous versions of NowSMS and can be triggered by a corrupt MM1 message submission that is to be routed externally via MM4 or MM7. 2013-11-11: * SMS Gateway: Allow user names to be added to the "Preferred route for" list to force messages submitted by that user account to be routed via this connection. (AllowedUser settings are added to the SMSGW.INI if user accounts are entered in the preferred list.) When one or more users are listed in the preferred list, only these users are allowed to send messages out via this connection. Recipient masks can also be used if only some destinations should be routed via this connection. If "Support any outbound message traffic" is checked and one or more users are listed, this route will be used as a default route for listed users only. * SMS Gateway: Add configuration setting to disable sender based routing (where NowSMS routes to a particular SMSC connection based upon the sender address matching the "Default Sender Address" for an SMSC connection). To disable sender based routing, add DisableSenderRouting=Yes to the [SMSGW] section of SMSGW.INI. * SMS Gateway: Fix for user account settings not being consistently. When creating or editing a user account, "Accept received messages for this account" would be enabled even if not selected, until the next service restart. * MMSC/DIAMETER: Flexibility to support alternate Diameter result codes as success indication. (See http://www.nowsms.com/discus/messages/12/71976.html) 2013-10-31: * SMS Gateway: Add configuration setting to force SMS to Unicode format if messages contain characters outside of the iso-8859-1 character set. (A similar test already exists for the GSM character set.) To enable this test, add TestUnicodeSMSForISO88591=Yes under the [SMSGW] header of SMSGW.INI. * MMSC/DIAMETER: Support for alternate Diameter messages, such as using Accounting-Request instead of Credit-Control-Request, as required by SCAP v1. (See http://www.nowsms.com/discus/messages/12/71976.html) * MMSC: When converting MMS messages between different MMS protocol formats, if the source message does not include a subject header, do not generate a subject header in the converted message. If previous version behaviour is desired, add ForceSubjectHeader=Yes to [VASP] section of VASPOUT\routename\VASP.INI. * MMSC: Fix for incomplete non-local To/Cc recipient headers for some MM4 to MM1 conversions. * SMPP Server: "SMSC Charset" setting for individual user accounts were not being properly applied by the configuration program. * SMS Gateway: Fix for long standing bug where BackupForRoute setting worked when referencing SMSC by address, but not by name. * SMS Gateway: Allow open access to edit the address book for configurations where "Require authentication for web interface" is disabled. 2013-09-26: * SMS Gateway: Fix for inability to edit/manage distribution lists if "Require authentication for web interface" is disabled. * SMS Gateway: Add Stats option to display number of messages received via SMSC connection, to compliment existing display of number of messages sent. * 2-Way SMS: Add @@SENDERFULLNAME@@ replaceable parameter which can extract the sender's full name from the public address book, if available. * SMS Gateway: Improved auto detect for recognising 7-bit packed encoding for a received text message with DCS indicating message class. 2013-09-23: * SMS Gateway: Improved accuracy for message throttling at higher rates of speed for SMPP connections when user defined limits exist, particularly for limits higher than 60 message per second. 2013-09-20: * SMS Accounting Callbacks: Parse UDH for segmentation and port information. If present, include in HTTP variables SourcePort, DestPort, SegRef, SegCount and SegNum. * 2-way SMS: Add configuration option to disable long message combining when processing 2-way SMS. When long message combining is disabled, NowSMS will automatically add segmentation information to HTTP based 2-way commands when present in a received message, using HTTP variables SegRef, SegCount and SegNum. To disable long message combining, edit SMSGW.INI, and under the [SMSGW] header, add 2WayLongMessageCombine=No. * 2-way SMS: When combining segmented messages for 2-way command processing, NowSMS may need to wait a period of time for all segments to be received. Previous versions would wait for up to 300 seconds (5 minutes) for all segments to be received, then release the partial message after this wait period. The default wait period has been changed to 120 seconds. It is now configurable by editing SMSGW.INI, and under the [SMSGW] header, adding 2WayLongMessageWait=###, where ### is a value in seconds. * 2-way SMS: Address an issue where there may be a problem combining long message segments for 2-way command processing when the SMS-IN queue directory is on a shared storage location. 2013-09-17: * GSM Modem Handler: Fix issue where unexpected errors while polling a modem for received messages may cause NowSMS to think it cannot send messages with the modem. * GSM Modem Handler: Add CommandPrePollx and CommandPostPollx settings to allow custom AT commands to be sent before or after polling for messages. * GSM Modem Handler: Add configuration parameter to limit the commands that are used when NowSMS tests to see if a modem is still responding. Add FullModemTest=No under the [Modem - driver name] section header of SMSGW.INI to activate setting. 2013-09-06: (only SMSSMPP.DLL updated, version still reports 2013-08-30) * SMPP: TLV parameter support updated to support 4 byte length integer types. Integer type parameters must have a length of 1, 2 or 4. 2013-08-30: * MMSC: Add ICAP protocol support as an alternate solution for user identification. * SMPP: Changes to SMPPOptions settings are not always detected without a service restart. They are now detected automatically. * UI: Fix Windows 8 icon issues on higher resolution displays. * SMS Gateway: Fix Unicode encoding issues for emoticons when converting to or from UTF-8 format for web interfaces. (Affects SMS submission via HTTP, 2-way SMS and accounting callbacks.) Add emoticon/emoji selection chart to Send Text Message web form. * SMS Gateway: DuplicateUserMessagesFor2Way=Yes setting was not working when a configuration setting exists to force received messages to a local user account. 2013-08-08: * MMSC: Callbacks and log files now show fully qualified MMS message ID, including host name. Previously host name was excluded for locally originated messages. * SMS Gateway: Add configuration setting to disable automatic Unicode detection for SMS text messages submitted via HTTP. When DisableHttpUnicodeSMS=Yes is set under the [SMSGW] header of SMSGW.INI, NowSMS will disable automatic Unicode detection and will replace Unicode characters with a close equivalent, or with - or ?. * MMSC: Add optionally enabled MMS accounting callback to report MM4_forward.RES acknowledgment processing. If MMSAccountingEnableMM4ForwardRes=Yes is set under the [MMSC] header of MMSC.INI, a callback Type=MM4ForwardRes will be enabled. As with other MMS accounting callbacks, additional parameters include From, To, MessageID and VASP. Specific to this callback is X-Mms-Request-Status-Code, which reports the equivalent header value from the received MM4_forward.RES acknowledgment (X-Mms-Request-Status-Code=Ok is the value for accepted messages). 2013-07-31: * Burst Mode Licensing Support Enabled for both SMS and MMS - Burst mode is a licensing enhancement to help customers better handle bursts of activity. Instead of just tracking at message throughput per minute or second, NowSMS also keeps track of activity over the past two hours, and allows unused throughput capacity to be applied as a performance burst. Performance burst activity can provide up to double the license throughput for up to 60 minutes. For example, consider a 10 message per second license which has been completely idle with no messaging traffic for at least 60 minutes. A large bulk submission occurs and burst mode will be automatically activated to operate at 20 messages per second for 60 minutes. After 60 minutes, burst mode deactivates and the speed reverts to 10 messages per second. That is an extreme example. In more typical usage scenarios, burst mode helps better manage the peaks and valleys of message traffic by applying the license speed cap on a rolling 2 hour period, allowing unused capacity from the previous two hours to be reclaimed with burst mode. 2013-07-16: * MMSC: Add support for a custom VASP interface that uses MM1, but provides full group messaging support. VASP submissions using MM1 can specify both envelope and display recipients. Display recipients are all To/Cc recipients of the message. Envelope recipients are the recipients that should receive this message instance (other recipients may have been handled by other systems). The X-MMS-RCPT-TO: header is used to specify envelope recipients. If this header is present, the message will only be sent to the envelope recipients, but the full recipient list in the MM1 message header will be preserved as display recipients. When using the X-MMS-RCPT-TO: header, specify only one phone number per header and repeat the header for multiple recipients. To configure NowSMS to use the X-MMS-RCPT-TO: header for an outbound MMSC Routing connection with MM1, add UseCustomRecipHeaders=Yes under the [VASP] header of VASPOUT\routename\VASP.INI, or under the [MMSC] header of MMSC.INI to apply to all recipients. 2013-07-02: * SMS Gateway: Allow HTTP based SMSC to return a custom "stat:" text value when generating a failed delivery report. Use &ReceiptFailedStatus=XXXXX in the URL together with &ReceiptMessageID=xxxxxxxxx and &ReceiptFailed=Yes. * MM4: Performance enhancements for MM4_forward.RES (ACK) processing to keep pace with recent enhancements. 2013-06-20: * MM7 and MM4 performance enhancements. * MM4: Fix for group messaging To/Cc recipients missing from inbound MM4 messages. (MM4PreserveCc=Yes setting no longer required.) * MM4: Performance enhancements added to speed inbound MM4 processing. If problems are suspected, old logic can be enabled by adding EnableFastMM4=No to [MMSC] section of MMSC.INI. * Fix for startup delays of several minutes on some systems introduced by 2012-11-30 version. * MMSC Routing: Add "Max Recipients Per Message" setting for outbound external MMSC connections. When a message is routed to an external MMSC connection, NowSMS will automatically break messages sent to multiple recipients into separate message instances for grouped recipients. The number of recipients per message instance is variable based upon the MMSC connection type. For MM1 or EAIF connections, the default value is 20 recipients per message instance. For MM7 connections, the default value is 100 recipients per message instance. For MM4 connections, the default value is 1 recipient per message instance. (The MM4 limit is imposed to address delivery receipt processing ambiguities with some MM4 interconnects.) To/Cc recipients are maintained even if the number of recipients exceeds this setting, except in the MM1 interface, which does not support display only recipients for MMSC message submissions. 2013-06-06: * E-Mail to MMS: More quoted text filtering for text automatically inserted by GMail non-English settings. * SMPP Client (Connecting to an SMSC): Fix for long SMS messages being truncated at 1023 characters if received in a single message_payload (instead of as multiple segmented short messages). General expectation for SMS message processing is that messages longer than 4000 characters (27 segments) may be truncated. * E-Mail from Windows Event Viewer Monitoring: When an SMTP connection is received from an IP address listed in MMSC.INI [MMSC] SMTPIPAddressList=, the EHLO response will not advertise support for AUTH LOGIN. This works around a bug (feature) where Windows Event Viewer can only send e-mail to Microsoft SMTP servers or SMTP servers that do not advertise any AUTH support. 2013-05-31: * HTTP SMSC: If "Send Long Messages without Segmentation" is enabled for a connection, any segmented messages where a part is missing would get stuck in the queue. With this update, any such stuck messages will get released automatically after 3 minutes. * Web Interface/HTTP SMS Submission: Add configuration parameter to disable conversion of some Greek uppercase letters (0x391, 0x392, 0x395, 0x396, 0x397, 0x399, 0x39A, 0x39C, 0x39D, 0x39F, 0x3A1, 0x3A4, 0x3A5, 0x3A7) and non-breaking space (0xA0) to visually equivalent characters (A, B, E, Z, H, I, K, M, N, O, P, T, Y, X and space). When this conversion is disabled, a message that includes any of these characters will require Unicode encoding for the entire message, resulting in a limit of 70 characters for a single message or 67 characters per message for a multipart message (instead of the normal 160 and 153 character limits). To disable the automatic conversion, add TranslateGreekCharacters=No to the [SMSGW] section of SMSGW.INI. Do not add this setting without understanding the effect. Most systems do not want to disable this conversion. * Web Interface: Recent activity did not report MMS and multimedia submissions. * E-Mail to MMS: Filter quoted text from e-mail messages so that it does not appear when converted to an MMS message. ALSO filter any extra white space that appeared in the e-mail message. * NowSMS Lite: Automatically locate PHP installation without requiring PHP installer to have set environmental variables. * NowSMS Lite: Add e-mail support through an external POP3 or IMAP mailbox. IMAP, with a service that supports the IDLE command, such as GMail, is recommended, as this allows e-mail messages to be pushed to NowSMS automatically as they are received. (POP3 requires periodic polling of the mailbox to retrieve new messages.) E-mail related settings have been added to a separate configuration tab. When sending an SMS or MMS to the shared mailbox via e-mail, the phone number of the recipient must be specified at the start of the subject line of the messages. (GMail configuration notes: use Server Type IMAP with SSL/TLS. IMAP server is imap.gmail.com:993 and SMTP server is smtp.gmail.com:587.) 2013-05-15: * Burst Mode Licensing Support Enabled - Burst mode is a licensing enhancement to help customers better handle bursts of activity. Instead of just tracking at message throughput per minute or second, NowSMS also keeps track of activity over the past hour, and allows unused throughput capacity during the previous hour to be applied as a performance burst. Performance burst activity will provide up to double the license throughput for up to 30 minutes. For example, consider a 10 message per second license which has been completely idle with no messaging traffic for at least 30 minutes. A large bulk submission occurs and burst mode will be automatically activated to operate at 20 messages per second for 30 minutes. After 30 minutes, burst mode deactivates and the speed reverts to 10 messages per second. That is an extreme example. In more typical usage scenarios, burst mode helps better manage the peaks and valleys of message traffic by applying the license speed cap on a rolling hour period, allowing unused capacity from the previous 60 minutes to be reclaimed with burst mode. * Additional flexibility added for bi-directional e-mail to SMS and/or MMS configurations. Instead of requiring NowSMS to be setup as a separate SMTP mail server, it is now also possible to configure NowSMS to route all e-mail communication through a shared POP3 or IMAP mailbox. IMAP, with a service that supports the IDLE command, such as GMail, is recommended, as this allows e-mail messages to be pushed to NowSMS automatically as they are received. (POP3 requires periodic polling of the mailbox to retrieve new messages.) E-mail related settings have been moved to a separate configuration tab. E-mail services are provided by the MMSC service, which must be active. When sending an SMS or MMS to the shared mailbox via e-mail, the phone number of the recipient must be specified at the start of the subject line of the messages. (GMail configuration notes: use Server Type IMAP with SSL/TLS. IMAP server is imap.gmail.com:993 and SMTP server is smtp.gmail.com:587.) * MMS via modem/operator MMSC: Update MMSC settings for mobile operators. http: prefix no longer required for gateway/proxy address when using a WAP2/HTTP gateway. Configuration setting now references "MMS Proxy" instead of "WAP Gateway" for consistency with Android & iPhone MMS clients. * MMS from web interface or e-mail: Change SMIL generation so that a simple message with text and only one image does not trigger a slideshow presentation on Android devices. * MMSC: Fix for bug that could cause delayed MMS to e-mail processing if RemovePlusFromEMail=Yes is set in MMSC.INI. Messages to invalid e-mail addresses could trigger a looping error message situation which could eventually cause the MMSCOUT e-mail queue to become very large and delay MMS to e-mail processing. More details at http://www.nowsms.com/discus/messages/1/71711.html * E-Mail to MMS: Filter quoted text from e-mail messages so that it does not appear when converted to an MMS message. * MMS to SMS with Web Link (Direct) - Configuration settings updated to allow configuration of a separate port from the MMSC port, and to allow a separate external access URL/hostname. "Local Server Port" is the port number on which the MMSC will listen for web linked content retrieval requests, and "External Access URL" is the external host name that will be included in the web link URL. * MMSC: MSISDNHeaderSKipProvision=Yes parameter added for MMSC configurations where MSISDNHeader is used for user authentication, but where there is no need to provision the accounts in the MMSC. (Provisioning the account in the MMSC is primarily of use only in situations where subscribers are assumed not to have MMS compatible devices until the first time they send an MMS message.) * MMSC: UndeliverableRouteToSMS now supports "Web Link (Direct)" routes, in addition to previous support for "Web Link (Code)" routes. * Configuration Program: Fix for "Test" button on SMSC page not working for modem connections since route names were added. (After 60 seconds, test would always report that the modem was in use by NowSMS.) * Configuration Program: Fix for SMS User account settings losing recipient address setting if SMPP not enabled. * Web Interface: For inbox, if sender phone number is in an address book, use full name from address book when displaying received message. 2013-04-30: * SMS Gateway: Fix to allow distribution list names to include space characters. * MMS via GSM Modem: Update MMSOP.INI with current mobile operator MMS APN settings. * MMS via Proprietary URL Submission: Add MMSCRoute= URL parameter to allow a specific MMSC route to be chosen without requiring sender or recipient based routing. * SMPP Server: If an SMPP client fails to acknowledge a message (no deliver_sm response received), assume the client is in an unstable state. Terminate the connection and require the client to reconnect. * SMS Gateway: Add configuration setting to limit flooding the outbound message queue. This setting enforces a maximum number of messages in 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 OutboundQueueLimit=##### must be added to the [SMSGW] section of SMSGW.INI. (Note that settings also exist to limit the number of outbound queued messages from specific user accounts. Refer to UserOutboundQueueLimit for user account based limits.) * GSM Modem: Possible fix for error adding some modems. This fix specifically addresses the error "Unable to initialize modem: Error 80000018 from lineGetID". * MMSC: For MMS 1.2 clients, when an accounting callback rejects a message, change Response-status-value to newer error code mms_response_status_error_permanent_service_denied, instead of old error code mms_response_status_error_service_denied. * Built-in PHP support: Automatically locate PHP installation without requiring PHP installer to have set environmental variables. When enabling PHP support, automatically prompt to restart service to activate. * SMS Gateway: Fix for outbound message queue size getting confused if the web interface is used to submit SMS messages to local user accounts. * MMSC: Fix "Convert to Web Link" displaying the text @@CONTENTURLTYPE@@ if the processed content is forward locked. 2013-04-01 (SMSSMPP.DLL updated only, no version change): * SMPP: Work-around for SMPP SMSC behaviour where SMSC expects 8-bit text encoding under normal circumstances, but expects 7-bit packed encoding if text is sent in a message that specifies an SMS message class. To enable the use of 7-bit packed encoding when messages include SMS message class, edit SMSGW.INI, and under the [SMPP - host:port] section of the file, add GSMPackWithMessageClass=Yes. 2013-04-01: * SMS Hubbing Support: When the ReRouteReceived setting (under SMPP Advanced Settings as "Re-Route Received Messages for Outbound Delivery") is used for a connection, NowSMS now tracks where the SMSC from which the message originated so that delivery reports can be routed back to the correct connection. Previously this tracking was only available for messages submitted by SMPP clients. * SMS Hubbing Support: Both outbound SMPP Server (SMSC) and SMPP Client (SMS Users) connections now support a configuration option to use data_sm instead of submit_sm or deliver_sm for routing messages over the connection. This setting is required for tracking delivery reports for any messages that are routed to an SMPP client connection. (Delivery reports for messages routed to an SMPP SMSC connection can be tracked without this setting.) * SMS Hubbing Support: As delivery reports can be problematic for many hubbing configurations, configuration parameters have been added to suppress them for particular connections. To suppress requests for a delivery report to be generated, use the setting BlockDeliveryReceiptRequest=Yes. To block the transmission of delivery reports, use the setting BlockDeliveryReceipt=Yes. For outbound SMSC connections, apply the setting in the SMSC specific section of SMSGW.INI (e.g., [SMPP - server:port]). For inbound SMPP client connections, apply the setting in an SMPP client specific section of SMSGW.INI, using the format [SMPPClient - username]. * SMS Hubbing Support: If routing a delivery report via an outbind SMSC connection, by default, an esm_class value of 4 is used in submit_sm or data_sm. By a strict interpretation of the SMPP protocol specification, the value 4 is not allowed in submit_sm request, and a value of 8 should be used instead. At least one implementation was found to require an esm_class value of 8, while others have been found to require a value of 4. A configuration option has been added to define which esm_class value to use for these delivery reports. To use a value of 8, edit SMSGW.INI, and under the appropriate [SMPP - server:port] section header, add ReceiptESMClass=8. * 2-Way SMS Support: Supported added for additional parameters related to delivery report processing. Include &@@RECEIPTVARS@@ as the final 2-way command URL parameter and NowSMS will include zero or more of the following variables in the URL (depending on message properties): ReceiptMessageId=xxx specifies that this is a delivery report for the originally submitted message with Message ID xxx. ReceiptDelivered=Yes indicates that the delivery report was successful. ReceiptIntransit=Yes is a delivery report indication that the message was accepted but actual status is not known. ReceiptFailed=Yes is a non-delivery report indicating failure. ReceiptRequested=Yes indicates that the sender is requesting a delivery report for this message. * HTTP Delivery Report submission: Previously it was only possible for HTTP based SMSCs to generate delivery reports. NowSMS will now accept delivery reports more generally (allowing HTTP 2-way commands to generate or forward delivery reports, for example), supporting the HTTP URL parameters ReceiptMessageId=xxx, and a status indication using one of the following: ReceiptDelivered=Yes, ReceiptIntransit=Yes or ReceiptFailed=Yes. * SMPP: Alphanumeric sender/source addresses are now properly converted to the character set configured for the SMSC connection (GSM, iso-8859-1/Latin or Roman-8). Previously the UTF-8 character set was used which resulted in only English characters working properly. * MMSC: The MMSC now supports MM9 and Diameter Credit Control Application for MMS Billing and Charging. Detailed information on configuration can be found at http://www.nowsms.com/mmsc-diameter-mm9-implementation * SMPP Client Configuration Enhancements: Additional configuration settings are now available for configuration settings to apply to individual SMPP client connections. These setting include character set selection, whether to use TLV or UDH for port numbers and segmentation, whether to use data_sm instead of deliver_sm for hubbing, and enabling SMPP async mode for faster message delivery to the client. * E-mail to SMS: As an alternative to provisioning users in the "Authorised E-Mail to SMS/MMS Senders" list, e-mail addresses can now be used as SMS user account names, with support for SMS credit balances and accounting callbacks. * HTTP URL Submission of Web-Linked Multimedia now returns actual SMS Message IDs generated, in addition to the "MMSMessageID". * Web Interface: HTML templates for "Send MMS Message" and "Send Multimedia Message" updated to display SMS credit balance if applicable. * Web Interface: "Send Multimedia Message" HTML template updated to move "Send as WAP Push" into advanced developer options. * Web Interface: Configuration parameter added to charge a different number of credits for MMS or Web-Linked Multimedia as compared to SMS Messages. Under the [SMSGW] section header of SMSGW.INI, add MMSCreditCharge=### to specify a number of SMS credits to charge for multimedia messages. * Web Interface: Improve error handling and error display when multimedia message sending fails. * SMS Gateway: By default, when NowSMS receives an HTTP SMS message submission, if the message text contains trailing spaces, those spaces are automatically removed. This behaviour can be stopped by adding the configuration parameter RemoveTrailingSpaces=No under the [SMSGW] header of SMSGW.INI. 2012-11-30: * IMPORTANT: For new installs, NowSMS will no longer use the separate ProgramData\NowSMS directory for data and configuration files. Instead, all data and configuration files will be stored in the directory to which NowSMS was installed. (For upgrades of existing installations, NowSMS will check for ProgramData\NowSMS and if this directory contains configuration files, NowSMS will continue to use it.) * Web Interface: Add support for public address books and distribution lists, in addition to the existing user-based functionality. Any user account with "Admin Access" is given additional options to specify whether address book entries or distribution lists should be public. * Web Interface: Add "Developer Options" setting to show or hide advanced interface options that are primarily used by developers or product testers. 2012-11-16: * MMSC: Add configuration option to add a text e-mail signature for MMS messages routed to e-mail. To add a signature, edit MMSC.INI and under the [MMSC] section header add MMSEMailSignature=xxxxxxx. To include a blank line in the signature, use the escape sequence \r\n. * SMS Gateway: Fix for a problem where @ characters were lost in long messages if they occurred on a 153rd character boundary. 2012-10-25: * SMPP: Improve support for SMPP connections that expect to use the iso-8859-1 character set, but expect it to be used as the default character set instead of the character set being explicitly defined in the message. Previously this required manually editing the SMSGW.INI file and adding SMSCCharsetDefault=Yes. The configuration program includes a new SMPP character set option "iso-8859-1 as Default" which adds this configuration setting without requiring manual editing of the SMSGW.INI file. 2012-10-24: * MMS to SMS/WAP with Web Link - Updated web templates now use an excerpt from the start of the message text as the subject if a subject is not present in the MMS message. To go back to using the static text "Multimedia Message", add MMSSMSTextExcerptForBlankSubject=No under the [MMSC] header of MMSC.INI. * MMS to SMS with Web Link - Add additional configuration parameters to control the content of the SMS text message that is generated. All settings described below are placed in the [MMSC] section of MMSC.INI: MMSSMSUseSender=Yes When this setting is used, the MMS sender address will be used as the SMS sender address. MMSSMSBlankText= If the MMS message does not contain any text or subject, this text will be used in the resulting SMS message. MMSSMSPrefix= If present, this text is added to the SMS message before the actual text of the message. MMSSMSPostfix= If present, this text is added to the SMS message after the actual text of the message, but before the URL for additional content. * SMPP: If routing a delivery receipt via an outbind SMSC connection, by default, go back to using an esm_class value of 4 in submit_sm. This was the behaviour prior to version 2009.12.21. Beginning with 2009.12.21, the default was to use an esm_class value of 8 which is the proper value for a delivery report, however this value is not defined as valid for a submit_sm message. A configuration option has been added to define which esm_class value to use. To use a value of 8, edit SMSGW.INI, and under the appropriate [SMPP - server:port] section header, add ReceiptESMClass=8. 2012-10-18: * SMS Accounting Callbacks: SMSIN callback processing can now cause an inbound message to be discarded without further processing by including the text AcceptMessage=No in the HTTP response to the callback. * SMS Gateway: Allow HTTP based SMSC to return a custom "done date:" value when generating a delivery report. Use &ReceiptDoneDate=yymmddhh in the URL together with &ReceiptMessageID=xxxxxxxxx. (Also include either &ReceiptDelivered=Yes or &ReceiptFailed=Yes or &ReceiptIntransit=Yes to specify status.) * SMS Gateway: Fix problem scenarios where when an HTTP based SMSC generated a delivery report, NowSMS would generate two duplicate delivery reports to the originating client. Also fix problem that could cause the "submit date" in the delivery report to be specified as 00000000 instead of the actual submit date. 2012-10-04: * SMPP: For outbind (NowSMS initiated) SMSC connections, NowSMS will accept inbound messages even if "Receive SMS" is not enabled. This setting has been used primarily for determining which type of SMPP connection to use. If an SMSC wished to deliver messages even though NowSMS was connected only in transmitter mode, they would be accepted. A new setting has been added for configurations where deliver_sm messages should not be accepted. To enable this setting, edit SMSGW.INI, and under the appropriate [SMPP - server:port] section header, add IgnoreReceivedMessages=Yes. When this setting is enabled, NowSMS will not return an error, it will simply ignore the received message. 2012-09-21: * MMSC: [ShortCode] rerouting to e-mail address was not working properly. 2012-09-13: * MMS to SMS with web link: Update HTML templates to provide more functionality and improved user experience. ffmpeg included in install to facilitate conversions of MMS video formats to web video formats. * MMSC: Add configuration parameter to accept MM1 From: header from client device without requiring RADIUS/X-MSISDN header authentication. To enable this setting, add MM1AcceptFromHeader=Yes under the [MMSC] section header of MMSC.INI. * Add a configuration setting where if a message fails or is rejected by an SMSC connection, it will be rerouted to be sent via a different SMSC connection. To enable this setting, under the SMSC specific section header of SMSGW.INI (e.g., [SMPP - server:port] or [Modem - modem driver name]), add ReRouteOnError=xxxxxx, where xxxxxx is the route name for a different SMSC connection. (Setting previously added 2012-04-04, but did not work properly with SMPP connections. 2012-07-26: * SMS character set handling: Convert non-break space character (0xA0) to regular space character when sending SMS messages. 2012-06-28: * Fix configuration program so that custom INI file settings are preserved when an SMSC host name or port are changed. * Receive MMS via Modem: Fix for incomplete To/Cc headers for multiple recipient messages. 2012-06-15: * MMSC: Fix a bug where CC recipients were not accepted for EAIF submissions. Also, allow CC:/BCC: recipients for messages submitted via the web interface. CC:/BCC: recipients are accepted in the "Additional Headers" (MMSHeaders) parameter, one recipient per line. For example: CC: +447777777777 CC: +447777777778 2012-06-12: * SSL/TLS: Update libraries to OpenSSL 1.0.1c. Potential fix for outbound SSL HTTP SMSC connection that would sporadically block. * Address an issue in some configurations (mostly Windows Server 2008 R2) where configuration program was unable to update service settings. * MMSC: Allow URL format for MMSC account name to use either the format /account=password or /account-password 2012-05-01: * 2-way SMS: Add support for using HTTP POST in 2-way commands. This support is currently limited to posts of the type application/x-www-form-urlencoded. To configure a 2-way command to use HTTP POST, specify the URL using the format httppost://server/path?parameters. All data after the "?" will be sent via POST instead of GET. * Admin XML Status Query: Improve accuracy of outbound message queue size reported in element. * Address some issues where trial version initialises to only a 1-day trial. 2012-04-04: * HTTP SMSC Connections: Support added for sending SMS via HTTP based services that require the use of HTTP POST, XML and/or JSON formats. Documentation is not yet available for defining these templates. Assistance in configuring connections will be provided in the NowSMS support forums at http://www.nowsms.com/messages * GSM Modem Handling: Add configuration settings that can be used to define modem error responses that should be considered a permanent error, so that NowSMS will not retry submitting the message. To specify error codes that should be considered as a permanent error, edit SMSGW.INI, and under the [SMSGW] header (or a [Modem - xxx] specific header if the setting should apply to a single modem only), add "ModemRejectErrorCodes=x,y,z". This value can contain a comma delimited list of error codes. Values should be specified as text strings, e.g., "ModemRejectErrorCodes=28,30,CMS ERROR: 42". NowSMS looks for any of the text strings included in the ModemRejectErrorCodes list to appear in the modem response, and if a match is found, the error is considered permanent, so that the message is not retried. 2012-03-27: * GSM Modem/NowSMS Lite: Configuration program updated to match NowSMS 2011-08-10 change to be less picky about modem tests when adding a modem. * SMPP Server setting to limit the speed of receiving messages from a client account was applying the limit on a per connection basis instead of as an overall limit. This has been fixed. Note that when such a limit is in place, if a transceiver connection is being used, the transmission speed will also be affected. To avoid limiting the transmission speed (from NowSMS SMPP server to connected SMPP client), the client should connect with separate sender and receiver connections. * SMS Delivery Receipts: When using DeliveryReportEnroute=Yes to generate delivery reports when a message is successfully dispatched to an SMSC connnection, an additional setting has been added to allow the message status to be specified. By default, NowSMS uses a value of ENROUTE to indicate that the message is in-transit. DeliveryReportEnrouteStat=TEXT (in the SMSC specific section, combined with DeliveryReportEnroute=Yes) can be used to specify alternate values. Possible values that map to SMPP status include ACCEPTD and DELIVRD. 2012-02-16: * SMS Gateway: Fix for OutRecipPrefixConvert setting not working with GSM modem connections. * SMS Gateway: Fix for bug in recent interim updates where stray .LCK files would be left behind when sending long SMS messages over async SMPP connections. 2012-02-09: * SMS Accounting Callback: Add support for "UserData=" response to "PreAuth" and "SMSSend" callbacks. If "UserData=" is found in the response to one of these callbacks, the value is parsed and passed via a URL parameter to subsequent callbacks (including "SMSOut") referring to the same message. * MMSC: Work-around for a bug in the Nokia N9 MMS Client that was causing the N9 to be unable to retrieve MMS messages from the MMSC unless MSISDNMatchRequiredForReceive=No was set in MMSC.INI. With this update, the N9 can retrieve messages without this setting being present. 2012-02-03: * SMPP: Fix for a problem where segmented messages submitted via SMPP with a final segment smaller than 4 characters could have extra garbage characters added to make the segment 4 characters long. 2012-01-18: * Changes to fix the problems that some installations have where changes made by the configuration program are not correctly applied to the running service. (When this occurs, it is usually related to installing NowSMS under one Windows user account, and then making configuration changes while logged in to Windows as a different user.) 2012-01-10: * SMS Gateway: Extra precautions when reloading SMSGW.INI file to deal with problems caused by potentially locked files. NowSMS will not reload the changed SMSGW.INI into memory until no other program has the file open for write access. * SMS Gateway: Provisioning user accounts - Address an issue when authenticating via URL parameters (&User=username&Password=password). If provisioning a user account and authenticating via URL parameters, NowSMS would assign the admin password as the password for the provisioned account. 2011-12-15: * SMS Gateway: Fix for performance problems introduced in 2011-11-14 version, especially for SMPP transceiver mode. * SSL/TLS: SSL/TLS cipher supported updated. 2011-11-28 (No version number change, just updated DLLs) * MMSC: Improved performance for display of "MMSC Users" page when there are a large number of user accounts. * SMPP: Fix for problem where SMPP server gave too much priority to accepting messages from a client, and not enough priority to delivering messages to the client. 2011-11-18: * MMSC: Log information about messages rejected for being too large in the MMSC-yyyymmdd.LOG file. 2011-11-14: * GSM Modem Handler: Revert to older modem polling logic because some modems were not reporting received messages. * MMSC: MmsMessageSizeLimit=#### (value in KB) setting in MMSC.INI now also applies to MM7 and MM4 submissions. (For MM4, the size is applied against the raw MM4 data which is usually base64 encoded. For this reason, the size limit is increased by 33% when applied against inbound MM4 messages.) * MMSC: It is now possible to set message size limits for outbound external MMSC connections. If a message exceeds the configured size limit, the MMSC will attempt to scale images to a smaller size before sending the MMS message. This setting is configured in the VASPOUT\routename\VASP.INI file, under the [VASP] header: MaxSize=#### (value in KB). For MM1 connections that use a WAP1/WSP gateway, the MaxSize value defaults to 300(KB). There is no default size limit for other types of connections. * SMS Gateway: When messages are received via a GSM modem, NowSMS now preserves the SMSC time stamp, and returns this time value for the 2-way command place holders @@MSGDATE@@ and @@MSGTIME@@. * NowSMS Web Interface: "Recent Activity" pages now include a filter option that can be used to search/filter the log information displayed. * NowSMS Web Interface: User log files and statistics option added. * SMPP Server: Add configuration option to disable delivery receipt requests for messages submitted by SMPP clients. To activate this setting, under the [SMPP] section of SMSGW.INI, add DefaultDisableReceipt=Yes * Delivery Receipts: Add SMSC specific configuration options for delivery receipt handling under the SMSC specific section of SMSGW.INI (e.g., [SMPP - server:port]. DisableDeliveryReceipt=Yes will force the delivery receipt request to be suppressed for any messages submitted upstream to this connection. DeliveryReportEnroute=Yes will cause NowSMS to generate an "ENROUTE" delivery receipt back to the client as soon as the message is submitted upstream, if a delivery report was requested by the client. (These options can be used together to cause NowSMS to generate delivery reports instead of the upstream provider.) 2011-10-18: * SMS Gateway User Logs: Other logs and accounting callbacks were previously changed so that long text messages, Unicode text messages, and other text messages with EMS or port addressing headers are no longer reported as binary messages. The user log files are now handled the same, with these messages now reported as text messages with the text included in the log with UTF-8 encoding. * NowSMS Web Interface: Add "Recent Activity" to display recent SMS sent/received activity for the current user. Add similar activity option in the web admin interface to display recent activity for a user. (Activity is read from the user log files and is not available if DisableUserLog=Yes is configured.) * NowSMS Web Admin Interface: When editing a user account, if credit balances are enabled, NowSMS would add (and report that it had added) one credit to the user account being edited. * Add additional parameters for SMS User provision request: ReceiveEnabled=Yes&AdminEnabled=Yes * Fix for a problem in the admin web interface where stray "tr>" text could be displayed instead of being properly interpreted as HTML. * E-Mail: Fix for a problem where a message to an invalid recipient could trigger an e-mail loop with messages to Mailer-Daemon@ the local e-mail domain name. * SMS Gateway: Add a global option for prefix number conversion to apply to all SMS messages (previous solution was SMSC specific). In the [SMSGW] section of SMSGW.INI the following settings are now supported to apply number prefix conversions for submitted messages: GlobalRecipPrefixConvert and GlobalSenderPrefixConvert. 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. This conversion is applied as messages are submitted. 2011-09-22: * SMS Gateway: If SMSAccountingMustSetRoute=Yes setting is enabled, any failure in an accounting callbacks will result in messages being rejected because they lack required routing information. 2011-09-20: * SMS Gateway: Speed up service shutdown process. * SMS Gateway: DuplicateUserMessagesFor2Way=Yes setting was duplicating some non-delivery receipts in a situations where it was not necessary. * Accounting Callbacks: When processing a delivery receipt, the SMSIN callback now includes a new parameter ReceiptUser=xxx which specifies the account that originally submitted the message. 2011-09-12: * MM7: Additional configuration parameters available for customising XML name space parameters in the MM7 output. This is to deal with connections to quirky MMSCs that expect particular prefixes to be used for XML name spaces. The following settings can be defined under the [VASP] header of VASP\accountname\VASP.INI: NSSoapEnvelope=soapenv This setting specifies the name space prefix to be used for the "http://schemas.xmlsoap.org/soap/envelope/" name space, the default being env. NSXMLSchema=xsd This setting specifies the name space prefix to be used for the "http://www.w3.org/2001/XMLSchema" name space, the default being blank. When blank, this name space is NOT referenced in the XML envelope. NSXMLSchemaInstance=xsi This setting specifies the name space prefix to be used for the "http://www.w3.org/2001/XMLSchema-instance" name space, the default being blank. When blank, this name space is NOT referenced in the XML envelope. NSMM7=mm7 This setting specifies the name space prefix to be used for the MM7 schema name space for the TransactionID and the SubmitReq or DeliverReq element in the SOAP envelope, the default being blank. The following example provides further explanation. This is an example default MM7 SOAP envelope header generated by NowSMS: 20071102120921-A4D2CC3B@bigkahuna This is an exampe MM7 SOAP envelope header generated by NowSMS when the following settings are defined in VASP.INI: [VASP] NSSoapEnvelope=soapenv NSXMLSchema=xsd NSXMLSchemaInstance=xsi NSMM7=mm7 20071102120643-A1231342@bigkahuna NOTE: The MM7 schema version is configurable on a per connection basis. 2011-09-07: * SMS Gateway: Fix for invalid "donedate:" generated in any non-delivery receipts generated directly by NowSMS. * SMS Gateway: Add configuration setting to force a throttling delay between message submissions at a system level. For example, forcing a 100ms delay between message submissions. This setting can be configured in SMSGW.INI under the [SMSGW] header, MessageThrottleDelay=####, where #### is a value in milliseconds. * SMS Gateway: Fixes for accounting callback "invalid route" functionality added in 2011-08-26 version. 2011-08-26: * SMS Gateway/Accounting Callbacks: If an invalid route is returned for the "SMSCRoute=" value in SmsSend accounting callbacks, previous versions would ignore the invalid route. This version will cause the message to be rejected and generate a non-delivery notification. (If a similar condition occurs in a PreAuth accounting callback, the message is rejected before it can be accepted by NowSMS. The SmsSend callback occurs after NowSMS has accepted the message.) * SMS Gateway/Accounting Callbacks: New settings are added for installations where all SMS routing is performed by accounting callbacks. If SMSAccountingMustSetRoute=Yes is set under the [SMSGW] header of SMSGW.INI, NowSMS will require that the SmsSend accounting callbacks include an SMSCRoute=routename response. If such a response is not detected, NowSMS will stop routing the message and mark it as undeliverable (and generate a non-delivery report if requested). If SMSAccountingMustSetRoutePreAuth=Yes is set, then the requirement is that the PreAuth accounting callback must return an SMSCRoute= response, and NowSMS will not accept the message if routing information is not provided. 2011-08-11: * SMS Gateway: UseRouteQueues default was changed to Yes in 2011-08-10 release. This setting was incompatible with the recent change to the accounting callbacks allowing SMSCRoute=localuser:username. This incompatibility is now fixed. 2011-08-10: * SMS Gateway: Receive only SMPP connections are now supported by specifying "# Transmitter Sessions" = 0 under the "Advanced Settings" for an SMPP connection. (Previously, receive only connections were specified if "Support any outbound message traffic" was UNchecked, and the "Preferred SMSC Connection For" list was empty. This caused confusion for configurations where explicit routing and/or accounting callbacks were used to control routing.) * SMS Gateway: Modem handling updated to attempt to work with more modems that support only a very limited subset of GSM modem commands. * SMS Gateway: DuplicateUserReceiptsFor2Way=Yes setting was not working for non-delivery receipts generated directly by NowSMS. (The receipts that are generated if an upstream connection rejects a message submission with an SMPP error code.) * SMS Gateway: New SMSGW.INI setting added to cause inbound messages routed to a local user account to also be processed by the 2-way command processor. To enable this log, add DuplicateUserMessagesFor2Way=Yes under the [SMSGW] section of SMSGW.INI. This setting affects both user messages and delivery receipts. The DuplicateUserReceiptsFor2Way=Yes setting is automatically applied when this setting is enabled. * SMS Gateway/Accounting Callbacks: If an invalid route is returned for the "SMSCRoute=" value in a PreAuth accounting callbacks, previous versions would ignore the invalid route. This version will refuse to accept the message, with SMPP clients receiving error code ESME_RSYSERR, which indicates a system error. 2011-07-05: * SMS Gateway: SMS accounting callbacks can now be used to route messages to an external SMSC account, or to a local user account. When the "SMSSend" 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. * SMPP: 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. * Web Interface: Update "Send Text Message" 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. * 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. * 2-way SMS: Add support for @@SMSCROUTEID@@ replaceable parameter to contain the unique route name identifier (e.g., "Modem - Driver Name" or "SMPP - host:port"). 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. * SMS Gateway: Add SMSGW.INI [SMSGW] setting, UserOutboundQueueLimitInterval=## to specify the delay interval between user queue size scans when the UserOutboundQueueLimit=## setting is used. * SMS Gateway: Fix for exception errors related to improper decoding of some messages that make use of a single shift table. 2011-06-20: * SMPP: Absolute format validity_period setting is now supported from SMPP clients. HTTP clients can also use the "&Validity=" parameter to submit a validity_period setting in SMPP format. (SMPP format validity period will only be forwarded to upstream SMPP connections. * MMSC: MmsMessageSizeLimit=#### (value in KB) setting in MMSC.INI now also applies to MM7 and MM4 submissions. * MMSC: 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.) 2011-06-15: * 2-way SMS: Additional fix for restarts associated with a bug introduced in 2011.05.23 version for 2-way SMS messages that include SMPPOptions parameters. 2011-06-09: * SMS Gateway: Fix for a resource leak that can be caused by inbound SSL connnections (HTTP or SMPP) that do not complete the SSL handshake. 2011-06-08: * 2-way SMS: Fix for restarts associated with a bug introduced in 2011.05.23 version for 2-way SMS messages that include SMPPOptions parameters. 2011-06-06: * MM4: 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 "From:" header. According to the SMTP specification, these horizontal tab characters are legal, and NowSMS needs to ignore them. 2011-06-03: * SMS Gateway Startup: Move most database integrity checks to a background thread so as to not delay startup. * 2-way SMS commands with mailto: links: Support routing e-mail non-delivery messages back to sender if message undeliverable. 2011-06-02: * SMS Gateway: Fix for 2011-05-23 interface reporting errors with the SMPP server if an SSL port number for SMPP is not defined. * SMS Gateway: Route names are now supported in the configuration interface to make it easier to work with SMSC connections. "SMSOUT" and "SMSIN" accounting callbacks now include "&SMSCRouteName=" parameter. * SMS Gateway: Fix for problem where server would not take extra time to shutdown if HTTP SSL connections are supported. 2011-05-23: * Update NowSMS web user interface templates. * Web Administration Access is now associated as an attribute to an "SMS Users" account, instead of being a separate login identity. * E-Mail alerts can now specify to be sent via a mail server that requires with SMTP Authentication & SSL/TLS. * SMPP: Configuration program supports defining the number of simultaneous transmitter and/or receiver sessions to be associated with an SMPP SMSC connection. * HTTP SMSC: Configuration program supports defining the number of simultaneous HTTP transmitter sessions to be associated with an HTTP SMSC connection. * SMPP: 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. * Fix for [SMPP] / DeliveryReceiptFlag=Yes not working properly. (Only worked properly if set as [SMPP] / DeliveryReceiptFlag=1) * 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.) * Fix for service restarts that could occur when using the web administrative interface. * 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.) * Accounting callbacks 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 "SMSSend" and "SMSIN" 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 "SMSSend" and "SMSIN" accounting callbacks looking for "To=", "Sender=", "ServiceType=", "Validity=" and "SMPPOption_xxxx=" 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. * SMPP: TLV parameters defined in GSM Assocation IR.75 are automatically supported by default using the HexString encoding: SMPPOption_source_subaddress (0x202) and SMPPOption_dest_subaddress (0x203). For more information, refer to http://www.nowsms.com/smpp-tlv-parameters-for-advanced-message-routing * Retrieving SMS messages via POP3: 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. * SMPP Client: 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. * MMSC: Include "MMSStatus=" in "MMSDeliveryReport" callbacks. Status values are extracted from the MMS specifications. Possible values include "Retrieved" (success), "Expired", "Rejected", "Deferred", Unrecognised", "Indeterminated", "Forwarded", "Unreachable" and "Unknown". * MMS Proprietary URL Submission: Include "MMSMessageID=" parameter in accounting callback for MMS message submissions via this interface. * MMSC: Reduce DNS query timeouts that can backlog the processing of MM4 acknowledgments, especially when the "MM4 Ack Route" has not been set for a connection. * MMSC: Fix for bug receiving MMS messages via MM4 which included filenames that have a "?" character in the filename. * E-Mail to SMS: 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. * SMS Gateway: Additional subdirectories created to prevent situations where a large SMS-IN queue makes the system unstable. * 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 2011-04-19: * SMS Gateway: 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 * 2-Way SMS: 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. * MMSC: 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. * 2-Way MMS: 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 "MMSC Routing" 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 "2-way" 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 2011-04-11: * Configuration Program: Update font selection for configuration program to address issues where some installations were seeing text that was too large to display in the window. * SMS Gateway: 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 "forced sender address" configured, and some do not, the "forced sender address" from a previously accessed account would be applied to submissions from an account with no "forced sender address" 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. 2011-03-21: * SMS Gateway: Fix for web interface not working properly with Firefox. (Problem introduced with late 2010 update to enable keep alive sockets.) 2011-03-18: * MMSC: 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.) 2011-03-15: * SMS Gateway: 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. * SMS Gateway: Improved handling of "User Queue Size Threshold" to prevent problems where SMPP user accounts could be allocated multiple queue directories, giving extra priority to that account. * SMS Gateway: 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. * SMS Gateway: 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. * 2-Way SMS Command Processor: 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. 2011-02-16: * SMS Gateway: 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. 2011-01-14: * SMPP Server: 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. * MMSC: Change MM7 transaction ID format to not include @ character, due to suspcion that this was causing a problem for a particular provider. 2010-12-21: * MM7: When AllowAlphaRecip=Yes is enabled, use instead of for the recipient address type, even if it is not a number. * Configuration program opens LOG files using the default program for the .LOG extension instead of always using Notepad. 2010-12-15: * Fix for 2010-12-14 install which did not include an updated SMSSMPP.DLL. The 2010-12-14 (and 2010-12-07 which was not released) installs did not have an updated version of this DLL which resulted in numerous timeout errors when submitting messages with SMPP async mode enabled. 2010-12-14: * MMS via GPRS Modem: Fix for problem introduced in 2010.11.04 version where MMS messages would not be retrieved from some operator MMSCs, particularly T-Mobile USA. 2010-12-07: * Web Interface: Fix for problem sending pre-compiled MMS messages via the "Send MMS Message" web interface that could cause these messages to become corrupted. * SMS Gateway/SMPP Client: 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. * MM7: Don't add extra CRLF before closing MIME boundary as this might be confusing some Java libraries. 2010-11-26: * MMSC: Fix for problem where the message ID in a delivery receipt was not formatted correctly ("/" characters changed to ".") for delivery receipts that arrived via an MM4 connection. This prevented sending clients from being able to correctly resolve delivery receipts. * SMS Gateway: Fix for web admin interface only sending the first 16KB when attempting to remotely download log files. 2010-11-04: * E-Mail to SMS: Translate Greek capital letters to visually equivalent 7-bit characters in attempts to send SMS messages out using 7-bit encoding. (The NowSMS web interface already does this.) * MM7 Client: Change Content-Type: text/xml; charset="utf-8" to Content-Type: text/xml; charset=utf-8 to address a compatibility problem with a particular operator MMSC. (Whether or not this parameter is quoted should not matter. Removing the quotes should not cause a problem with other MMSCs.) 2010-10-28: * SMPP Client: Fix for some BinaryDCS= values not working properly, especially BinaryDCS=2. If BinaryDCS=2 was set for a connection, NowSMS would garble the data. 2010-10-22: * SMPP Client: Fix for a problem introduced in mid-2010 where message receipt IDs were not properly evaluated if the receipt was received two or more days after the message was originally sent. * Add preliminary support for NowSMS acting as an SMPP server to use async mode to deliver messages to SMPP clients (NowSMS has previously supported async mode in the other direction, where NowSMS is the SMPP client). This can provide increased performance in delivering messages to connected SMPP clients, provided that the client can support SMPP async mode. To enable SMPP async mode for all clients, add SMPPServerAsyncWindowSize=## to the [SMSGW] section of SMSGW.INI. Alternatively to enable or disable for selected clients, add an [SMPPServerAsyncWindowSize] section to SMSGW.INI, and specify AccountName=## to set the async window size for a specific SMS User account. (A window size of 0 disables async mode.) 2010-10-18: * SMS Gateway: E-mail alerts now support multiple recipients, separated by a comma. 2010-10-13: * MMSC: When NowSMS generates an MM7 error response, it was not encoding the error in an a SOAP envelope element, as required by Section 8.7.8.3 of 3GPP TS 23.140. (Note: The issue is not as cut and dried as it may seem, as the MM7 element defintions for the error response are in conflict with this Section 8.7.8.3. We are choosing to follow Section 8.7.8.3 and assume that the definitions that conflict with it are mistakes in the specification. Further discussion of this issue is at http://www.nowsms.com/discus/messages/485/60182.html.) 2010-10-04: * SMPP - Fix for a problem where recent versions have not properly passed the "Bind TON", "Bind NPI" or "Address Range" parameter in SMPP connection tests from the configuration dialog when initially defining a new SMSC connection. * SMS Gateway: Initial HTTP Keep-Alive socket support in the SMS gateway in the last release caused a problem for "/provision" requests. This problem has been resolved. * MMSC: Add configuration option to block routing callback for short codes (many routing callbacks expect standard phone numbers). If ForceRoutingCallback=Yes is set in the MMSC.INI, then ForceRoutingCallbackShortCodes=No can be set to exclude short codes from the routing callback. Note: The default maximum short code length is 6 digits, this can be adjusted with the ShortCodeMaxLength=## setting. (All settings referenced in this description are in the [MMSC] section of MMSC.INI.) 2010-09-30: * SMS Gateway: HTTP Keep-Alive sockets are now supported for HTTP submissions to offer improved performance. If this causes a problem for some applications, keep-alive sockets can be disabled by editing SMSGW.INI and under the [SMSGW] header, adding EnableKeepAlive=No. 2010-09-21: * SMS Gateway: The SMPPRejectErrorCodes setting described in http://blog.nowsms.com/2007/06/smpp-error-code-handling-in-nowsms.html can now be set on an individual connection basis. SMPPRejectErrorCodes= is now supported under individual [SMPP - server:port] section headers to allow settings that apply to only that connection. * SMS Gateway: Improve performance of accepting new HTTP connections for message submissions. * SMPP Server: Fix message id generation logic to avoid duplicate message IDs when accepting long messages from SMPP clients. 2010-09-14: * SMPP: When receiving a delivery report from an upstream SMPP connection, if the TLV parameter message_state is not set, NowSMS would previously assume that the delivery report signals successful delivery and would generate TLV parameter message_state=2 if the delivery report is relayed to an SMPP client. Effective with this update, NowSMS now parses the text of the delivery report to determine the status. If the status cannot be determined, NowSMS will not generate a message_state parameter. 2010-08-23: * MMSC: Add configuration setting to allow the SMTP host name to be set independently of the MMSC "Local Host Name". To set the SMTP Host name, edit MMSC.INI, and under the [MMSC] header, add SMTPHostName=xxxx. If this parameter is not present, the "Local Host Name or IP Address" field will be used as the SMTP host name. (This setting was added on 2010-06-17, but the original implementation was for SMTP only, not MM4. It now also applies to MM4.) * SMPP: Fix for a problem with delivery receipt handling for a delivery receipt that was received in Unicode text format. 2010-08-17: * MMSC: Fix for an exception error that could trigger MMSC restarts when processing MMS to "SMS web link with code" conversions. 2010-08-13: * MMSC/MM7: Fix for "MMSBCC=Yes" parameter not properly encoding recipients as "BCC" if routing externally via an MM7 or MM4 connection. * SMPP: Add support for iso-8859-15 character set. This character set may be required if you are experiencing problems sending the Euro Ä character. When using the GSM character set, the Euro is encoded as an escape character followed by e. However, the Euro character is not actually defined in the iso-8859-1 character set. When NowSMS is configured to use the iso-8859-1 character set, it encodes the Euro with hexadecimal value 0x80, which is the standard encoding from the Microsoft Windows extension of iso-8859-1. However, some SMPP servers expect the Euro to be encoded as 0xA4, which is defined in the iso-8859-15 character set, a character set which was originally intended to be a replacement for iso-8859-1, but that did not see widespread implementation. When an SMPP connection is configured to use the iso-8859-15 (or iso-8859-1) character set, the default behaviour of NowSMS is to submit messages using a data_coding value of 3 to indicate iso-8859-1 encoding. Additional SMPP character set notes: 1.) Some SMSCs expect iso-8859-1 (or -15) encoding to be used, but do not understand the data_coding = 3 setting. For those environments, it is possible to manually edit SMSGW.INI, and under the [SMPP - server:port] section header for the SMPP connection, add SMSCCharsetDefault=Yes, which will tell NowSMS to use a data_coding value of 0 with the character set that is configured for the connection. 2.) If there are character set encoding problems receiving a message from a connection, note that NowSMS uses the configured character set for the connection for interpreting text messages only if the data_coding value is 0. If the data_coding value is 3, NowSMS will decode the text as iso-8859-1 (or iso-8859-15), regardless of the character set configured for the connection. If the data_coding value is 1, or a text encoding value other than 3, NowSMS will decode the text as using the GSM character set. To override this decoding behaviour for received messages, and force NowSMS to always use the character set configured for the connection, edit SMSGW.INI and under the [SMPP - server:port] section header for the SMPP connection, add SMSCCharsetReceiveTextOverride=Yes. * SMPP Server: Support for SMPP clients connecting to the NowSMS server via SMPP using the iso-8859-15 character set has been added, similar to the settings described for outbound SMPP connections from NowSMS. Default settings for the NowSMS SMPP server character set can be configured under the [SMPP] header of SMSGW.INI. If there is a need to support SMPP clients that use different default character sets, it is possible to add additional user-specific section headers to SMSGW.INI. Under a header of [SMPP - username], the following parameters can be applied to a specific SMPP client account: SMSCCharset=IA5 (for GSM), iso-8859-1 or iso-8859-15; SMSCCharsetDefault=Yes (tells NowSMS to use a data_coding value of 0 with the configured character set), SMSCCharsetReceiveTextOverride=Yes (tells NowSMS to always use the character set configured for the user for text messages, even if the data_coding value implies a different character set is being used). 2010-08-03: * SMS Accounting Callbacks: Add additional parameters to accounting callbacks, including SMPP "ServiceType" and "Validity" parameters. 2010-07-27: * MMSC: Fix for a problem sending a message to a large number of MMS recipients, where a problem occurred because initial message recipients would receive the message notification before the MMS message file was closed on the MMSC. This caused message download failures unless MSISDNMatchRequiredForReceive=No was set under the [MMSC] header of MMSC.INI. (Most MMS clients would re-attempt download later and the message would be successfully delivered.) * Web Interface/Send MMS Message: Fix for an exception error that could occur in the SMS gateway when sending an MMS message to a large number of recipients that include a "+" character. 2010-06-30: * SMPP & MM7: Add configuration option to support alphanumeric recipients for SMS messages sent over SMPP and MMS messages sent over MM7. This is to support a provider that maintains server side distribution lists which are addressed as alphanumeric recipients. Alphanumeric recipients are only supported if AllowAlphaRecip=Yes is added to the [SMSGW] section of SMSGW.INI. (Fix problem sending to SMS recipients that include a ":" character.) 2010-06-28: * MMSC/inbound MMS Messages: A new "MMSC Routing" option has been added for "MMSC VASP" definitions. "Local MMS Recipients Only" means that the connection will only accept messages that the MMSC can handle directly without routing to an external MMSC Routing (MM4, MM7) definition. "Local MMS Recipients Only" includes both local MMS users, as well as recipients that are automatically converted to WAP Push or SMS with web link (code). The purpose of the setting is to disallow selected MM4 or MM7 connections from being able to route externally via another MM4 or MM7 connection. * MMSC: The MSISDNHeaderConvertToLocalNumber=Yes setting now affects both MMS headers and MMS messages that have been converted to SMS with web link (with code) for delivery, so that the message sender phone number is displayed in local number format instead of international number format. * MMSC: Some temporary files (TEMPxxxxxxxx.TMP) were being created in the NowSMS program directory, and would fail to be deleted. These files are now properly created in the TEMP subdirectory and automatically cleaned up. * SMS Gateway: When an HTTP message submission is rejected, it could be because the user is out of credits, has exceeded daily/monthly allowances, been denied by a response from an accounting callback, or an error has occurred processing an accounting callback. To aid in troubleshooting, the HTTP 403 error response now includes text that explains the reason for the message rejection. Additionally, it is easier to search for rejection information in the SMSDEBUG.LOG, as the error information in the log will be preceded by "MessageAccountingReject:". 2010-06-17: * SMPP Configuration: Add a scroll bar to the "SMSC Character Set" options list to allow easier selection of different character sets. * SMS Gateway Accounting Callbacks: Fix "SMSOut" accounting callback to start with the text "Retry Pending" for "Status" when a message delivery attempt fails, but a retry is still pending, allowing temporary errors to be properly distinguished from final error conditions. * SMS Gateway: Optional fix for segmentation logic to avoid repeating UDH headers when NowSMS is automatically segmenting a long message submitted via SMPP "message_payload" or via HTTP. Repeating UDH headers in all segments can cause problems for some uses, particularly SIM data download. To enable this logic, add RepeatUDHAllSegments=No under the [SMSGW] header of SMSGW.INI. * SMS Gateway/SMPP Client: When operating in sync mode, if ESME_RTHROTTLED is returned, after waiting for the throttle delay, the same message will be re-attempted up to 5 times. * SMS Gateway/SMPP Client: The SMPP Throttle error delay is now configurable on a per connection basis. The default throttle error delay is 5 seconds. To set a global throttle error delay that applies to all connections, add SMPPThrottleErrorDelay=## (where ## is a number of seconds) under the [SMSGW] header of SMSGW.INI. To specify a delay that should be used only for a specific connection, add SMPPThrottleErrorDelay=## to the [SMPP - server:port] section for the connection. * SMS Gateway/SMPP Client: Add configuration option to treat the ESME_RMSGQFUL (receive message queue full) error the same way as a throttling error, subjecting it to the SMPPThrottleErrorDelay pause. This option can be activated for inidividual SMPP connections if desired by adding ThrottleForQFull=Yes under the [SMPP - server:port] section header for a connection. * SMS Gateway: Additional performance optimisations for user credit balance and quota tracking. * SMS Gateway: Fix for a message encoding problem when sending long text messages via an outbound SMPP connection with wDP Adaptation eanbled if the message contains source and/or destination port addressing. 2010-06-04: * SMS Gateway/GSM Modem Receive Message: Fix for a problem where the sender phone number was not being interpreted correctly for some messages. For some reason, the problem messages were being received with the sender address type being set to a reserved/unknown value, which was causing NowSMS to mistakenly interpret the sender address as being alphanumeric. 2010-06-02: * SMS Gateway: Performance optimisations for user credit balance tracking. 2010-06-01: * MMSC/MM4: When generating MM4_forward.RES acknowledgments include the "X-Mms-Message-ID:" and "X-Mms-Transaction-ID:" headers exactly as they were received. Previously, quote characters were added to these values if they were not present in the received message, because the MM4 specification (3GPP 23.140) defines these headers as requiring quoted-string values. This was causing a problem with an MM4 interconnect to NTT DoCoMo Japan, which is not properly formatting these headers with quoted-string values. In the unlikely event that this change causes a problem with other MM4 interconnects, a configuration setting has been added to force the old behaviour which would always format these values as quoted-string. To enable this old behaviour, edit MMSC.INI and under the [MMSC] header, add ForceMM4QuotedMessageID=Yes. 2010-05-25: * MMSC: Fix for a corrupt message problem that triggered repeated MMSC restarts and denial of service. 2010-05-24: * SMS Gateway: Fix for bug effecting the "ReRouteReceived" setting, which allows messages received via an SMSC connection to be redirected for delivery via another SMSC connection. Recent changes to allow accounting callbacks to specify message routing was causing invalid routing information to be recorded for these messages, causing them to be stuck in the queue. 2010-05-20: * GSM Modem Handling: When routing messages received via a GSM modem to an SMPP client account, if the modem phone number is not available, insert a value of "1" as the destination address instead of blocking the message from being received by the SMPP client. 2010-05-17: * SMS Gateway: 2010-05-07 version had a problem with "Stuck messages" if messages were submitted with explicit queue routing (&SMSCRoute=routename), and the setting UseRouteQueues=Yes was not applied. 2010-05-13: * GSM Modem Handling: Additional checks to stop polling memory locations that don't exist on unusual modems like the Multitech CDMA modem. (Was not an operational problem, but resulted in a lot of error information in debug logs.) 2010-05-12: * GSM Modem Handling: Add an additional modem test (AT+CREG?) to check if the modem reports loss of signal. If the loss of signal condition persists, trigger a soft reset of the modem to try to get the modem to reconnect with the operator. * GSM Modem Handling: Fix for a "CMS ERROR: 340" issue that could occur with some CDMA modems that emulate GSM modems, where NowSMS would try to use support for GSM Phase 2+, even if it was not enabled in the configuration. 2010-05-07: * SMS Gateway: Add the capability to define the number of transmitter, receiver and/or transceiver connections to be allocated for a single SMPP connection, without requiring multiple duplicate connections to be defined. In the [SMPP - server:port] section of SMSGW.INI, the following settings are supported: TransmitterCount=## and ReceiverCount=##. TransmitterCount=## defines the number of transmitter connections to be established. If transceiver mode is configured, TransmitterCount specifies the number of transceiver connections to be established. If transceiver mode is not configured, ReceiverCount specifies the number of receiver connections to be established. Note that the number of receiver connections cannot be greater than TransmitterCount. * SMS Gateway: Performance optimisations for large message queues, especially when there are a large number of outbound SMSC connections. Previously documented UseRouteCache=Yes parameter setting is now enabled by default. In the event of unexpected problems, the new routing logic can be disabled with a setting of UseRouteCache=No under the [SMSGW] header of SMSGW.INI. * SMS Accounting Callbacks: Add SMPPOptions TLV parameters to the accounting callbacks. * SMS Accounting Callbacks: Fix for a problem with accounting callbacks if text included "@@". * MMSC: Fix problem with automatic MMS version detection that was preventing some MMS clients from recognising that the MMSC supports read receipts, causing clients to send read receipts as standard messages (bug was introduced in early 2009 versions). * MMSC: Add pre-auth callback for "MMSReadReport" when an MM1 client is submitting a message read receipt. (A pre-auth callback is not necessarily required for this event, however it is being added for consistency, since a pre-auth callback does exist for delivery reports.) Pre-auth delivery report callback also modified to include AccountingExtraHeaders if configured. * MMSC: Fix for MMSC routing callback not including the "From=" parameter for messages submitted via the web interface. 2010-04-20: * SMS Gateway: Fix for a routing issue where multiple SMSC connections have the same sender address, where one route has one or more preferred routes, and another route with the same sender address has "Support any outbound message traffic" checked. Messages with a matching sender address should only be routed to the first route if the recipient matches a preferred route, however it was being routed to either route. Note: This only applies to sender based routing. 2010-04-15: * Accounting Callbacks: Add additional parameter "AcctInfo=" that can be included when submitting a message via HTTP. If included on submission, this parameter will be passed to subsequent accounting callbacks regarding the message. * MMSC: Fix for MM4 message decoding problem when "Content-Location:" header contains a space character. According to RFC2557, White space characters do not appear to be valid as part of a location name in this header. A change to allow them is being implemented to address a problem where customers are receiving corrupt messages from some Verizon phones. * SMS Gateway: New performance optimisations for performance problems with large message queues, especially when combined with a large number of outbound SMSC connections. These performance optimisations are only enabled in this version when UseRouteCache=Yes is specfied under the [SMSGW] header of SMSGW.INI. * Internal: Include additional error checking to detect and automatically repair SQLite databases that are used for receipt tracking. * Internal: Update SQLite databased (used for message id receipt tracking) to v3.6.23. 2010-03-18: * SMS Gateway: Fix for 2-way SMS problem on Windows XP systems, where early 2010 versions would have problems sending replies to 2-way SMS messages because of corrupt "SMSCRoute=" information being added to the SMS message. * SMS Gateway: Add configuration settings to disable user logging and quota management features to add performance for systems that do not need user logs and/or quota tracking. Under the [SMSGW] header of SMSGW.INI, the following settings have been added: DisableUserLog=Yes - This setting disables the creation of user specific log files in the USERS\username directory structure. DisableUserQuota=Yes - This setting disables the tracking of how many messages each user account sends in a day. 2010-03-10: * SMS Gateway: Fix for delivery receipts message IDs not being tracked if the sender address is alphanumeric containing a ' (single quote/apostrphe) character. * SMS Gateway: Minor performance optimisation for large message queues (could be major for some installations, minor for others). * WAP Push testing parameters added to meet a particular conformance test which required support for WAP Push SI, SL and CO messages using WBXML version 1.1 and the iso-8859-1 character set. NowSMS defaults to using WBXML version 1.2 and the UTF-8 character set. To set the WBXML version, edit SMSGW.INI and under the [SMSGW] section header, add WAPPushWBXMLVersion=1.1. To specify iso-8859-1 as the WAP Push character set, use WAPPushUseUTF8=No in the [SMSGW] section of SMSGW.INI. 2010-02-10: * Fix for error message confusion where NowSMS would report an error about the SMPP port already being in use when the port conflict actually involved the SMTP port. 2010-02-03: * Fixes for UseRouteQueues=Yes setting when "SMSCRoute=" is set by a PreAuth SMS Accounting callback. 2010-01-27: * 2-way SMS: Fix for problem where SMPPOptions settings and service type were not preserved when recombining a received multipart SMS for passing to a 2-way command. * MMS Gateway/MM1: Fix for problems routing MMS delivery reports back to an MM7 connection if the MMSC host name is not configured (which is always the case in NowSMS Lite). Also fix a problem where MMS delivery reports were not automatically routed to the default route configured for the modem's MMS receive settings. * SMS Gateway/SMPP Client: Update configuration parameter that allows the "users" directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients, as well as user specific log files. Under the [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS "users" directory. When this parameter is set, the "SMS Users" database files (SMSUSERS.D2A and SMSUSERS.D2I) will also be located in this directory (by default, when this parameter is not set, these files are in the NowSMS program directory). With this release, it is now possible to separate the queued messages and log files from other user related data. Under the [SMSGW] header, use UsersQDir=d:\path\ or UsersQDir=\\Server\Volume\path\ to specify the location of the user directories that will hold queued messages only. Under the [SMSGW] header, use UsersLogDir=d:\path\ or UsersLogDir=\\Server\Volume\path\ to specify the location of the user directories that will hold log files. Other user directories and files will be stored relative to the "UsersDir=" setting, or in their default location if "UsersDir=" is not present. * SMPP: Add SMSC specific configuration option to suppress TLV receipt parameters when delivery receipts are routed to an outbound SMSC connection (this would generally only happen when the ReRouteReceived option is used). Under the [SMPP - server:port] header of SMSGW.INI, if you want to suppress the receipt TLV parameters for messages routed to this server, add IgnoreReceiptTLV=Yes. 2010-01-19: * SMS Gateway: Add a configuration option to add separate queues for explicitly routed messages. In SMSGW.INI, under the [SMSGW] header, add UseRouteQueues=Yes. * SMS Gateway: Add a configuration option to possibly speed up receiving of SMS messages when accounting callbacks are enabled and SMPP async mode is enabled for a connection. When this configuration option is enabled, inbound SMS message processing and accounting callbacks are moved to a separate thread. To enable this setting, edit SMSGW.INI, and under the [SMSGW] header add AsyncReceiveMessages=Yes. (Note: This setting is still considered experimental.) 2010-01-06: * MMSC: Fix for problem with MSISDN header parsing where the MMSC was looking for both the X-MSISDN header and a value configured for the "MSISDNHeader=" setting, when it should only be looking for the "MSISDNHeader=" setting. 2009-12-24: * SMS Gateway: Fix for problem where if "Separate outbound message queues" for each user is not enabled, NowSMS would not send out any SMS messages that originated via SMTP. 2009-12-22: * SMS Gateway: Fix for problem where NowSMS would keep re-initialising a modem if the user had never edited and saved properties for the modem after the initial add. 2009-12-21: * SMPP: If routing a delivery receipt via an outbind SMSC connection, use esm_class of 8 in submit_sm. (Previously, a value of 4 was being used, which is not valid in submit_sm.) Also add a configuration option to suppress TLV paramters (message_state and receipted_message_id) for delivery receipts routed via an outbind SMSC connection. To suppress these TLV parameters, edit SMSGW.INI, and under the appropriate [SMPP - server:port] section header, add IgnoreReceiptTLV=Yes. * SMPP: Add message_id to data_sm_resp if we receive a data_sm from an outbind SMSC connection, and the message is rerouted to another outbind SMSC connection because of a "ReRouteReceived" configuration setting. * SMS Gateway: Update preferred service_type handling for routing particular service_type values to specific SMSC connections to support pattern matching and "best match". See http://www.nowsms.com/discus/messages/1/42107.htm and http://www.nowsms.com/discus/messages/1/24460.html. * Add option to disable writing anything to the Windows Event Log. Add DisableEventLog=Yes under [SMSGW] header in SMSGW.INI. * SMS Gateway: Allow retry parameters to be specified on a per-SMSC connection basis, so that different connections can have different retry settings. If any of the following retry parameters is found in the SMSC specific section of SMSGW.INI, it will override the default setting under the [SMSGW] header: RetryDelay, RetryDelayMultiplier, RetryDelayAfterAttempts, RetryDelayMax, RetryMaxAttempts, InitRetryDelay, InitRetryDelayMultiplier, InitRetryDelayAfterAttempts, InitRetryDelayMax. 2009-12-08: * MMSC/MM4: Implement checks to prevent circular routing for MM4 interconnects. If a message is received via an MM4 connection, and the MMSC determines that its delivery path to the recipient is via that same MM4 connection, the message will be rejected with a negative response in the MM4_forward.RES. For compatibility with previous releases, this check can be disabled with the setting DisableCircularRoutingCheck=Yes in MMSC.INI. 2009-12-01: * MMSC: Fix for MMSUSER.EXE -quotareport listing up to 1000 blank user entries after the last user. 2009-11-25: * SMS Gateway: Fix for a problem where individual parts of a multipart message were not routed out via the same SMSC connection if NowSMS was able to fully route one part before the next part was received. * SMPP: Add a configuration option to override the character set for received SMS messages. A customer encountered a situation where the SMSC was encoding text using the iso-8859-1 character set. However, the SMSC was setting the character set flag in the message to indicate that text was using the GSM character set. NowSMS was configured to use the iso-8859-1 character set with this SMSC, however, since the character set was explicitly set as GSM in the received message, NowSMS could not decode the text properly. To address this issue, it is possible to add SMSCCharsetReceiveTextOverride=Yes under the [SMPP - server:port] section of SMSGW.INI. When this parameter is present, NowSMS will always interpret received text messages as being encoded in the character set configured for the connection. * SMPP: Add a configuration setting to allow a default PID value to be used for all messages routed to a specific SMSC connection. Under the [SMPP - server:port] section of SMSGW.INI, add DefaultPID=XX, where XX is the PID value in hex. 2009-11-04: * MMSC: When the sender of an MMS message is an e-mail address (instead of a short code or phone number), and the message arrives via a VASP connection, requesting a delivery receipt, the MMSC would always try to send the delivery receipt back via e-mail. This was only an issue if the MMSC was delivering the message directly, if it was routing to an upstream MMSC connection, delivery receipts back to an e-mail recipient would be routed correctly. * SMS Gateway: Add a configuration option to use 16-bit reference numbers when generating concatenated multipart messages. By default, NowSMS uses 8-bit reference numbers, which allows the most characters to be fit in a single SMS. However, a customer observed that when sending binary messages to a Java application on many Motorola phones, one byte of data per message segment would be lost when using 8-bit reference numbers due to a bug in the phone software. When 16-bit reference numbers are used, message length per segment rules change. For long text messages, instead of 153 characters per segment, only 152 characters per segment can be achieved. For Unicode messages, instead of 67 characters per segment, only 66 characters per segment can be achieved. For binary messages, 133 bytes of binary data can be included per segment, instead of 134 bytes. To enable 16-bit reference numbers, edit SMSGW.INI, and under the [SMSGW] section header, add ConcatRef16Bit=Yes. Note that when this setting is applied, 16-bit reference numbers are only used when NowSMS performs the segmentation (message submitted either via HTTP, or via SMPP using a single message_payload submission) ... NowSMS does not resegment messages that have already been segmented by the submitting client. 2009-10-28: * SMPP: Add SMPP character support for an unusual "Roman-8" character set needed for a specific SMSC. 2009-10-23: * GSM Modem: Add code to detect a system waking up from sleep or hibernation where we may need to reset the modem. * SMPP: Add configuration setting to prevent NowSMS from remapping GSM message class DCS values which are invalid in SMPP to valid SMPP values. To apply this setting for a specific SMSC, edit SMSGW.INI, and under the SMSC specific section (e.g., [SMPP - server:port]), add RemapMessageClassDCS=No. 2009-10-21: * SMS/GSM Modem: For messages received via GSM modem, if a phone number property is not set for the modem, read the phone number from the modem and apply it as the received phone number. * SMSLite: Configuration program was not allowing the "Route SMS to local user" setting to select users. 2009-10-19: * SMS/GSM Modem: Fix for problem initialising Telit HSPA Modem. Previously, attempts to initialise modem were returning error: "Error initializing modem - 0" 2009-10-12: * MMSC: EnableReadReceipt=No was disabling read receipts from being generated by local recipients, but it was not disabling the read receipt request from being routed to external recipients. It now blocks both. 2009-10-07: * SMPP Server: Fix for change in 2009.10.01 version which caused server to accept messages from an SMPP client even if a user was over quota. 2009-10-01: * GSM Modem: More GSM modem handling updates. Added code to reset the modem after persistent errors sending SMS or MMS messages to try to recover "hung" modems. MMS sending updated to address an issue where if a modem was removed/reinserted, the MMS part of NowSMS could not recognize the modem again until the service restarted. (This could also happen with buggy modems that restart themselves periodically.) An additional option was added to the GSM modem configuration to trigger NowSMS to restart the server if a modem becomes unresponsive and NowSMS is unable to access the modem. (Note: NowSMS retries for about 15 minutes before triggering a reboot when this option is enabled.) * SMPP/WDP Adaptation: Fix for 2009.06.30 change. If BinaryDCS override is not specified for the SMPP connection, and WDP Adaptation is being used, continue to remap DCS value 0xF5 to 4, as was done in earlier releases. * SMPP Server: When accepting messages from an SMPP client, if the client specifies TON=1 (international), but the address starts with "0", assume that the number is in local format, not international. 2009-09-16: * MMSC/MM4: Work-around for situation where MM4 delivery reports were not being accepted because the recipient address (original sender) for the delivery report was not being specified in the "RCPT TO:" command. Instead, the other MMSC was specifying the MMSC system address in the "RCPT TO:" command and only included the original recipient in the "To:" header of the message. 2009-09-15: * Fix for an exception error that could occur with segmented SMS messages submitted to recipient phone numbers longer than 70 characters. Problem most frequently occurred with multiple outbound SMSC connections. * Receiving MMS via GPRS Modem: Fix for problem where when received SMS messages are being routed to a local user, NowSMS would also route MMS notifications to that local user account instead of processing them as received MMS messages. 2009-09-08: * MM7: Add configuration option to allow selected MM7 status codes to be classified as success or retry status codes. By default, NowSMS accepts only StatusCode 1000 as an inidication of successful message submission. To add additional status codes, edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, define SuccessStatusCodes=1000,1001,1002 (comma delimited list of status codes). Similarly, NowSMS considers all errors except 2001, 3003, 4000, 4006 and 4007 to be permanent status errors. If NowSMS receives a StatusCode response with any other value, the message submission will not be reattempted (3003 is a special status code case indicating that the MMSC only accepts one recipient at a time). To add additional StatusCode responses that should be treated as temporary errors, edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, add RetryStatusCodes=2001,4000,4006,4007 (comma delimited list of status codes, include the default StatusCodes that should be retried). 2009-08-31: * SMPP: Add SMPP character support for the unusual "ASCII 437" code page that is used by Telstra. * SMPP: Add configuration setting to set the initial SMPP sequence_number value to be used by a connection as a random value. To enable this setting, edit SMSGW.INI, and under the [SMSGW] header add SMPPSeqRandom=Yes. 2009-08-26: * GSM Modem Handling: If errors occurred when sending MMS messages via a modem route, the MMSC would not timely release the modem to allow SMS sending to continue. * SMPP: Fix for improper sequence_number generation issues. * Add "BCC" option for sending an MMS message via the web interface. If using NowSMS proprietary URL submission, include "MMSBCC=Yes" to force recipients to be BCC. * SMS Gateway/SMPP Client: Update configuration parameter that allows the "users" directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients, as well as user specific log files. Under the [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS "users" directory. When this parameter is set, the "SMS Users" database files (SMSUSERS.D2A and SMSUSERS.D2I) will also be located in this directory (by default, when this parameter is not set, these files are in the NowSMS program directory). With this release, it is now possible to separate the queued messages from other user related data and logs. Under the [SMSGW] header, use UsersQDir=d:\path\ or UsersQDir=\\Server\Volume\path\ to specify the location of the user directories that will hold queued messages only. Other user directories and files will be stored relative to the "UsersDir=" setting, or in their default location if "UsersDir=" is not present. * MMSC/MM4: Add the ability to use different source/sender domain names for different groups of users. This may be useful when multiple mobile operator networks are serviced by a single MMSC. To specify the outbound domain name, edit VASPOUT\accountname\VASP.INI for the outbound MM4 connection ... creating a [DomainMapping] section. Within this section, specify address pattern to domain name mappings using the following format addresspattern=domain.name (e.g., +111*=domain1.com). Note: To support these additional domain names when receiving messages, add domain name alias settings under the [MMSC] section of MMSC.INI using the format DomainNameAlias1=domain1.com ... DomainNameAlias2=domain2.com ... etc. 2009-08-20: * GSM Modem Handling: Internal updates for improved performance and compatiblity. Change the default receive polling interval to 3 seconds when "Direct to Modem" is the "SMS Message Storage" type. The polling interval is set to 2 seconds for other "SMS Message Storage" types (prior to NowSMS 2009, it was always 1 second). To change the default add ReceivePoll=##, where ## is the number of seconds, under the appropriate [Modem - driver name] section header of SMSGW.INI. Modem polling logic also optimised to be less resource intensive on the modem. If this change causes problems receiving messages with older phone modem implementations that worked with previous version of NowSMS, add OldPollingLogic=Yes under the appropriate [Modem - driver name] section header of SMSGW.INI. * MMSC: When routing MM7 to MM1, do not encode "Content-Disposition:" headers in the MM1 message, as this seems to confuse some operator MMSCs. 2009-08-15: * 2-way SMS processing: Non-delivery receipts generated by NowSMS when an SMSC connection rejected a message were being marked with a ".IN" extension instead of a ".REC" extension. While not necessarily a problem, this could cause delays for other ".IN" messages being processed. These receipts are now marked with a ".REC" extension so that they will be processed in the 2-way SMS receipt queue instead of the normal inbound message queue. 2009-08-14: * Multimedia Content Push: WML format is used by default. HTML format is only used if the receiving client does not support WML. * Internal changes (updated debug log information) for 2-way SMS processing in the SMS-IN directory. * GSM Modem Handler: Improved compatibility with SonyEricsson USB modems (especially MD300). 2009-08-05: * Multimedia Content Push: Fix XHTML generated for multimedia content push. Update install to include missing CSS file for XHTML version of multimedia content push. * SMS Gateway: Modem handling - Change "Default" and "Direct to Modem" handling to prefer SIM message storage. 2009-07-29: * Fix for 2009 changes to multimedia WAP push causing problems displaying content that includes Unicode text. 2009-07-23: * SMS Gateway: When NowSMS generates a non-delivery receipt because an upstream SMSC connection has rejected a message, the non-delivery receipt was not being logged. It is now logged to the SMSIN log file. * SMS Gateway: Add configuration option to suppress the creation of ".ERR" files when an SMSC connection rejects a message. To suppress these files, edit SMSGW.INI, and under the [SMSGW] header, add ErrorQRetainDays=0. 2009-07-21: * MMSC: Fix for AccountingKeepAlive=No and RoutingKeepAlive=No settings not working for MMS accounting and routing callbacks. Use of these settings would cause a handle leak and after a period of time, the MMSC would no longer be able to accept or initiate connections. 2009-07-09: * SMPP Async Mode: Fix for a bug where if the SMSC unexpectedly dropped the connection, a message could get stuck in the queue until the NowSMS service is restarted. 2009-07-07: * SMS Gateway: Add configuration option to allocate more threads for managing SMSOUT accounting callbacks in SMPP Async mode environments. This may be necessary when using accounting callbacks over higher speed connections. To allocate additional threads, edit SMSGW.INI, and under the [SMSGW] header add AsyncCallbackThreads=##, where ## is the number of additional threads to allocate per async SMPP connection. * SMS Gateway: Don't create counter based Q (e.g., "###0001") subdirectories unless the outbound queue exceeds the directory size threshold (10,000). Similar logic applied to subdirectory creation for received messages in the SMS-IN queue. 2009-07-04: * SMS Gateway: Update SMSOUT record when sending via GSM modem to include the modem phone number in a "Sender=" parameter. * SMS Gateway: Fix for "###0001" Q subdirectories being created even if the "Separate User Queues" setting was disabled. (Note: For most installations it is NOT recommeded to disable the "Separate User Queues" setting.) * MMSC: Add configuration setting to disable the automatic routing of delivery receipts and read receipts back over the same connection that the original message was received from. To disable this automatic routing, edit MMSC.INI, and under the [MMSC] header, add AutoRouteReceipts=No. 2009-06-30: * SMPP: Add configuration settings to force certain message types to use a particular DCS (data_coding) value on a per SMPP connection basis. DCS override values can be defined for all 7-bit text, binary and/or Unicode messages. For example, 0x0F is often the preferred DCS value for USSD text messages, and 0x48 is the preferred DCS for USSD unicode messages. When an override is applied, all messages of the specified type (text, binary or Unicode) will have their DCS value converted to the override value. To apply this setting for all messages routed to a specific SMSC, edit SMSGW.INI, and under the SMSC specific section (e.g., [SMPP - server:port]), add TextDCS=##, BinaryDCS=## or UnicodeDCS=## as appropriate, where ## is the DCS value in hex, e.g., TextDCS=F or UnicodeDCS=48. * SMS Gateway/Modem Handling: Change the default receive polling interval to 10 seconds when "Direct to Modem" is the "SMS Message Storage" type. The polling interval is set to 2 seconds for other "SMS Message Storage" types (in previous versions, it was always 1 second). To change the default add ReceivePoll=##, where ## is the number of seconds, under the appropriate [Modem - driver name] section header of SMSGW.INI. Modem polling logic also optimised to be less resource intensive on the modem. If this change causes problems receiving messages with older phone modem implementations that worked with previous version of NowSMS, add OldPollingLogic=Yes under the appropriate [Modem - driver name] section header of SMSGW.INI. * SMS Gateway/SMPP Server: Fix for problem (1 in 10,000 chance) that segmented messages received from an SMPP client may not be tracked properly and could be sent via different outbound SMSC connections. * MMSC: Add configuration option to suppress the generation of delivery reports when MMS messages are received from an "MMSC VASP" account and routed to the "MMS-IN" directory. To suppress these delivery reports from being generated, edit MMSC.INI and under the [MMSC] header add SuppressMMSInDeliveryReport=Yes. * MMSC: Add configuration option to force the MMS Routing callback (MMSRoutingURL) to always be checked, even for numbers that are in the "MMSC Users" list. This ensures that in mobile number portability environments, any numbers that have been ported out to another carrier will be checked, even if the user was previously provisioned on the MMSC. To enable this option, set ForceRoutingCallback=Yes under the [MMSC] header of MMSC.INI. 2009-06-11: * SMS Gateway/SMPP Server: When configuring the "SMSC Character Set" for the SMPP server, previous versions of NowSMS would use the specified character set for delivering SMS messages to connected SMPP clients, however NowSMS would expect the default character set used by SMPP clients to be the GSM character set. Beginning with this release, this value will be used as the default character set when receiving messages submitted by SMPP clients. * MMSC: Fix for 100% CPU utilisation problem that could occur with a message that contained particular invalid file names. * SMPP: Add support for setting the "Intermediate Notification" bit when requesting SMPP delivery receipts. This setting is available on a per-connection basis. Under the [SMPP - server:port] section header, add IntermediateNotification=Yes to enable this setting. When this setting is enabled, the "intermediate notification" bit will be set in the registered_delivery flag any time a delivery receipt is requested. (If a delivery receipt is not requested, this bit will not be set.) * MMSC/MM4: Some MM4 interconnects do not understand SMTP "quoted-printable" encoding. NowSMS uses "quoted-printable" encoding to preserve compatibility with 7-bit SMTP relays when SMIL content does not include line breaks. If an MM4 interconnect does not support "quoted-printable" encoding, the result can be missing images in received messages. To address this compatiblity issue, NowSMS will now automatically insert line breaks in SMIL content if MM4QuotedPrintableOK=No under the [MMSC] header of MMSC.INI. 2009-06-08: * SMS Gateway/GSM Modem: Improved recovery from "hung" modems. * SMS Gateway: Treat reserved value DCS (data_coding) SMS messages as text format. NowSMS was erroneously trying to decode it as a Unicode. (This happened for a customer who was was receiving USSD messages via SMPP with data_coding = 0x0F.) 2009-05-28: * HTTP SMSC: Add support for parsing text from the HTTP response to determine whether or not an HTTP SMSC message submission was successful. One or more "success" responses can be defined by editing the SMSGW.INI file, and under the appropriate [HTTP - server:port] header, adding Success=somestring. If somestring is present in the response, the submission will be considered successful, otherwise it will be considered a failure. To specify more than one "success" response, add Success1=somestring on a separate line. * GSM Modem Handler/Multitech CDMA Modem: When a Multitech CDMA modem is detected, automatically activate the ModemSendWorkaround=Yes option to work-around bugs in the modem's implementation of the AT+CMGS command. 2009-05-26: * SMS Gateway: When "ReRouteReceived=xxxxx" is used for an SMSC connection, the resulting queued messages were not properly flagged as segmented messages, which could cause problems if the messages were to be re-routed to an SMPP or HTTP connection where long messages are automatically reassembled (such as WDP Adaptation SMPP connections). * GSM Modem: Fix for problems processing received messages from modems that only support "text mode". (Such as the Multitech CDMA modem.) 2009-05-21: * SMS Gateway/SMPP Client: Fix for restart errors that could occur on systems with large message queues and multiple SMSC connections with more complex routing restrictions. 2009-05-08: * SMS Gateway: Fix for bug in 2009 RC versions where unresolvable delivery receipts could trigger exception errors. 2009-05-07: * Receiving MMS via GPRS Modem: Work-around for a problem where all messages received via Orange UK started to report a sender address of "1". A bug in Orange UK's MMSC seems to be generating MMS notifications where the sender address always indicates "1". If a sender address is present in both the MMS notification and the MMS message, previous versions of NowSMS would give preference to the sender address in the MMS notification. NowSMS will now give preference to the sender address in the actual MMS message. * UCP/EMI: Fix for bug where presence of "BillingInfo" parameter in an outbound message would cause exception errors. * 2-Way: When using "Command returns response text", the recipient number of the received SMS was not being properly applied as the sender in the response. 2009-04-09: * Multiple server installation: Reworked the MessageIDPrefix= logic to resolve some issues related to unique message generation on a multiple server installation with a shared message queue. Note that for multipart messages, the MessageIDPrefix will now be added after the "SAR-" filename prefix instead of before it (e.g., SAR-prefix999999-1-1-1.req). 2009-04-03: * SMS Gateway: Add support for receiving SMS messages from an SMSC via HTTP, so that they will be routed via the 2-way command processor. To submit a received SMS message to the 2-way command processor, add "&InboundMessage=Yes" to a standard NowSMS URL request. The same URL format that is used to submit outbound SMS messages to NowSMS is used to deliver SMS messages to the 2-way command processor, except that "&InboundMessage=Yes" is included in the URL request to signal that the message is to be treated as a received message. (Alternatively, include "&LocalUser=XXXXX" to route a message to a local "SMS Users" account for delivery via SMPP.) Note that if "SMS Users" accounts are enabled, it is necessary to include an "&User=xxxx&Password=yyyy" parameter to authenticate as an "SMS Users" account, even though the messages are to be processed as received messages instead of outbound message submissions. To prevent the possibility of a received message being routed for outbound delivery, we recommend creating a separate "SMS Users" account for this type of message delivery. Check "Enable Credit Balance" for the account, and leave the credit balance at 0. This will allow the account to deliver received SMS messages (i.e., "&InboundMessage=Yes"), but will disallow any attempts to submit a message for outbound delivery. * SMS Gateway 2-way Callbacks: Keep-alive sockets for 2-way commands, introduced in the 2008-11-05 update would sometimes send URL requests to the wrong server if there are 2-way commands with URL requests pointing to multiple servers. 2009-03-31: * MMSC: Content Adaptation now assumes "text/plain" is always a supported MIME type within an MMS message. The UAProf files for the Motorola RAZR V8 and ROKR Z6 do not include "text/plain" as one of the supported content types of the MMS client, causing text parts to be removed from MMS messages, unless the cached UAPROF file is physically edited to add this content type or content adaptation is disabled in the MMSC settings. 2009-03-20: * SMS Gateway Logs and Accounting Callbacks: Long text messages, Unicode text messages, and other text messages with EMS or port addressing headers are no longer reported as binary messages. They are now reported as text messages with the text included in the log and callbacks with UTF-8 encoding. * SMS Gateway Configuration UI: Fix for an exception error in the configuration user interface that would occur in the display of received SMS messages with text or binary data longer than 500 characters. 2009-03-17: * SMPP: For message receipts received from SMPP connections, the SMSIN accounting callback now includes both the NowSMS Message ID and the upstream Message ID assigned by the SMSC. The NowSMS Message ID is in the "SMSCReceiptMsgId=", and the upstream Message ID is in the "SMSCReceiptMsgIdOrig=" parameter. http://www.nowsms.com/discus/messages/1/24902.html * SMPP: In SMPP environments, generic 8 bit-binary messages can be encoded with a data_coding value of either 2 or 4. NowSMS always uses a data_coding value of 4 (and converts 2 to 4, as they mean the same thing in the SMPP specification), because 4 is a valid data_coding value for a binary message sent over the air in a GSM environment, while 2 is not a valid value for an actual over the air message. To address an issue for a service provider that will only accept binary messages with a data_coding value of 2, there is a new configuration setting to remap the data_coding value from 4 to 2 for SMPP connections. To apply this setting for messages being submitted to a particular SMSC, edit SMSGW.INI, and under the SMSC specific section (e.g., [SMPP - server:port]), add BinaryDCS=2. To apply this setting for all SMPP client accounts (e.g., "SMS Users"), add BinaryDCS=2 under a section header of [SMPP] (this section may or may not already exist, if it does not, it should be added). (Note: There is also a BinaryDCS=## setting available under the [SMSGW] section of SMSGW.INI, however this setting has a slightly different purpose. The other BinaryDCS=## setting sets the data_coding value to be used for any WAP Push messages generated by NowSMS. By default it is F5, however some SMSCs require a value of 4 instead.) http://www.nowsms.com/discus/messages/1/24851.html 2009-03-07: * To prevent installation problems, automatically add exceptions for NowSMS to the Windows Firewall. * MMSC/MM7 Version Number/Schema Selection: The configuration screens for MM7 connections have been updated to automatically select the appropriate MMS version number when the MM7 schema is changed, so that the correct version for the selected MM7 schema is selected. 2009-02-16: * MMSC: Update Multimedia WAP Push functionality to also support sending multimedia content via web links with SMS. Default template now auto-senses whether the client should see the content using HTML or WML. Multimedia WAP Push uses the same API as for sending MMS. When using the propietary NowSMS URL interface, include the variable "MMSSMSPush=Yes" to request that the content be sent over SMS, or "MMSWAPPush=Yes" to request that the content be sent using WAP Push. * SMS Gateway: When "ReRouteReceived=xxxxxx" is used for an SMSC connection, accounting callbacks were not called when the received messages was re-routed to another outbound SMSC connection. Normal "PreAuth" and "SMSSend" accounting callbacks are now triggered. http://www.nowsms.com/discus/messages/1/24779.html * OMA Settings: Update e-mail options on web form to support more options including E-mail encryption and authentication types. http://www.nowsms.com/discus/messages/485/24820.html * MMSC: To improve performance, keep-alive sockets are now enabled by default for MMS accounting and routing callbacks. To disable this support, edit MMSC.INI, and under the [MMSC] header, add AccountingKeepAlive=No to disable the use of keep-alive sockets for MMS accounting callbacks and RoutingKeepAlive=No to disable the use of keep-alive sockets for MMS routing callbacks. 2009-01-26: * SMS Accounting Callbacks: Add "&ReceiptRequested=Yes" parameter if the message is requesting a delivery receipt. http://www.nowsms.com/discus/messages/1/24721.html 2009-01-12: * Fix for problem with SMS Q Directory being on shared volume (server path) (QDir=\\server\path) * OMA Provisioning Content: Fix problem where literal tags and attribute names were not included in the encoded output. This can cause a problem for provisioning content implementations that extend the OMA Provisioning Content by adding additional XML tag and/or attribute names, such as Microsoft has defined for Windows Mobile provisioning. (Other vendors tend to extend OMA Provisioning Content by using additional attribute values, which was not a problem.) As a result of this change, some OMA Provisioning Content XML documents that worked properly with previous versions of NowSMS might not work properly with this updated version. A problem would only be experienced if the XML document included a typo or misspelling for an XML tag or attribute name. Previous versions of NowSMS would skip the invalid tag or attribute name. This version will encode any unknown tag or attribute names with WBXML literal encoding. For compatibility reasons, it is possible to disable NowSMS from encoding any tag or attribute names not defined in the OMA Provisioning Content specifications by adding OMAProvisioningContentDisableLiterals=Yes under the [SMSGW] header of SMSGw.INI. 2008-12-04: * SMS Gateway: Add support for backup (fail-over) routes for SMSC connections. A backup route is activated only when a primary route is down. To configure a backup route, define the SMSC connection to NowSMS as normal, then manually edit the SMSGW.INI file. Under the SMSC section header (e.g., [Modem - driver name] or [SMPP - server:port]), add BackupForRoute=xxxxxx where xxxxxx is either the name of another SMSC connection or a "RouteName=" setting defined for one or more SMSC connections. If xxxxxx is the name of another SMSC connection, this SMSC connection will only be activated if that other SMSC connection is down. If xxxxxx is a "RouteName=" setting defined for one or more SMSC connections, this SMSC connection will only be activated if all other SMSC connections with this route name are down. * SMS Gateway: EMS/Nokia Smart Messaging - Add support for "&Text=" URL parameter to include text when using the "Send EMS Message"/"Send Picture Message" function to send a picture message in the "Nokia Smart Messaging" format. Parameter is not supported from the web form, only when performing direct URL submission using the "PictureMessageDataText", "PictureMessageDataFile" or "PictureMessageDataURL" parameter. 2008-11-27: * SMS Gateway: Modem driver update to fix some problems where USB and PC card modems can become unresponsive, otherwise requiring a reboot. * 2-way SMS: Internal changes to prevent large numbers of delivery receipts to get in the way of processing other inbound SMS messages. 2008-11-21: * MMSC: Add a way to block all MMS to e-mail recipients so that they are rejected by the MMSC. To do this, define an "MMSC Routing" definition. In the "Route messages to this account for recipient phone number(s)" field, specify "*@*". For the "Route messages to VASP via" setting, specify "Block/Reject Message". If an MMS user tries to send an MMS message to an e-mail recipient, the MMSC will reject the message. 2008-11-13: * Configuration: Fix for bug introduced in recent versions where the "Advanced Settings" for SMPP connections would not always be proprerly saved during the initial SMSC defintion. * E-Mail to SMS: Add support for "\r\n" escape characters in SMTP e-mail interface. See http://www.nowsms.com/discus/messages/1/24513.html * MMSC/MM4: Queue MM4 acks (.RES) separately from other outbound SMTP traffic to prevent delays. (Previously, MM4 acks were in the same queue as other SMTP traffic.) 2008-11-05: * MMSC: Add ability to specify Sender in an outbound MM7 message. To configure this setting, edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, add ChargedParty=Sender. 2008-11-05: * MMSC: Add configuration setting for "MMSC VASP" to allow "Force via Defined Route" to be set to "Direct Delivery". When "Direct Delivery" is selected for this setting, this means that any MMS messages received from this route will be queued for direct delivery with NowSMS as the MMSC, ignoring any other routing considerations. * SMS Gateway: Add ability for SMS accounting callbacks to be used to specify routing information. When the "SMSSend" accounting callback is issued, it is possible for the callback to return SMSCRoute=routename in the HTTP response to specify the route via which the message should be routed. http://www.nowsms.com/discus/messages/1/23919.html. * SMS Gateway: To improve performance, keep-alive sockets are now enabled by default for SMS accounting callbacks. To disable this support, edit SMSGW.INI, and under the [SMSGW] header, add AccountingKeepAlive=No. * SMS Gateway: To improve performance, keep-alive sockets are now enabled by default for 2-way SMS callbacks. To disable this support, edit SMSGW.INI, and under the [SMSGW] header, add 2WayKeepAlive=No. See http://www.nowsms.com/discus/messages/1/24486.html * SMS Gateway: For licenses of 10 messages per second or higher, default to a higher setting for 2WaySMSThreadCount=##, so that more 2-way command processing threads are allocated by default, allowing multiple 2-way commands to be processed simultaneously. * E-Mail to SMS: Allow e-mail format of sms.phonenumber@domain.com for a customer requirement. * SMS Gateway: For for server restart after midnight due to delivery receipt tracking bug introduced in 2008.08.22. * MMSC: Fix for high CPU utilisation problem that could occur when upgrading from older MMSC versions, especially if MM4 interconnects are defined. * SMS Gateway: Add support for specifying that SMS messages with particular SMPP "service_type" values should be routed via specific SMSC connections. In the "Preferred SMSC Connection for" list, it is possible to specify service_type values, in addition to recipeint address masks. To specify that messages with the service_type value of "bulk" should be routed via a connection, add "service_type=bulk" to the "Preferred SMSC Connection for" list. To specify that messages with a service_type of "bulk" should be blocked from routing via the connection, add "!service_type=bulk" the "Preferred SMSC Connection for" list. If one or more "service_type=" entries is defined on a "Preferred SMSC Connection for" list, then only messages that match a listed service type value will be routed via this connection. Recipient masks can also be included in the list, however when a service type value is also defined, only messages that match a listed service type value and a recipient address mask, will be routed via this connection. (Note: It is also possible to specify a "service_type" value when submitting messages via HTTP by including "&ServiceType=xxxxxx" in the URL parameter.) Similarly, it is possible to include "service_type=xxxx" in the "Recipient address(es) to route to this user" attribute of an "SMS Users" account to force messages addressed to a particular service_type to be queued for delivery to an SMPP client. See http://www.nowsms.com/discus/messages/1/24460.html. * MMSC Routing: Fix for a strange problem on Windows Vista and Windows Server 2008, where under certain conditions the user interface would make changes to the configuration of an "MMSC Routing" definition, but these changes would not be seen by the back-end MMSC service. This could happen because of an administrative rights issue. When the NowSMS configuration program is launched after installation, it is usually running with administrative rights, because administrative rights are required by the installation program, and these rights are inherited by the configuration program when it is launched at the end of the installation. Other times, the NowSMS configuration program is launched without requiring administrative rights, except for installing or starting/stopping services. If an "MMSC Routing" definition is initially defined by the configuration program running with administrative rights, settings for this "MMSC Routing" definition can only be modified if the configuration program is running with administative rights. This fix resolves the problem for new "MMSC Routing" definitions, however it does not resolve the problem for existing installations. If a problem is suspected in an existing installation, try to launch the NowSMS configuration program with a "right-click" and "Run as Administrator" to see if different settings are shown for the "MMSC Routing". If different settings are found, the only resolution for an existing installation is to delete ProgramData\NowSMS\VASPOUT\VASP.INI and recreate the "MMSC Routing", preferably with the configuration program not running with administrative rights. * SMS Gateway: Performance optimisations for routing logic that evaluates "Preferred SMSC Connection for" recipient address masks. * SMS Gateway: Add support for specifying blocked recipient address masks for individual SMSC connections. In the "Preferred SMSC Connection for" list, it is possible to specify recipeint address masks that should not be routed via this connection, in addition to recipient address masks that should be routed via this connection. To specify a recipient address mask that should be blocked from using this connection, prefix the address mask with "!". For example, if +447* and !+447700* are in the "Preferred SMSC Connection for" list, +447123456789 would be routed via this connection, but +447700123456 would not be routed via this connection. * Work-around for problem occurring on some systems where the NowSMS trial period only lasts for a single day. A popular virus scanner product is blocking part of the install program, so that the trial period counter is not properly initialised. * SMS Gateway: Delete any stray *.LCK files that remain in the Q directory (shouldn't happen unless Q files are manipulated by a separate program external to NowSMS). Make the time period that *.ERR files remain in the Q directory configurable, with the default being 3 days. To change this time period, edit SMSGW.INI, and under the [SMSGW] header, add ErrorQRetainDays=##. * SMS Gateway: Update SQLITE.DLL used for maintaining SMPP delivery receipt tracking databases, and limit the amount of memory used to cache the databases so that NowSMS does not take up an excessive amount of memory on extremely busy servers. * SMS Gateway: Faster routing of delivery receipts back to the submitting user account as an interim internal routing step is now bypassed. * SMS Gateway: Add configuration option to allow selected "SMPPOptions" settings to be automatically copied when generating a reply via the 2-way SMS command facility. Under the [SMSGW] header of SMSGW.INI, the 2WayReplyCopySMPPOptions=xxxx,yyyy setting can be used to specify a list of "SMPPOptions" TLV paramters that should be copied from the received message to the reply message generated by the 2-way command. Any options specified in this list must be included in the [SMPPOptions] section of SMSGW.INI. See http://www.nowsms.com/discus/messages/1/24487.html * SMS Gateway/CIMD: Fix for 6 to 7 second delays in-between message submissions when messages are received over the same connection. * SMS Gateway/SMPP Server: Fix for a bug where when NowSMS is acting as an SMPP server, if NowSMS tries to deliver an SMS message to a connected client, but the client does not acknowledge the message, and the client continues to send enquire_link packets, NowSMS will not attempt to deliver any other messages to the client. See http://www.nowsms.com/discus/messages/1/24483.html. * SMS Gateway: Experimental - Add configuration option to allow the "SMSCRoute=" paramter to be used by SMPP client connections (e.g.,"SMS Users" connected to NowSMS via SMPP). Under an [SMPP] section header of SMSGw.INI, it is possible to add SMSCRouteTLV=####, where #### is the tag number (in hexadecimal). When NowSMS routes a message to an SMPP client, this TLV parameter will contain the route information for the SMSC route from which the message was received (either the SMSC Host Name and port, or the RouteName= parameter configured in SMSGw.INI for the SMSC). Similarly, the SMPP client can specify this parameter when submitting a message to request a specific outbound route for routing the message. See http://www.nowsms.com/discus/messages/1/24485.html. 2008-10-23: * SMS Gateway/GSM Modem: Add additional modem test for proper implementation of the command that is used for sending SMS messages. Some modems return OK responses to commands that they do not understand, NowSMS now performs further checks to make sure that the modem actually understands all required commands. Previously NowSMS would return OK responses for some Blackberry devices, even though the devices did not implement the command correctly. Also, some of the virtual COM ports defined by the Sierra Wireless 3G devices exhibit this same behaviour. This check helps ensure that NowSMS is not configured to use a modem port that does not provide the required support. The new error message is "Modem does not properly support command for sending SMS (AT+CMGS)". * SMS Gateway/GSM Modem: When using NowSMS with some modems, such as Sierra Wireless devices with the "Watcher" software enabled, other software that ships with the modem will process received messages before the messages are presented to NowSMS. NowSMS now polls the modem for both read and unread messages so that all messages will be processed. To disable this behaviour for a particular modem, edit SMSGW.INI, and under the [Modem - Driver Name] section header, add ProcessReadMessages=No. * SMS Gateway/GSM Modem: The "SMS Message Storage" = "Default" receive SMS message handler has been updated to support a mix of polling and direct delivery. This is done primarily to resolve problems with new installations where NowSMS could not receive any messages from the modem until "SMS Message Storage" was set to the "Direct to Modem" setting. If upgrading from a previous version, and a problem is experienced with receiving SMS messages, change "SMS Message Storage" to the "Device Memory" setting for the "Default" setting to work as in previous versions. 2008-10-22: * MMSC: Add support for outbound message throttling limits for sending messages via external "MMSC Routing" connections (e.g., MM7, MM4, MM1, EAIF). These limits can be defined by manually editing the VASPOUT\accountname\VASP.INI file, and under the [VASP] header, adding SendLimit=x/y where "x" is the number of messages that can be sent over a "y" second interval. If "y" is omitted, a value of "1" is assumed. For example, SendLimit=3 limits the connection to a speed of 3 messages per second. SendLimit=1/2 limits the connection to a speed of 1 message every 2 seconds. 2008-10-17: * SMS Gateway/SMPP: Fix for potential "exception error" introduced in 2008 version, that could, under limited circumstances, when the debug log is active, trigger a NowSMS service restart when an SMPP connection teriminates unexpectedly. 2008-10-16: * SMS Gateway/SMPP Server: Fix for a problem where if multiple receiver (or transceiver) binds existed for the same "SMS Users" account, duplicate messages could be delivered to the client. * MMSC/MM4: Increase maximum supported length for X-Mms-Transaction-ID header from 99 to 249 characters. A customer connecting to France Telecom Open Transit MMS Interconnect was encountering extremely long transaction ids. * SMS Gateway: Fix for situation where NowSMS would establish only a "receiver bind", even though "Receive SMS Messages" was not checked for the connection. This would happen if 1.) "Support any outbound message traffic" is NOT checked. 2.) The "Preferred SMSC Connection for" list is empty. 3.) Under "Advanced Settings", "Send and Receive Messages over the same connection" is NOT checked. It should happen only if these three conditions are met, and the "Receive SMS Messages" setting is also checked. For more information see http://blog.nowsms.com/2008/07/smpp-connection-types-sender-receiver.html and http://www.nowsms.com/discus/messages/1/24451.html. 2008-10-13: * MMSC: Internal changes to migrate the VASPQ directory structure to use multiple subdirectories to better facilitate larger message queues and higher volumes of MMS message routing to external MMSC connections. This capability is only enabled by default on 5 messages per second or higher licenses. To enable or disable, edit MMSC.INI, and under the [MMSC] section header, add EnableBulkVASPQ=Yes (or No). 2008-10-09: * 2-way SMS: Enhance mailto: command support for e-mail to SMS in the 2-way command facility by supporting additional parameters including cc, subject and body. For example, mailto:nowsms@nowsms.com?cc=nowsms@nowsms.net&subject=Received%20SMS%20Message&body=@@FULLSMS@@. See http://www.nowsms.com/discus/messages/1/24428.html. 2008-10-07: * PAP/PPG interface: Add support for "?SMSCRoute=routname" parameter in PAP URL to specify explicit SMSC routing information. See http://www.nowsms.com/discus/messages/1/24429.html. 2008-10-01: * MMSC/MM7: Remove trailing "-" characters from MIME boundary separator in MM7 postings, as this appears to be causing a problem with a particular mobile operator MMSC. * UCP/EMI: Add configuration option to specify UCP/EMI error codes that should be considered a permanent error, so that NowSMS will not retry submitting the message. To specify error codes that should be considered as a permanent error, edit SMSGW.INI, and under the [SMSGW] header, add "UCPRejectErrorCodes=x,y,z". This value can contain a comma delimited list of UCP/EMI error codes. Values should be specified in decimal, e.g., "UCPRejectErrorCodes=21,23,24,25". If you are unsure what error code value your provider is returning for particular error situations, check the error codes listed in the NowSMS SMSOUT-yyyymmdd.LOG file. Alternatively, it is also possible to specify "UCPRejectErrorCodes=All", which indicates that all error codes should be considered a permanent error, so that NowSMS will not retry submitting the message. * CIMD: Add configuration option to specify CIMD error codes that should be considered a permanent error, so that NowSMS will not retry submitting the message. To specify error codes that should be considered as a permanent error, edit SMSGW.INI, and under the [SMSGW] header, add "CIMDRejectErrorCodes=x,y,z". This value can contain a comma delimited list of CIMD error codes. Values should be specified in decimal, e.g., "CIMDRejectErrorCodes=300,301,302". If you are unsure what error code value your provider is returning for particular error situations, check the error codes listed in the NowSMS SMSOUT-yyyymmdd.LOG file. Alternatively, it is also possible to specify "CIMDRejectErrorCodes=All", which indicates that all error codes should be considered a permanent error, so that NowSMS will not retry submitting the message. * SMPP: (This configuration option has existed since prior to NowSMS 2006, except for the SMPPRejectErrorCodes=All option which was added in this release.) Add configuration option to specify SMPP error codes that should be considered a permanent error (NowSMS will not retry the message). By default, NowSMS treats the following SMPP error codes as a permanent error: A (ESME_RINVSRCADR - invalid source address), B (ESME_RINVDSTADR - invalid destination address), 66 (ESME_RX_R_APPN - ESME Receiver Reject Message). To add additional error codes that should be considered as a permanent error, edit SMSGW.INI, and under the [SMSGW] header, add "SMPPRejectErrorCodes=x,y,z". This value can contain a comma delimited list of SMPP error codes. Values should be specified in hex, with no leading zeroes, e.g., "SMPPRejectErrorCodes=A,B,66". Alternatively, it is also possible to specify "SMPPRejectErrorCodes=All", which indicates that all error codes, except ESME_RTHROTTLED and ESME_RMSGQFUL should be considered a permanent error, so that NowSMS will not retry submitting the message. If you want to also treat ESME_RTHROTTLED and ESME_RMSGQFUL, it is also possible to include their error codes (58 for ESME_RTHROTTLED and 14 for ESME_RMSGQFUL) in this setting, e.g., "SMPPRejectErrorCodes=All,58,14". 2008-09-16: * MMSC/MM4: MM4 Acknowledgment responses were returning the header "X-Mms-Request-Status-Code: OK". This has been changed to "X-Mms-Request-Status-Code: Ok" (mixed case "Ok") in order to be consistent with the relevant specification, and to address a real world interoperability issue at a customer site. 2008-09-09: * SMPP Client: Work-around for delivery receipt processing with an operator SMSC which was returning delivery receipts using the same data_coding value as the original message to which the receipt corresponds, even though the receipt data did not match the coding. (For example, send a unicode message, the data_coding value of the receipt would indicate Unicode, but the actual text of the receipt was a mix of standard text with limited Unicode.) NowSMS now performs additional analysis to allow these receipts to reformat these receipts for correct interpretation. * SMPP Client: Acknowledge unbind request if received from SMSC, and gracefully terminate connection. * UCP/EMI Client: Enable translation of delivery receipt reports from UCP/EMI to SMPP format by default, so that applications can request delivery receipts in these environments. If this support needs to be disabled, edit SMSGW.INI, and under the [SMSGW] header, add TrackUCPReceipts=No. * CIMD Client: Enable translation of delivery receipt reports from CIMD2 to SMPP format by default, so that applications can request delivery receipts in these environments. If this support needs to be disabled, edit SMSGW.INI, and under the [SMSGW] header, add TrackCIMDReceipts=No. 2008-08-26: * MMSC/MM4: When receiving delivery report (MM4_Delivery_report.REQ) or read reply report (MM4_Read_Reply_report.REQ) transactions over MM4, when an acknowledgment is requested (X-Mms-Ack-Request: Yes), NowSMS would not send the corresponding acknowledgment response (MM4_Delivery_report.RES or MM4_Read_Reply_report.RES) unless a "Sender:" header is present to indicate where the acknowledgment response should be sent. This is all according to the 3GPP TS 23.140 specification, which specifies that "the 'Sender:' header is the system address, to which the corresponding response will be sent." However, in the real world, some MMSCs fail to set the "Sender:" header. This was observed recently with a customer connection to Telenity MMSC. In cases where the "Sender:" header is not present for a delivery report or read reply report where an acknowledgment is requested, NowSMS will now use the SMTP envelope "MAIL FROM:" header as an alternative. * MMSC: For SMTP E-mail to MMS routing, all text components are now converted to UTF-8 to prevent character set rendering problems. 2008-08-22: * SMPP: Improve performance of SMPP receipt tracking, which improves sending throughput over SMPP connections when delivery receipts are requested. * GSM Modem handler update: Recent versions of the Multitech CDMA Modem have a bug in the implementation of the AT+CMGS command, if you experience the error "Error waiting for response from modem (1)", try editing SMSGW.INI, and under the [Modem - driver name] section header, try adding ModemSendWorkaround=Yes. This setting does not apply to the error "Error waiting for response from modem (2)" which is a different type of timeout error condition, from which this update may better recover on problematic modems. 2008-07-25 (only SMSSMPP.DLL updated for this release, version information still says 2008-06-24): * SMPP: Work-around for strange SMPP SMSC behaviour with long text messages. This particular SMSC expected "Encode long text messages with 7-bit packed encoding" to be UNchecked when a text message is submitted with the default data coding (DCS) value. However, if the data coding specified a message class value, the SMSC would corrupt the message unless "Encode long text messages with 7-bit packed encoding" was checked. (With that setting checked, messages using the default encoding would be corrupt.) As a work-around, if dealing with this situation, edit SMSGW.INI, and under the [SMPP - host:port] section of the file, add GSMPackLongSMSWithMessageClass=Yes. 2008-06-24: * MMSC: Possible fix for site that periodically experienced MMSC-yyyymmdd.LOG files with only a single entry. 2008-06-20: * MMSC: MMSRoutingURL callbacks for delivery notifications and read receipts did not always have the "From" field present in the callback. * MMSC/MM4: For delivery notifications routed via an MM4 connection, the MMSRoutingURL callback was being called multiple times. It is now only called once. * MMSC/MM4: The message-id returned in delivery receipts and read receipts was not always properly converted to the local message-id before delivery, which could cause problems matching the receipts with the original message. * MMSC: Versions prior to NowSMS 2006 logged when new user accounts were provisioned automatically to a file named USERDEF.LOG. This logging stopped when the new user database format was introduced in NowSMS 2006. The USERDEF.LOG file has been reenabled. 2008-06-03: * Add configuration parameters to simplify support for running NowSMS in redundant load-balanced environments where all configuration information and transient messages are stored on a shared network server. To run NowSMS in this configuration, create a SHAREDVOLUME.INI in the NowSMS program directory. Under a header of [SharedVolume], the following settings are supported: SharedVolume=\\server\path\ The "SharedVolume" setting specifies a shared directory location under which NowSMS should look for all configuration files and store transient messages. MessageIDPrefix=xxx Specifies a prefix that should be added to all SMS message IDs generated by NowSMS. This ensures that the message IDs that NowSMS generates are unique across a multi-server installation. (Note: For installations that do not use SHAREDVOLUME.INI, it is also possible to specify this setting under the [SMSGW] header of SMSGW.INI.) LogDirectory=d:\path\ Specifies a directory under which NowSMS should generate all log files other than debug logs. If not specified, this defaults to the NowSMS program directory.(Note: For installations that do not use SHAREDVOLUME.INI, it is also possible to specify this setting under the [SMSGW] header of SMSGW.INI.) DebugLogDirectory=d:\path\ Specifies a directory under which NowSMS should generate any debug log files. If not specified, this defaults to the NowSMS program directory.(Note: For installations that do not use SHAREDVOLUME.INI, it is also possible to specify this setting under the [SMSGW] header of SMSGW.INI.) 2008-05-27: * Fix for trial version not working on some Windows Vista systems, reporting immediately after installation that the trial period had expired. 2008-05-22: * MMSC: When messages are routed to the MMS-IN directory via a routing definition in an "MMSC VASP" account, include an X-NowMMS-Received-From-VASP: header to record the routing information. 2008-05-21: * SMS Gateway/SMPP: When async mode is NOT enabled, allow messages to continue to be received without delay, even when throttling conditions exist. 2008-05-15: * MMSC/MM4: Fix for MM4 acknowledgment responses being rejected if the default outbound route for the MMSC is "Block/Reject Message". Users of previous versions who experience this problem can work-around it by applying the following settings: Go to the "MMSC Routing" page. Add a new route ... for the "Account Name" specify "system-user". For "Route messages to this account for recipient phone number", specify "system-user". For "Route messages to VASP via", specify "Direct Delivery (internal MMSC)". This will allow the MM4 ack messages to be processed correctly. * SMS Gateway/SMPP: Fix timing issue for enquire link command which caused timing of the sending of the enquire link to occur as many as 10 seconds later than configured. * SMS Gateway/MMSC: Add configuration parameter to allow debug log files to be stored in a directory other than the NowSMS program directory. Edit SMSGw.INI, and under the [SMSGW] header, add DebugLogDirectory=d:\path\ (Note: Previously this setting was available only in MMSC.INI for the MMSCDEBUG.LOG. That setting is still available, but if it is not set in MMSC.INI, the MMSCDEBUG.LOG will be stored in the directory pointed to by the setting in SMSGW.INI.) * SMS Gateway/SMPP Client: Add configuration parameter to allow the "users" directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients. Under the [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS "users" directory. When this parameter is set, the "SMS Users" database files (SMSUSERS.D2A and SMSUSERS.D2I) will also be located in this directory (by default, when this parameter is not set, these files are in the NowSMS program directory). * MMSC: Add configuration parameter to allow the "MMSCUsers" directory and user database to be moved to another location other than beneath the NowSMS program directory. This directory contains statistical information regarding MMSC user transactions. Under [MMSC] header in MMSC.INI, use MMSCUsersDir=d:\path\ or MMSCUsersDir=\\Server\Volume\path\ to specify the location of the "MMSCUsers" directory and user database. When this parameter is set, the "MMSC Users" database file (MMSCUSERS.DB) will also be located in this directory (by default, when this parameter is not set, this file is in the NowSMS program directory). 2008-05-07: * GSM Modem handling - Various fixes to improve compatibility with recent Nokia phone GSM modem implementations, and bugs in Nokia's implementation of the AT+CMGS command that is used to send SMS messages. This fixes an issue that caused NowSMS to repeatedly send the same SMS message and report "Error waiting for response from modem (2)", until the retry counter was exceeded. 2008-05-05: * SMPP - Improved handling of throttling errors when SMPP async mode is enabled. 2008-04-21: * SMPP - Fix for a problem where recent versions have not properly passed the "Bind TON" or "Bind NPI" parameter in SMPP connection tests from the configuration dialog. 2008-04-16: * CIMD: Add preliminary support for delivery receipts in CIMD environments. To enable this support, edit SMSGW.INI, and under the [SMSGW] header, add TrackCIMDReceipts=Yes. NowSMS will convert these delivery receipts into SMPP format. Experimental setting. Please enable SMSDEBUG.LOG for troubleshooting. (Enabling SMSDEBUG.LOG will also enable CIMDDEBUG.LOG) 2008-04-10: * SMS Gateway: The SMSGW.INI SMSCSendLimit=x/y setting, which can limit the speed at which messages are sent via a specific SMSC connection, does not function well at speeds higher than 50 messages per second. The setting has been reworked to support throttling at higher speeds. * MM7/EAIF: Keep-alive connections are now enabled by default when connecting to "MMSC Routing" definitions using the MM7 or EAIF protocols. "Keep-alive" support is automatically disabled if the service provider indicates that keep-alive is not supported (e.g., HTTP/1.0 protocol or "Connection: close" header). However, if this support causes problems for a particular MMSC connection, keep-alive support can be disabled for a specific "MMSC Routing" by editing the VASPOUT\routename\VASP.INI file, and adding UseKeepAlive=No under the [VASP] header. By default, if there are no further messages to transmit over the connection, NowSMS will keep the connection open for approximately 90 seconds waiting for additional messages to transmit before closing the connection. To change this timeout, edit VASPOUT\routename\VASP.INI, and add KeepAliveTimeout=### to specify the number of seconds for which the keep-alive connection should be kept open. * MM4: When routing messages via MM4, NowSMS will now keep the SMTP connection active after transmitting a message, allowing multiple messages to be transmitted over the same connection. This "Keep-Alive" support can be disabled for a specific "MMSC Routing" by editing the VASPOUT\routename\VASP.INI file, and adding UseKeepAlive=No under the [VASP] header. By default, if there are no further messages to transmit over the connection, NowSMS will keep the connection open for approximately 90 seconds waiting for additional messages to transmit before closing the connection. To change this timeout, edit VASPOUT\routename\VASP.INI, and add KeepAliveTimeout=### to specify the number of seconds for which the SMTP connection should be kept open. * SMPP: Additional logic added to detect SMPP connections that have been abruptly terminated by the service provider, so that NowSMS does not try to send any additional data once NowSMS has received a signal that the connection has been terminated. * MMSC Routing: NowSMS now logs information about all MMS message delivery attempts for messages being routed via an "MMSC Routing" definition in the MMSC-yyyymmdd.LOG file, so that information about transmission retries and failures can be found in the logs. * MMSC Routing: Connectivity error conditions for external "MMSC Routing" definitions is now displayed along with the SMSC connectivity error conditions on the "Service" page of the NowSMS configuration dialog. Additionally, the XML Status Query includes information regarding the connectivity status of these MMSC Routes, and the number of messages transmitted in a new "MMSCRouteStatus" section of the XML document. * MMSC VASP Message Routing: The previous setting to allow received messages from a particular "MMSC VASP" account to be routed to a specific external MM7 "MMSC Routing" has been enhanced to support forced routings for all messages from a particular VASP to be routed via any specific MM7, MM4, MM1 or EAIF "MMSC Routing" definition. * SMS/SMPP Receipt Message ID Tracking: Allow database files that are used for tracking SMPP receipt message IDs to be stored in a directory other than the default SMPPDATA directory. Under the [SMSGW] header of SMSGW.INI, it is possible to specify MessageIDTrackingDir=d:\path or MessageIDTrackingDir=\\server\volume\path 2008-03-23: * MMSC/MM1 over GPRS Modem: Fix for encoding problem when transmitting UTF-8 subjects over an MM1 connection. 2008-03-22: * SMS Gateway/2-way: @@SMSCROUTE@@ parameter was not properly supported for 2-way commands. This replaceable parameter should contain the inbound route from which the SMS message was received. * SMS Gateway/2-way: New configuration parameter added for [SMSGW] section of SMSGW.INI. 2WayReplySameServer=Yes specifies that replies from all 2-way commands should be routed back via the same SMSC connection as which the original message was received. 2008-03-14: * SMS Gateway/SMPP: If SMPP connection has been terminated unexpectedly by the provider, do not attempt to send an unbind request before terminating our side of the connection. (Shouldn't be necessary, but may be required for acceptance testing by some operators.) * SMS Gateway/SMPP: If SMPP connection has been terminated unexpectedly by the provider, use retry logic before attempting to re-establish the connection. (Previously, retry logic would only be applied only after an unsuccessful connection attempt, meaning that the retry attempt after an unexpectedly terminated connection was immediate.) 2008-03-05: * SMS Gateway/SMPP: When NowSMS is bound to a service provider via SMPP with separate sender and receiver connections, if the SMPP connection fails, the retry logic for re-establishing the receiver connection is different from that of the sender connection. This causes problems, primarily for testing environments connecting to a SMPP server simulator, where the simulator won't send delivery receipts if a receiver connection is not bound simultaneously with the sender connection. 2008-02-22: * SMS Gateway: Update for NowSMS web interface and SMPP server to address potential security issues/denial of service attacks. * Add XML-based Status interface to report information similar to that reported on the "Status" page, including information about SMSC connection status, number of messages processed and number of messages pending in the queues. The XML-based status interface can be accessed on the web port of the SMS gateway using a URL of "/ADMIN/XMLSTATUS". To enable access to this interface, "Enable Web Account Administration" must be enabled on the "Web" tab of the NowSMS administrative interface. The Admin User Name and Password can either be sent in an HTTP "Authorization:" header, or using "&User=username&Password=password" in the URL request. The format of the XML data will be documented in a future release, but should be self-explanatory to advanced users. 2008-02-14: * SMS Gateway: Update and performance enhancements for statistic counter logic. "SMS Submitted" count previously was not recording message counts properly if NowSMS was configured to accept messages without user accounts enabled. * SMS Gateway: For performances reasons, the "Outbound SMS Queue Size" statistic can now be optionally cached by the service so that it can be displayed without requiring a manual directory scan. This setting may improve performance on systems with large numbers of queued messages. To enable this setting, edit SMSGW.INI, and under the [SMSGW] header, add CacheQSize=Yes. * SMS Gateway: Message ID assignments for multipart messages (e.g., SAR-xxxxx-x-x-x) have changed slightly to provide uniqueness. 2008-01-30: * SMS Gateway/SMPP Receipt Message ID Resolving: Fix for problem properly resolving SMSC message IDs for some configurations where the SMSC returns a decimal version of the message ID in the text of the receipt message. 2008-01-28: * SMS Gateway: Performance optimisations to improve async SMPP throughput for configurations of 200 messages per second and higher. 2008-01-17: * OMA Settings: Send XML Settings and Push Access Protocoal (PAP) interface updated to support DRM 2.1 Roap Trigger documents. Note: There is a bug in the WBXML encoding as specified in the currently published DRM 2.1 Candidate specification. The specifications defines a WBXML encoding for "http://www.w3.org/2001/XMLSchema", which should instead be "http://www.w3.org/2001/XMLSchema-instance". The OMA has agreed that this bug will be fixed for the final release of the DRM 2.1 specification (Change Request OMA-DRM-2007-0568), and the NowSMS implementation includes support for this fix. Also note that the current DRM 2.1 specification is still a candidate release, and there are numerous encoding errors in the WBMXL example in the specification, so this is definitely a work-in-progress implementation that will be updated as the final specification is released. * MM7: The element value Personal was not being included in MM7 submissions, with NowSMS assuming that Personal was the default value for this element, when the actual schema default is Informational. If this causes a problem, edit VASPOUT\vaspAccountName\VASP.INI, and under the [VASP] header, add MessageClass=None to omit the element. Or specify MessageClass=xxxxxxxx to specify xxxxxxxx (xxxxxxxx should be either Personal, Advertisement, Informational or Auto). * MM7: Early MM7 schemas did not support the "+" character in a phone number. When one of these early schema versions is used, NowSMS automatically removes the "+" character if present. * SMS Gateway: When "Separate outbound message queues for each user" is enabled, NowSMS will utilise additional Q subdirectories when large volumes of messages are submitted, to prevent Windows performance problems with too many message files in a single directory. 2007-11-29: * MMS over MM1 (operator MMSC with GPRS modem): Revisit old problem from 2006-08-11 - Fix for "HeaderUserAgent" and "HeaderProfile" MMSC.INI settings having problems if these included longer strings. This would result in the WSP Connect PDU being formed invalid when retrieving MMS messages (sending was ok), and prevent MMS messages from being received. Previous fix did not work with all longer strings. 2007-11-19: * MMSC: Add configuration parameter that allows for recipient address conversions based upon the prefix of the recipient phone number. This conversion is applied after the MMSC adds a country code to any recipient phone numbers. To add any conversions, edit MMSC.INI, and under the [MMSC] header, add MSISDNRecipientPrefixConvert=+1234:+2345,00:+,0:+44 If the MMSC encounters a recipient address that starts with "+1234", it will replace this part of the recipient address with "+2345" (e.g., +123456789 becomes +234556789). 2007-11-15: * SMPP: Performance optimisations for high speed transceiver connections (or connections that return delivery receipts over the sender connection, such as the Logica SMPP simulator) when sending and receiving over the same connection. * SMPP: Performance optimisations for delivery receipt message id tracking/conversion. * MM7: Additional configuration parameters available for customising XML name space parameters in the MM7 output. This is to deal with connections to quirky MMSCs that expect particular prefixes to be used for XML name spaces. The following settings can be defined under the [VASP] header of VASP\accountname\VASP.INI: NSSoapEnvelope=soapenv This setting specifies the name space prefix to be used for the "http://schemas.xmlsoap.org/soap/envelope/" name space, the default being env. NSXMLSchema=xsd This setting specifies the name space prefix to be used for the "http://www.w3.org/2001/XMLSchema" name space, the default being blank. When blank, this name space is NOT referenced in the XML envelope. NSXMLSchemaInstance=xsi This setting specifies the name space prefix to be used for the "http://www.w3.org/2001/XMLSchema-instance" name space, the default being blank. When blank, this name space is NOT referenced in the XML envelope. NSMM7TransactionID=ns1 This setting specifies the name space prefix to be used for the MM7 schema name space for the TransactionID element in the SOAP envelope only, the default being blank. The following example provides further explanation. This is an example default MM7 SOAP envelope header generated by NowSMS: 20071102120921-A4D2CC3B@bigkahuna This is an exampe MM7 SOAP envelope header generated by NowSMS when the following settings are defined in VASP.INI: [VASP] NSSoapEnvelope=soapenv NSXMLSchema=xsd NSXMLSchemaInstance=xsi NSMM7TransactionID=ns1 20071102120643-A1231342@bigkahuna NOTE: The MM7 schema version is configurable on a per connection basis, the default being REL-5-MM7-1-2. 2007-10-23: * SMPP Server: User interface for setting "Max connections per client" was not updating the SMSGW.INI file correctly. SMPPServerMaxConnectionsPerUser=## needs to be under the [SMSGW] header of SMSGW.INI, but the user interface setting was placing this value under the [SMPP] header of SMSGW.INI. 2007-10-03: * 2-way SMS: Add additional replacement parameter avaialble for 2-way commands when messages are received via a GSM modem. The @@RECEIVEDSMSC@@ parameter will contain the SMSC address from which the SMS message was received. This value is ONLY available for messages received via a GSM modem, it will be blank for all other SMSC interfaces. 2007-10-02: * When making HTTP requests via an HTTP proxy server, include a "Host:" header. Previously, the "Host:" header was only included when not using an HTTP proxy. (The old approach was valid for HTTP/1.0, but not valid for HTTP/1.1.) This logic only applies to HTTP SMSC connections via an HTTP Proxy, and to User Agent Profile (UAProf) retrieval via an HTTP Proxy. MMS retrieval over MM1 via an HTTP proxy already included all required headers. 2007-09-13 * SMS Gateway/SMPP Client: Add configuration parameter to allow the "users" directory to be moved to another location other than beneath the NowSMS program directory. This directory contains queues of received messages waiting for SMPP or POP3 clients. (Under [SMSGW] header in SMSGW.INI, use UsersDir=d:\path\ or UsersDir=\\Server\Volume\path\ to specify the location of the SMS "users" directory.) 2007-09-06 * SMTP: Add support for sending e-mail to SMS or MMS using distribution lists when SMTP AUTH is not used for authentication. Previously NowSMS required that an SMTP client "login" to NowSMS as an "SMS User" account in order to access a distribution list. Now, users that authenticate to NowSMS via the "Authorised E-Mail to SMS/MMS Senders" list or via the trusted IP address list (SMTPIPAddressList) can also send to distribution lists. Note, however, that there are two types of distribution lists supported by NowSMS. If "Require Authentication for web interface" is checked on the "Web" page of the NowSMS configuration, this means that users are prompted to login when they access the NowSMS web interface. In this situation, each user has their own set of user-specific distribution lists, and e-mail to SMS or MMS using this distribution list is only possible if SMTP AUTH is performed during the SMTP connection, using the same NowSMS user account. If "Require Authentication for web interface" is NOT checked, then all distribution lists are global and are not user specific. User-specific distribution lists are stored in the DLISTS\username subdirectory of NowSMS. Non-user specific distribution lists are stored directly in the DLISTS directory. 2007-08-28 * MMSC/MM1: Add support for CC/BCC recipients when routing messages to an operator MMSC via MM1. Previously all recipients would be listed as "To" recipients in the message header. Note that it is not possible to specify CC or BCC recipients when submitting via the NowSMS web interface, but it is possible to specify CC or BCC recipients when using MM7 or EAIF. Also note that for special requirements it is possible to force all recipients for an MM1 connection to be specified as BCC by editing VASPOUT\accountname\VASP.INI, and adding ForceBCC=Yes under the [VASP] header. 2007-08-15 * MMSC: Performance enhancements for bulk MMS message submissions being routed to external MMSC connections. Please note the following configuration settings related to bulk MMS. a.) When a message is sent to more than 1000 recipients, NowSMS will automatically break the message into separate message instances for each group of 1000 recipients. As many MMSC connections will not accept bulk MMS submissions to this many recipients in a single instance, this allows NowSMS to simultaneously process the different recipient groups over separate outbound MMSC connections for better performance. To change this setting, edit MMSC.INI, and under the [MMSC] header, specify MaxRecipsPerMMS=##### to set the number of recipients allowed per single MMS message instance. (Note: The "Max Connections" setting for MM7 and EAIF MMSC connections specifies how many simultaneous connections can be allowed between NowSMS and any one specific external MMSC.) b.) When a message is routed to an external MMSC connection, NowSMS will automatically break messages sent to multiple recipients into separate message instances for grouped recipients. The number of recipients per message instance is variable based upon the MMSC connection type. For MM1 connections, the value is 5 recipients per message instance. For EAIF connections, the value is 10 recipients per message instance. For MM7 connections, the value is 100 recipients per message instance. To modify this setting, it is necessary to manually edit the VASPOUT\accountname\VASP.INI file associated with the "MMSC Routing" definition. Under the [VASP] header, add MaxRecips=#### to specfy the number of recipients allowed per single MMS message instance. An additional performance note related to bulk MMS: When a NowSMS installation is used primarily for routing bulk MMS messages to external MMSC connections, it is recommended that the "MMSC Users" account list be left empty for maximum performance. (Otherwise, NowSMS performs a user account lookup for each MMS message recipient, which can diminish performance.) * MMSC: Update to fix upgrade problems for some customers where the "MMSC Users" list is empty after upgrading to NowSMS 2007. 2007-07-23 * MM7 - Add preliminary support for Digest Authentication when initiating MM7 connections to an external MMSC. No configuration is required. If a username/password is defined, NowSMS will initially attempt a connection with Basic Authentication, switching to Digest Authentication if requested by the MMSC. * SMS to E-mail - Add template setting to allow some minor changes to the standard SMS to e-mail format (From /Subject /Message Text) used by NowSMS. To change the SMS to e-mail format, edit MMSC.INI, and add an SMSEMailTemplate= setting to define a template for the SMS to e-mail format. The following replacement variables are supported in the template: @@FromAddress@@ (e-mail address of sender), @@FromName@@ (full name of sender), @@Subject@@ (subject of message), @@Text@@ (text of message). The default template is SMSEMailTemplate=@@FromAddress@@ /@@Subject@@ /@@Text@@ 2007-07-20: * SMS Gateway - Fix problem where HTTP "&Sender=" parameter did not support alphanumeric sender values. (Problem was introduced when source/destination port support was added for appending ":port" to a sender or recipient phone number. 2007-06-28: * SMPP - Fix for a problem where recent versions have not properly passed the "Address Range" parameter in SMPP connection tests from the configuration dialog. 2007-06-27: * MMSC: No longer use quoted-printable encoding for MM7 message encoding. In some situations, previous versions of NowSMS would use quoted-printable encoding, particularly for some SMIL message parts when the SMIL did not contain any line breaks. This was because the same MIME message encoder was used for both MM7 and MM4/SMTP encoding, and MM4/SMTP has encoding restrictions based upon legacy SMTP restrictions that are not a consideration for MM7. (If this change causes a problem in a particular environment, edit MMSC.INI, and under the [MMSC] header, add MM7QuotedPrintableOK=Yes) * SMS Gateway/MMS/Multimedia WAP Push Submission: Fix for an error that could cause the SMS service to restart if an "MMSFILE" parameter contained a filename that included a "%" character. * SMS Gateway: Improved handling of PIN codes. NowSMS had problems initialising some modems when a PIN code is active. * SMS Gateway: Add configuration display to show connected SMPP clients on "Service" (Status) page of configuration dialog. * SMS Gateway: Add additional features to the web administration interface, such as the "Server Statistics" display and log file viewing. * SMS Gateway: Additional configuration options added for HTTP SMSCs. By default, when sending a long text message (or any message that includes UDH), NowSMS will encode the text as 7-bit binary. Some HTTP SMSCs do not like this behaviour, so NowSMS now includes an option "Use 7-bit binary encoding for long text messages" that controls whether NowSMS will send the text in 7-bit binary encoding, or as standard text. Similarly, by default, when sending a Unicode message, NowSMS will enocde the text as binary hex. Some HTTP SMSCs do not like this behaviour, so NowSMS now includes an option "Use hex encoding for Unicode messages" that controls whether NowSMS will use binary hex encoding or standard text. An additional configuration setting allows the character set to be specified (NowSMS defaults to "UTF-8"). * SMS Gateway/SMPP: Add a special configuration setting for customers connecting to Movistar Peru. This provider requires that each SMPP message submission include an incrementing user_message_reference value. To enable this behaviour, edit SMSGW.INI, and add GenerateUserMessageReference=Yes under the [SMPP - server:port] section header for the SMPP connection in the SMSGW.INI. 2007-05-26: * SMS Gateway: Add new URL parameter for delayed message delivery. This allows messages to be submitted and queued for later processing. To use this feature, including the URL parameter "&DelayUntil=YYYYMMDDHHMM" to specify the date and time until which the message should be delayed, where YYYY is the year, MM is the month, DD is the day, HH is the hour (in 24 hour format), and MM is the minutes. The "Send Text Message" web interface page has also been updated to support this parameter. The parameter is supported for other types of SMS message submissions via direct URL submission. * MM7 Message ID Tracking implemented, similar to the existing tracking of SMPP Message IDs. When a message is submitted to an upstream MMSC, that MMSC will assign a new Message ID. NowSMS now tracks the upstream Message ID assignments, so that if it receives a delivery receipt or read receipt from the upstream connection, it can remap the Message ID to the one originally assigned by NowSMS. NowSMS also tracks when messages were submitted by an "MMSC VASP" account, so that any delivery receipts or read receipts are routed back to that same account (actually they will be routed to an "MMSC Routing" account with the same name as the "MMSC VASP"). Improvements have also been implemented to allow delivery receipts and read receipts received via an MM1/GSM/GPRS modem connection to be routed back to a VASP. This means that an MM7 application could submit a message that is sent via MM1 over GPRS, and then receive back MM7 delivery reports and read reports, if supported by the mobile operator network. * MMSC: Add base support for MMS 1.3 with support for application routing for MMS messages, using either the MMS 1.3 application-id headers, or the content-type extensions for application-id as defined in JSR-205. The MMSC now supports the "X-Mms-Applic-Id" and "X-Mms-Reply-Applic-Id" headers which are used for specifying recipient (destination) and sender (source) application-IDs, allowing MMS messages to be routed directly to a phone-based application. (Note for MM7 applications, you must use the REL-6-MM7-1-4 or later MM7 schema to receive application ID headers.) When sending an MMS message via the NowSMS web interface, it is possible to specify a sender and/or recipient application ID by including the application ID as part of a phone number using the format "PhoneNumber:xxxxxxxxxx", where "xxxxxxxxx" is the application ID. This ability to specify the application ID as part of a phone number is available only for messages submitted via the NowSMS web interface or using the proprietary URL submission format, it is NOT available for submissions using MM1, EAIF, MM4 or MM7. Other protocols must use the appropriate headers defined for the protocol. When MM7 and MM4 applications submit a message with application id headers, the MMSC will encode these values using both the MMS 1.3 application-id headers and the JSR-205 content-type extensions. * Web Interface/Send MMS Message: Add an "Additional Headers" field to allow more flexibility in generating MMS messages for testing. Text versions of any of the MMS PDU headers for versions 1.0 thru 1.3 can be included in the "Additional Headers" field to supplement or replace the default headers generated by NowSMS when sending an MMS Message. For example, add the following to set the MMS Version to 1.3 and to set a replacement message id value: X-Mms-MMS-Version: 1.3 X-Mms-Replace-ID: 20070524/12/ABCDEF01@mmsc * Web Interface/Send MMS Notification: Add an "Additional Headers" field to allow more flexibility in generating MMS notification messages for testing. Text versions of any of the MMS PDU headers for MMS versions 1.0 thru 1.3 can be included in the "Additional Headers" field to supplement or replace the default headers generated by NowSMS when sending an MMS notification. For example, add the following to set the MMS version to 1.3 and the recipient application ID to "TestApplication": X-Mms-MMS-Version: 1.3 X-Mms-Applic-ID: TestApplication This interface can also be used to send MMS PDU types other than m-notification-ind. If "X-Mms-Message-Type:" is included in the "Additional Headers", then it is possible to leave the "MMS URL" field empty. This allows other types of MMS PDUs to be sent, including "m-delivery-ind", "m-read-rec-ind", and "m-cancel-req". * MMSC/MM4: Remove "X-Mms-Originator-System:" header from "MM4_delivery_report.REQ" and "MM4_read_reply_report.REQ", as this header is not explicitly defined for those requests. The "Sender:" header should contain the orignator system address for these requests. Previously NowSMS did set the originator system address in both the "Sender:" and "X-Mms-Originator-System:" headers. Now it will only set the "Sender:" header, and "X-Mms-Orignator-System:" is only used for "MM4_forward.REQ". * MMSC: Add configuration option for setting the "MMS Version" associated with different user accounts. This setting is automatically tracked and updated by the MMSC, and under normal circumstances, it is not necessary to change this setting. By default, when a user account is first registered with the MMSC, the MMSC assumes that the user is compatible with MMS 1.0 (unless DefaultMMSVersion=x.x is set under the [MMSC] header of MMSC.INI to indicate a different default MMS version assumption). Each time a user sends a message via the MMSC, the MMSC checks the MMS version of the message and will automatically change the "MMS Version" associated with the user account to match the version number indicated in the message submission. The setting to allow the "MMS Version" associated with the user account to be changed is provided as a testing aid only. * SMS Gateway: Fix for invalid message that was generated if "Send EMS Text Message" was used, but the message was text only and contained no EMS attributes. 2007-05-14: * DRM: When sending an object with DRM restrictions, add a configuration option to specify whether the "DRM Rights Format" is "Binary WBXML" or "Text XML". Newer Nokia phones seem to only support the "Text XML" format for DRM "Combined Delivery". ("Binary WBXML" is supported for "Separate Delivery" on the affected Nokia phones, which is only possible using DRMCOMP, but not for "Combined Delivery".) DRMCOMP updated to add support for "-textXML" command line parameter to specify that the "DRM Rights Format" should be "Text XML" instead of the default "Binary WBXML". * SMS Gateway/WAP Push: Add new HTML template for "Send WAP Push Message Advanced". This template allows greater flexibility for sending custom WAP push messages by supporting custom content types, as well as the ability to insert custom headers. The "Content-Type" field should contain the content type of the push content. The "Content" field should contain the content of the push. The content can either be encoded as plain text, or for binary content types the content can be represented as a string of hexadecimal characters. The "Content Encoding" field specifies whether the content is plain text or a string of hexadecimal characters. If you are sending one of the content types supported by "Send XML Settings", but wish to include extra headers, it is also possible for NowSMS to perform XML to WBXML conversion for any of the XML content types supported by "Send XML Settings". If you wish to have NowSMS perform XML to WBXML conversion, select this conversion option for "Content Encoding". The "X-WAP-Application-ID:" field can contain a numeric identifier or text string to indicate a destination application id. The "Additional Headers" field can contain a list of additional headers to be included in the WAP Push WSP header. Each header should be on a separate line, with a format of Header-Name: Header-Value. "OTA PIN" and "OTA PIN Type" can also be optionally specified to allow the push message to be signed. * SMS Gateway: "Send Text Message" template updated to include a "Destination Port" setting, which can be used when sending text messages to a port number corresponding to a Java application on a phone. To specify a port number when submitting a text message via URL submission, include the parameter "&DestPort=####", where #### is the destination port number value. Additional, URL submission has added support for "&SourcePort=####" to specify the source port. Alternatively, it is possible to include the port number as part of a sender or recipient phone number using the format "PhoneNumber:####". Please note that if a message is addressed to multiple recipients, it is not possible to specify differnet destination port numbers for different recipients. * OTA: Old-style Nokia/SonyEricsson OTA templates updated to allow support for WAP2/HTTP port settings. Also, for some SonyEricsson phones (circa 2004 models), to configure an internet profile without a proxy, it is necessary to send a "WAP OTA" with the "WAP Gateway IP Address" field left blank, and the "WAP Gateway Connection Type" set to port "80". * MMSC Routing/MM1 over GPRS: Add configuration setting to specify the MMS/MM1 Version to use when communicating with the MMSC. 2007-05-09: * MMSC: Add support for generating MMS non-delivery notifications when a message expires without being delivered/retrieved by the recipient. To enable this, edit MMSC.INI, and under the [MMSC] header, add NonDeliveryNotificationTimeout=####, where #### is the number of minutes after which to consider a message as being expired. * MMSC: Add support for additional MMSC.INI setting, under [MMSC] header - SMTPExtraHeader=xxxx allows an extra header to be added to MMS messages that are routed to an e-mail address. (For example, "SMTPExtraHeader=X-Mms: True") 2007-05-03: * SMPP Receipt Tracking: Performance enhancements in tracking SMPP message IDs for proper routing of delivery receipts. The message IDs are now tracked in a more efficient database, offering improved performance (especially for 10mps and higher licenses) and decreased disk space utilisation. * MMSC: Performance enhancements for mid-size (100,000+ users) and large (1,000,000+ users) operator MMSC configurations. Also, performance improvements for the MMSUSER command line utility. * SMS Gateway: HTTP interface now supports "&LocalUser=" parameter. If this parameter is specified, the message submitted via HTTP is routed to a local "SMS Users" account instead of for outbound routing. All other HTTP parameters (except "MMSFILE" for sending MMS) are supported. * SMS Gateway: Increase size limit for XML settings documents. Previous binary size limit of 2KB increased to 16KB. * MMSC: Additional configuration parameter added to force all submitted MMS messages to be automatically BCC'd to an additional recipient. Usually this recipient would be a special short code routed to a VASP or to an e-mail address, where another application is processing the messages for archival, tracking, and/or regulatory requirements. To add an automatic BCC recipient, edit MMSC.INI, and under the [MMSC] header, add AutoBCC=xxxxxxxxxxxx, where xxxxxxxxxxxx is the address that should be added as an additional BCC recipient. 2007-04-12: * MMSC/MM4: When routing messages via MM4, if there are multiple recipients, NowSMS prefers to submit them one at a time over MM4, as this offers better error handling when dealing with inconsistencies in different MM4 implementations. Some MMSCs do not like the fact that multiple submissions may have the same message ID (as they are the same message, just different recipients), so the MM4 message id is now altered to be unique per recipient instance. * SMPP Client Configuration: Update edit control in configuration program to allow longer username and password strings. 2007-04-11: * MMSC/MM4: Because of problems with some MMSCs refusing to accept the "/" character in MMS message-id and transaction-id values for MM4 connections, NowSMS has changed its message id format for MM4 connections to replace the "/" character with a "." character. The previously added MessageIDPatch=Yes parameter is no longer necessary. * Receiving MMS over GPRS modem: If NowSMS is configured to route received SMS messages for a modem to a local SMPP user account, and it is also configured to process received MMS messages for that modem, it will no longer route MMS notifications (or any other WAP Push messages) to the local SMPP user account, so that the MMS notifications can be processed to allow retrieval of the MMS message content. * SMS Gateway: More functions adapted to support sending WAP Push content to IP addresses. "IPNotify" mappings can be defined in MMSC.INI to route virtual phone numbers to IP addresses. Previously this functionality only supported MMS messages, however it has been extended to support other WAP Push content types including "Service Indication", "Service Load", and "OMA OTA", and "XML Settings Documents". In the MMSC.INI file, it is possible to create an [IPNotify] section. Under this section header, specify PhoneNumber=IP.Address (e.g., +9999999=192.168.1.200), to have MMS notifications and WAP push messages for the specified phone number get routed to the specified IP address. (This feature is intended primarily for testing environments.) * MM1 over GPRS modem: Fix for timeout problems when sending larger MMS messages (approx > 200KB). Note that many mobile operators have limits on the size of MMS message that they will accept. * SMPP: Add support for another type of "SMPPOptions" setting when defining optional "TLV" parameters. The "HexString" type is used when it is necessary to define a binary value for a parameter. The SMPPOptions parameter value is specified as a string of hex characters. NowSMS converts the hex characters to binary for insertion into the SMPP request. This support is necessary for unusual data types, such as the source_subaddress and dest_subaddress parameters. 2007-03-15: * MMS/PHP Script (HTTP Multipart Upload): Convert all text components to UTF-8 character set for consistency. (Most handsets send text in UTF-8 format, but some use 16-bit Unicode.) http://www.nowsms.com/discus/messages/485/18694.html * SMPP Server: Implement a maximum number of SMPP connections allowed from a single client user account. The default limit is 4 connections. This default can be changed via the updated user interface, or by editing SMSGW.INI, and under the [SMSGW] header, adding SMPPServerMaxConnectionsPerUser=##, where ## is the default number of connections to allow from any one SMPP client account. It is also possible to override this connection limit on a per-account basis. To override the limit for a specific client account, it is necessary to define a limit for the speed at which messages will be received from the account. In the "# Messages/# Seconds" field, enter a value of xxx/yyy/zzz, where "xxx" is the number of messages allowed per "yyy" seconds, and "zzz" is the connection limit to be applied for this account. To disable message speed limits, but define a connection limit, use a value of 0/0/zzz, which indicates no limits, but specifies "zzz" as the connection limit for this account. * SMPP Server: Add configuration option for using TLV parameters for port numbers and segmentation when delivering messages to an SMPP client. This configuration option can be set via the "SMPP Options" button on the "Web" page of the NowSMS configuration dialog. 2007-03-09: * GSM Modem Handler: Fix for inability to initialise some modems when running as a service, and the modem is inserted or activated after the service starts. (Problem noticed with internal GRPS/EDGE modems in some Sony laptops, where NowSMS would consistently fail to find the modem if the service starts at boot-up, presumably because the software to install the modem does not complete until after the NowSMS service has already initialised.) If modem initialisation problems are experienced in this version, edit SMSGW.INI, and under [SMSGW], add UseGlobalTAPI=Yes to go back to the old modem handler. * SMPP: Fix for 2006-10-13 change that caused NowSMS to improperly assume that some received messages were binary instead of text. (In one notable situation, this only affected return receipts for binary messages. Invalid text characters in the return receipt triggered the logic that treated the message as binary.) * MMSC: Undo 2006-11-16 change to use keep-alive sockets for accounting callbacks. Keep-alive sockets for accounting callbacks are still supported, but are not enabled by default. To enable, set AccountingKeepAlive=Yes under the [SMSGW] header of SMSGW.INI. When keep-alive sockets are enabled, NowSMS will serialise access to the SMS and MMS accounting callbacks, which may cause delays on some systems. * MMSC: Fix logging so that "read report" messages are distinguished from "delivery report" messages. Also, update the logging so that the "read report" messages report the correct format of the message id to which the report refers (previously the host name was included in the message id reported in the log, whereas it is not included in other log entries). 2007-03-07: * MMSC: Recipient address conversion/internationalisation - Improve support for MMSC installations supporting clients from more than one country code. Different countries may have different conventions for local phone numbers. Some use a local dialing prefix such as "0", "8" or "9", while others do not use a local dialing prefix. NowSMS uses the country code of the sender, and the "MSISDNHeaderLocalPrefix" setting, to convert MMS recipient phone numbers from national to international format. However, different countries may use different local dialing prefixes. NowSMS now allows the local prefix to be configured on a per country code basis, supporting MSISDNHeaderLocalPrefix configuration settings per country code. For example, "MSISDNHeaderLocalPrefix370=8" indicates that "8" is the local dialing prefix for country code "+370". "MSISDNHeaderLocalPrefix44=0" indicates that "0" is the local dialing prefix for country code "+44". "MSISDNHeaderLocalPrefix371=" indicates that there is no local dialing prefix for country code "+371". 2007-03-06: * MMSC/MM4: Add configuration parameter to avoid the use of the "/" character in MMS message-id and transaction-id values for MM4 connections. The "/" character is a valid character for these parameter values, however a customer has encountered an MM4 partner that could not support the "/" character for these values. To avoid the use of the "/" character in these parameter values, it is necessary to edit VASPOUT/accountname/VASP.INI (where "accountname" is the name of the "MMSC Routing" entry defined in NowSMS), and under the [VASP] header, add MessageIDPatch=Yes. * SMS Gateway: Extension for sender based routing. When NowSMS routes an SMS message, it first looks to see if a sender address has been specified for the message submission (via HTTP this would be specified with the optional "&Sender=" parameter). If a sender address was specified, NowSMS checks to see if the sender address matches the "Default Sender Address" that is configured for any of the SMSC links (or "the "Phone Number" associated with GSM modem links). If NowSMS finds a match, then it will route the message only via an SMSC connection with a matching sender address. This update adds support for multiple sender addresses to be associated with a single SMSC connection for sender-based routing. To configure this, multiple sender addresses can be specified in the "Default Sender Address" field, separated by a comma (example: 1111,1112,1113). NowSMS will still use the first entry as the "Default Sender Address" for messages that are sent via the connection that do not have a sender address. However, other listed sender addresses can be used to facilitate sender based routing. If "Allow Sender Address Override" is not checked, and multiple phone numbers are specified in the "Default Sender Address" field, NowSMS will check the sender address to see if it matches one of the values listed in the "Default Sender Address" field. If it does not, the sender address will automatically be switched to the first sender address in the list. 2007-02-27: * SMS Gateway: Performance optimisations for handling of large bulk submissions via the web interface, affecting when a message is submitted to more than 10,000 recipients. (To disable, add EnableBulkQ=No under the [SMSGW] section of SMSGW.INI.) * SMPP: When a message is received with optional TLV parameters for port addressing or segmentation, NowSMS would not properly understand the data_coding=3 parameter for indicating that the text was encoded using ISO-8859-1. Instead, NowSMS would assume GSM text encoding. * SMS Gateway: See http://www.nowsms.com/discus/messages/1/20068.html (fix relating to user account specific HTML templates). 2007-02-21: (Note: Only MMSC.EXE and MMSCDLL.DLL are updated in this patch. Other modules still report 2007-02-14.) * MM4: Fixes for delivery report and read report routing over MM4 connections. * MM4: Fix for MM4 acknowledgments not being routed with appropriate authentication credentials when SMTP authentication is configured for an MM4 connection. * MM4: Add support for non-delivery notifications when X-Mms-Ack-Request: Yes is enabled (AckRequest=Yes in VASPOUT\vaspname\VASP.INI), and the message is rejected. 2007-02-14: * GSM Modem handling updates to improve "Direct to Modem" message receiving performance. Two different "Direct to Modem" options are now available in the configuration. The standard "Direct to Modem" option configures the modem to route received SMS messages directly over the modem interface without storing them on the modem, where the modem automatically generates receive acknowledgments. The "Direct to Modem - Phase 2+" works just like "Direct to Modem" except that NowSMS generates the receive acknowledgments back to the network to prevent message loss. "Direct to Modem" uses "AT+CSMS=0" and "Direct to Modem - Phase 2+" uses "AT+CSMS=1" (if available, otherwise it falls back to Phase 2/AT+CSMS=0). Some modems that support Phase 2+ can get confused when sending and receiving messages simultaneously, preventing NowSMS from properly generating receive acknowledgments. If you experience problems receiving duplicate copies of messages, or other strangeness, do not use the Phase 2+ setting. 2007-02-13: * SMPP Delivery Receipts: Fix several problems where upstream delivery receipt ids could not be properly translated back to the NowSMS ID (especially non-delivery notifications that occur after 72 hours). * SMPP Performance Optimisations for higher speed connections (especially 200+ mps). * Performance optimisations for web interface when submitting a message to a large number of recipients (especially if multipart text, or Unicode text). * Performance note: When processing large volumes of multipart SMS messages, we recommend disabling automatic short filename (8.3) support in Windows. The naming convention that NowSMS uses for multipart SMS message parts can trigger slow performance in the NTFS file system unless this support is disabled. To disable automatic short filename support in Windows, open a command prompt window and type "fsutil behavior set disable8dot3 1", and then reboot the system for this setting to take effect. To see the current value of this setting, type "fsutil behavior query disable8dot3" in a command prompt window (1 indicates that this feature is disabled). Note that disabling this support could cause problems for either very old applications, or any software applications that expect all files to have a short filename. We recommend setting this option only if NowSMS is the primary application running on a computer. This setting can offer very significant performance benefits if processing large volumes of multipart messages, especially at speeds of 50mps or higher. 2007-02-02: * SMS/GSM Modem Delivery Receipts: If a status report indicates a "temporary error" condition, do not generate any delivery report. http://www.nowsms.com/discus/messages/1/19887.html 2007-01-30: * Windows Vista compatibility updates. Updates to allow NowSMS to be run without administrative rights, and to address various Vista compatibility issues. * SMPP Async Mode: Fix for a bug where if the SMSC unexpectedly dropped the connection, NowSMS would increment the retry counter for all messages that are currently in the otubound message queue. * SMS Gateway: When a delivery (or non-delivery) receipt is requested, and the message is rejected at the SMSC submission level, NowSMS generates a delivery failure receipt. Fix for a problem with this feature where if the submitting user was using HTTP, NowSMS may try to route the delivery failure receipt externally to an SMSC connection instead of routing via 2-way SMS. 2007-01-24: * MMSC/Ericsson MM7: Add support for "Connection type" = "To VASP (deliver format)" for "MMSC Routing" definitions using the Ericsson MM7 format. This will cause the MMSC to use the Ericsson MultiMediaDeliver format instead of the default MultiMediaSubmit format. * SMS Unicode Text Messages: When sending a Unicode message longer than 70 characters, NowSMS would segment messages with 63 Unicode characters per SMS message segment, instead of 67. See http://www.nowsms.com/discus/messages/1/19788.html * SMS Gateway: Add support for configuration where NowSMS can transparently route SMS messages between 2 or more outbind SMPP connections. Configuration allows for SMS messages received via one outbind SMPP connection to be routed out via another outbind SMPP connection. (Outbind SMPP connections are SMPP connections where NowSMS initiates the connection, i.e., SMPP connections defined in the "SMSC" list.) Configuration of this type of setup requires manual editing of the SMSGw.INI file. For an SMPP connection that is receiving SMPP messages, under the [SMPP - host:port] header, add ReRouteReceived=xxxxx, where RouteName=xxxxx is defined under the [SMPP - host:port] header for the SMPP connection through which the received messages should be routed. (Note: To route received messages via any outbound route, specify ReRouteReceived=any.) (Feature previously added 2006-06-23, but was not working as intended until this release.) 2007-01-11: * DRMCOMP: Fix for -limitEndDate command line parameter not working properly. * Windows Vista compatibility without requring the executable to be flagged as requiring Administrative Rights. * SMS Gateway: Fix for a bug where when sending a long text message that includes user data header (such as destination port), NowSMS would not properly encode the text. See http://www.nowsms.com/discus/messages/1/19585.html. 2006-12-11: * MMSC/MM4/SMTP: By default, when receiving MMS messages via SMTP or MM4, the MMSC will only accept content types that are listed in the MMSCTYPE.INI file. Objects of other content types will be skipped. A new MMSC.INI parameter setting will disable the content type check to allow all content types to be transparently accepted: [MMSC] SMTPAllowAllContentTypes=Yes 2006-12-05: * MMSC/MM4: When receiving messages via MM4, the MM4 receiver would not properly encode "Content-ID" headers for individual components of an MMS message. This could cause messages to be received where pictures were present in the message, but would not be displayed by the handset because the pictures were not referenced by the SMIL file. * MM7: Use lower case "true" and "false" instead of "True" and "False" for Boolean values in MM7 XML (such as "ReadReply" and "DeliveryReport" values). The datatypes.dtd for XML defines boolean values as all lower case, but Release 5 editions of the 3GPP MMS specification (TS 23.140) includes examples with the first letter capitalised. 2006-11-16: * MMSC/MM7 Receiver: Updated to support HTTP 1.1 and keep alive connections. To disable support for keep alive connections, edit MMSC.INI, and under the [MMSC] header, add EnableKeepAlive=No. (Note: Disabling keep alive sockets for the MM7 receiver will also disable keep alive sockets for the MM1 receiver that processes MMS client connections.) * Accounting Callbacks: Enable keep-alive socket support for accounting callbacks. NowSMS will now attempt to use keep-alive sockets when processing accounting callbacks (reduces the overhead involved in processing the accounting callbacks), unless they are disabled with the SMSGW.INI setting AccountingKeepAlive=No under the [SMSGW] header. (Note: 2007-03-09 - Default setting changed to "No". Use AccountingKeepAlive=Yes to enable keep-alive sockets for accounting callbacks.) * MMS/MM1 over GPRS: Update for MMSWAP.DLL and "Error connecting to WAP Gateway" that was occurring at a customer site. Customer was able to move the GRPS modem to another PC and it would work properly, but could not get the modem to work properly on a specific server. For some reason, MMSWAP.DLL was unable to detect the IP addresses associated with the new GPRS connection, and could not properly route the IP traffic over the modem connection. This update does a more complete scan which resolved problems for this specific customer. (See http://www.nowsms.com/discus/messages/485/18253.html) 2006-10-30: * 2-way SMS: 2-way SMS "Character Set" setting (ReceiveSMSCharSet) was previously used only by NowSMS for converting the received SMS message into the specified character set. This setting now is also used to specify the character set that is used if the command returns a text response directly to the 2-way command (previously any direct text response from the 2-way command was assumed to be in UTF-8). 2006-10-16: * Receive MMS over MM1/GPRS Modem: Add a timeout value to control how often the modem switches between GPRS and SMS modes for MMS message download. After receiving an MMS notification message, by default, NowSMS will not initiate a GPRS connection to retrieve the MMS message content unless 15 seconds have passed with no more SMS messages received. To modify this timeout, edit SMSGW.INI, and under the [Modem - Driver Name] section header, add MMSModeSwitchTimeout=###, where ### is a value in seconds. * MMSC: Add a new routing option for MMS messages, particularly received MMS messages. When defining an MM7 routing, there is a new non-standard variant defined, called "PHP Multipart File Upload". This setting performs an HTTP File Upload of the MMS message content in a format compatible with the NowSMS Proprietary URL format, and designed to work with PHP scripting. PHP examples will be provided at a future date. * MMSC: Add support for configurations where an MMSC is serving customers in multiple city (or area) codes within a country. Users within a particular city code can send a message to another user in the same city and country code by addressing the message to the local part of the phone number only. This is a common configuration in the United States. To enable this setting, all sender phone numbers must be in international format. This can be done by defining the MSISDNHeaderCountryCode setting (e.g., MSISDNHeaderCountryCode=1 for the US) under the [MMSC] header of MMSC.INI. Also under the [MMSC] header, add LocalNumberMaxLength=# and CityCodeLength=# to indicate the number of digits in a local phone number (e.g., 7 in the US), and city/area code (e.g., 3 in the US) components of a phone number. 2006-10-13: * SMS Gateway - SMPP/GSM Modem Delivery Receipt Tracking: Delivery receipt tracking did not work properly for modem drivers that included a "#" in the modem driver name, for example if multiple instances of the same modem were installed on a PC. Delivery receipts would indicate "unknown" as the message id. * MMSC/MM7: Add support for maintaining To/Cc "display only" recipients when routing to external MM7 connections (standard MM7 and Logica PAP MM7 only). To disable this feature, edit VASPOUT\accountName\VASP.INI, and add SupportCC=No under the [VASP] header. When SupportCC=No is specified, the only recipients listed in the MM7 message header will be recipients of this instance of the message. (It may be necessary to disable this feature if connecting to an MMSC that does not support "display only" recipients.) * MMSC/MM7: The MMS standard for MM7 results in an HTTP POST that includes multiple levels of multipart content. The HTTP POST itself is mutlipart/related, with the first part being the MM7 XML document, and the second part being another multipart object (the SOAP attachment) that contains the MMS content. We have encountered at least one braindead operator MMSC that does not expect the second part of the MM7 request to be a multipart object. Instead, this MMSC expects that the HTTP POST is multipart/related, with the first part being the MM7 XML document, and subsequent parts being the various pieces of MMS content. To enable this "single level multipart" encoding for an MM7 connection, edit VASPOUT\accountName\VASP.INI, and under the [VASP] header, add SingleLevelMultipart=Yes. * MMSC/MM4: Outbound MM4 connections will now include "X-Mms-Ack-Request:" and "X-Mms-Originator-System:" headers. By default, these headers will have the values: "X-Mms-Ack-Request: No" and "X-Mms-Originator-System: system-user@domain.name.for.mms" (where "domain.name.for.mms" is the "Domain Name for MMS E-Mail" as configured on the MMSC page of the configuration dialog). It is possible to change these values with the following settings under the [VASP] header in the VASPOUT\accountName\VASP.INI file for the MM4 connection: RequestAck=Yes and/or MMSOriginatorSystem=user@domain.com. If the user name portion of the "MMSOriginatorSystem" address is a value other than "system-user", you must also configure the MMSC to recognise this user name as a system user account. To register a user name as a system user account, edit MMSC.INI, and under the [MMSC] header, add SystemUser1=user. (To define additional aliases for the system user account add SystemUser2=user, SystemUser3=user, etc.) The "MMSOriginatorSystem" value (or default value "system-user@domain.name.for.mms") will also be applied as the "Sender:" address for all "MM4_delivery_report.REQ", "MM4_read_reply_report.REQ" and "MM4_*.RES" messages. * SMS/CIMD: By default, submit long text and EMS messages as text with UDH, instead of using binary 7-bit encoding of text. To enable the behaviour of earlier versions (binary 7-bit encoding of long text and EMS messages), add LongSMSBinary=Yes under the [CIMD - server:port] section header of SMSGW.INI. 2006-10-04: * SMPP Server: Add configuration option for using iso-8859-1 as the default character set for SMPP clients when NowSMS is used as an SMPP server (previously NowSMS would only deliver messages to an SMPP client using the GSM character set). The NowSMS default behaviour is to use the GSM character set for text messages, and to indicate "default" for the data_coding value. To use iso-8859-1 as the character set instead, edit SMSGW.INI, and under the [SMPP] header, add SMSCCharset=iso-8859-1 ... when this option is set, NowSMS will indicate "iso-8859-1" (1) for the data_coding value. It is also possible to specify SMSCCharset=IA5 ... when this option is set, NowSMS will use the GSM (IA5) character set, but will indicate "IA5" (3) for the data_coding value. * 2-way commandS: @@SMSCROUTE@@ parameter was previously available only to HTTP based commands, now also available to local executable commands. * SMPP: When "Encode text messages with 7-bit encoding" is enabled for an SMPP connection, there is some encoding ambiguity if the length of a message in characters is one less than a multiple of 8 characters (e.g., 7 characters, 15 characters, 23 characters, 31 characters, etc.). This ambiguity may cause some SMSCs to add a "@" character to the end of the message. To prevent the extra "@" character, NowSMS now adds a space character to the end of such messages when 7-bit encoding is used for an SMPP connection. * SMPP: When "Encode text messages with 7-bit encoding" is enabled for an SMPP connection, NowSMS still assumes that text messages received from the SMSC will be encoded with 8-bit encoding, instead of the same packed 7-bit encoding that NowSMS uses to submit. This assumption is illogical, but it is the way that many SMSCs that require 7-bit encoding work. NowSMS will now attempt to auto-determine whether a received message is in 8-bit encoding or packed 7-bit encoding. However, if it is known that the SMSC uses packed 7-bit encoding when delivering messages to NowSMS, edit SMSGW.INI, and under the [SMPP - host:port] section, add GsmPackReceive=Yes (there should also be a GsmPack=Yes entry that is configured when 7-bit packed encoding is enabled for an SMPP SMSC). * MM1 over GPRS: Increase WSP request timeout to approximately 2-1/2 minutes instead of 60 seconds. (This idle timeout is used when retrieving MMS messages from an operator MMSC. A longer timeout seems to be sometimes necessary on Cingular.) * SMPP: Process larger SMPP requests. 2006-09-12: * MMSC: Fix for content adaptation problem (pictures would not display on some handsets) when two NowSMS servers are connected via MM4. 2006-08-29: * SMS Gateway: Additional controls added to keep multipart messages together when submitting to an SMSC to prevent large time delays between transmission of multiple parts of segmented message, particularly for SMPP connections with async mode enabled. 2006-08-24: * OMA OTA: Add support for connection settings without a proxy for newer SonyEricsson and Motorola phones. For most phones, leaving the "Proxy Settings Section" of the OMA OTA web form blank will allow you to define connection settings without a proxy. However, SonyEricsson and Motorola do not support the TO-NAPID parameter for browser or MMS settings. To send connection settings without a proxy to these phones, use (blank), literal text including the parentheses, as the "WAP Proxy IP Address" value, which will enable a work-around for these phones. For Motorola phones, you must set the "WAP Proxy Port & Connection Type" to "Other" and "8080" (other values might also work) ... but for SonyEricsson phones, this setting should be left at its default value. This appears to be necessary because of a bug in these phones, as Section 4.6.11 of the OMA Provisioning Content specification states the following when describing the TO-NAPID parameter: "This parameter MUST be supported by the WAP client, if it is able to communicate without a proxy." Unfortunately, settings generated with the "(blank)" work-around do not appear to work with Nokia (and possibly other) phones, necessitating that different settings must be sent for proxy-less settings depending on phone type. * SMPP Server: Add configuration setting to enable delivery or non-delivery receipts by default for messages submitted by SMPP clients. Under normal circumstances, NowSMS (or an upstream SMSC) will only generate a non-delivery notification if a message delivery fails and the originally submitted message requested either a delivery or non-delivery receipt (registered_delivery flag set to 1 or 2 in SMPP environments). If DefaultNonDelReceipt=Yes is set under the [SMPP] section of SMSGW.INI, then NowSMS will enable the non-delivery notification flag (registered_delivery = 2) by default for all messages received from SMPP clients. (SMPP clients can still set registered_delivery = 1 to request a delivery or non-delivery notification. However, if this flag is set, registered_delivery = 0 will be automatically converted to registered_delivery = 2.) Please note that the [SMPP] section of SMSGW.INI is not created by default, and may need to be created within the SMSGw.INI file. (This section is distinct and different from any [SMPP - server.name:port] section which defines parameters related to an outbound SMPP connection.) If DefaultDelReceipt=Yes is set under the [SMPP] section of SMSGW.INI, then NowSMS will enable the delivery notification flag (registered_delivery = 1) by default for all messages received from SMPP clients. (SMPP clients can still set registered_delivery = 2 to request only non-delivery notification.) * SMS User Account Provisioning via HTTP URL: Add additional parameter support for setting the "Web Menu Options" account attribute. This attribute is set via a new "WebOptions" variable. Valid values for the "WebOptions" variable include "All", "TextOnly", "SMSMMS", "SMSWAPMM", and "SMSMMSWAPMM". 2006-08-15: * SMPP: Fix for encoding error when sending long text messages with "Use WDP Adaptation" enabled. When this setting is enabled, NowSMS will send all long messages for this SMPP connection in a single request instead of multiple segmented messages. However, previously, NowSMS would always submit text messages using the short_message parameter, which is invalid for long messages. The optional TLV message_payload parameter is now used. * Sending MMS from web interface: Fix for a strange problem where an installation was unable to send any MMS messages from the NowSMS web interface. Further investigation revealed that an error in communication was occurring between the SMS gateway and the MMSC ... and pointed to a failure in a particular Windows API call. Logic reworked so that the SMS gateway to MMSC connection does not use this API call, and the problem was resolved for the customer in question. Problem could not be duplicated elsewhere. http://www.nowsms.com/discus/messages/485/16752.html 2006-08-11: * MMS over MM1 (operator MMSC with GPRS modem): Fix for "HeaderUserAgent" and "HeaderProfile" MMSC.INI settings having problems if these included longer strings. This would result in the WSP Connect PDU being formed invalid when retrieving MMS messages (sending was ok), and prevent MMS messages from being received. * MMS over MM1 (operator MMSC with GPRS modem): MMS message retrieval from an operator MMSC now allocates one thread per modem, so that messages can be simultaneously downloaded on systems with multiple modems. Previously, MMS retrieval was only allowed on one modem at a time (although sending over GPRS was multithreaded). * MMS over MM1 (operator MMSC with GPRS modem): If an MMS message is not downloaded in a timely fashion, an operator MMSC will typically retry the notification. Previously, this could cause NowSMS to try to retrieve the same MMS message multiple times (and as many operator MMSCs only allow a single retrieval, attempts past the first would fail and cause excessive retries to be attempted). NowSMS now detects and ignores duplicate MMS notifications. * Routing received MMS messages to a local user account for POP3 retrieval: Fix for a bug where this type of configuration would not work if the "Require AUTH" setting were checked for SMTP on the MMSC. 2006-08-01: * SMPP Server: While SMPP clients are connected, periodically check to see if user account is still valid. If the account is no longer valid (has been deleted), terminate the SMPP connection. 2006-07-31: * Configuration program: In routing options for SMPP, UCP/EMI, CIMD2 and HTTP connections, increase the maximum number of entries in the preferred routing list to 5000. * Receive MMS over MM1/GPRS: Fix for a problem downloading MMS from some operator MMSCs (noticed on Telstra 3G network) caused by improper parsing of WSP option TPI headers. (Updated MMSWAP.DLL) 2006-07-28: * MMSC: For E-mail to MMS and e-mail to SMS configurations, provide a mechanism for outbound messages to be routed via a particular SMSC or MMSC connection. When defining e-mail addresses that are allowed to send SMS or MMS messages in the "Authorised E-Mail to SMS/MMS Senders" list, it is now possible to follow an e-mail address in the list with a phone number to be used as the sender address for any messages submitted by this sender (example: *@nowsms.com,+447777777777 means that any addresses submitted by a nowsms.com e-mail address will be sent out with an SMS sender address of +447777777777). http://www.nowsms.com/discus/messages/1/14481.html (Partial implementation in 2006-04-26 release, however that release only addressed the SMS routing.) 2006-07-27: * CIMD2: Fix for sequence number problems which prevented messages from being delivered properly when multiple CIMD2 server connections are active. * Web Administration: Fix for "Create" user function for "MMSC Users" not working. * Message Waiting/Voice Mail Notifications: Fix for problems on some GSM modems, where voice mail notifications would not be sent unless a text message was included with the notification. 2006-07-25: * SMPP: Add configuration setting to enable non-delivery receipts by default. Under normal circumstances, NowSMS (or an upstream SMSC) will only generate a non-delivery notification if a message delivery fails and the originally submitted message requested either a delivery or non-delivery receipt (registered_delivery flag set to 1 or 2 in SMPP environments). If DefaultNonDelReceipt=Yes is set under the [SMPP] section of SMSGW.INI, then NowSMS will enable the non-delivery notification flag (registered_delivery = 2) by default for all messages received from SMPP clients. (SMPP clients can still set registered_delivery = 1 to request a delivery or non-delivery notification. However, if this flag is set, registered_delivery = 0 will be automatically converted to registered_delivery = 2.) Please note that the [SMPP] section of SMSGW.INI is not created by default, and may need to be created within the SMSGw.INI file. (This section is distinct and different from any [SMPP - server.name:port] section which defines parameters related to an outbound SMPP connection.) 2006-07-13: * MM7 receiver did not properly handle UTF-8 subjects. * OMA OTA: Add support for Proxy IP value to be either a host name or an IP address. A host name is usually only valid when the connection settings are for a WAP2/HTTP proxy. This type of proxy setting may not be supported by all devices that support WAP2/HTTP proxies. * OMA OTA: Add support for connection settings without a proxy for newer SonyEricsson phones. For most phones, leaving the "Proxy Settings Section" of the OMA OTA web form blank will allow you to define connection settings without a proxy. However, SonyEricsson does not support the TO-NAPID parameter for browser or MMS settings. To send connection settings without a proxy to a SonyEricsson phone, use (blank), literal text including the parentheses, as the "WAP Proxy IP Address" value, which will enable a work-around for these phones. This appears to be necessary because of a bug in these phones, as Section 4.6.11 of the OMA Provisioning Content specification states the following when describing the TO-NAPID parameter: "This parameter MUST be supported by the WAP client, if it is able to communicate without a proxy." Unfortunately, settings generated with the "(blank)" work-around do not appear to work with Nokia (and possibly other) phones, necessitating that different settings must be sent for proxy-less settings depending on phone type. 2006-07-06: * Modem initialisation changes to support newer Multitech CDMA modems. 2006-06-27: * UCP/EMI: Experimental - Add SMSGW.INI, [SMSGW], TrackUCPReceipts=Yes setting. When this parameter is present, delivery receipts will be supported over UCP/EMI connections. NowSMS will convert these delivery receipts into SMPP format. Experimental setting. Please enable SMSDEBUG.LOG for troubleshooting. (Enabling SMSDEBUG.LOG will also enable UCPDEBUG.LOG) 2006-06-26: * OTA Provisioning - Some Nokia Series 40 phones did not like NowSMS using the e-mail address as the "PROVIDER-ID" value when sending e-mail configuration settings. The value of the settings name input is now used for this value. 2006-06-23: * MM7 Delivery Reports: Previous versions included a "Timestamp" element in MM7 delivery reports. The "Timestamp" header is defined only in MM7 Release 5 - 1.4 and Release 6 - 1.1. All other versions of MM7 include a "Date" element instead of the "Timestamp" header. NowSMS now includes the appropriate element depending on the schema version configured. * SMPP Server: When receiving SMS messages via a GSM modem, if the received SMS message contained message class information, this could result in a message being routed to an SMPP client with an invalid "data_coding" value. Appropriate DCS to data_coding conversions are now applied for configurations where messages received via a GSM modem are being routed to an SMPP client. * MM7/EAIF: Add support for configurable HTTP timeout support for external MM7 and EAIF connections to an MMSC. This is the length of time that NowSMS will wait for a response from the MMSC. The default timeout is 120 seconds of inactivity. To increase this timeout, edit the VASP.INI file in the VASPOUT\accountname subdirectory, adding HttpTimeout=#### under the [VASP] header, where #### is the number of seconds to wait for a response before timing out the request. * HTTP SMSC: Add SMSGW.INI setting, under [HTTP - host:port] section header, LongTextAsText=Yes will cause NowSMS to submit long text and EMS messages to the HTTP SMSC with the text of the message in standard text format with UDH, instead of converting the text to GSM 7-bit text encoding. * MMSC: Fix for conversion of phone numbers to international format when "MSISDNHeaderLocalPrefix" is a value other than "0". * MMSC: Fix for problem with "X-MSISDN" header parsing error when the number appears in complete international format, including a "+" in front of the phone number. * Inbound SMS: When routing a received SMS to a local "SMS Users" account, also record this in the SMSOUT log file with the SMSC name listed as the submitting user. * MMSC Accounting Callbacks: Add additional callbacks to indicate when a message has been routed to an external MMSC connection. The "Type=MMSOut" transaction is triggered when a message has been successfully submitted to an external MMSC connection. The "Type=MMSOutFailed" transaction is triggered when a message cannot be transmitted to an external MMSC connection. To prevent problems with scripts that do not expect this callback, this callback is not enabled by default. To enable this callback, edit MMSC.INI, and under the [MMSC] header, add MMSAccountingEnableMMSOut=Yes. 2006-06-01: * OMA OTA: Implement string table support so that repeated strings in an OTA message only need to be included in their entirety once. This results in shorter OMA OTA messages (fewer segments). To disable this behaviour, edit SMSGW.INI, and under the [SMSGW] header, add OTAUseWBXMLStringTable=No. * OMA OTA: Implement draft specification of OMA Provisioning Content v1.2. By default, v1.2 encoding is only used if the element includes a version="1.2" parameter (e.g., ). The only difference between v1.1 and v1.2 is the addition of some new binary token definitions, so you can generally just change this version number parameter to use the v1.2 encoding which seems to be required by newer Nokia phones for some WLAN and VOIP related settings. If for some reason you want to use v1.2 binary encoding, but still specify v1.1 in the header, edit SMSGW.INI, and under the [SMSGW] header, add UseOMAProvCont12=Yes. * 2-way SMS: Fix for 2-way SMS URLs that use https:// not working unless port 443 is appended to the host name (e.g., https://server:443/path). 2006-05-16: * PAP/PPG: Push to an IP address was limited to 2000 bytes. Limit increased to 64000 bytes. 2006-05-10: * HTTP SMSC: Improve performance by supporting multiple concurrent outbound connections to a single upstream HTTP SMSC. (Updated SMSGW.EXE, SMSGWS.EXE) * HTTP SMSC: Add support for @@SubmitUser@@ and @@SubmitPassword@@ replacement parameters. These parameters can contain the original user id/password of the account that submitted the message to NowSMS. (Updated SMSGWS.EXE) * HTTP SMSC: Add support for @@MessageID@@ replacement parameters. This parameter contains the message id assigned to the message by NowSMS (Updated SMSGWS.EXE) * HTTP SMSC: Receipt tracking updates for HTTP SMSC connections. Additional details in discussion board thread: http://www.nowsms.com/discus/messages/1/15186.html (Updated SMSGWS.EXE) 2006-04-26: * MMSC: Improve MM7/MM4/EAIF performance by supporting multiple concurrent outbound connections to a single upstream MMSC. (Updated MMSC.EXE, MMSCDLL.DLL) * MMSC: Fix for problem where MMSRoutingURL callback rejects a message recipient received over MM4. If the sending system requested MM4 acknowledgments, error acknowledgments will be posted in an infinite loop. See http://www.nowsms.com/discus/messages/485/14797.html (Updated MMSC.EXE) * MMSC: Add support for optional MMS 1.2 PDU: m-forward-req (forward message without downloading). (Updated MMSC.EXE) * UCP/EMI: If a text message is submitted in binary 7-bit format, convert it back to text for submission via UCP/EMI. (Updated SMSUCP.DLL) * EMS Ringtone: Add option for sending ringtone in Nokia Smart Messaging SCKL text format. (Updated SMSGWS.EXE and Send EMS Ringtone.htm) 2006-04-18: * Alerts: Message queue size alert feature was not working. (Updated SMSGWS.EXE) 2006-04-03: * Send EMS Text option did not handle Unicode text properly. (Updated SMSGWS.EXE) * MMSC: Outbound MM7, change order of elements so that Priority is after DeliveryReport and ReadReply. (Updated MMSC.EXE) 2006-03-28: * GSM Modem PINs: When adding/editing/testing a modem, report any PIN related errors. Make sure that when adding/testing a modem that a possibly invalid PIN is only sent once (previous versions may send the PIN multiple times while trying to "wake up" the modem). (Updated SMSGW.EXE & SMSGWS.EXE) * MMSC: Fix for MMSRoutingURL callback conflicting with any "default route" settings. If the callback returned "Direct", the MMSC would still apply the "default route". (Updated MMSC.EXE) 2006-03-27: * 2-way SMS would not reassemble long SMS messages where the SMS sender used an alphanumeric sender address that included a "-" character. This caused problems receiving MMS messages from an operator MMSC if the operator MMSC used an alphanumeric sender address that included a "-" character. (Updated SMSGWS.EXE) * SMPP delivery receipts for messages routed via a GSM modem did not have the esm_class parameter set to indicate that the message was a receipt. (Updated SMSGWS.EXE) * Change TransactionID header in MM7 submissions and delivery responses. Instead of , we now omit the "mm7" namespace prefix for compatibility with the Comverse MMSC. (Updated MMSC.EXE) * Auto-generated SMIL for MMS messages sent via the web interface did not specify a character set for the SMIL. This causes problems for Orange UK's MM7 connector. (Updated SMSGWS.EXE) 2006-03-09: * Fix for NowSMS Proprietary URL submission for MMS and Multimedia WAP Push truncating message subject and message text if the "?" or "&" character is present. (Updated SMSGWS.EXE) * Fix for MM7 handler not properly converting or using well-known XML entities (especially > and <). (Updated MMSC.EXE) 2006-03-08: * Fix for a brand new "fresh" installation of NowSMS only transmitting 1 message every 30 seconds. (Updated SMSGWS.EXE) 2006-03-07: * "Help" button was not properly enabled for displaying the NowSMS 2006 PDF. If a previous version of NowSMS was installed, the Help button would display the help file from that version. If there was no previous version of NowSMS installed, the Help button would not be enabled. (Updated SMSGW.EXE) * Fix error messages related to "EMS Send Picture Message". In some cases, a generic "Picture Conversion Failed" error was returned, when it should have indicated "Picture is too large for selected output format". Larger pictures can be sent by setting MaxRingToneFragmentCount=## under the [SMSGW] header of SMSGW.INI. The default value of this setting is 6. This setting applies to both the "EMS Send Ring Tone" and "EMS Send Picture Message" functionality. An image or ring tone that would require more than this number of SMS messages to be sent is rejected with an error. Internal changes have been made in this version to better support larger values for this setting. Increasing the value of this setting is only recommended for specialised environments and testing labs. (Updated SMSGWS.EXE) 2006-03-06: * "Retry MMS Delivery Notifications" options were cut-off on the "MMSC" configuration dialog when running on Japanese versions of Windows. Dialog window was too small for Japanese fonts. (Updated SMSGW.EXE) * If NowSMS configuration program is already active, don't load a second copy if it is run again. (Updated SMSGW.EXE) * Modify "Send EMS Text" handling to generate UDH that is compatible with EMS Release 4. (No longer use the text formatting length = 0 to keep changing the "default" font at the current offset. Also further optimisations to reduce the amount of UDH generated for attribute changes.) (Updated SMSGWS.EXE) * Add "Text" parameter to "Send Voice Mail Notification" option to allow a text message to be included with an update to any of the supported message waiting indicators (MWI). When a text parameter is present, NowSMS will use a DCS value for "Message Waiting Indication Group: Store Message" instead of "Message Waiting Indication Group: Discard Message". (Updated SMSGWS.EXE and Send Voice Mail Notification.htm) * Routing MMS messages to a particular outbound "MMSC Routing" definition does not work properly for messages submitted through the NowSMS Proprietary URL submission method or through some VASP submissions. (Updated MMSC.EXE) 2006-03-03: * "Send EMS Picture Message" did not work with "Text input (hex string format)". (Updated SMSGWS.EXE) * Bounds check on "Message Waiting Count" for "Send Voice Mail Notification". If the value is larger than 255, it is set to 255. (Updated SMSGWS.EXE.) * Add support for "VoiceMail=VideoOn" and "VoiceMail=VideoOff" parameters to turn on and off the video message waiting indicator. (Updated SMSGWS.EXE and Send Voice Mail Notification.htm) === v5.x and earlier revision history archived.