Thursday, 26 June 2008

SMSC Speed Limits

In a perfect world, we'd all be able to send SMS messages as fast as we wanted.

But the reality is that there is a combination of commercial and technical limitations throughout the message distribution chain.

NowSMS has commercial limitations where outbound message delivery is throttled at a per minute or per second license limit.

Individual SMS service providers have similar limits that they impose.

When you have a single SMS service provider connection, it is often easiest to match a NowSMS license limit with the license limit of your SMS service provider connection.

But sometimes this speed limit matching isn't a perfect match.

For example, if your NowSMS system is connecting to multiple SMSC providers, NowSMS may try to send messages to one or more of your SMSC connections which exceeds the limit imposed by your SMS service provider.

What happens when you exceed the speed limit imposed by your SMS service provider?

It depends. There is no single answer, because there are a lot of different software implementations used by different SMS service providers.

In some cases, no problems occur. If the SMS service provider throttles back the speed at which it returns responses to NowSMS, NowSMS automatically slows down the connection to the speed desired by the service provider. (If you define an SMPP async window size that is too large, however, you may end up with retry errors and duplicate messages in this situation. A good rule of thumb is that the SMPP async window size should not exceed 2, or maybe 3, times the number of messages per second that the connection will accept.)

In other cases, the SMSC starts returning throttling errors, the dreaded ESME_RTHROTTLED. But throttling errors can occur for different reasons. They could also occur because the overall SMS system message queue is too large, and the provider needs all customers to slow down to give the system some time to catch up. By default, a throttling error causes NowSMS to have to retry the current message, and to wait 5 seconds before submitting the next message.

5 seconds is a long time to wait for sending the next message if you're exceeding a 10 message per second limit. However, the default throttling delay of 5 seconds exists because when you're connecting directly to a mobile operator, most of these mobile operators have acceptance testing procedures where they test your connection before allowing you to connect to their system. And one of the tests is always the handling of the throttling error, where historically they have wanted to see longer delays.

This throttle error delay can be adjusted by editing SMSGW.INI, and under the [SMSGW] section header, adding SMPPThrottleErrorDelay=##, where ## is a number of seconds to delay. SMPPThrottleErrorDelay=0 will remove any delay.

If you are receiving throttling errors, or possibly other error conditions, because you are exceeding the provider imposed speed limit of your SMSC connection, the best solution is to configure NowSMS to apply this speed limit to that particular SMSC connection.

It is possible to manually edit the SMSGW.INI file, and under the settings header for a particular SMSC connection (e.g., [SMPP - server:port]), use the following setting to define a speed limit for that connection only using the SMSCSendLimit=x/y setting.

The 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.

In versions of NowSMS prior to v2008.06.03, this setting did not work very well for limits higher than around 50 messages per second. However, in more recent versions of NowSMS, this setting works well for speed limits higher than 50 messages per second.

While on the subject of SMSC speed limits, it is also worth mentioning that when NowSMS is used as an SMPP server, it can apply speed limits against the accounts that are submitting messages via SMPP (but not HTTP). When defining an "SMS Users" account, there is a setting to "Limit Speed of receiving messages for this account" which uses a similar "x messages / y seconds" type of definition.

It is also worth mentioning that this "SMS Users" account setting can also limit the number of SMPP connections that the client is allowed to make. Under the "SMPP Options" on the "Web" page of the NowSMS configuration, there is a system default limit for defining the maximum number of connections per individual client. However, this setting can be overridden on a per-account basis using the "Limit speed of receiving messages for this account" setting. In the "# Messages/# Seconds" field, enter a value of x/y/z, where "x" is the number of messages allowed per "y" seconds, and "z" 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/z, which indicates no limits, but specifies "z" as the connection limit for this account.

Monday, 23 June 2008

Migrating to a Multiple Server MMSC, WAP Gateway, or NowSMS Gateway

The recent postings about multiple server redundant NowSMS or NowWAP configurations have generated a lot of questions from existing customers about how to migrate an existing installation to a multiple server configuration.

Migrating an existing NowWAP installation to a multiple server configuration is the easiest task to explain. That's because there is no shared data storage requirement, and minimal synchronisation required between the multiple servers. The only synchronisation required is for the RADIUS accounting feed from the access server, which supplies MSISDN information.

Simply install NowWAP on a new server. Copy WAPGW.INI from the existing server to the new server to copy over the existing configuration.

Next, edit WAPGW.INI on each server. Under the [WAPGW] header, add a RadiusForward1=ip.address entry, where ip.address is the IP address of the other NowWAP server. If there are more than two servers, on each of the servers, add additional RadiusForward#=ip.address entries as required (e.g., RadiusForward2=ip.address, RadiusForward3=ip.address, each on a separate line).

