Advanced INI File Settings

There are some advanced configuration settings for NowSMS which can only be applied by directly editing the configuration files.

Please note that these settings are documented for use by advanced users only.

The primary configuration files for NowSMS are SMSGW.INI and MMSC.INI.

Most of the configuration settings that can be applied through the configuration program, are saved via configuration entries that are saved in these configuration files.

This section will not provide any documentation for settings that can be applied through the configuration program. It will only provide documentation for additional settings which can only be applied by directly editing the configuration files.

Please note that as these settings are not well documented, they do not receive the same amount of real-world testing. Use extreme care when applying any of these settings. You should always test thoroughly after applying any of these settings to make sure that NowSMS continues to function as you need it to.

SMSGW.INI Parameters

SMSGW.INI, [SMSGW] section:

MMSDir=d:\path\

Specifies an alternate location for the “MMS-IN” subdirectory in which received MMS messages are deposited.

QDir=d:\path\

Specifies an alternate location for the “Q” subdirectory in which outbound SMS messages are queued. (Note: There was a bug in this setting for versions prior to v5.51 where the MMSC would not check this setting. The MMSC would queue messages into the default “Q” directory location, but they would never be sent.)

WAPPushInitiatorURI=http://server/

Set the default value for the initiator URI in WAP push messages generated by NowSMS. This value is displayed as the message sender with some phones, such as the SonyEricsson P900. (If an initiator URI is not present, some phones display the message as being from a blank or “unknown sender”.) See Technical Bulletin – WAP Push or OTA: Unknown Sender.

WAPPushFlag=

Sets the default value for the “Push-Flag” header in a WAP push message. See Technical Bulletin – WAP Push or OTA: Unknown Sender.

MMSCOMPParameters=

Specify command line parameters to pass to MMSCOMP when messages are submitted via the web interface. This is most frequently used to specify the character set to be applied to text files that are submitted via the web interface.

NowSMS will automatically specify the UTF-8 character set, if necessary, for text posted in the “MMSText” variable, but it does not specify a character set for text that is submitted as a file upload.

To specify UTF-8 as the character set for text files submitted for MMS via the web interface, set MMSCOMPParameters=-cUTF-8

RetryDelay=

RetryDelayMultiplier=

RetryDelayAfterAttempts=

RetryDelayMax=

RetryMaxAttempts=

The above parameters control retry behaviour for when NowSMS is submitting messages to an SMSC and an error occurs.

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

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

To use a fixed retry delay of RetryDelay, specify RetryDelayMultiplier=0.

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

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

ReceiveSMSCharset=

When NowSMS calls a “2-way” command to pass details of a received SMS message, by default it will use the UTF-8 character set for the encoding of text messages.

This setting allows you to configure NowSMS to use a character set other than UTF-8 for transmitting text to a 2-way command. This value should specify a valid character set name (such as iso-8859-1 for the standard Western European character set, iso-8859-6 for Arabic, big5 or gb2312 for different Chinese encodings).

2WayProxy=

Specifies that HTTP requests defined in the “2-way” command table should be processed via an HTTP proxy server. Use a format of ip.address:port for specifying the address of the HTTP proxy server.

LogRetainDays=####

#### specifies the number of days for which logs (e.g., SMSOUT-yyyymmdd.LOG) should be retained. Values of 365 or larger are not supported.

Debug=Yes

Enables the SMSDEBUG.LOG file for troubleshooting.

DebugLogDirectory=d:\path

Specifies an alternate location for the SMSDEBUG.LOG file when Debug=Yes is configured.

DebugXmlSettings=Yes

Configures NowSMS not to delete temporary XML settings files that are generated when sending OTA configuration messages.

When sending OTA configuration messages, NowSMS generates an XML document containing the settings, before the settings are encoded for sending out over SMS. Normally, NowSMS deletes the XML documents as the settings are sent out. When this setting is enabled, NowSMS leaves the XML documents behind in its “TEMP” subdirectory. This setting is intended primarily to assist users in creating their own XML settings documents. They can view the XML documents created by NowSMS via the menu interface, and then make custom modifications.

This setting should be removed from the INI file when it is no longer needed for testing.

OldModemHandler=Yes (obsolete)

This setting is referenced in various threads on the discussion board as a potential solution for dealing with problem modems. However, the setting is obsolete and should not be used with current versions of NowSMS.

ModemSendDelay=####

#### is a number of milliseconds (thousandths of a second) to pause in between sending commands to a GSM modem. Some poorly engineered modems might not be able to process modem commands as quickly as NowSMS sends them. This setting can force a short delay between commands.

SMSAccountingURL=

See Technical Bulletin – Now SMS & MMS Accounting Callbacks.

LogDirectory=d:\path

Specifies an alternate location for the log files (e.g., SMSOUT-yyyymmdd.LOG). Does not affect the location of debug log files.

BinaryDCS=

Specifies a hex value to be used as the DCS value when sending WAP Push messages or MMS notifications via WAP Push.

NowSMS default value is F5, however a value of 4 may be required on some networks.

LongTextDCS=

Specifies a hex value to be used as the DCS value when sending long text messages.

NowSMS default value is 0. (And we are not aware of any configurations where this had to be changed.)

ExtraHttpArgList=var1,var2,…

“var1”, “var2”, etc., are the names of HTTP variables. (Use only a comma to separate the variable names if you have multiple variables … with no white space around the commas.) NowSMS parses requests that it receives, looking for these variable names. If the message is routed to an HTTP-based SMSC, it appends these variables and their associated values to the HTTP URL. (If the message is routed to any other type of SMSC, the variables are ignored.)

See https://nowsms.com/discus/messages/1/321.html.

2WaySMSThreadCount=##

When NowSMS receives an SMS message over an SMSC connection, it can be configured to process a “2-way” command to process the message.

NowSMS queues the received SMS message, and a separate thread within NowSMS processes the callbacks, so other gateway activity of sending and receiving messages can continue while the callbacks are being processed.

This approach is reasonably efficient. However, if you receive a large volume of messages, our experience has shown that HTTP callbacks can only be processed at a rate of 3 to 4 messages per second.

If you need to process inbound messages at a faster rate, it is possible to allocate additional threads to the receive SMS processing. This parameter specifies how many threads should be allocated for processing received messages.

In practice, the overhead of allocating additional threads for this processing is relatively low, as the threads spend most of their time waiting for a message to process or waiting for an HTTP response from the callback that is issued.

SMPPRejectErrorCodes=x,y,z

