Topic Keywords: MM7
In a recent posting, I posted a reference to the SMPP specification, which is the de facto standard for application generated SMS, as well as for interconnecting SMS systems. The most commonly used version of the SMPP specification was published 10 years ago.
There are a few ambiguities in SMPP with regard to message encoding for long text messages, and delivery receipt formats. But overall, it’s a stable protocol, and there are just a few advanced configuration options in NowSMS to adjust for minor inconsistencies in different implementations of the protocol.
MM7 is the defined standard for application generated MMS. And in just a few short years, there were at least 24 versions of the specification released, and at least 10 different XML schemas, some of which have rather significant differences … not just additional elements, but there have been some changes to elements defined in previous versions … to the extent that applications cannot assume that elements are upward compatible to newer versions of the XML schema, which is a major headache.
It gets even a little more confusing, because first versions of the MMS specification to define MM7 defined it only in an abstract format, without a formal XML schema. As a result of this, two major MMSC vendors, Ericsson and LogicaCMG, implemented their own non-standard versions of MM7.
When configuring an MM7 connection in NowSMS, we have allowed the user to configure the MM7 XML Schema version and MMS Version (element) to be used, providing support for variations in different versions of the XML schema. We have also provided configuration options to support non-standard variations, such as the original implementations from Ericsson and LogicaCMG.
However, matching up the version and schema with that of the mobile operator to which you are connecting can be confusing.
In the next major release of NowSMS, we are automatically selecting the MMS version based upon the MM7 schema version selected. However, until this release is made available, we thought it would be helpful to associate the MMS MM7 version numbers with the associated MM7 XML Schema version.
REL-5-MM7-1-0 – 5.3.0
REL-5-MM7-1-1 – 5.3.0 (version is actually 5.4.0, but schema requires 5.3.0)
REL-5-MM7-1-2 – 5.3.0 (version is actually 5.5.0, but schema requires 5.3.0)
REL-5-MM7-1-3 – 5.6.0
REL-5-MM7-1-4 – 5.8.0
REL-5-MM7-1-5 – 5.10.0
REL-6-MM7-1-0 – 6.3.0
REL-6-MM7-1-1 – 6.4.0
REL-6-MM7-1-2 – 6.5.0
REL-6-MM7-1-3 – 6.6.0
REL-6-MM7-1-4 – 6.8.0
The full path to these schemas is relative to:
When connecting to an operator MMSC over MM7, it is important to know the schema and verison number supported by the mobile operator. If the operator only provides you with a version number or schema, then it is possible to correlate the correct value for the other setting based on the above table.
Unfortunately, there is a considerable amount of confusion over MM7 Version numbers and schemas, because of inconsistencies in the 3GPP TS 23.140 specification that defines MMS and MM7. For example:
3GPP TS 23.140 version 5.5.0 defines the REL-5-MM7-1-2 schema. However, section 18.104.22.168 of the specfication says that the schema URI should reference REL-5-MM7-1-1. Complicating matters further, a version number value of 5.5.0 is NOT valid in either the REL-5-MM7-1-2 or REL-5-MM7-1-1 schema. However, the version number 5.5.0 is valid for the REL-5-MM7-1-3 and later schemas!
3GPP TS 23.140 sersion 5.8.0 defines the REL-5-MM7-1-4 schema. However, section 22.214.171.124 still says that the schema URI should reference REL-5-MM7-1-1, and all of the examples reference the REL-5-MM7-1-3 schema and version 5.6.0. At least in this case, version number 5.8.0 is valid in the REL-5-MM7-1-4 schema.
Needless to say, the inconsistencies are maddening!
The most commonly supported version/schema combinations seem to be:
REL-5-MM7-1-2 – 5.3.0 (defined in version 5.5.0 of 3GPP TS 23.140)