Now you just have to put a network load balancer in front of the servers, so that the multiple servers have a single shared IP address that is visible to your end users. (Note that you'll want to use the IP address of your existing NowWAP server as the shared IP address, so you will need to change the IP address of the existing NowWAP server in order to enable the load balancer to use that address as the shared IP address.)

One important note about the network load balancer. In addition to the standard "stickiness" that load balancers expect to support for TCP/HTTP connections, the load balancer also needs to support "stickiness" for the UDP protocol in order to properly support WAP/WSP clients. Otherwise clients using the WAP/WSP protocol will end up opening up concurrent sessions on multiple servers, using more licenses than would otherwise be required. By default, many load balancers only maintain UDP "stickiness" for a short time period, like 30 seconds, but we recommend a value of at least 5 minutes (300 seconds) for best results.

Another note ... if you are using an evaluation/trial copy of NowWAP for one or more of the multiple servers, be aware that the evaluation license only allows 10 concurrent sessions. Evaluation licenses that support larger concurrent session limits can be provided if you contact us directly.

A document that explains the NowWAP multiple server configuration process can be downloaded at http://www.nowsms.com/download/nowwap-ft.pdf. But basically, it's a very easy process.

Migrating an existing NowSMS installation to a multiple server configuration is a slightly more complex task.

The document that explains the multiple server NowSMS configuration can be downloaded at http://www.nowsms.com/download/nowsms-ft.pdf. That document provides a good basic explanation, but it is more oriented toward a new installation, rather than converting an existing single server installation into a multiple server installation.

The conversion process is more difficult because each of the shared NowSMS servers need to access a common data store that contains configuration information, user account databases, and various message queues and data stores.

In a single server installation, all of the configuration information, user account databases, message queues and data stores, are stored under the NowSMS program directory (or under the ProgramData\NowSMS directory in Windows Vista or Windows Server 2008) on that server.

To migrate to a multiple server installation, all of this shared data must be moved/copied to a shared network storage server. Then your existing NowSMS server needs to be reconfigured so that it looks for all of the shared data on the network storage server instead of on the local server.

The easiest way to do this is to copy the existing NowSMS program directory (or ProgramData\NowSMS directory on Vista or Windows Server 2008) to the shared network storage server. Of course, you should stop the NowSMS services before doing this.

To avoid confusion, next, rename the existing NowSMS program directory so that you do not inadvertantly start the NowSMS server with an out-of-date copy of data.

Re-install NowSMS so that the NowSMS program directory is recreated. When the NowSMS configuration program dialog is displayed at the end of the installation, press Cancel to exit the configuration program. When the prompt is displayed indicating that the "Service is not active", press No so that the services are not started.

In the NowSMS program directory, create a file named SHAREDVOLUME.INI. The contents of this file should be:

[SharedVolume]
SharedVolume=\\server\path

Where \\server\path is the location of the shared copy of the NowSMS configuration data.

If you are using NowSMS as an SMS gateway, we also recommend adding MessageIDPrefix=xxx to this configuration file, where "xxx" is a unique prefix that identifies this server. This prevents a problem where multiple SMS gateways may assign duplicate message IDs.

Run the NowSMS configuration program, and you should see your previously existing configuration information, all of which is now being loaded from the shared data storage location.

If "Run as Service" is not checked for both services, check this setting for both services, which will cause both services to start. We then recommend pressing the "Stop" button for both services to stop the services until the next step of the process can be verified.

Before you start the NowSMS services to operate off of the shared data storage location, there is one more important consideration. The SMS gateway and MMSC operate under the services context of the Windows operating system. By default, they use the built-in LocalSystem account.
If the shared network storage requires a username and password login for access, LocalSystem will attempt to authenticate as "guest" with no password. This should not be a problem in most environments, where the shared data storage server should be protected by firewalls, and/or preferrably on a private IP network accessible only to the NowSMS servers.

However, if you need to authenticate to the shared data storage server with a username and password, it is necessary to configure the NowSMS services to login to Windows with a username and password that matches that required by the remote server. To configure this username and password, it is necessary to edit the NowSMS service attributes under the "Services" configuration dialog, which can be found in the "Administrative Tools" area of Windows. Right click on "Now SMS/MMS Gateway", and select "Properties", the on the "Log On" page, configure the user account and password to be used. Repeat the process for the "Now MMSC" service.

Start the NowSMS services (either through the Windows Services dialog, or via the NowSMS configuration program).

Send some test messages to verify that NowSMS is properly using the SHAREDVOLUME.INI settings.

It is now possible to add additional servers, configured with the same SHAREDVOLUME.INI settings.

NowSMS Shared Volume Files and Directories

When you're migrating an existing single server installation of NowSMS to a multiple server installation, you may be interested in knowing exactly which files and directories are actually required on the shared volume.

Here is a brief description of the shared files and directories. Note that all of these files and/or directories may not exist in all installations, as they are only created if needed.

SMSGW.INI
MMSC.INI
MMSBLOCK.TXT (optional configuration file)
MMSCUSERS.DB
MMSCUSERS.D2A/I (old "MMSC Users" files from pre-NowSMS 2006)
SMSUSERS.D2A/I
VASPIN.D2A/I
VASPOUT.D2A/I

(Note: It is anticipated that any .D2A/I files in the above list will be migrated to .DB files in future versions.)

BULKQ (outbound SMS message queue for messages sent to large # of recipients)
DLISTS (distribution lists created via web interface)
IPNOTIFY (WAP push notification queue for IP-based notification in lab environments)
MMS-IN (2-way received MMS)
MMSCDATA (MMSC message store for local "MMSC Users")
MMSCIN (inbound message queue for messages received via MM4, SMTP, and delivery notifications)
MMSCOUT (outbound message queue for SMTP, and some MM4 acknowledgments)
MMSCUSERS (statistics and message counters for local "MMSC Users")
MMSSMS (message store for MMS messages converted to SMS with web link)
OTA (used for pre-configured OTA files)
OUTPPGQ (WAP push notification queue for when an external PPG is being used)
Q (outbound SMS message queue)
SMPPDATA (SMS message ID tracking files ... ActiveUsers directory is not part of the shared volume configuration)
SMS-IN (2-way received SMS queue)
UAPROF (cached User-Agent profiles for MMSC)
USERS (SMS message queues for local user accounts)
VASPIN (configuration information for "MMSC VASP" accounts)
VASPOUT (configuration information for "MMSC Routing" accounts)
VASPQ (message queue for "MMSC Routing" accounts)

Additional shared volume files and directories may be added in future releases, so this should not be considered an exhaustive list.

The following files/directories are created in the NowSMS directory structure local to each server:

UID.DAT (SMS message-id tracking file)
*.CTR (statistic counters)
*.ERR (error condition tracking files)
*.EXE (program files)
*.DLL (program files)
*.TMP (temporary files)

AUDIOBIN (program files)
HTML (web interface templates)
IMAGEBIN (program files)
MMSCADMIN (web interface templates)
MMSINQ (in-process receiving message queue for MMS messages being received via GSM modem)
SMPPDATA\ActiveUsers (active SMPP client connection tracking)
STATS (statistic counters)
TEMP (temporary files)
WEBADMIN (web interface templates)

Thursday, 19 June 2008

NowSMS in Fault Tolerant or Redundant Load Balanced Environment

For many configurations it is desirable to install NowSMS on multiple servers in order to achieve fault tolerance and/or improved throughput and performance. NowSMS offers extreme configuration flexibility to facilitate these requirements.

This document outlines the multi-server configuration options that exist for NowSMS v2008.06.03 and later versions.

Preferred Solution for Load-Balanced Multi-Server NowSMS Configuration

For most load-balanced multi-server installations it is desirable for each NowSMS server to share the exact same configuration information (SMSC and MMSC connections, user accounts) and message queues.

To run NowSMS in this configuration, the NowSMS program files are installed locally on each server. A load balancer is used to route network traffic to any of the NowSMS servers.

The shared configuration information and message queues are stored on a shared (often fault-tolerant) network storage server.

After installing NowSMS on each of the load balanced servers it is necessary to then create a special file named SHAREDVOLUME.INI in the NowSMS program directory. In this file, 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 and store all configuration files and message queues.

MessageIDPrefix=xxx

The "MessageIDPrefix" setting specifies a prefix that should be added to all SMS message IDs generated by NowSMS. By specifying a unique value for this setting on each NowSMS server, this ensures that the message IDs that NowSMS generates are unique across each server in 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\

The "LogDirectory" setting 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\

The "DebugLogDirectory" setting 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.)



Advanced and Custom Multi-Server Configurations

The SHAREDVOLUME.INI solution is ideal for most load-balanced multi-server NowSMS installations. However, for some installations it may be desirable to have slightly different configurations on each server, while sharing some message queues. In those installations, rather than using the SHAREDVOLUME.INI file, settings for individual shared queues or configuration information can be applied in the SMSGW.INI or MMSC.INI file by advanced users.

The following advanced settings are supported for this purpose:

QDir=d:\path or QDir=\\server\path

This setting can be applied in the [SMSGW] section of the SMSGW.INI file to specify the location of the outbound SMS message queue. By default this is the "Q" subdirectory of the NowSMS installation.

BulkQDir=d:\path or BulkQDir=\\server\path

This setting can be applied in the [SMSGW] section of the SMSGW.INI file to specify the location of the outbound bulk SMS message queue. This message queue is used only when the web interface is used to submit the same message to a large number of recipients. By default this is the "BulkQ" subdirectory of the NowSMS installation.

MessageIDTrackingDir=d:\path or MessageIDTrackingDir=\\server\path

This setting can be applied in the [SMSGW] section of the SMSGW.INI file to specify the location of the SMPP receipt message id tracking database. By default this is the "SMPPData" subdirectory of the NowSMS installation.

UsersDir=d:\path or UsersDir=\\server\path

This setting can be applied in the [SMSGW] section of the SMSGW.INI file to specify the location of the "SMS Users" database, which contains all "SMS Users" account information and pending message queues. By default this is the "Users" subdirectory of the NowSMS installation and the SMSUsers.D2A/D2I files in the NowSMS directory.

SMSInDir=d:\path or SMSInDir=\\server\path

This setting can be applied in the [SMSGW] section of the SMSGW.INI file to specify the location of the SMS-IN directory which is used to queue received SMS messages that are pending for delivery to a 2-way command. By default this is the "SMS-IN" subdirectory of the NowSMS installation.

DataDir=d:\path or DataDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of the MMS Message Store for messages pending delivery. By default this is the "MMSCData" subdirectory of the NowSMS installation.

MMSDir=d:\path or MMSDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of the MMS-IN directory that is used when received MMS messages are converted to a file/ directory based interface. By default this is the "MMS-IN" subdirectory of the NowSMS installation.

MMSCUsersDir=d:\path or MMSCUsersDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of the "MMSC Users" database. By default this is the "MMSCUsers" subdirectory of the NowSMS installation, and the MMSCUsers.DB file in the NowSMS directory.

MMSSMSDataDir=d:\path or MMSSMSDataDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of the MMS Message Store for messages that have been converted to an "SMS with web link". By default this is the "MMSSMS" subdirectory of the NowSMS installation.

VASPConfigDir=d:\path or VASPConfigDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of all configuration information for incoming and outgoing MMSC routes (e.g., "MMSC VASP" and "MMSC Routing" definitions). By default this is the "VASPIN" and "VASPOUT" subdirectories of the NowSMS installation, along with the VASPIN.D2A/D2I and VASPOUT.D2A/D2I files.

VASPQDir=d:\path or VASPQDir=\\server\path

This setting can be applied in the [MMSC] section of the MMSC.INI file to specify the location of the MMS message queue for messages pending delivery to an external MMSC ("MMSC Routing"). By default this is the "VASPQ" subdirectory of the NowSMS installation.


Note: A PDF version of this document is available at the following link: http://www.nowsms.com/download/nowsms-ft.pdf

Tuesday, 17 June 2008

NowWAP in Fault Tolerant or Redundant Load Balanced Environment

For many configurations it is desirable to install NowWAP on multiple servers in order to achieve fault tolerance and/or improved throughput and performance.

The only special consideration when running NowWAP in this type of clustered configuration is if NowWAP is configured to use RADIUS accounting to supply MSISDN information to one or more content servers, such as an MMSC.

This document describes a new feature that exists in NowWAP v2008.06.03 and later releases, which allows multiple NowWAP gateways to share this MSISDN information.

To run NowWAP in a load balanced configuration the NowWAP program files are installed locally on each server.

A load balancer is used to route network traffic to any of the NowWAP servers.

In this type of environment there is one shared IP address from which the load balancer accepts requests, routing them to any of the available NowWAP servers.

In addition to the single shared IP address, each of the NowWAP servers has a unique local IP address that is not shared.

The access server is configured to send RADIUS accounting packets to the shared IP address. Based upon server availability, the load balancer will route the RADIUS accounting packet to one of the NowWAP servers (any of the servers could be used).

All of the NowWAP servers are configured to listen for RADIUS accounting packets when "Activate Radius Accounting for MSISDN Collection" is checked on the "MSISDN" page of the NowWAP configuration.

The same "Port" number and "Shared Secret" should be configured on all NowWAP servers, using the values expected by the access server.

Manual edits must then be applied to the WAPGW.INI file of each NowWAP server.

For an example of this configuration, assume that three NowWAP servers are load balanced using a shared IP address of 10.10.10.10. The non-shared (local) IP addresses for the three servers are 10.10.10.1, 10.10.10.2, and 10.10.10.3.

The access server is configured to send RADIUS accounting packets to 10.10.10.10 (the shared IP address).

Manual edits must then be applied to the WAPGW.INI file of each NowWAP server as per the diagram shown below.



Troubleshooting Notes

1) For troubleshooting purposes it may be easiest to first configure the access server to send the RADIUS Accounting packets to the non-shared IP address of just one of the NowWAP servers. Once that is working properly, change the access server to send the RADIUS Accounting packets to the shared IP address of the load balanced cluster.