(v5.51g+) This option specifies SMPP error codes that should be considered a permanent error (for which NowSMS will not retry sending 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, this setting can be used. The value for this setting 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”.

MaxSMPPShortCodeLen=#

(v5.51g+) By default, a source_addr_ton (source address type of number) value of 3 will be used for any messages where the sender address is numeric, and of length less than or equal to 5 digits. To disable this behaviour, use the setting MaxSMPPShortCodeLen=0. (Note: If the sender address contains alpha characters, source_addr_ton will be 5 by default. If the sender address starts with a “+”, then source_addr_ton will be set 1 by default. In all other cases, the default value for source_addr_ton will be 0.)

SMPPThrottleErrorDelay=##

(v5.51b+) If an SMPP SMSC returns a throttling error (ESME_RTHROTTLED), previous versions of NowSMS would delay 15 seconds before attempting to process another message over that SMPP connection. This default delay was changed to 5 seconds in v5.51b. It has been observed that some SMSCs might return this error condition when it will not accept any more messages for a particular phone number, in which case a general delay is not desirable. To change this delay, use this parameter, where ## is a number of seconds. SMPPThrottleErrorDelay=0 will disable the delay.

InitRetryDelay=

InitRetryDelayMultiplier=

InitRetryDelayAfterAttempts=

InitRetryDelayMax=

(v5.51b+) By default, if NowSMS cannot connect to an SMSC (or initialise a modem), it will wait 20 seconds before attempting another connection. For each successive connection failure, NowSMS will wait an additional 20 seconds (e.g., 40 seconds after 2 failures, 60 seconds after 3 failures, etc.), up to a maximum of 300 seconds (5 minutes) between retries. The reason for these delays is to adhere to various operator guidelines which are designed to prevent an SMSC from becoming overloaded with reconnections when recovering from a failure. It is possible to modify these retry timings using the following SMSGW.INI file parameters under the [SMSGW] section header:

InitRetryDelay=#### specifies a number of seconds to wait to retry after a connection failure, the default value is 20.

InitRetryDelayMultiplier=### specifies a multiplier to be applied for successive connection failures, the default value is 1. For each failed attempt, the retry delay will be the product of InitRetryDelay+((InitRetryDelay-1)*InitRetryDelayMultiplier*#FailedAttempts). To use a fixed retry delay of InitRetryDelay, specify InitRetryDelayMultiplier=0.

InitRetryDelayAfterAttempts=### specifies that the retry delay should only be applied after ### failed attempts, the default value is 1.

InitRetryDelayMax=### specifies the maximum number of seconds that NowSMS will allow to elapse between connection retries, the default value is 300.

WAPPushIncludeDate=Yes

(v5.51a+) Some Samsung phones display a date/time associated with received WAP Push messages, where the date/time displayed is inaccurate. This setting forces NowSMS to insert a date/time stamp into WAP Push messages. Note that this setting was implemented to resolve a specific incident report, and has not been tested against a wide range of other phones.

ExcludeSmsDetailsFromLog=Yes

(v5.51a+) In standard operation, NowSMS logs the text of sent messages in the SMSOUT log files. This setting prevents the SMS message details (text) from being included in the standard log files.

MaxRingToneFragmentCount=##

(v2006+) The “Send EMS Ringtone” function will reject sending a ringtone if it would result in more than this number of SMS fragments being sent. The default value is 6.

OldModemReceiptFormat=Yes

(v2006+) Beginning with NowSMS 2006, delivery receipt messages received over a GSM modem SMSC connection are translated into a format that is compatible with SMPP implementations (message text starts with “id:”). Use this setting to cause NowSMS to revert to the receipt format used in previous versions (message text starts with “Report:”).

DebugMaxSize=####

(v2006+) This setting specifies the maximum size in MB of the SMSDEBUG.LOG, when it the debug log is enabled.

SMPPServerEnquireLink=###

(v2006+) Specifies an enquire link (idle) timeout in seconds for the SMPP server. If the SMPP server does not receive an enquire link (or other command) within this timeout period, the connection will be automatically terminated. The default setting is 120 seconds. A value of 0 can be used to disable this timeout.

2WayReplySameServer=Yes

(v2008.03.23+) This setting specifies that replies from all 2-way commands should be routed back via the same SMSC connection as which the original message was received.

2WayReplyCopySMPPOptions=xxxx,yyyy

(v2008.11.05+) This setting can contain a comma delimited list of “SMPPOptions” TLV parameters that should be automatically copied from a 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.

2WayKeepAlive=No

(v2008.11.05+) For improved performance, keep-alive sockets are enabled by default for HTTP-based 2-way SMS commands. This setting is used to disable the use of keep-alive sockets for 2-way command processing if there is a problem with keep-alive sockets in a particular environment.

AccountingKeepAlive=No

(v2008.11.05+) For improved performance, keep-alive sockets are enabled by default for SMS accounting callbacks (SMSAccountingURL). This setting is used to disable the use of keep-alive sockets for SMS Accounting callbacks if there is a problem with keep-alive sockets in a particular environment.

ConcatRef16Bit=Yes

(v2009.11.04+) Configures NowSMS to generate 16-bit reference numbers when sending long segmented messages. By default, NowSMS uses an 8-bit reference number.

UseRouteQueues=Yes

(v2010.01.19+) This setting enables a performance optimisation when most messages are submitted with explicit routing (&SMSCRoute= parameter), or when the route is explicitly set by an accounting callback.

DisableEventLog=Yes

(v2009.12.21+) This setting disables any events from being written to the Windows event log.

DisableUserLog=Yes

(v2010.03.18+) This setting disables the creation of user specific log files in the USERS\username directory structure.

DisableUserQuota=Yes

(v2010.03.18+) This setting disables the tracking of how many messages each user account sends in a day.

AllowAlphaRecip=Yes

(v2010.06.30+) A particular Ericsson SMPP server supports service based distribution lists that can only be sent to by sending to alphanumeric phone numbers. NowSMS will not allow message submissions to alphanumeric phone numbers unless this configuration option is present.

EnableKeepAlive=No

(v2010.09.30+) HTTP Keep-Alive sockets are supported for HTTP submissions to offer improved performance. If this causes a problem for some applications, keep-alive sockets can be disabled by setting the configuration option EnableKeepAlive=No.

SMPPServerAsyncWindowSize=##

(v2010.10.22+) This setting enables NowSMS acting as an SMPP server to use async mode to deliver messages to SMPP clients. (In previous releases, NowSMS only 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.)

DuplicateUserReceiptsFor2Way=Yes

(v2011.02.16+) This configuration option duplicates 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.

SMSAccountingAllowChanges=Yes

(v2011.05.23+) 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.

TrackSMPPReceiptsAlways=No

(v2011.05.23+) 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.

UserOutboundQueueLimit=#####

(v2011.03.15+) This is a 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. 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. Note that “Separate outbound message queues for each user” must be enabled for this setting to function.

SMSGW.INI, section specific to an SMSC definition:

SMSCSendLimit=

SMSCSendLimit=x/y setting can specify that the gateway will send no more than x messages per y seconds. If y is not specified, then the default is 1. For example, to limit a connection to 1 message every 5 seconds, specify SMSCSendLimit=1/5. To limit a connection to 3 messages per second, specify SMSCSendLimit=3 or SMSCSendLimit=3/1.

Charset= (HTTP SMSC definitions only)

Specifies the character set to be used when submitting text messages to an HTTP based SMSC. By default NowSMS uses UTF-8, however some service European or American providers might expect iso-8859-1 (the standard Western European “text” character set).

ExcludeSMSC=Yes (GSM modems only)

Necessary when using the Siemens M1 as a modem. This older modem does not properly implement the syntax for sending SMS messages in PDU format, and does not expect an SMSC field to be specified in the PDU. This parameter allows NowSMS to be used with the Siemens M1. Without this setting the M1 will report “ERROR” on every message send attempt.

SMSC= (GSM modems only)

When sending messages via a GSM modem, by default NowSMS specifies that the default SMSC should be used. This default SMSC value is normally pre-configured on the SIM card.

Some older GSM modems may require the SMSC value to be explicitly set when NowSMS sends a message. (We have only observed this once with an old Ericsson DI28 modem, which is an external snap on infrared modem that attaches to some older Ericsson phones.)

This SMSC address varies depending upon what operator you are subscribed to.

You can set the SMSC address by manually editing the SMSGW.INI file. Under the section header for the modem configuration (e.g., [Modem – …], add SMSC=+phonenumber, where “+phonenumber” is the address of the SMSC. Here’s a link to a good list of SMSC phone numbers: http://www.cellular.co.za/smsc_lists.htm. A more reliable way of determining the correct SMSC number is to put your SIM into a phone, and go through the SMS configuration menus on the phone to determine the currently configured SMSC number. When you enter the SMSC phone number, always start it with a “+” and don’t include any other non-numeric characters (no dashes or dots) in the address.

DelayAfterSend= (GSM modems only)

DelayAfterError= (GSM modems only)

This setting can be useful for modems that encounter problems with the speed at which NowSMS attempts to send messages. In the appropriate [Modem Name] section of the SMSGW.INI file, the following settings can be specified: DelayAfterSend=#### specifies a number of milliseconds to wait after successfully sending a message (1000 milliseconds = 1 second). DelayAfterError=#### specifies a number of milliseconds to wait after a message send attempt fails.

CommandPreInit#= (GSM modems only)

CommandPostInit#= (GSM modems only)

CommandPreSend#= (GSM modems only)

CommandPostSend#= (GSM modems only)

Substitute # with a number, starting at 1, and increasing sequentially for each additional command to be sent. CommandPreInit is sent before NowSMS performs its modem initialisation sequence. CommandPostInit is sent after NowSMS performs its modem initialisation sequence. CommandPreSend is sent before NowSMS attempts to send a message using the modem. CommandPostSend is sent after NowSMS attempts to send a message using the modem. Examples:

CommandPreInit1=ATZ

CommandPreInit2=ATE0V1

CommandPreInit3=AT+CSMS=0

RouteName=xxxxx

(v5.51b+) When submitting a message via HTTP, it is possible to indicate that the message should be routed via a specific SMSC. The HTTP interface supports “&SMSCRoute=xxxxx”, where the value of this setting can be the name of a defined SMSC (e.g., “Bluetooth Modem” or “SMPP – a.b.c.d:xyz”), or it can be a route name that is defined to be associated with one or more SMSCs. This parameter setting is used to define a route name to be associated with an SMSC.

PriorityFlag=#

(v5.51a+) For SMPP connections, this setting can specify the priority_flag value to use when submitting messages. This flag will apply to all messages submitted via a specific SMSC link.

AllowedUserOnly=

AllowedUser1=

AllowedUser2=

AllowedUser…=

(v5.51a+) These configuration settings are defined to limit particular outbound “SMSC” connections to use by selected “SMS Users” accounts.

AllowedUserOnly=Yes — This setting specifies that the SMSC connection can only be used by users that are specifically authorised to use this SMSC. When routing messages from users that are not specifically authorised for this connection, NowSMS will not use this SMSC and route messages as if this SMSC definition did not exist.

AllowedUser1=username — This setting can be repeated with sequentially assigned numbers (e.g., AllowedUser2=xxx; AllowedUser3=yyyy). This entry is used to specify specific “SMS Users” accounts that are allowed to use the SMSC connection when AllowedUserOnly=Yes.

Note: It is NOT necessary to restart NowSMS when making updates to the AllowedUserOnly or AllowedUser1 settings in SMSGW.INI. These changes will be detected dynamically by NowSMS.

InternationalPrefix=###

(UCP/EMI only) If a destination phone number is of international format, the “+” character will be replaced with the prefix specified here. (This setting is only respected if the sender address is NOT in international format.)

CommandTimeout=###

(SMPP only) Specifies a timeout in seconds to wait for an SMPP response. Default is 120 seconds.

NullRemap=40

(SMPP only) This setting is used to resolve character set conversion problems where the “@” character is not handled correctly on received messages. Note that the preferred solution for this problem is to define the “SMSC Character Set” as “iso 8859-1 (Latin)” under “Advanced Settings”. This setting should only be used if problems persist after configuring that setting.

Validity=##D (or ##H or ##M )

(v2006+) Supported by outbound GSM modem and SMPP SMSC connections only. This parameter specifies a default validity period for all messages sent via this SMSC connection, as an interval defined in hours, minutes or days. If the SMSC cannot deliver the message within the specified validity period, the SMSC is instructed to discard the message. (Note that this setting is not supported by all SMSCs.) Specify ##D for a validity period in days, ##H for a validity period in hours, or ##M for a validity period in minutes, where ## is a numeric value (e.g., 30D for 30 days or 7H for 7 hours).

BinaryOrTextOnly=Text (or Binary)

(v2006+) Indicates that this SMSC connection should only be used for text or binary messages, as indicated. If this parameter is set to “Text”, NowSMS will not try to route any binary messages via this connection. Similarly, if this parameter is set to “Binary”, NowSMS will not try to route any text only messages via this connection. The intent is that some SMSC connections may be a cheaper alternative for sending text only messages.

InsertSenderAsCallbackNum=Yes

(v2006+) SMPP Only – When this parameter is set, all messages that are sent via this SMSC link have the callback_num field inserted, with a value that matches the message sender.

GenerateUserMessageReference=Yes

(v2007.06.27+) SMPP Only – This parameter causes NowSMS to include an incrementing user_message_reference value with each message submission to the SMSC. This special configuration setting was required for a customer connecting to Movistar Peru.

BackupForRoute=xxxxxx

(v2008.12.04+) Defines this SMSC connection as a backup (fail-over) route for another SMSC connection. 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.

TextDCS=##

BinaryDCS=##

UnicodeDCS=##

(v2009-06-30+) (SMPP only) ## is a hex value to be used as an override for the data_coding value all 7-bit text, binary and/or Unicode messages. For example, the SMPP specification defines data_coding values of 2 and 4 for 8-bit binary messages. When NowSMS receives a message via SMPP with a data_coding value of 2, it automatically remaps this value to 4 for compatibility with the DCS (data coding scheme) value used in GSM environments. Some SMSC implementations expect the data_coding value for binary messages to be 2. Using this setting with BinaryDCS=2 for a specific SMPP connection accomplishes this configuration requirement. Another example is USSD environments, where 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.

IntermediateNotification=Yes

(v2009-06-30+) (SMPP only) 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.

ReceivePoll=##

(v2009.06.30+) (GSM Modem Only) This setting specifies the interval in seconds between polling attempts when NowSMS polls the GSM modem to see if any new messages have been received. By default, the polling interval is set to 10 seconds when the “SMS Message Storage” option is set to “Direct to Modem”. The polling interval defaults to 2 seconds for other “SMS Message Storage” settings. (In previous versions of NowSMS, the polling interval was always 1 second.)

OldPollingLogic=Yes

(v2009.06.30+) (GSM Modem Only) Changes were made in how NowSMS polls modems for received messages in this release. This setting causes NowSMS to use the polling logic from older releases.

SenderPort=#### (SMPP Only)

Some SMSCs have firewall restrictions which will only allow you to connect to the SMSC from a specific IP address and a specific port number. Normally, NowSMS will use a dynamically allocated port number when connecting to an SMSC. However, this setting allows the port number to be fixed. This setting applies to the port number to be used for the connection that uses the transmitter (send) or transceiver SMPP bind. ( Note: If you use fixed port numbers, after disconnecting from an SMSC, it may take up to 5 minutes before you are allowed to reconnect. This is a TCP/IP limitation on reconnects after a disconnect when the same source and destination ports are used for the reconnection attempt.)

ReceiverPort=#### (SMPP Only)

Similar to the SenderPort setting, this fixed port number is applied to the connection that is used for the receiver SMPP bind.

SMSCCharsetDefault=Yes (SMPP Only)

When a non-default SMPP character set is configured, this configuration setting tells NowSMS to use a data_coding (DCS) value of 0 instead of explicitly specifying the character set.

SMPPRejectErrorCodes=x,y,z

(2010-09-21+) This option specifies SMPP error codes that should be considered a permanent error (for which NowSMS will not retry sending the message) for a particular connection. This setting is also available under the [SMSGW] header to apply to all SMPP connections unless overridden by a connection specific setting. 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, this setting can be used. The value for this setting 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”.

SMSGW.INI, [SMPPOptions] section:

This section is used to enable support for SMPP Optional parameters. In particular, mBlox customers may wish to configure these settings in order to enable support for mBlox specific settings related to premium rate SMS.

Other SMS providers might also use SMPP Optional parameters for similar purposes.

The [SMPPOptions] section contains a list of SMPP optional parameters that NowSMS should support.

Some optional parameters are defined in the SMPP specification, while others, such as the mBlox settings that we reference below, are vendor specific.

The format of entries in the [SMPPOptions] section is:

setting_name=SMPPTagValue,Type,Len

setting_name is a descriptive name for the setting. For each setting that is defined, NowSMS will support an additional parameters when submitting a message to NowSMS via an HTTP URL request. “&SMPPOption_setting_name=” will specify a value to be set for this parameter.

For each optional parameter that is defined, NowSMS will also route these parameters to HTTP-based 2-way commands. If a message is received which contains values for any optional parameter defined in the [SMPPOptions] section, NowSMS will automatically append “&SMPPOption_setting_name=value” to the 2-way URL, if the optional parameter is present in a received parameter. It is not necessary to add any variables to the 2-way command template, as these values will be appended automatically if present in a received message.

SMPPTagValue is the SMPP tag value associated with the parameter, in hex format. For example, the SMPP v3.4 specification defines the tag value for user_message_reference to be 0204.

Type can be either String, CString or Integer. String corresponds to the “Octet String” definition in the SMPP specification. CString corresponds to the “C-Octet String” (null terminated) definition in the SMPP specification. Integer corresponds to the “Integer” definition in the SMPP specification.

Length specifies the field length, and is optional. If specified for a String parameter, it specifies a fixed length for the string (longer strings will be truncated, shorter strings will be padded with nulls to meet this length). If specified for an Integer parameter, the value should be either 1 or 2, otherwise NowSMS will choose a size based upon whether the value requires 1 or 2 bytes to encode. Length is ignored for CString typed parameters.

In the context of mBlox, the following settings are intended to enable support for their premium rate parameters:

[SMPPOptions]

mblox_operator=1402,String,5

mblox_tariff=1403,String,5

mblox_sessionid=1404,String,45

user_message_reference=204,Integer,2

When these settings are present, additional parameters are supported when submitting a message to NowSMS via an HTTP URL request. “&SMPPOption_mblox_operator=” will specify a value for the destination operator. “&SMPPOption_mblox_tariff=” will specify a value for the premium rate tariff associated with the message. “&SMPPOption_mblox_sessionid=” is required for some premium rate SMS operator implementations. For additional information on any of these parameters, please refer to the mBlox SMPP Gateway Version 3.0 Manual.

“&SMPPOption_user_message_reference=” is a generic option that allows you to set/retrieve the value of the SMPP “user_message_reference” variable. An mBlox FAQ suggests that it is possible to use this option to specify a billing reference.

Please note that mBlox support will often suggest that you use a value of “0” for the mblox_tariff initially. However, customers have reported to us that mBlox appears to require a 5 digit code for this field, and that “00000” should be used instead of “0”.

When these SMSGW.INI file settings are present, NowSMS will also route these parameters to HTTP-based 2-way commands. If a message is received which contains values for either of these settings, NowSMS will automatically append “&SMPPOption_mblox_operator=value” and/or “&SMPPOption_mblox_tariff=” to the 2-way URL. It is not necessary to add any variables to the 2-way command template, as these values will be appended automatically if present in a received message.

In addition to supporting these options via HTTP URL request, it is possible to configure default settings for any of these options for each outbound SMPP connection. To define default settings, manually edit the SMSGW.INI, and in the section header for an SMPP connection (e.g., [SMPP – ip.address:port]), add a “DefaultSMPPOptions=” setting, where the value of this setting can contain any of the “SMPPOptions” settings. For example, “DefaultSMPPOptions=mblox_tariff=00000”. To include multiple options, separate the entries with a “;”, for example, “DefaultSMPPOptions=mblox_tariff=00000;user_message_reference=1”.

SMSGW.INI, [SMPP] section:

DeliveryReceiptFlag=Yes

(v2006+) Forces a delivery receipt to be requested for every message that is sent out through any SMPP connection.

DisableDeliveryReceipt=Yes

(v2006+) Disables delivery receipt requests for every message that is sent out through any SMPP connection.

SMSCRouteTLV=####

(v2009+) When this configuration parameter is present, NowSMS enables a TLV parameter matching the #### hexadecimal tag number. When NowSMS routes a a message to an SMPP client, this TLV parameter will contain the route information from which the message was received (either the SMSC host name and port or the “RouteName=” parameter configured in the SMSGW.INI for the SMSC). Similarly, an SMPP client can specify this parameter when submitting a message to request a specific outbound route for the message. The behaviour of this parameter is similar to the “SMSCRoute=” parameter that is supported by the NowSMS HTTP interface. Additional discussion of this feature can be found at https://nowsms.com/discus/messages/1/24485.html.

SMSGW.INI, [UCP] section:

IncludeXSerDCS=No

By default, any non-text DCS (data coding scheme) value will be encoded in the XSer field. Use this setting to disable this behaviour.

LongSMSTextEncoding=Yes

This field specifies that long text messages should be encoded in text format. By default, NowSMS will convert long text messages to a binary format with UDH before sending. If long text messages are garbled, try this setting.

MMSC.INI Parameters

MMSC.INI, [MMSC] section:

Debug=Yes

Enables the MMSCDEBUG.LOG file for troubleshooting.

DebugLogDirectory=d:\path

Specifies an alternate location for the MMSCDEBUG.LOG file when Debug=Yes is configured.

LogDirectory=d:\path

Specifies an alternate location for the log files (e.g., MMSC-yyyymmdd.LOG). Does not affect the location of debug log files.

DataDir=d:\path

Specifies an alternate location for the MMSCDATA directory, where MMS messages are stored. By default, this is a directory named MMSCDATA beneath the NowSMS installation.

VASPQDir=d:\path

(v2006+) Specifies an alternate location for the VASPQ directory, where MMS messages to be routed to an external MMSC connection are stored. By default, this is a directory named VASPQ beneath the NowSMS installation.

DataRetainDays=xxx

xxx is the number of days that messages should be retained. The default is 30 days. Note that this setting has not been tested for values exceeding one year, but a value of 180 days (approx 6 months) should be fine.

LogRetainDays=####

#### specifies the number of days for which logs (e.g., MMSC-yyyymmdd.LOG) should be retained. Values of 365 or larger are not supported.

ExpireDynamicLinks=###

This configuration parameter is used to delete dynamically generated links (such as those used when sending MMS or Multimedia WAP Push), after they are accessed. ### is the number of minutes after the link is first accessed before it should be automatically deleted

AdminPasswordDelete=xxxxxxxx

Allows a separate password to be required for web administration access before a user account can be deleted via the web interface.

AdminPasswordModify=xxxxxxxx

Allows a separate password to be required for web administration access before a user account can be modified via the web interface. When this setting is present, the regular admin password can only be used to view account details.

UAProfProxy=ip.address:port

(v5.51b+) Specifies that the MMSC should download UAProf files via an HTTP Proxy server (used when MMSC does not have direct internet connectivity). This setting must specify an IP address and port number for the HTTP Proxy.

MMSNoSubject=subject line text

(v5.51b+) Some operator MMSCs do not like a blank subject header. When routing a message from SMTP to MMS, if there is no subject header, or the subject header is blank, NowSMS does not include a subject header in the resulting MMS message. To include a subject, use this setting to specify the text to be inserted as the subject when a subject header is not present in a message received from SMTP.

DomainNameAlias1=domaina.com

DomainNameAlias2=domainb.com

DomainNameAlias3=domainc.com

DomainNameAlias4=domaind.com

DomainNameAlias5=domaine.com

DomainNameAlias6=domainf.com

DomainNameAlias7=domaing.com

DomainNameAlias8=domainh.com

DomainNameAlias9=domaini.com

DomainNameAlias10=domainj.com

These settings are used to specify alternate domain names for which the MMSC’s SMTP server will accept e-mail for routing to MMS recipients. Normally, the MMSC will only accept messages addressed to username@domain, where domain matches either the “Domain Name for MMS E-Mail” or “Local Host Name or IP Address” setting.

SMSDomainNameAlias1=domaina.com

SMSDomainNameAlias2=domainb.com

SMSDomainNameAlias3=domainc.com

SMSDomainNameAlias4=domaind.com

SMSDomainNameAlias5=domaine.com

SMSDomainNameAlias6=domainf.com

SMSDomainNameAlias7=domaing.com

SMSDomainNameAlias8=domainh.com

SMSDomainNameAlias9=domaini.com

SMSDomainNameAlias10=domainj.com

These settings are used to specify alternate domain names for which the MMSC’s SMTP server will accept e-mail for routing to SMS recipients. Normally, the MMSC will only accept messages for routing to SMS when addressed to username@domain, where domain matches the “Domain Name for SMS E-Mail” setting.

VASPQRetryMaxAttempts=##

(v5.51b+) This configuration option limits the number of retries for processing of messages in the MMS Outbound Routing queue, which contains messages that are being routed to an external MMSC connection (EAIF, MM1, MM4, MM7). By default, retries will be performed for 24 hours, with the retry interval moving from 1 minute to 2 minutes to 3 minutes, up to 15 minutes per retry. This setting will limit the number of retries.

More Discussion at https://nowsms.com/discus/messages/485/8212.html

HeaderUserAgent=any text

This setting specifies a value to be set for the “User-Agent:” header when submitting/retrieving MMS messages from/to an operator MMSC.

HeaderProfile=http://host.name/path/filename.ext

This setting specifies a value to be set for the “Profile:” header when submitting/retrieving MMS messages from/to an operator MMSC. This should be a URL that points to a User Agent profile (UAProf).

UndeliverableRouteToSMS=VASPOutboundRouteName

(v5.51d+) Specifies the name of an MMSC Outbound Route that is defined in the “MMSC Routing” list, which must be of the type “Convert to SMS with Web Link”. By default, if an MMS message has not been retrieved within 120 minutes, the message will be rerouted to be sent as an SMS with a web link for accessing the MMS content.

UndeliverableRouteToSMSTimeout=####

(v5.51d+)#### is a value in minutes that changes the time period after which the UnderliverableRouteToSMS setting is applied.

Nokia3510Compatible=No

This setting enables a more compact form of encoding for MMS notifications, as it uses a single byte for encoding the MMS content type in the MMS notification. The default setting requires 33 bytes for encoding the content type, so this setting will save 32 bytes in the size of the MMS notification message that is sent over SMS. However, some early MMS phones did not understand the short encoding for the MMS content type, and this setting will cause those phones to be unable to receive any MMS messages. It has been observed that the original releases of the Nokia 3510 and Panasonic GD87 did not understand the short encoding, and other phones may also be affected. Use this setting with caution.

MMSNotificationNoSubject=Yes

This setting will disable the inclusion of the subject header in the MMS notification message delivered over SMS, resulting in a smaller size for the MMS notification message. The only known side effect of this setting is that if a user has configured their phone to prompt them before downloading an MMS message, the user will be unable to see a message subject until after the message is downloaded.

MMSNotificationNoSender=Yes

This setting will disable the inclusion of the sender header in the MMS notification message delivered over SMS, resulting in a smaller size for the MMS notification message. Use of this setting is not recommended. Some phones, in their default configuration, will ignore MMS notifications where there is no sender specified. Additionally, some SonyEricsson phones will disable reply capability when this setting is enabled, even though the sender will clearly be displayed in the received message.

CompactMMSURL=Yes

This setting uses a more compact encoding of the URL value that is sent out in MMS notifications, saving several bytes in the size of the MMS notification that is sent out over SMS.

EnableReadReceipt=No

(v5.51d+) This setting removes the “read receipt request” attribute from any messages that are submitted to the MMSC by local users (and MM1 or EAIF VASPs).

MMSMessageSizeLimit=#####

Specifies a maximum size, in KB, for MMS messages that will be accepted by the MMSC when submitted by local users (and MM1 or EAIF VASPs).

NoChargeMMSToEMail=Yes

When this setting is present, MMS messages sent to e-mail recipients will not count against the daily or monthly quotas.

MM4AckToSourceIP=Yes

When this setting is present, MM4 ACKs will always be sent back to the same IP address from which the MM4 message submission was received. Usage of this setting is NOT recommend. Instead, you should define an MM4 outbound route under “MMSC Routing”, and configure the “MMSC VASP” account to route MM4 ACKs via the appropriate route.

ReplaceCIDInSMIL=Yes

When this setting is present (and content conversion is enabled), content conversion will be forced upon any messages where the SMIL file contains “cid:” (content-id) references in the SMIL. Content conversion always converts these references to point to “Content-location” references instead. There is no known reason to use this setting.

RemovePlusFromEMail=Yes

When this setting is present, the leading “+” character will be stripped from phone numbers when routing from MMS to e-mail, so that a “+” character is not included as the sender address in the outbound message.

EnableKeepAlive=No

This setting disables the use of keep-alive sockets by the MMSC. By default, the MMSC will enable the use of keep-alive sockets when communicating with MMS clients that request them through HTTP/1.1. When this setting is used, the MMSC will inform the clients that keep alive sockets are not supported. (This setting is not recommended, as it has been observed that some MMS clients assume that keep-alive sockets are supported, and will report an error after downloading a message if keep-alive sockets are disabled.)

EMailAutoSmil=No

By default, NowSMS will automatically generate a SMIL presentation for content that is received via SMTP without an existing SMIL presentation. This setting disables that behaviour.

EMailAutoSmilOldFormat=Yes

(v5.51c+) Beginning in v5.51c, the way that SMIL that is auto-generated when routing e-mail to MMS was changed to include a simple “layout” section, and “region” attributes for included content. This is necessary for proper message display on Blackberry devices. If this change causes a problem when upgrading from a prior version, this setting will revert to the old auto-generated SMIL format.

EMailKeepSmil=Yes

(v5.51c+) Beginning in v5.51c, when an MMS message is routed to an e-mail recipient, any SMIL presentation attachment is discarded, as this can cause confusion for e-mail recipients who are not familiar with SMIL. Use this setting to enable the SMIL to be retained.

EMailAutoSmilParDur=xxxxx

When automatically generating SMIL for SMTP e-mail messages routed to MMS recipients, an option has been added to specify that a “dur=” parameter be included in the paragraph headers. By default, if the message only requires a single page (paragraph element), then no “dur=” parameter will be specified. If a message requires multiple pages, a “dur=’5000ms'” parameter will be included in the paragraph header. However, these settings may not be appropriate for all environments. Additionally, there is a bug in some versions of the SonyEricsson P900 where messages will display as blank if a paragraph header does not have a “dur=” parameter. To override the default behaviour, use this parameter, where “xxxxx” specifies a duration in milliseconds (ms) or seconds (s) such as “5000ms” (5000 milliseconds = 5 seconds) or “30s” (30 seconds).

EMailSMSTextOnly=Yes

This setting will suppress the SMTP sender and subject from being included when routing SMTP e-mail to SMS recipients. Only message text from the e-mail will be included in the SMS. This setting is useful when SMTP is being used as an API for submitting SMS messages, instead of as a more general e-mail to SMS gateway.

DisableMMSDirectDelivery=Yes

(v5.51a+) This setting is used when NowSMS is primarily being used for e-mail to MMS purposes, and the MMS connection is via an external MMSC connection instead of MMS direct delivery. This setting will stop NowSMS from performing MMS direct delivery for accounts that are defined in the “MMSC Users” list. By default, NowSMS will always perform MMS direct delivery to accounts that are defined in the “MMSC Users” list. When NowSMS is being used for e-mail to MMS, this setting allows those recipients to be routed via an external MMSC connection

DisableTransactionID=Yes

(v5.51b+) This setting is useful when NowSMS is being used as a direct delivery MMSC, but not as the user’s primary MMSC. This setting causes the MMSC not to request any delivery acknowledgments from the receiving MMS client. These acknowledgments are always posted to the MMSC that is configured as the primary MMSC in the phone, so if NowSMS is not the primary MMSC, these acknowledgments are posted to the wrong MMSC.

MSISDNHeader=HTTP-Header-Name

This setting is used to identify the phone number (MSISDN) of MMS clients when they submit messages to the MMSC. This setting specifies the name of the HTTP header that will contain the MSISDN on MMS submission requests from MMS clients. This header is usually inserted by the WAP proxy. For example, with NowWAP, the appropriate setting would be: MSISDNHeader=X-MSISDN

See https://nowsms.com/doc/mmsc-messaging-server/operator-mmsc-considerations for more general detail about this capability.

This setting can support a comma-delimited list of headers, so that the MMSC can be configured to accept MSISDN information from one of multiple headers, with the first listed header always being given priority.

MSISDNHeaderGateways=ip.address

This setting specifies a list of one or more IP addresses from which the MMSC will accept the MSISDNHeader. This is to prevent forged requests, where another gateway or application inserts an MSISDN header to attempt to fool the MMSC. One or more IP addresses can be listed in this configuration setting. Each address must be separated by a comma. Wildcard addresses are supported by placing a “*” in place of a position within the IP address. For example, a setting of 9.10.11.* would mean that the MSISDNHeader would be accepted from any request originating from an IP address in the range of 9.10.11.1 thru 9.10.11.255.

MSISDNHeaderPrefixConvert=xxx:yyy

(v5.51a+) This setting is used for applying a standard conversion to MSISDN header from a WAP proxy. MSISDNHeaderPrefixConvert=xxx:yyy allows you to convert all MSISDN values reported by the WAP proxy which start with “xxx” so that they start with “yyy” instead. Multiple conversion entries can be specified by including them in the header, separated by a comma (e.g., xxxx:yyyy,aa:bb).

MSISDNHeaderDefaultCountryCode=##

This setting specifies a default country code to be applied to MSISDN numbers presented in the MSISDNHeader, so that the gateway can convert the MSISDN address to international format automatically.

MSISDNHeaderLocalPrefix=#

This setting specifies the default prefix that is used for phone numbers in the MSISDN header that are in local (national) format. For example, in the UK, the MSISDNHeaderDefaultCountryCode would be 44, and the MSISDNHeaderLocalPrefix would be 0. With these settings, and MSISDN header of “07778001210” would automatically be converted to “+447778001210” by the MMSC

MSISDNHeaderAutoProvision=Yes

This setting specifies whether or not user accounts should be automatically provisioned on the MMSC the first time that a user sends a message through the MMSC. This removes the requirement to automatically provision accounts. Any user that makes a request through the appropriate WAP gateway with the MSISDNHeader set will be automatically provisioned on the MMSC.

MSISDNHeaderEricssonFormat=Yes

This setting specifies that the MSISDN header information is in a format typically used by an Ericsson WAP Gateway.

MSISDNHeaderNokiaFormat=Yes

This setting specifies that the MSISDN header information is in a format typically used by an Nokia WAP Gateway.

MSISDNHeaderConvertToLocalNumber=Yes

When MSISDNHeaderDefaultCountryCode and MSISDNHeaderLocalPrefix are enabled, NowSMS will convert MMS sender and recipient information to international number format when delivering messages. As many users may be unfamiliar with international number format, this setting translates the phone number format that appears in the MMS message so that it appears in local number instead.

MSISDNHeaderRequiredForReceive=Yes

(v5.51c+) When this setting is present, in order for a client to retrieve an MMS message from the MMSC, the MMSC will check to make sure that the retrieving client presents an MSISDNHeader that matches the intended message recipient.

MSISDNMatchRequiredForReceive=No

(v5.51c+) Similar to MSISDNHeaderRequiredForReceive explanation. By default, NowSMS will expect a URL request to include the appropriate MMS filename, and the phone number of an intended recipient. The MMS message can only be downloaded if the MMS file exists, and the phone number in the URL matches an intended recipient. This check is performed by default to make it considerably more difficult for an automated process to guess at MMS filenames. If there is a reason that this check needs to be disabled, use this setting.

MSISDNHeaderDNCode=

MSISDNHeaderDNOffsetMin=

MSISDNHeaderDNOffsetMax=

These settings all are used in conjunction with MSISDN parsing in Argentina, where the local number format includes a DN code in the middle of the phone number string. Further information can be supplied on request. Use these settings in Argentina:

MSISDNHeaderDefaultCountryCode=54

MSISDNHeaderDNCode=15

MSISDNHeaderDNOffsetMin=3

MSISDNHeaderDNOffsetMax=6

SMTPIPAddressList=ip.address.1,ip.address.2,192.168.1.*

This parameter can have a comma-delimited list of IP addresses (no white space, if you specify multiple addresses, separate with a comma only) that are allowed to connect via SMTP and send to *any* phone number using an addressing format of phonenumber@domain.name.sms.or.mms. The IP addresses specified, can also include a “*” place holder as a wildcard match for all addresses in that network (for example, *.*.*.* would open access to any address, so you could use that value if you have complete confidence in your firewall).

MMSCIPRestrict=ip.address.1,ip.address.2,192.168.1.*

This parameter restricts connections to the MMSC to a specified list of IP addresses. This setting can contain a a comma delimited list of IP addresses that are allowed access to the MMSC. Do not include any spaces between addresses. To specify a wildcard address for a subnet, use the “*” character (for example, 192.168.1.* to allow all addresses in the 192.168.1 subnet).

LocalNumberPrefix=xxxxx

LocalNumberMaxLength=#

These settings are used in situations where a provider serves a particular city code within a country code, which sometimes happens with island operators.

If the MMSC receives a message addressed to a recipient whose phone number length is less than or equal to LocalNumberMaxLength, it automatically prepends LocalNumberPrefix to the number, before applying standard local number to international number conversion.

ShortCodeMaxLength=####

Specifies the maximum length allowed for short codes. When the MMSC receives a message addressed to a recipient whose phone number length is less than or equal to ShortcodeMaxLength, no international conversion will be applied to the phone number before routing. The default value is 4.

MMSAccountingURL=http://server/path

Before the gateway accepts an SMS or MMS message for delivery, the gateway will connect to a configurable customer-provided URL, providing information about the message to be sent, and who is sending the message. The customer provided URL can either tell the gateway to either accept or reject the message. This is a “pre-authorisation” request, and does not mean that the message will actually be accepted for delivery. If the gateway cannot successfully connect to the URL, or the URL returns a response other than a standard “HTTP 200 OK”, the user request to send a message will be blocked. A “PreAuth” request to send a message will also be blocked if the response includes the text “PreAuth=Deny”.

After an SMS or MMS message is accepted for delivery, the gateway will connect to a configurable customer provided URL, providing accounting information about the message being sent, allowing the customer to maintain external accounting information on messages processed by the Now SMS & MMS Gateway. The gateway ignores HTTP responses to the accounting callbacks.

See https://nowsms.com/doc/advanced-configuration-settings/mms-accounting-callbacks

MMSRoutingURL=http://server/path

This setting enables an HTTP-based routing callback for dynamic routing of MMS messages. When the MMSC receives a message, it will connect to a configurable customer-provided URL, passing the message recipient to the URL. The customer provided URL can return a response to indicate that the message should be routed via a specific route defined in the “MMSC Routing” page of the NowSMS configuration dialog.

The variables listed below will be added to the MMSRoutingURL when the URL is executed by the gateway as HTTP GET (CGI-style) parameters.

Type=MMSRouteCheck (Note: Future “Type” values may be added in the future.)

From=SenderPhoneNumber or e-mail address

VASPIN=VASPname (present if the message was received via a specific account defined in the “MMSC VASP” list)

To=RecipientPhoneNumber

Example:

http://server/path?Type=MMSRouteCheck&From=%2B1234567&VASPIN=test&To=%2B99999999

(Note: The “%2B” in the above examples is URL escaping for the “+” character.)

To specify which of the routes defined in the “MMSC Routing” list should be used to route this message, the URL must return a standard HTTP 200 OK response, and include the following text somewhere in the response:

Route=xxxxxxx

“xxxxxxx” should match an “Account Name” defined in the “MMSC Routing” list, or it can use the predefined values of “Direct” (signifying MMSC Direct Delivery) or “WAPPush” (signifying “Convert to Multimedia WAP Push”).

If it is possible to route the message via one of several defined routes, multiple routes can be returned in the response, separated by “:”. For example:

Route=xxxxxxx:yyyyyy:zzzzzz

DisableMMSUserStats=Yes

(v2006+) This setting disables the MMSC from maintaining MMSC user statistical information (*.QTA files under the MMSCUSERS directory structure).

DefaultMMSVersion=1.0 (or 1.1 or 1.2 or 1.3)

(v2006+) This setting specifies the default MMS version to be assumed when sending an MMS message to a user account that is not defined to the MMSC. The default setting is 1.0. (Note: Support for 1.3 added in v2007.06.27)

PhoneNumberMaxLength=##

(v2006+) The MMSC will reject any MM1 recipients where the phone number of the recipient is longer than this value. The default is 20. (This is to prevent problems with some SMSCs that will choke on attempts to send SMS messages to phone numbers longer than 20 digits.)

DebugMaxSize=####

(v2006+) This setting specifies the maximum size in MB of the MMSCDEBUG.LOG, when it the debug log is enabled.

NonDeliveryNotificationTimeout=####

(v2007.06.27+) To enable support for MMS non-delivery notifications to be generated when an MMS message expires without being delivered/retrieved by the recipient, use this setting. #### is the number of minutes after which to consider a message as being expired.

SMTPExtraHeader=xxxx

(v2007.06.27+) Allows an extra header to be added to MMS messages that are routed to an e-mail address. (For example, “SMTPExtraHeader=X-Mms: True”) To define extra headers that span multiple lines, use \r\n in the value to denote where a line break should occur.

AutoBCC=xxxxxx

(v2007.06.27+) This parameter will 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.

SMSEMailTemplate=@@FromAddress@@ /@@Subject@@ /@@Text@@

(v2007.07.23+) This parameter defines a 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@@

MSISDNRecipientPrefixConvert=aaaa:bbbb,cccc:ddd

(v2007.11.13+) This configuration parameter supports MMS 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,+6789:+987 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).

AccountingKeepAlive=No

(v2009.02.16+) For improved performance, keep-alive sockets are enabled by default for MMS accounting callbacks (MMSAccountingURL). This setting is used to disable the use of keep-alive sockets for MMS Accounting callbacks if there is a problem with keep-alive sockets in a particular environment.

RoutingKeepAlive=No

(v2009.02.16+) For improved performance, keep-alive sockets are enabled by default for MMS routing callbacks (MMSRoutingURL). This setting is used to disable the use of keep-alive sockets for MMS Routing callbacks if there is a problem with keep-alive sockets in a particular environment.

SuppressMMSInDeliveryReport=Yes

(v2009.06.30+) When NowSMS receives an MMS message from an “MMSC VASP” account with a delivery report requested, and the “MMSC VASP” account is configured to delivery the message to the “MMS-IN” directory, NowSMS will automatically generate a delivery report back to the sender unless this parameter is configured.

ForceRoutingCallback=Yes

(v2009.06.30+) This configuration option to forces the MMS Routing callback (“MMSRoutingURL=” setting) 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. If this setting is not enabled, NowSMS will only call the MMS Routing callback for numbers that are not in the “MMSC Users ” list.

ForceRoutingCallbackShortCodes=No

(v2010.10.04+) This option blocks the 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.)

