While NowSMS can function as an MMSC for direct MMS message delivery, this is not an option for most content providers, as most mobile operators block MMS message delivery from any MMSCs other than the mobile operator. In these situations, it is necessary to submit all MMS messages via an operator MMSC, or a service provider with operator MMSC connectivity. (For more information on how MMS works, and how external MMSC message delivery is blocked by a mobile operator, please see http://www.nowsms.com/faq/how-mms-works.)
The following protocols are frequently used for submiting messages via an operator MMSC:
MM1 – This is the protocol that mobile phones use for sending and receiving MMS messages. NowSMS has the ability to send and receive MMS messages using MM1 over a GPRS/EDGE/3G modem connected to an operator network, using the same protocols as the MMS client in a mobile phone. This capability is dicussed in more detail at http://www.nowsms.com/doc/mmsc-messaging-server/connecting-to-an-operator-mmsc/using-a-gprs-modem.
EAIF – This is a variation of the MM1 protocol defined by Nokia. It does not require a GPRS modem, as connections to the mobile operator MMSC occur directly over TCP/IP with an HTTP-based protocol. A few mobile operators with existing Nokia MMSC installations prefer to use the EAIF, but it is expected that they will be migrating to the more standard MM7 protocol.
MM4 – This is an SMTP based protocol that is normally used by mobile operator for interconnecting their MMSCs. It is unusual for a content provider to interface with a mobile operator using MM4, but it is possible. More information on configuring NowSMS for interoperator MM4 connections can be found in the following article: http://www.nowsms.com/mmsc-mm4-interconnection-basics
MM7 – This is the MMS protocol that has been designed explicitly for the purpose of content providers interfacing with a mobile operator MMSC. The MM7 protocol uses SOAP-based XML transactions over HTTP.
A simple example of an MM7 message submission can be found at the following link: http://www.nowsms.com/doc/submitting-mms-messages/mm7
For detailed information on the MM7 protocol, refer to the 3GPP TS 23.140 specification, which defines the overall MMS architcture, and the detailed technical realisation of the MM7 protocol. Different versions of the 3GPP TS 23.140 specification can be found at http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/. 23140-530.zip is a good version to start with, as it is what we consider to be the first “stable” definition of MM7, which is Release 5, Version 1.2. (Note: There are a few operator MMSCs that use earlier MM7 implementations, and there are some subtle differences in the XML schemas for different MM7 releases.)
Configuring NowSMS for an MM7 Connection to a Mobile Operator
With that brief introduction out of the way, let’s look at the specifics of configuring NowSMS to connect to a mobile operator with MM7.
In the SMS world, the SMPP protocol is most frequently used for high volume SMS content delivery. Since many MMS content providers are existing SMS content providers, it may help to point out some significant ways in which MM7 differs from SMPP.
With SMPP, it is almost always the content provider that originates the SMPP connection. The SMPP connection is a persistent, always active connection. SMS messages can be sent and received over the same connection.
MM7 is an HTTP-based protocol. Connections are not persistent, but instead are initiated on demand, as required (HTTP keep-alive sockets are used to avoid re-connection overhead if many messages are being submitted in bulk). When a content provider has a message to send, it initiates a new connection (unless a keep-alive connection is available) to the mobile operator to submit the message. When the mobile operator has a message to deliver to the content provider, the mobile operator initiates a connection to the content provider.
To establish an MM7 connection to a mobile operator or service provider for sending MMS messages, the following information is required at a minimum:
MM7 Server URL: This will be a complete URL string, such as http://host.name:port/servlets/mm7receiver. (In some cases, only http://host.name:port/ will be required, but often there is additional path information required in the URL in order to activate the correct application at the provider.)
Any required account information: Frequently your provider will specify VASPID, VASID and/or Service Code values that you will need to use. You may also be assigned a short code.
Other helpful information: If they can tell you the vendor of their MMSC, this can be helpful in determining the correct protocol versions to be used. It also helps if they can tell you the MM7 version number and schema that they support. Unfortunately, frequently this information is not available to you, and a successful configuration will require some trial and error.
Additionally, the mobile operator will most likely need to know your IP address so that they can open their firewall to allow you to connect to their system. In most instances, you will be identified/authorised based upon your IP address.
You define an MM7 connection under the “MMSC Routing” section of NowSMS. On that screen, press the “Add” button to add a new MM7 connection.
“Account Name” and “Account Description” are internal account names used only within NowSMS, so you can use any values here.
“Default Sender Address” refers to the sender address that will be applied to messages that you send out. You can set a default value for this sender address here, which would normally be your short code.
If “Allow Sender Address Override” is UNchecked, this means that all messages you send out will have the “Default Sender Address” applied as the sender address. If it is checked, then this means that you can specify different sender addresses when you send out messages.
“Route Messages to VASP via” should be “MM7”, since that is the protocol being used.
“Server Address” refers to the path on their server to which you should submit messages using MM7. This is the MM7 Server URL that we referred to earlier.
“Login Name” and “Password” refer to a username and password that can be sent to the server when you submit messages. If these parameters are set, NowSMS will send these parameters with “HTTP Basic Authentication” (e.g., “Authorization: Basic” header). Note that in our experience, very few providers actually use this for user identification, instead authenticating based upon your IP address and “VASP ID”, “VAS ID” and/or “Service Code” values. It is not unusual for several of these fields to be left blank. If your provider has given you “VASP ID”, “VAS ID” and/or “Service Code” values to use, then normally the “Login Name” and “Password” fields are left blank.
Set “Connection Type” to be “To MMSC (submit format)”, as you will be submitting MMS messages to the provider for outbound delivery. (The “Default” would also work, but it is safer to be explicit with this setting.)
The remaining settings can probably be left at their defaults, unless the provider has given you information about their preferred MM7 version or schema.
If the operator is using an Ericsson or LogicaCMG MMSC, it may be necessary to specify one of the “Non-Standard MM7 Variations” defined for these manufacturers. (Hopefully these vendors have adapted their products to use the standard MM7 protocol, but past releases have used MM7-like protocols that do not match the schemas defined by the 3GPP.)
Press “Ok” to save the settings, and then when you get back to the “MMSC Routing” screen, select this route as the “Default Route” and press “Apply” to save.
Now … any messages that you submit via NowSMS will be routed via this MM7 connection.
At this point, it’s a good idea to go to the NowSMS web interface and try sending an MMS message. Before you do that, enable the “MMSCDEBUG.LOG” on the “Serial #” page of the NowSMS configuration dialog. Because there are so many different MM7 protocol versions and options, and confusion over MM7 Server URLs, there is a good chance that your first message sending attempt will not be successful.
After you submit a message, the “MMSCDEBUG.LOG” will contain details about any message sending attempts. We can further analyse this information to make suggestions regarding configuration options. For assistance, please post a message on the NowSMS Discussion Board.
Note that the above only covers sending MMS messages through your provider. It does not cover how you receive MMS messages from your provider.
To receive MMS messages from the service provider, you will need to take the following steps:
Recall from the discussion above, that the service provider actually initiates a connection to your NowSMS system to deliver MMS messages (or even delivery receipts).
To enable such a connection to occur, it is necessary to define an account on the “MMSC VASP” page of the NowSMS configuration dialog. This defines an account on your system that your service provider will use when connecting to your system.
The “Account Name” and “Password” fields can be set to any values that you desire, as they will be used to build the URL that the mobile operator uses to connect to your system to deliver MMS messages.
The “Account Description” field is informational only, and is not used.
“IP Address Restrictions” can contain a comma delimited list of IP addresses from which the mobile operator is allowed to connect. (You will need to ask the mobile operator for a list of IP addresses used by their server.)
“Accept Connections via” should be set to MM7.
“VASP Sender Address” should be left blank.
“Allow Sender Address Override” should be checked.
The remaining settings can be left at their default values.
The mobile operator will connect to you (delivering received messages via MM7) using the following URL format:
“host.name” is the IP address or host name of your NowSMS server.
“port” is the “HTTP port” on the “MMSC” page of the configuration dialog”.
“account” is the “MMSC VASP” account name, and “password” is the password associated with that account.
For more information on how to process any received MMS messages, please see http://www.nowsms.com/doc/2-way-mms-support.
Also, there is an ability to route received messages to a PHP script, which is described at the following link: http://www.nowsms.com/doc/2-way-mms-support/receiving-mms-messages-with-a-php-script
For comments and further discussion, please click here to visit the NowSMS Technical Forums (Discussion Board)...