2) NowWAP logs all received RADIUS transactions in log files named RADIUS-yyyymmdd.LOG (where yyyymmdd is the current date). Refer to these log files for details regarding RADIUS Accounting packets received by NowWAP.

3) For further troubleshooting, it may be helpful to use a network traffic analyzer, such as Wireshark (formerly known as Ethereal).


A PDF version of this document is available at the following link: http://www.nowsms.com/download/nowwap-ft.pdf.

Thursday, 12 June 2008

Mobile Operator MMSC Settings

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

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

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

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

This posting contains an updated list of mobile operator MMSC settings. You can also download this list from http://www.nowsms.com/download/mmsop.ini. Save the "mmsop.ini" file to your NowSMS program directory, and NowSMS will automatically use the updated list.

Or you can cut and paste the content of the "mmsop.ini" file below:

[Albania - AMC]
APN=mms
WAPGateway=10.10.10.20
MMSURL=http://195.167.65.220:8002/

[Albania - Vodafone]
APN=vfalmms
WAPGateway=10.0.9.2
MMSURL=http://mmsc.vodafone.al

[Algeria - Djezzy]
APN=djezzy.mms
WAPGateway=172.24.97.158
MMSURL=http://172.24.97.152:10021/mmsc

[Algeria - Nedjma]
APN=nedjmamms
WAPGateway=192.168.52.3
MMSURL=http://10.10.111.1/
Username=mms
Password=mms

[Andorra - STA]
APN=mms
WAPGateway=192.168.21.50
MMSURL=http://mms.ad/mmsc

[Anguilla - Cable and Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Antigua & Barbuda - Cable and Wireless]
APN=internet
WAPGateway=10.20.5.34
MMMSURL=http://mmsc/

[Antigua & Barbuda - Digicel]
APN=wap.digicelantigua.com
WAPGateway=172.16.7.12
MMSURL=http://mmc.digiceljamaica.com/servlets/mms
Username=wapant
Password=wapant

[Argentina - CTI Movil]
APN=mms.ctimovil.com.ar
WAPGateway=170.51.255.240
MMSURL=http://mms.ctimovil.com.ar/
Username=ctimms
Password=ctimms999

[Argentina - Personal]
APN=mms
WAPGateway=172.25.7.31
MMSURL=http://172.25.7.31/
Username=mms
Password=mms

[Argentina - Unifon]
APN=mms.gprs.unifon.com.ar
WAPGateway=200.68.32.239
MMSURL=http://mms.tmovil.cl/
Username=mms
Password=mms

[Aruba - Digicel]
APN=wap.digicelaruba.com
WAPGateway=172.16.7.12
MMSURL=http://mmc.digiceljamaica.com/servlets/mms
Username=waparuba
Password=wap03aruba

[Aruba - Setar]
APN=mms.setar.aw
WAPGateway=209.88.130.210
MMSURL=http://mms.setar.aw/

[Australia - Telstra]
APN=telstra.mms
WAPGateway=10.1.1.155
MMSURL=http://10.0.3.70:8002/

[Australia - Vodafone]
APN=live.vodafone.com
WAPGateway=10.202.2.60
MMSURL=http://pxt.vodafone.net.au/pxtsend

[Australia - Yes Optus]
APN=mms
WAPGateway=61.88.190.10
MMSURL=http://mmsc.optus.com.au:8002/
Username=411
Password=optus

[Australia - 3]
APN=3services
WAPGateway=10.176.57.25
MMSURL=http://mmsc.three.net.au:10021/mmsc

[Austria - A1 MobilKom]
APN=A1.net
WAPGateway=194.48.124.71
MMSURL=http://mmsc.A1.net/
Username=ppp@A1plus.at

[Austria - One]
APN=web.one.at
WAPGateway=194.24.128.118
MMSURL=http://mmsc.one.at/mms/wapenc
Username= wap
Password= wap

[Austria - T-Mobile]
APN=gprsinternet
WAPGateway=10.12.0.2
MMSURL=http://mmsc.t-mobile.at/servlets/mms

[Austria - Drei]
APN=drei.at
WAPGateway=213.94.78.133
MMSURL=http://mmsc/

[Austria - Tele Ring]
APN=mms
WAPGateway=212.95.31.50
MMSURL=http://relay.mms.telering.at/
Username=wap@telering.at
Password=wap

[Azerbaijan - Azercell]
APN=mms
WAPGateway=10.0.154.101
MMSURL=http://mms.azercell.com/cMMSC/post
Username=
Password=

[Azerbaijan - Bakcell]
APN=mms
WAPGateway=213.172.91.46
MMSURL=http://mms.bakcell.com/mms/wapenc

[Bahrain - Batelco]
APN=mms.batelco.com
WAPGateway=192.168.1.2
MMSURL=http://192.168.36.10/servlets/mms

[Bangladesh - Aktel]
APN=WAP
WAPGateway=192.168.23.7
MMSURL=http://192.168.23.4/wap

[Barbados - Digicel]
APN=wap.digicelbarbados.com
WAPGateway=172.16.7.12
MMSURL=http://mmc.digiceljamaica.com/servlets/mms
Username=wapbarb
Password=wap03barb

[Belarus - Velcom]
APN=mms.velcom.by
WAPGateway=10.200.15.15
MMSURL=http://mms.velcom.by/servlets/mms
Username=mms
Password=mms

[Belgium - Mobistar]
APN=mms.be
WAPGateway=212.65.63.143
MMSURL=http://mmsc.mobistar.be/
Username=mobistar
Password=mobistar

[Belgium - Mobistar (Tempo)]
APN=tempomms.be
WAPGateway=212.65.63.143
MMSURL=http://mmsc.mobistar.be/
Username=mobistar
Password=mobistar

[Belgium - Proximus]
APN=event.proximus.be
WAPGateway=10.55.14.75
MMSURL=http://mmsc.proximus.be/mms
Username=mms
Password=mms

[Belgium - BASE]
APN=internet.be
WAPGateway=212.88.139.44
MMSURL=http://mms.vox.lu/

[Bosnia & Herzegowina - BH Telecom]
APN=mms.bhmobile.ba
WAPGateway=195.222.56.41
MMSURL=http://mms.bhmobile.ba/cmmsc/post

[Bosnia & Herzegowina - Mobis]
APN=mms
WAPGateway=192.168.61.11
MMSURL=http://mms.065mobis.com/mms/wapenc

[Brazil - Claro]
APN=mms.claro.com.br
WAPGateway=200.169.126.10
MMSURL=http://mms.claro.com.br/
Username=claro
Password=claro

[Brazil - Oi]
APN=mmsgprs.oi.com.br
WAPGateway=192.168.10.50
MMSURL=http://200.222.42.204:8002/
Username=oimms
Password=oioioi

[Brazil - TIM]
APN=mms.tim.br
WAPGateway=200.179.66.242
MMSURL=http://mms.tim.br/
Username=tim
Password=tim

[Brazil - Brazil Telecom]
APN=mms.brt.br
WAPGateway=200.96.8.29
MMSURL=http://mms.brasiltelecom.com.br/
Username=brt
Password=brt

[Brazil - Telemig]
APN=mmsgprs.telemigcelular.com.br
WAPGateway=200.192.230.142
MMSURL=http://mms.telemigcelular.com.br
Username=celular
Password=celular

[Brazil - VIVO]
APN=mms.vivo.com.br
WAPGateway=200.142.130.104
MMSURL=http://termnat.vivomms.com.br:8088/mms
Username=vivo
Password=vivo

[Brunei - DST]
APN=dst.mms
WAPGateway=10.100.6.101
MMSURL=http://mms.dst.com.bn/mmsc
Username=mms
Password=mms

[Bulgaria - Globul]
APN=mms.globul.bg
WAPGateway=192.168.87.11
MMSURL=http://mmsc1.mms.globul.bg:8002/
Username=mms

[Bulgaria - Mtel]
APN=mms-gprs.mtel.bg
WAPGateway=10.150.0.22
MMSURL=http://mmsc/
Username=mtel
Password=mtel

[Cambodia - Hello]
APN=hellomms
WAPGateway=192.168.205.20
MMSURL=http://mms.iq2mobile.com/

[Canada - Rogers]
APN=media.com
WAPGateway=172.25.0.107
MMSURL=http://mms.gprs.rogers.com/
Username=media
Password=mda01

[Cayman Islands - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Chile - Entel PCS]
APN=mms.entelpcs.cl
WAPGateway=10.99.0.10
MMSURL=http://mmsc.entelpcs.cl/
Username=entelmms
Password=entelpcs