SMTPHostName=xxxx

(v2010.08.23) Configuration setting to allow the SMTP host name to be set independently of the MMSC “Local Host Name”. If this parameter is not present, the “Local Host Name or IP Address” field will be used as the SMTP host name.

MMSC.INI, [ShortCode] section:

Short codes can be used to map a short phone number to a longer phone number or e-mail address. Short codes can also be used to map an e-mail address to a short code that is route to a VASP.

For example, a short code of 200 could be rerouted to an e-mail address. To define short codes, create a section titled [ShortCode] in the MMSC.INI file. Under that section, create entries in the following format:

###=+44335830375474/TYPE=PLMN

###=user@domain.com

In the examples above, “###” is a numeric short code address, and the value after the “=” sign is the address the short code should be rerouted to, specified as either a phone number in MMS addressing format (/TYPE=PLMN) or as an e-mail address.

Similarly, to route an e-mail address to a short code that is routed via a VASP, use the following format:

user@domain.com=6000/TYPE=PLMN

Note: For routing short codes to a VASP, it is recommended that you define an “MMSC Outbound Routing” definition to connect to the VASP via an MMS protocol, such as MM7. Then define the short codes for the VASP in the “Route messages to this account for recipient phone number(s)” field within the route definition.

MMSC.INI, [IPNotify] section:

