Message ID

Message ID SearchSearch
Author Message
Michael
New member
Username: Michael123

Post Number: 3
Registered: 02-2007
Posted on Tuesday, March 06, 2007 - 08:45 am:   

Hi Bryce,

We want to use MM4 to set up interconnection to other operator. Here we meat a problem: their MMSC can't correctly understand our message id format. Now we have something like this: 20070305/17/0DC3B955@domain.name.

Can we customize this format? For example remove "/" from it?

Thank you in advance
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 6930
Registered: 10-2002
Posted on Tuesday, March 06, 2007 - 07:53 pm:   

Hi Michael,

Sigh. There is no good reason why that character should be illegal in a message id.

That said, there was an issue in MM7 where the original v1.0 MM7 schema defined the message id using a token type that excluded the "/" character as being valid ("@" was also excluded!). So if you configure an MM7 connection with the REL-5-MM7-1-0 schema, we encode the message id to avoid using this character.

Going back to older MM4 specs, I don't see any similar restrings. The field is defined as a "quoted-string". And "/" is not even one of the characters denoted as "specials" in the lexical tokens definition of RFC822 (to which the MM4 spec refers back to).

But, whether or not it makes sense from the specs ... if it's a real world deployment issue, we need to try to deal with it.

I've posted an update to http://www.nowsms.com/download/20070306.zip that adds a configuration parameter for MM4 to prevent the use of the "/" character in a message-id (or transaction-id) field. This patch will update an existing NowSMS 2006 or 2007 installation.

To prevent the use of the "/" character in an MM4 message-id field, you need to manually edit VASPOUT\accountname\VASP.INI, and under the [VASP] header, add MessageIDPatch=Yes. ("accountname" is the name defined for the MM4 connection in its "MMSC Routing" definition.)

I would appreciate it if you could tell me the software vendor of the MMSC or service to which you are interconnecting, as this information may help others in the future.

-bn
Michael
New member
Username: Michael123

Post Number: 4
Registered: 02-2007
Posted on Wednesday, March 07, 2007 - 06:54 am:   

Hi Bryce,

Thank you for your answer.

I installed update and add "MessageIDPatch=Yes" line in VASP.ini, but "/" still presents in message_id. Looks like I'm doing something wrong.

Another problem with same operator is expirity time. I add

ExtraHeader=X-Mms-Expiry: 259200

in VASP.ini but they still get

Time-of-Expiry: N/A

MMSC they use is Telenity Canvas MMSC 2.1.1.5.
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 6939
Registered: 10-2002
Posted on Wednesday, March 07, 2007 - 06:54 pm:   

Hi Michael,

Make sure that MMSC.EXE got updated on your server by the install. It should show a file date of 2007-03-06.

We've also run into instances where there were two separate NowSMS installs, and the running copy was running from a different directory. (Normally the install finds and updates the existing install, but it is possible to override the directory during the install process.) So check for this as well.

What you should see ... if MessageIDPatch=Yes under the [VASP] header of VASPOUT\accountname\VASP.INI is that the "X-Mms-Message-ID:" header contains "-x2Fx-" everywhere that it used to contain "/". (This is just a crude hack, so that when delivery reports and the like come back in, we can easily convert the message id back to our internal format.)

Since the "ExtraHeader=" setting isn't working either ... I'm suspicious that there is a formatting problem in the VASP.INI file ... especially as the "ExtraHeader=" setting is not new.

Make sure you are looking at VASPOUT\accountname\VASP.INI ... where "accountname" is the name given to the account in the "MMSC Routing" page ... and make sure that [VASP] is in the first line of the file.

There should also be settings in that file based upon the configuration settings that you have applied under "MMSC Routing". Such as Protocol=MM4 ... Server=xxxxx ... Try changing a configuration option by editing the "MMSC Routing" definition via the NowSMS user interface ... and verify that you can see that the option is being set in the VASP.INI file that you are adding these parameters to.

-bn
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 6940
Registered: 10-2002
Posted on Wednesday, March 07, 2007 - 07:02 pm:   