[Chile - Telefonica]
APN=mms.tmovil.cl
WAPGateway=172.17.8.11
MMSURL=http://mms.tmovil.cl/
Username=mms
Password=mms

[China - China Mobile]
APN=cmwap
WAPGateway=10.0.0.172
MMSURL=http://mmsc.monternet.com/

[Croatia - VIPNet]
APN=mms.vipnet.hr
WAPGateway=212.91.99.91
MMSURL=http://mms.vipnet.hr/servlets/mms

[Cyprus - Areeba]
APN=mms.areeba.com.cy
WAPGateway=172.24.97.1
MMSURL=http://mms.areeba.com.cy/mmsc

[Cyprus - CytaMobile Vodafone]
APN=cytamobile
WAPGateway=212.31.96.161
MMSURL=http://mmsc.cyta.com.cy/
Username=user
Password=pass

[Czech Republic - Eurotel]
APN=mms
WAPGateway=160.218.160.218
MMSURL=http://mms.eurotel.cz:8002/
Username=mms
Password=mms

[Czech Republic - O2]
APN=mms
WAPGateway=160.218.160.218
MMSURL=http://mms.eurotel.cz:8002/

[Czech Republic - Oskar]
APN=mms
WAPGateway=10.11.10.111
MMSURL=http://mms/
Username=mms
Password=mms

[Czech Republic - T-Mobile]
APN=mms.t-mobile.cz
WAPGateway=10.0.0.10
MMSURL=http://mms/
Username=mms
Password=mms

[Denmark - 3]
APN=data.tre.dk
WAPGateway=172.16.1.25
MMSURL=http://mms.3.dk/

[Denmark - Sonofon]
APN=sonofon
WAPGateway=212.88.64.8
MMSURL=http://mms.sonofon.dk/

[Denmark - TDC]
APN=mms
WAPGateway=194.182.251.15
MMSURL=http://192.168.241.114:8002/

[Denmark - Telia]
APN=www.mms.telia.dk
WAPGateway=193.209.134.131
MMSURL=http://mms.telia.dk/
Username=telia
Password=1010

[Dominica - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Egypt - MobileNil]
APN=Mobinilmms
WAPGateway=10.7.13.24
MMSURL=http://10.7.13.24:8002/

[Egypt - Vodafone]
APN=mms.vodafone.com.eg
WAPGateway=163.121.178.2
MMSURL=http://mms.vodafone.com.eg/servlets/mms

[Estonia - Elisa]
APN=mms
WAPGateway=194.204.2.6
MMSURL=http://194.204.2.10/

[Estonia - EMT]
APN=mms.emt.ee
WAPGateway=217.71.32.82
MMSURL=http://mms.emt.ee/servlets/mms

[Estonia - Tele 2]
APN=mms.tele2.ee
WAPGateway=193.12.40.6
MMSURL=http://mmsc.tele2.ee/

[Finland - Alands]
APN=mms.amt.aland.fi
WAPGateway=194.110.177.70
MMSURL=http://mms.amt.aland.fi/

[Finland - DNA]
APN=mms
WAPGateway=213.161.41.57
MMSURL=http://mmsc.dnafinland.fi/
Username=dna
Password=mms

[Finland - Elisa]
APN=mms
WAPGateway=213.161.41.57
MMSURL=http://mms.elisa.fi/

[Finland - Go Mobile]
APN=mms.gomobile.fi
WAPGateway=10.1.1.11
MMSURL=http://mmsc.gomobile.fi/

[Finland - PGFree]
APN=mms.pgfree.com
WAPGateway=10.1.1.1
MMSURL=http://mmsc.pgfree.fi/

[Finland - TeliaSonera]
APN=wap.sonera.net
WAPGateway=195.156.25.33
MMSURL=http://mms.sonera.fi:8002/

[France - Bouygues]
APN=mmsbouygtel.com
WAPGateway=62.201.137.17
MMSURL=http://mms.bouyguestelecom.fr/mms/wapenc

[France - Orange]
APN=orange.acte
WAPGateway=192.168.10.200
MMSURL=http://mms.orange.fr/
Username=orange
Password=orange

[France - SFR]
APN=mmssfr
WAPGateway=10.151.0.1
MMSURL=http://mms1/

[Georgia - Magti]
APN=mms.ge
WAPGateway=81.95.160.1
MMSURL=http://mms.magticom.ge/

[Germany - E-Plus]
APN=internet.eplus.de
WAPGateway=212.23.97.153
MMSURL=http://mms/eplus
Username=mms
Password=eplus

[Germany - O2]
APN=internet
WAPGateway=195.182.114.52
MMSURL=http://10.81.0.7:8002/

[Germany - T-Mobile]
APN=mms.t-d1.de
WAPGateway=193.254.160.3
MMSURL=http://mms.t-mobile.de/servlets/mms
Username=t-mobil
Password=mms

[Germany - Vodafone D2]
APN=event.vodafone.de
WAPGateway=139.7.29.17
MMSURL=http://139.7.24.1/servlets/mms

[Greece - Cosmote]
APN=mms
WAPGateway=10.10.10.20
MMSURL=http://195.167.65.220:8002/

[Greece - Q-Telecom]
APN=q-mms.myq.gr
WAPGateway=192.168.80.134
MMSURL=http://mms.myq.gr/

[Greece - TIM]
APN=mnet.b-online.gr
WAPGateway=192.168.200.11
MMSURL=http://192.168.200.95/servlets/mms
Username=wap
Password=wap

[Greece - Vodafone]
APN=mms.vodafone.net
WAPGateway=213.249.19.49
MMSURL=http://mms.vodafone.gr/
Username=user
Password=pass

[Grenada - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Haiti - Digicel]
APN=wap.digicelha.com
WAPGateway=172.20.134.12
MMSURL=http://mmc.digicelhaiti.com/servlets/mms

[Hong Kong - CSL]
APN=hkcsl
WAPGateway=192.168.59.51
MMSURL=http://192.168.58.171:8002/

[Hong Kong - New World]
APN=mms
WAPGateway=192.168.111.1
MMSURL=http://mmsc.nwmobility.com:8002/

[Hong Kong - Orange]
APN=mms.orangehk.com
WAPGateway=10.30.15.53
MMSURL=http://10.30.15.51:10021/mmsc
Username=orange
Password=1234

[Hong Kong - Peoples]
APN=peoples.mms
WAPGateway=172.31.31.36
MMSURL=http://mms.peoples.com.hk/mms

[Hong Kong - SmarTone]
APN=smartone
WAPGateway=10.9.9.9
MMSURL=http://mms.smartone.com.hk/server

[Hong Kong - Sunday]
APN=smms
WAPGateway=10.131.2.1
MMSURL=http://mmsc.mms.sunday.com:8002/

[Hong Kong - 3]
APN=mobile.three.com.hk
WAPGateway=172.20.99.240
MMSURL=http://mms.um.three.com.hk:10021/mmsc

[Hungary - Panon]
APN=mms
WAPGateway=193.225.154.22
MMSURL=http://mmsc.pgsm.hu/

[Hungary - T-Mobile (Westel)]
APN=mms-westel
WAPGateway=212.51.126.10
MMSURL=http://mms.westel900.net/servlets/mms
Username=mms
Password=mms

[Hungary - Vodafone]
APN=mms.vodafone.net
WAPGateway=80.244.97.2
MMSURL=http://mms.vodafone.hu/servlets/mms

[India - Airtel]
APN=airtelmms.com
WAPGateway=100.1.201.172
MMSURL=http://100.1.201.171:10021/mmsc

[India - BPL]
APN=mizone
WAPGateway=10.0.0.10
MMSURL=http://mms.bplmobile.com:8080

[India - CellOne]
APN=bsnlmms
WAPGateway=10.31.54.2
MMSURL=http://10.31.53.18/mms/
Username=ppp
Password=ppp123

[India - Hutch Vodafone]
APN=portalnmms
WAPGateway=10.10.1.100
MMSURL=http://mms1.live.vodafone.in/mms/

[India - Idea]
APN=mmsc
WAPGateway=10.4.42.15
MMSURL=http://10.4.42.21:8002/

[Indonesia - IM-3]
APN=mms.indosat-m3.net
WAPGateway=10.19.19.19
MMSURL=http://mmsc.m3-access.com/
Username=mms
Password=im3

[Indonesia - ProXL]
APN=www.xlmms.net
WAPGateway=202.152.240.50
MMSURL=http://mmc.xl.net.id/servlets/mms
Username=xlgprs
Password=proxl

[Indonesia - Sat-C]
APN=mms.satelindogprs.com
WAPGateway=202.152.162.88
MMSURL=http://mmsc.satelindogprs.com/
Username=satmms
Password=satmms

[Indonesia - Telkomsel]
APN=mms
WAPGateway=10.1.89.150
MMSURL=http://mms.telkomsel.com/
Username=wap
Password=wap123

[Indonesia - Mentari]
APN=indosatmms
WAPGateway=10.19.19.19
MMSURL=http://mmsc.indosat.com/
Username=indosat
Password=indosat