This section allows MMS notifications for select phone numbers to be routed via IP instead of via SMS. Under this section header, specify PhoneNumber=IP.Address (e.g., +9999999=192.168.1.200), to have MMS notifications for the specified phone number get routed to the specified IP address. (This feature is intended primarily for testing environments.)

Effective with v2007.06.27 and later, this setting is also supported for all other WAP Push related functionality of NowSMS, including OTA settings.

MMSC.INI, [HostNameSenderOverride] section:

Some mobile operators, such as Vodafone UK, require that content providers use different URLs for adult vs. non-adult content. When sending MMS or Multimedia WAP push via NowSMS, the URL that NowSMS generates includes the “Local Host Name or IP Address” that is specified on the “MMSC” page of the NowSMS configuration. It is now possible to override that host name in generated URLs based upon the MMS Sender address (“MMSFROM” parameter when using NowSMS proprietary URL submission) that is specified in a submitted message. Within the MMSC.INI, it is possible to define a section titled [HostNameSenderOverride]. Under that section, specify a sender address and the alternate host name to use for notifications generated by that sender (e.g., +447778001212=212.100.225.164 or nowsms@now.co.uk=contentserver1.now.co.uk).

MMSC.INI, [TranslateText] section:

This section allows you to define translation text for the text prompts that are used in the WML that is generated for multimedia WAP Push.