P.S. -

... on the X-Mms-Expiry: issue, it is also possible that the destination MMSC does not recognise "259200" as a valid value, so it is ignoring it.

Of course, it is a valid value. But a "/" is valid in a message id as well.

Enable the MMSCDEBUG.LOG, and you should see a dump of the MM4 message that NowSMS is generating ... and you can see if the header is present by inspecting that.

You could try putting in a fixed date for testing purposes ...

ExtraHeader=X-Mms-Expiry: Wed, 14 Mar 2007 00:00:00 GMT

Of course, it's not practical for you to put in a fixed date permanently here. I suggest this only for testing purposes. If you need us to make an update to insert a future date based upon some configurable interval setting, then we could make that change. (Although it makes more sense for this setting to be a "relative" value, rather than a fixed date value.)

-bn
Michael
New member
Username: Michael123

Post Number: 5
Registered: 02-2007
Posted on Thursday, April 12, 2007 - 11:00 am:   

Hi Bryce,

All previous issues are fixed. Thank you for your help.

Now we have one more problem: when we are sending MMS to 2 or more recipients, all messages are going with same Message ID. As I know by standards Message ID should be unique for all messages. Other operators MMSC accepting only first one and rejecting all other. Is there any solution in this situation?

Thanks again
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7089
Registered: 10-2002
Posted on Thursday, April 12, 2007 - 03:29 pm:   

Hi Michael,

Further to the earlier MM4 conversations in this thread, I should let you know that there has been another update to this logic.

The original MessageIDPatch=Yes setting converted "/" to "-x2Fx-", which I mentioned above was a rather crude hack.

In another customer environment where they faced a similar problem, this substitution caused their Message ID values to come close to the recommended 50 character limit for MMS interoperability. (Technically they were at 49 characters, but it was causing a problem for their interoperability provider.)

As a result, we have decided to always avoid the use of "/" in MM4 message-id values. And instead of the "/" character, we will use ".".

In releases 2007.04.11 and later, the MessageIDPatch=Yes setting is ignored, and the "/" character is avoided.

Regarding this new issue ... hmm ... technically they are the same message, just different recipient instances.

A quick solution would be to edit VASP.INI, and under the [VASP] header, add MaxRecips=100. We default to 1 for MM4 connections, which means that we perform a separate message transmission for each recipient. We keep the message ID the same, as technically it is the same message.

However, I can see where this might cause some confusion.

And I hesitate to recommend using a higher MaxRecips=### setting for an MM4 connection, as this may cause some confusion with regard to error handling, as there is some inconsistency with error reporting across different MM4 implementations.

So, we're going to go ahead and make a quick change to modify the message ID for multiple recipients over MM4. The update is available for download at http://www.nowsms.com/download/20070412.zip.

-bn
Michael
New member
Username: Michael123

Post Number: 6
Registered: 02-2007
Posted on Friday, April 13, 2007 - 09:55 am:   

Hi Bryce,

Thank you for fast reply. Everything is fine now.

One more think: now we have one MMS with few recipients. It should be a problem in case, if operators will count sent/received messages. In our case we see that we sent 2 messages (sender was charged twice) and partner operator has only one message from us. It's not a problem in our situation, it's only information for you :-)

Regarding long Message ID, of course we had problem with it, but our partner's MMSC provider (Telenity Canvas) get patch and now they accept "/".

Thank you again,

Michael
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7090
Registered: 10-2002
Posted on Friday, April 13, 2007 - 05:06 pm:   

Hi Michael,

That is interesting. I would think one message to two recipients should get charged the same as two messages. (It certainly would be the case for SMS.)

One caution about using MaxRecips=### where ### is greater than 1 in an MM4 environment. If there is a non-delivery situation for a message sent to more than one recipient, in many cases it will not be possible to determine which recipient failed. This is the primary reason that we default to MaxRecips=1 for MM4.

I am glad to hear that the "/" character will not be a problem going forward. But I think we will stay with the change to use "." instead in future versions.

-bn