[Ireland - Vodafone]
APN=mms.vodafone.net
WAPGateway=10.24.59.200
MMSURL=http://www.vodafone.ie/mms
Username=dublin
Password=dublin

[Ireland - Meteor]
APN=mms.mymeteor.ie
Username=my
Password=mms
WAPGateway=10.85.85.85
MMSURL=http://mms.mymeteor.ie

[Ireland - O2]
APN=wap.dol.ie
Username=gprs
Password=gprs
WAPGateway=62.40.32.40
MMSURL=http://mmsc.mms.o2.ie:8002

[Ireland - O2 (PrePaid)]
APN=pp/wap.o2.ie
Username=gprs
Password=gprs
WAPGateway=62.40.32.40
MMSURL=http://mmsc.mms.o2.ie:8002

[Ireland - 3]
APN=3ireland.ie
WAPGateway=http://mms.3ireland.ie:8799
MMSURL=http://mms.um.3ireland.ie:10021/mmsc/

[Israel - Orange]
APN=wap.orange.co.il
WAPGateway=192.118.11.55
MMSURL=http://192.168.220.15/servlets/mms

[Italy - TIM]
APN=mms.tim.it
WAPGateway=213.230.130.89
MMSURL=http://mms.tim.it/servlets/mms

[Italy - Vodafone]
APN=mms.vodafone.it
WAPGateway=10.128.224.10
MMSURL=http://mms.vodafone.it/servlets/mms

[Italy - Wind]
APN=mms.wind
WAPGateway=212.245.244.11
MMSURL=http://mms.wind.it/

[Italy - 3]
APN=tre.it
WAPGateway=http://62.13.171.3:8799
MMSURL=http://10.216.59.240:10021/mmsc
Username=tre
Password=tre

[Jamaica - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Jamaica - Digicel]
APN=wap.digiceljamaica.com
Username=wapuser
Password=wap03jam
WAPGateway=172.16.7.12
MMSURL=http://mmc.digiceljamaica.com/servlets/mms

[Jordan - MobileCom]
APN=mms.mobilecom.jo
Username=mms
Password=mms
WAPGateway=172.16.1.2
MMSURL=http://172.16.1.96/servlets/mms

[Jordan - Orange]
APN=mms.orange.jo
Username=mmc
Password=mmc
WAPGateway=172.16.1.2
MMSURL=http://172.16.1.96/servlets/mms

[Kazakhstan - K Mobile]
APN=mms.k-mobile
Username=@mms.k-mobile
Password=k-mobile
WAPGateway=172.27.6.93
MMSURL=http://mms.kartel.kz/mms/wapenc

[Kazakhstan - Kcell]
APN=mms
WAPGateway=195.47.255.15
MMSURL=http://192.168.75.10:6001/MM1Servlet

[Kuwait - MTC]
APN=pps
Username=annyway
Password=online
WAPGateway=176.0.0.65
MMSURL=http://176.0.0.1/

[Kuwait - Wataniya]
APN=mms.wataniya.com
WAPGateway=194.126.53.64
MMSURL=http://action.wataniya.com/

[Liechtenstein - MobilKom]
APN=free.fl1.net
Username=ppp@a1plus.at
WAPGateway=194.48.124.71
MMSURL=http://mmsc.a1.net

[Lithuania - Omnitel]
APN=mms.omnitel.net
WAPGateway=10.16.35.50
MMSURL=http://mms:8002/

[Luxembourg - Lux GSM]
APN=mms.pt.lu
WAPGateway=194.154.192.88
MMSURL=http://mmsc.pt.lu

[Luxembourg - Tango]
APN=mms
Username=tango
Password=tango
WAPGateway=212.66.75.3
MMSURL=http://mms.tango.lu/

[Luxembourg - VOX]
APN=vox.lu
WAPGateway=212.88.139.44
MMSURL=http://mms.vox.lu/

[Macau - CTM]
APN=ctmmms
WAPGateway=192.168.99.3
MMSURL=http://mms.wap.ctm.net:8002/

[Macedonia - Cosmofon]
APN=mms
WAPGateway=10.10.10.20
MMSURL=http://195.167.65.220:8002/

[Malaysia - Celcom]
APN=mms.celcom.net.my
WAPGateway=10.128.1.242
MMSURL=http://mms.celcom.net.my/

[Malaysia - DiGi]
APN=digimms
WAPGateway=203.92.128.160
MMSURL=http://mms.digi.com.my/servlets/mms
Username=mms
Password=mms

[Malaysia - Maxis]
APN=net
WAPGateway=202.75.133.49
MMSURL=http://172.16.74.100:10021/mmsc
Username=maxis
Password=wap

[Malta - Vodafone]
APN=mms.vodafone.com.mt
WAPGateway=10.12.0.3
MMSURL=http://mms.vodafone.com.mt/servlets/mms

[Mexico - Telcel]
APN=mms.itelcel.com
WAPGateway=148.233.151.240
MMSURL=http://mms.itelcel.com/servlets/mms
Username=mmsgprs
Password=mmsgprs2003

[Moldova - MoldCell]
APN=mms
WAPGateway=10.0.10.10
MMSURL=http://mms.moldcell.md/cmmsc/post

[Monaco - Monacell]
APN=orange.acte
Username=orange
Password=orange
WAPGateway=192.168.1.2
MMSURL=http://mms.orange.fr/

[Montenegro - Promonte]
APN=mms.promonte.com
Username=mms
Password=mms
WAPGateway=192.168.246.5
MMSURL=http://mm.vor.promonte.com/

[Montserrat - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Morocco - IAM]
APN=mmsiam
WAPGateway=10.16.35.50
MMSURL=http://mms:8002/

[Morocco - Maroc Telecom]
APN=mmsiam
WAPGateway=10.16.35.50
MMSURL=http://mms:8002/

[Netherlands - KPN]
APN=portalmmm.nl
WAPGateway=10.10.100.20
MMSURL=http://mp.mobiel.kpn/mmsc

[Netherlands - Orange]
APN=MMS
WAPGateway=10.250.255.183
MMSURL=http://mms.orange.nl:8002/

[Netherlands - Telfort]
APN=multimedia
WAPGateway=193.113.200.195
MMSURL=http://mmsc.mms.telfort.nl:8002/

[Netherlands - T-Mobile]
APN=mms
Username=tmobilemms
Password=tmobilemms
WAPGateway=10.10.10.11
MMSURL=http://t-mobilemms/

[Netherlands - Vodafone]
APN=live.vodafone.com
Username=vodafone
Password=vodafone
WAPGateway=192.168.251.150
MMSURL=http://mmsc.mms.vodafone.nl/

[New Zealand - Vodafone]
APN=live.vodafone.com
WAPGateway=172.30.38.3
MMSURL=http://pxt.vodafoen.net.nz/pxtsend

[Nigeria - Glomobile]
APN=glomms
WAPGateway=10.100.82.4
MMSURL=http://mms.gloworld.com/mmsc
Username=mms

[Norway - Netcom]
APN=mms.netcom.no
Username=mms
Password=netcom
WAPGateway=193.209.134.133
MMSURL=http://mms/

[Norway - Telenor]
APN=mms
WAPGateway=10.10.10.11
MMSURL=http://mmsc/

[Oman - Nawras]
APN=mms.nawras.com.om
WAPGateway=10.128.240.16
MMSURL=http://10.128.240.16/servlets/mms

[Oman - Oman Mobile]
APN=mms
Username=mms
Password=mms
WAPGateway=192.168.203.35
MMSURL=http://mmsc.omanmobile.om:10021/mmsc

[Pakistan - Telenor]
APN=mms
Username=telenor
Password=telenor
WAPGateway=172.18.19.11
MMSURL=http://mmstelenor/

[Pakistan - Ufone]
APN=ufone.mms
WAPGateway=172.16.13.27
MMSURL=http://www.ufonemms.com:80/alias=id

[Panama - Cable & Wireless]
APN=apn01.cwpanama.com.pa
WAPGateway=172.25.3.5
MMSURL= http://mms.zonamovil.com.pa:80/i.bin

[Paraguay - VOX]
APN=vox.wap
WAPGateway=172.24.97.29
MMSURL=http://srvvirtual.vox.com.py/mmsc

[Philippines - Globe]
APN=mms.globe.com.ph
WAPGateway=192.40.100.20
MMSURL=http://192.40.100.22:10021/mmsc

[Philippines - Smart]
APN=mms
WAPGateway=10.102.61.46
MMSURL=http://10.102.61.238:8002/

[Philippines - SUN / Digitell]
APN=mms
WAPGateway=202.138.159.78
MMSURL=http://mmscenter.suncellular.com.ph/

[Poland - ERA]
APN=eramms
Username=eramms
Password=eramms
WAPGateway=213.158.194.57
MMSURL=http://mms.era.pl/servlets/mms

[Poland - Heyah]
APN=heyahmms
Username=heyah
Password=heyah
WAPGateway=213.158.194.57
MMSURL=http://mms.heyah.pl/ servlets/mms