Under this section, the following translations can be defined:

Multimedia Message=

Subject=

From=

Download image=

Download audio=

Download video=

Download file=

The text after the “=” sign will be used to replace the text before the “=” sign.

MMSC Outbound Routing Parameters

Parameters applying to an “MMSC Routing” definition are described below. The configuration files for an MMSC Outbound Route are located in the VASPOUT\accountname subdirectory of the NowSMS directory.

VASP.INI, [VASP] section:

MaxRecips=###

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 default value is 5 recipients per message instance. For EAIF connections, the default value is 10 recipients per message instance. For MM7 connections, the value is 100 recipients per message instance. Different MMS providers may have different limits, and it may be necessary to modify the default settings. 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.

UseKeepAlive=No

KeepAliveTimeout=###

(v2008.04.10+) (MM7, MM4, EAIF only) By default, NowSMS will use keep-alive connections for external MMSC connections, when possible. 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. If this support causes problems for a particular MMSC connection, keep-alive support can be disabled for a specific “MMSC Routing” connection by editing the VASPOUT\routename\VASP.INI file, and adding UseKeepAlive=No under the [VASP] header. Similarly, to change the keep-alive 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.

SendLimit=x/y

(v2008.10.22+) SMSCSendLimit=x/y setting can specify that the gateway will send no more than x messages per y seconds. If y is not specified, then the default is 1. For example, to limit a connection to 1 message every 2 seconds, specify SendLimit=1/2. To limit a connection to 3 messages per second, specify SendLimit=3 or SendLimit=3/1.

SuccessStatusCodes=####,####,####,…
RetryStatusCodes=####,####,####,…

These settings allow selected MM7 status codes to be classified as success or retry status codes. By default, NowSMS accepts only StatusCode 1000 as an indication of successful message submission. To add additional status codes, 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,define RetryStatusCodes=2001,4000,4006,4007 (comma delimited list of status codes, include the default StatusCodes that should be retried).

VASP.INI, [DomainMapping] section:

This section different source/sender MM4 domain names to be used 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.