[Poland - Idea]
APN=mms
Username=idea
Password=idea
WAPGateway=192.168.6.104
MMSURL=http://192.168.6.104/

[Poland - Orange]
APN=mms
Username=mms
Password=mms
WAPGateway=192.168.6.104
MMSURL=http://mms.orange.pl/

[Poland - Play]
APN=mms
WAPGateway=10.10.25.5
MMSURL=http://10.10.28.164/mms/wapenc

[Poland - Plus]
APN=mms.plusgsm.pl
Username=brak
Password=brak
WAPGateway=212.2.96.16
MMSURL=http://mms.plusgsm.pl:8002/

[Poland - Sami Swoi]
APN=wap.plusgsm.pl
WAPGateway=212.2.96.16
MMSURL=http://mms.plusgsm.pl:8002/

[Portugal - Optimus]
APN=mms
Username=mms
Password=mms
WAPGateway=62.169.66.1
MMSURL=http://mmsc:10021/mmsc

[Portugal - TMN]
APN=mmsc.tmn.pt
Username=tmn
Password=tmnnet
WAPGateway=10.111.2.16
MMSURL=http://mmsc/

[Portugal - Vodafone]
APN=vas.vodafone.pt
Username=vas
Password=vas
WAPGateway=213.30.27.63
MMSURL=http://mms/servlets/mms

[Qatar - Qtel]
APN=mms.qtel
Username=mms
Password=mms
WAPGateway=10.23.8.3
MMSURL=http://mmsr.qtelmms.qa/

[Romania - Connex-Vodafone]
APN=mms.connex.ro
Username=mms.connex.ro
Password=connex
WAPGateway=193.230.161.231
MMSURL=http://multimedia/servlets/mms

[Romania - Orange]
APN=mms
WAPGateway=62.217.247.252
MMSURL=http://wap.mms.orange.ro:8002/

[Russia - A Mobile]
APN=mms.mts.ru
Username=mts
Password=mts
WAPGateway=212.44.140.25
MMSURL=http://mmsc/

[Russia - Beeline]
APN=wap.beeline.ru
Username=beeline
Password=beeline
WAPGateway=192.168.17.1
MMSURL=http://192.168.17.7/servlets/mms

[Russia - Megafon]
APN=mms
WAPGateway=10.10.10.10
MMSURL=http://mmsc:8002/

[Russia - Motiv]
APN=mms.ycc.ru
Username=motiv
Password=motiv
WAPGateway=172.16.2.10
MMSURL=http://mms.ycc.ru/

[Russia - Smarts]
APN=mms.smarts.ru
Username=wap
Password=wap
WAPGateway=172.24.128.5
MMSURL=http://172.24.120.135/mms/wapenc

[Russia - USI]
APN=mms.usi.ru
WAPGateway=192.168.168.192
MMSURL=http://mms/

[Saint Kitts & Nevis - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Saint Lucia - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Saint Vincent & the Grenadines - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[Saudi Arabia - STC]
APN=mms.net.sa
WAPGateway=10.1.1.1
MMSURL=http://mms.net.sa:8002/

[Singapore - M1]
APN=miworld
WAPGateway=172.16.14.10
MMSURL=http://mmsgw:8002/
Username=65
Password=user123

[Singapore - Singtel]
APN=e-ideas
WAPGateway=165.21.42.84
MMSURL=http://mms.singtel.com:10021/mmsc
Username=65eideas
Password=eideas

[Singapore - StarHub]
APN=shmms
WAPGateway=10.12.1.80
MMSURL=http://mms.starhubgee.com.sg:8002/

[Slovakia - T-Mobile]
APN=mms
Username=mms
Password=mms
WAPGateway=192.168.1.1
MMSURL=http://mms/

[Slovenia - Izi Mobil]
APN=mms.izimobi
Username=izimobil
Password=izimobil
WAPGateway=213.229.249.40
MMSURL=http://mms.mobitel.si/servlets/mms

[Slovenia - Mobitel]
APN=mms.mobitel.si
Username=mobitel
Password=internet
WAPGateway=213.229.249.40
MMSURL=http://mms.mobitel.si/servlets/mms

[Slovenia - Si Mobil]
APN=mms.simobil.si
Username=simobil
Password=internet
WAPGateway=80.95.224.46
MMSURL=http://mmc/

[South Africa - MTN]
APN=myMTN
WAPGateway=196.11.240.241
MMSURL=http://mms.mtn.co.za/mms/wapenc
Username = mtnmms

[South Africa - Vodacom]
APN=internet
WAPGateway=196.6.128.6
MMSURL=http://mmsc.vodacom4me.co.za/

[Spain - Amena]
APN=amenamms
WAPGateway=172.22.188.25
MMSURL=http://mms.amena.com/
Username=MMS
Password=AMENA

[Spain - Telefonica Movistar]
APN=mms.movistar.es
WAPGateway=10.138.255.1
MMSURL=http://mms.movistar.com
Username=MOVISTAR@mms
Password=MOVISTAR

[Spain - Vodafone]
APN=mms.vodafone.net
WAPGateway=212.73.32.10
MMSURL=http://mmsc.vodafone.es/servlets/mms
Username=wap@wap
Password=wap125

[Sri Lanka - Dialog]
APN=www.dialogsl.com
WAPGateway=192.168.122.2
MMSURL=http://mms.dialog.lk:3130/mmsc

[Sweden - Vodafone]
APN=services.vodafone.net
WAPGateway=172.30.253.241
MMSURL=http://mms/

[Sweden - 3]
APN=data.tre.se
WAPGateway=172.16.1.25
MMSURL=http://mms.tre.se/

[Sweden - Tele2]
APN=internet.tele2.se
WAPGateway=130.244.202.30
MMSURL=http://mmsc.tele2.se/

[Sweden - Telenor]
APN=services.telenor.se
WAPGateway=172.30.253.241
MMSURL=http://mms/

[Sweden - Telia]
APN=mms.telia.se
Username=mms
Password=telia
WAPGateway=193.209.134.132
MMSURL=http://mmss/

[Switzerland - Orange]
APN=mms
WAPGateway=192.168.151.2
MMSURL=http://192.168.151.3:8002/

[Switzerland - Sunrise]
APN=mms.sunrise.ch
Username=mms
Password=mms
WAPGateway=212.35.34.75
MMSURL=http://mmsc.sunrise.ch/

[Switzerland - Swisscom]
APN=event.swisscom.ch
WAPGateway=192.168.210.2
MMSURL=http://mmsc.swisscom.ch/

[Syria - Syriatel]
APN=mms.syriatel.com
WAPGateway=172.20.5.6
MMSURL=http://mymms.syriatel.com/

[Taiwan - Chunghwa]
APN=emome
WAPGateway=10.1.1.1
MMSURL=http://mms.emome.net:8002/

[Taiwan - FarEasTone]
APN=fetnet01
WAPGateway=210.241.199.199
MMSURL=http://mms/

[Taiwan - KG Telcom]
APN=kgtmms
WAPGateway=172.28.33.5
MMSURL=http://mms.kgtmms.net.tw/mms/wapenc

[Taiwan - MoBiTai]
APN=gprs1
WAPGateway=192.168.77.5
MMSURL=http://mms.mobeelife.net/mms/wapenc
Username=gprs
Password=gprs

[Taiwan - TWN]
APN=mms
WAPGateway=10.1.1.2
MMSURL=http://mms/

[Taiwan - TransAsia]
APN=hank
WAPGateway=211.78.224.100
MMSURL=http://mms/

[Taiwan - Vibo]
APN=internet
WAPGateway=210.241.199.199
MMSURL=http://mms/

[Thailand - AIS]
APN=multimedia
WAPGateway=203.170.229.34
MMSURL=http://mms.mobilelife.co.th/

[Thailand - DTAC]
APN=mms
WAPGateway=203.155.200.133
MMSURL=http://mms.dtac.co.th:8002/
Username=-
Password=0

[Thailand - Mobilelife]
APN=multimedia
WAPGateway=203.170.229.34
MMSURL=http://mms.mobilelife.co.th/

[Thailand - Orange]
APN=mms
WAPGateway=10.4.7.39
MMSURL=http://mms.orange.co.th:8002/
Username=orange
Password=orange

[Tunisia - Tuntel]
APN=mms.t1
Username=mms@tt1
Password=mms
WAPGateway=213.150.186.106
MMSURL=http://mms/

[Turkey - Avea]
APN=mms
Username=mms
Password=mms
WAPGateway=213.161.151.201
MMSURL=http://mms.avea.com.tr/servlets/mms

[Turkey - Turkcell]
APN=mms
Username=mms
Password=mms
WAPGateway=212.252.169.217
MMSURL=http://mms.turkcell.com.tr/servlets/mms

[Turkey - Vodafone]
APN=mms
Username=mms
Password=mms
WAPGateway=217.31.233.18
MMSURL=http://mms:6001/MM1Servlet

[Turks & Caicos Islands - Cable & Wireless]
APN=internet
WAPGateway=10.20.5.34
MMSURL=http://mmsc/

[UAE - Etisalat]
APN=mms
WAPGateway=10.12.0.30
MMSURL=http:/mms/servlets/mms
Username=mms
Password=mms

[UK - BT]
APN=mobile.bt.uk
Username=user
Password=btmms
WAPGateway=62.239.21.123
MMSURL=http://mmsc.btmms.co.uk:8002/

[UK - O2]
APN=wap.o2.co.uk
WAPGateway=193.113.200.195
MMSURL=http://mmsc.mms.o2.co.uk:8002/
Username=o2wap
Password=password

[UK - Orange]
APN=orangemms
WAPGateway=192.168.224.10
MMSURL=http://mms.orange.co.uk/
Username=Orange
Password=Multimedia

[UK - Tesco]
APN=prepay.tesco-mobile.com
Username=tescowap
Password=password
WAPGateway=193.113.200.195
MMSURL=http://mmsc.mms.o2.co.uk:8002/

[UK - T-Mobile]
APN=general.t-mobile.uk
WAPGateway=149.254.211.10
MMSURL=http://mmsc.t-mobile.co.uk:8002/
Username=user
Password=one2one

[UK - Virgin]
APN=goto.virginmobile.uk
Username=user
WAPGateway=193.30.166.1
MMSURL=http://mms.virginmobile.co.uk:8002/

[UK - Vodafone]
APN=wap.vodafone.co.uk
WAPGateway=212.183.137.12
MMSURL=http://mms.vodafone.co.uk/servlets/mms

[UK - 3]
APN=three.co.uk
WAPGateway=217.171.129.2
MMSURL=http://mms.um.three.co.uk:10021/mmsc

[Ukraine - Kyivstar]
APN=mms.kyivstar.net
Username=mms
Password=mms
WAPGateway=10.10.10.10
MMSURL=http://mms.kyivstar.net/

[Ukraine - Life]
APN=mms
WAPGateway=212.58.162.230
MMSURL=http://mms.life.com.ua/cmmsc/post

[Ukraine - UMC]
APN=mms.umc.ua
Username=mms
Password=umc
WAPGateway=192.168.10.10
MMSURL=http://mmsc:8002/

[Uruguay - Ancel]
APN=mms
WAPGateway=200.40.246.2
MMSURL=http://mmsc.mms.ancuelutil.com.uy/

[Uruguay - Movistar]
APN=mmsapn.movistar.com.uy
Username=mmsuy
Password=mmsuy
WAPGateway=10.0.2.29
MMSURL=http://mmsc.movistar.com.uy/

[USA - AT&T Wireless (old)]
APN=proxy
WAPGateway=10.250.250.100
MMSURL=http://mmsc.mobile.attwireless.net/

[USA - AT&T Wireless / Cingular]
APN=wap.cingular
WAPGateway=66.209.11.61
MMSURL=http://mmsc.cingular.com/
Username=WAP@CINGULARGPRS.COM
Password=CINGULAR1

[USA - Suncom]
APN=mobileinternet
WAPGateway=http://66.150.33.125:8080
MMSURL=http://mms.suncom.net:8088/mms

[USA - T-Mobile]
APN=wap.voicestream.com
WAPGateway=216.155.165.50
MMSURL=http://216.155.174.84/servlets/mms

[Uzbekistan - Beeline]
APN=mms.beeline.uz
Username=beeline
Password=beeline
WAPGateway=172.30.30.166
MMSURL=http://mms.beeline.uz/mms/wapenc

[Uzbekistan - Unitel]
APN=mms.unitel
WAPGateway=10.10.0.10
MMSURL=http://mms.unitel.uz/was

[Vietnam - Mobifone]
APN=m-wap
Username=mms
Password=mms
WAPGateway=203.162.21.114
MMSURL=http://203.162.21.114/mmsc

[Vietnam - Vinafone]
APN=m3-mms
Username=mms
Password=mms
WAPGateway=10.1.10.46
MMSURL=http://mms.vinaphone.vnn.vn:8002/

[Yemen - Sabafon]
APN=mms
Username=wap
Password=wap
WAPGateway=192.168.30.174
MMSURL=http://mms.sabafon.com/

[Yugoslavia - Mobtel]
APN=mms
WAPGateway=217.65.192.33
MMSURL=http://mms.mobtel.co.yu/servlets/mms

[Yugoslavia - Monet]
APN=mms.monetcg.com
WAPGateway=10.0.5.19
MMSURL=http://192.168.180.100/servlets/mms

Tuesday, 10 June 2008

MMSC MM4 Interconnection Basics

MM4 is the standard protocol that is defined for connecting together two or more MMSCs.

MM4 is an SMTP based protocol, meaning that the MM4 protocol defines how MMS messages are encapsulated for delivery over the SMTP protocol.

In NowSMS, to define an MM4 interconnection, it is necessary to define two components.

The outbound connection to the other MMSC is defined under "MMSC Routing".

The inbound connection from the other MMSC is defined under "MMSC VASP".

Part 1: Outbound - "MMSC Routing"

To define an outbound/"MMSC Routing" for the MM4 connection to the other MMSC, here are the basic settings you need to know:

"Account Name" is a name that is used to identify the connection within NowSMS only.

"Account Description" is a description that is used to identify the connection within NowSMS only.

"Default Sender Address" should be left blank.

"Allow Sender Address Override" should be checked.

"Route Messages to this account for recipient phone numbers" should have a list of phone number patterns to be routed to this other MMSC ... e.g., +234*,+44*

Alternatively, instead of defining number patterns, it is possible to define this routing as the "Default Route" on the "MMSC Routing" page. This means that the route will be used as a default, unless a better match is found in another "MMSC Routing" definition. (For example, if another "MMSC Routing" was defined as the "Default Route", but this route had the number patterns +234*,+44* ... a message to +447777777777 would go this route instead of the "Default Route".)

"Route messages to VASP via" should be set to "MM4".

"Server Address" is the DNS host name or IP address for the external MM4 connection. It can have the following format: host.name, ip.address, host.name:#### or ip.address:#### .... the #### is a port number, if a port number is not specified, 25 (the standard SMTP port) is assumed.

"Login Name" and "Password" specify a username and password to be used for SMTP basic authentication. Most MMSCs do not use any type of username authentication, and they authenticate based upon IP addresses only. In that case, these fields should be left blank.

"E-Mail Domain" refers to the e-mail domain name for MMS messages that is used by the other system (e.g., phonenumber@domain.name).

"Message Format" is normally set to MM4, which means that standard MM4 headers are used in the messages. For special circumstances, the SMTP setting will avoid the use of MM4 specific headers.

"Request MM4 Ack" can be set to "Yes" or "No", depending on the requirements of the partner. It is usually best to start with "Yes", but some partners may reject messages unless this parameter is set to "No".

"3GPP MMS Version" should only be changed if a specific version is required by the partner.

"Max Connections" can be set to allow multiple concurrent connections to the partner for higher throughput. In most situations, this field can be left blank, where it defaults to 1.

Once this "MMSC Routing" definition is in place, any MMS messages that are addressed to a phone number that matches one of the patterns defined in "Route Messages to this account for recipient phone numbers" will be routed via this connection.

Part 2: Inbound - "MMSC VASP"

The next step is to define an inbound connection to allow your MMSC to accept messages from the other MMSC. This is done by defining an "MMSC VASP" account.

The "Account Name" and "Password" fields are used to define authentication parameters that allow the partner to submit messages to your MMSC. Most MMSCs do not support user-based authentication. In this case, you need to define the external IP address of the other MMSC as the "Account Name" and leave the "Password" field blank. If the MMSC has multiple IP addresses from which it will connect to you, then multiple "MMSC VASP" definitions must be defined.

"Account Description" is a description that is used only within NowSMS itself.

"IP Address Restrictions" is a comma delimited list of IP addresses from which the partner is allowed to connect. (This setting is somewhat redundant if the "Account Name" is an IP address.)

"Accept Connections via" should be set to MM4 for an MM4 connection.

"VASP Sender Address" should be left blank.

"Allow Sender Address Override" should be checked.

"MM4 Ack Routing" should be set to the name of the outbound "MMSC Routing" definition that you defined for routing messages to the other MMSC. (This ensures that acknowledgments are sent back to the correct server.)

"3GPP MMS Version" should be changed only if a specific version is required by your partner.

"MM7 Schema" is not used for MM4 connections.

"Remove White Space from XML" is not used for MM4 connections.

"MMSC Routing for Received Messages" should be set to "Standard MMS Delivery".

Credit balances and message sending limits are normally not used for MM4 interconnection partners.

Additional Information: MMS Accounting Callbacks

When external MMSC Routes exist, such as these MM4 connections, there are additional parameters in the MMS Accounting Callbacks, beyond the parameters defined in http://www.nowsms.com/support/bulletins/tb-nowsms-001.htm.

The following additional parameters may be present in both the MMSSend PreAuth Callback and the MMSSend Accounting Callback:

VASPIN=xxxxxxx - This parameter is present if the message was received via an inbound connection defined in the "MMSC VASP" list.

VASP=xxxxxxx - This parameter is present if the NowSMS MMSC is routing the message to an outbound connection defined in the "MMSC VASP" list.

Additional Information: MMS Routing Callbacks

Sometimes the "Route Messages to this account for recipient phone numbers" parameter setting in an "MMSC Routing" definition is not flexible enough for real world environments with Mobile Number Portability (MNP).

The NowSMS MMSC implements a dynamic MMS routing callback facility for environments where more advanced MMS routing capabilities are required.

The standard NowSMS MMSC configuration allows for MMS routing based upon phone number prefixes. However, in MNP environments, it may be necessary to query a database to determine how to properly route an MMS message.

Dynamic MMS routing callbacks also allow for MMS routing control based upon who submitted the MMS message. For example, it may be desirable to block MMS sending to international destinations for some or all MMS VASP accounts.

More information on these routing callbacks can be found in the following post:

http://blog.nowsms.com/2008/04/mobile-number-portability-mnp-and.html

Thursday, 5 June 2008

2-way SMS: Multiple operators with the same shortcode

This configuration issue comes up quite a bit.

Let's say that you are connecting directly to multiple mobile operators, and your service is using the same short code on each operator. When customers send a message in to your short code, you want to make sure that the reply is sent back via the same mobile operator as which the message was received.

Additionally, if that message from the customer is a trigger to begin receiving updates from your service, you want to ensure that any additional messages that you send to the customer get routed back through the same mobile operator SMSC connection.

I'm going to address the simple 2-way SMS reply first.

If you are using the same short code on both SMSC connections, then replies will not automatically be directed out via the same SMSC connection from which the original message was received. (If you are using different short codes, then make sure that the appropriate short code is configured as the "Default Sender Address" for the SMSC connection, and this situation will fix itself.)

How to resolve this situation when using the same short code on multiple SMSC connections?

There's a short easy answer, and a long more difficult answer.

Short (Easy) Answer:

If you're running NowSMS v2008.03.22 or later, edit SMSGW.INI, and under the [SMSGW] header, add 2WayReplySameServer=Yes.

(Note: At the time this article was written, v2008.02.22 is the official download version. An updated release that includes this functionality, can be downloaded at http://www.nowsms.com/download/nowsmsupdate.zip.)

Restart the NowSMS server.

We could not make this setting a default, because there are actually quite a few NowSMS installations where for various operational reasons, 2-way SMS replies need to be sent out via a different connection from which they were received.

Note that this setting only applies to simple 2-way commands, where the command script returns a text response back directly. This setting does not apply when the "redirect technique" is used. That configuration is described in more detail in the Long More Difficult Answer.

Long (More Difficult) Answer:

For more advanced logic in 2-way command scripts, it is sometimes necessary to use the "redirect technique" that is described in the following document: http://www.nowsms.com/support/bulletins/tb-nowsms-003.htm

Alternatively, instead of using the "redirect technique", your 2-way command script might initiate a new HTTP request to the NowSMS server to tell NowSMS to send one or more messages. For simple examples of this, see http://www.nowsms.com/discus/messages/1/3991.html, http://www.nowsms.com/discus/messages/1/867.html or http://www.nowsms.com/support/bulletins/tb-nowsms-008.htm.

With these types of 2-way command scripts, NowSMS passes the received message to the command script. But then the command script generates a new URL request back to NowSMS to send a message. In this context, NowSMS does not see the new URL request as a reply, so it cannot apply the desired routing logic.

This section describes how to achieve the desired routing logic when you are generating your own URL request for NowSMS.

The "Command to Execute" defined for your 2-way command script must include an @@SMSCROUTE@@ variable. When NowSMS passes the received message to your 2-way command script, NowSMS will replace @@SMSCROUTE@@ with the SMSC name (or assigned route name).

When your 2-way command script receives the message, it must parse the @@SMSCROUTE@@ value. This is how your 2-way command script knows the mobile operator SMSC connection from which this message was received.

If your 2-way command wants to reply back to the message, it needs to build a URL request for NowSMS. This URL request must include an "&SMSCRoute=xxxx" parameter which contains the original @@SMSCROUTE@@ parameter that was passed to the 2-way command. This tells NowSMS that the resulting message should only be sent out via that specified route.

By default, the @@SMSCROUTE@@ value is going to be the host name as defined in the NowSMS "SMSC" list (e.g., "SMPP - 10.1.1.1:9000" or "Modem - Bluetooth Modem"). It is possible to manually edit the NowSMS SMSGW.INI file to assign a more meaningful route name. Under the appropriate section header for each SMSC connection (e.g.,"SMPP - 10.1.1.1:9000" or "Modem - Bluetooth Modem), it is possible to include a RouteName=xxxxxxxx parameter, where xxxxxxxx will instead be used as the @@SMSCROUTE@@ value.

I know what you're saying ... that seems complicated. It's really not all that complicated ... it just seems so because so far I've been too lazy to provide you with an example. I don't know about you, but I usually do better with examples myself.

Let's say you've got 2 SMPP connections to different mobile operators.

You've manually edited SMSGW.INI, and under one of the [SMPP - server:port] sections, you've added RouteName=Operator1, and under the other [SMPP - server:port] section, you've added RouteName=Operator2.

Let's say that you're using PHP for your scripting language, and you've created a PHP script named 2way.php which is installed on one of your web servers.

Configure the following 2-way command:

SMS Command Prefix = * (applies to all received messages, unless a better match exists)

Receive Phone Number(s) = (leave blank or put in your short code here to apply this script to messages only received by that short code)

Command to Execute = http://server/2way.php?sender=@@SENDER@@&text=@@FULLSMS@@&shortcode=@@RECIP@@&SMSCRoute=@@SMSROUTE@@

"Command Returns Response Text" should NOT be checked for this type of command script.

If the phone number 14435551212 sends a text message "TEST" to your short code 11111, and it is received via the SMSC connection defined with RouteName=Operator1, then the following URL would be triggered by NowSMS when the message is received:

http://server/2way.php?sender=14435551212&text=TEST&shortcode=11111&SMSCRoute=Operator1



Because of the indenting here, the script is a little difficult to follow. But basically, this script is just parsing the "sender" (@@SENDER@@ value), "text" (@@FULLSMS@@ value) and "smscroute" (@@SMSROUTE@@ value) parameters that were passed to the script.

The script then builds a new URL that it passes back to NowSMS to tell NowSMS to send a new message back to the sender via the same route as from which the message was received.

In this example, the script would return the following URL in a redirect response:

http://127.0.0.1:8800/?phonenumber=14435551212&text=I+received+your+message%3A+TEST&smscroute=Operator1

This URL redirect tells NowSMS to send a message back to the originator via the same operator SMSC as the originating message.

A few additional notes on this example....

This example assumes that the web interface for NowSMS is listening on its default port of 8800. If it is using a different port, the port number needs to be changed in the script.

127.0.0.1 assumes that this script will only be used if triggered by a NowSMS 2-way command. If you want to test the script by connecting to it from a web browser, change 127.0.0.1 to the IP address of the NowSMS server.

This example also assumes that "Require Authentication for web interface" is not enabled on the "Web" page of the NowSMS configuration. If this setting is enabled, then modify the "header" command in the script, so that after $_REQUEST['smscroute'] and before ); the following is added: . "&user=username&password=password"

The username and password values should match an account defined on the "SMS Users" page of the NowSMS configuration.

If you will be sending SMS messages to the subscriber outside of the context of a 2-way command, then you need to save the @@SMSCROUTE@@ value that you obtained when the subscriber originally sent into your system. You would save this value in your own database, maintained by your own applications, it is not saved by NowSMS. When sending any messages to that subscriber, generate a URL request for NowSMS that includes this route information in the "&SMSCRoute=" parameter.

Wednesday, 4 June 2008

MMS Message-ID Length problems with some handsets and/or MM4

We received a report from a customer that was experiencing a problem where some Nokia handsets would restart themselves after sending an MMS message.

The MMS message would be sent ok, but the sending handset would restart after a confirmation is displayed that the MMS message had been sent.

This problem was caused because the length of the MMS message-id generated by the NowSMS MMSC was longer than the 40 character limit defined in the Open Mobile Alliance MMS Conformance documents.

It should be noted that the NowSMS MMSC uses the MMS Host Name as part of any MMS message-id generated. This message-id consists of 21 characters, followed by the MMS Host Name. Therefore, this problem should only be encountered if the MMS Host Name is longer than 19 characters.

To resolve this issue, it is necessary to define a "Local Host Name or IP Address" in the MMSC settings that is 19 characters or less.

This host name setting is only used in MMS message-id generation, and in the URLs that are generated by the MMSC for MMS notifications. This host name does NOT need to match the MMS Server name that is configured on the handset. Therefore, the host name can be changed at any time, as long as the new host name resolves properly to the server that is running the MMSC.

While this particular incident was noticed when certain handsets were used to submit an MMS message to the MMSC, similar problems with the MMS message-id length can occur when defining MM4 inter-operator connections. Unexpected problems can sometimes occur with MM4 connections if the MMS message-id length is larger than 40 characters. For this reason, it is always advisable to limit the "Local Host Name or IP Address" in the NowSMS MMSC settings to a name that is 19 characters or less.