Received MMS Picture Size

Received MMS Picture Size SearchSearch
Author Message
Sid
New member
Username: Kidsquid

Post Number: 1
Registered: 06-2007
Posted on Monday, June 25, 2007 - 11:29 pm:   

We have developed an application that uses NOWSMS to retrieve MMS images sent to a mobile cell phone number. We have a GPRS MultiTech modem attached via USB to download the images from the carriers system. The images are coming into the NOWSMS system and being delivered into the MMS-IN folder as they should.

The issue we have is the size of the images. Something is scaling the images down to 160 x 120..I really need to get a larger resolution image. The camera phone is certainly taking a larger image...something is scaling the image down.

Thoughts...suggestions...ideas?
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 7281
Registered: 10-2002
Posted on Wednesday, June 27, 2007 - 05:06 pm:   

Hi Sid,

This behaviour tends to be very much carrier specific, so unfortunately I can't give you a one size fits all answer.

But I can explain what is happening, and give you some technical information that may help you find a solution.

What is happening is that your operator's MMSC is performing content adaptation before delivering the message to your device. What that means is that the MMSC is making changes to the content to "better" adapt it to the receiving device.

At least that is the theory behind it ... different devices have different capabilities ... different screen sizes ... different limits on the maximum image or message size that they can handle.

So in theory, the MMSC is performing a service, and scaling down the image so that it is usable when you receive it.

The reality, however, is that the content adaptation performed by most operator MMSCs is poor ... and ends up diminishing the user experience.

In fact, when I talk to friends of mine that don't work in the mobile phone industry, this seems to be one of their biggest complaints about picture messaging. They take a picture, send it to a friend's phone ... the receiving friend goes to copy the picture to their computer and all they've got is a thumbnail.

We all know that camera phone picture quality is relatively poor (but improving), but arbitrarily scaling pictures down to 160x120 makes the situation worse.

So ... in a situation like this, the only solution is to try to figure out how to bypass or alter the mobile operator MMSC content adaptation.

Usually, if an image is being scaled down to 160x120, this is what you'd call a "lowest common denominator" size ... that is to say, the smallest image size that is required to be supported by a device that supports MMS.

If the MMSC is scaling down images to the "lowest common denominator", then this usually means that the MMSC does not know what type of device is on the receiving end, so it is assuming that it is the most limited type of device.

In this case, with the receiving device being a modem, it does kind of make sense that the operator MMSC does not know what type of device is on the receiving end.

So how does the operator MMSC know what type of device you are using?

Well, hopefully they are using a solution that is somewhat dynamic (as opposed to a database that records your phone type when you originally sign up for service).

When a device connects to an MMSC, typically the device will transmit some information to the MMSC to indicate the device type.

The device actually communicates with the MMSC using HTTP (or WAP protocols that are logically equivalent), and the device uses HTTP headers to identify the device type.

There are typically two headers that are used to communicate the device type, the "User-Agent" and "Profile" (or "X-WAP-Profile") headers.

The "User-Agent" header is a free-format text string that identifies the device and potentially its firmware version.

The "Profile" (or "X-WAP-Profile") header contains a URL pointer to a UAProf (User Agent Profile) document that is published by the device manufacturer which provides more details about the capabilities and characteristics of the device. (This document uses an XML format defined by the Open Mobile Alliance.)

Here are the "User-Agent" and "Profile" strings used by a few current day devices ...

Motorola KRZR:

User-Agent:MOT-K1/08.22.07R MIB/BER2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 EGE/1.0
Profile: "http://motorola.handango.com/phoneconfig/k1/Profile/k1.rdf"


Blackberry 8800:

User-Agent: BlackBerry8800/4.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100
Profile: http://www.blackberry.net/go/mobile/profiles/uaprof/8800/4.2.1.rdf

Nokia N95:

User-Agent: NokiaN95/11.0.026; Series60/3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
Profile: "http://nds1.nds.nokia.com/uaprof/NN95-1r100.xml"

So how do you convince your mobile operator that your modem is some other type of device?

In a default configuration, NowSMS does not send either of these headers when connecting to an operator MMSC to send or receive MMS messages.

However, in the MMSC.INI file, under the [MMSC] header, you can add the following settings:

HeaderUserAgent=
HeaderProfile=

For example, to pretend that you're an N95:

HeaderUserAgent=NokiaN95/11.0.026; Series60/3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
HeaderProfile="http://nds1.nds.nokia.com/uaprof/NN95-1r100.xml"

(Note ... the quotes around the Profile URL are not strictly required, I just notice that the actual N95 does include them.)

Whatever values you specify here, NowSMS will add a User-Agent and/or Profile header with the specified values when connecting to the operator MMSC.

Unfortunately, in situations like this, it can be a real trial-and-error experience to figure out what values make a difference.

Note that some MMSCs may only pick up dynamic changes to your configuration when you send a message, not when you receive one. Others may pick up the change when you receive a message, but update their internal information for the next time that someone sends you a message. It is also possible that it may take several minutes for the MMSC to update its internal database after you try a different setting.

So whenever you change this setting, try having the modem send an MMS message to itself ... wait a couple of minutes ... try again ... wait ... then try again a third time to see if anything has changed.

Based upon real world experience, what we have noticed so far is that many MMSCs seem to be more interested in "User-Agent" headers than "Profile" headers. This is quite puzzling to us, because in our MMSC implementation, we rely on the "Profile" header, as it contains much more important information, and does not require that the MMSC be manually configured with information about every single device. (If the MMSC uses User-Agent profiles, then every time the operator adds a new device, someone needs to update a configuration at the MMSC to detail characteristics about that device.)

Because User-Agent profile information seems to be used frequently, we have observed that some operators only have their MMSC provisioned with information about phones that the operator actually sells through their official channels.

I can remember incidents at Telstra in Australia and Rogers in Canada where users experimented with different User-Agent strings for different devices that the operator sold until they could find one that met their needs.

In these cases, it may help if you have multiple devices from the operator where you can try sending MMS messages to the different phones. See what size each phone actually receives ... then you can try to track down the User-Agent and Profile strings relevant for the device.

Like I said, I wish I could give you a one size fits all answer ... but this particular issue does seem to vary significantly between mobile operators.

-bn
Andy Parth
New member
Username: Aparth

Post Number: 1
Registered: 09-2007
Posted on Sunday, September 23, 2007 - 07:41 am:   

Related to this screen size issue, I was wondering how simple it is to tailor an image to the recipient screen size via NowSMS?

Can I retrieve UAProf header information from the target phone, BEFORE creating the MMS message and pushing it to the user?

For example, I have a script that can dynamically create an MMS file, and can also dynamically resize an image.

Would it be possible to read back UAProf information from the phone, call the PHP script to create the tailored SMS and then send?

If not, what is the solution to this? One provider - www.thirdscreen.com.au - claims they can auto detect phone capabilities before pushing MMS.

Thanks in advance.
Malcolm - Now Support
Moderator
Username: Malcolm

Post Number: 233
Registered: 12-2006
Posted on Friday, October 19, 2007 - 10:37 pm:   


quote:

Can I retrieve UAProf header information from the target phone, BEFORE creating the MMS message and pushing it to the user?




No, you need to have an interaction with the mobile phone first in order to find out what type of phone it is.

The UAProf information is sent as an HTTP header when the device makes an HTTP request (e.g., MMS message retrieval or WAP push retrieval).


quote:

If not, what is the solution to this? One provider - www.thirdscreen.com.au - claims they can auto detect phone capabilities before pushing MMS.




Three possibilities:

1.) If the content is being retrieved via MMS or WAP push, they are getting the UAProf when the device connects to retrieve the content, and they do the adaptation on the fly.

2.) Most mobile operators have a database of what phone they think you are using based upon when you signed up for service or last upgraded your phone. Some mobile operators might make that information available to trusted content partner.

3.) They probe the device with an initial welcome message (having the device connect in to retrieve a WAP push or MMS), and then they keep that information in their database.
Doug Ellingson
New member
Username: Topdoug

Post Number: 1
Registered: 02-2009
Posted on Tuesday, February 03, 2009 - 12:44 pm:   

I am just a simple cynic but doesn't this all boil down to time and use of bandwidth and cost? I am so annoyed with not being able to email(with phone) a decent pic with some detail in it and then to listen to all the bs the tech support script readers expect me to believe.
Des - NowSMS Support
Board Administrator
Username: Desosms

Post Number: 410
Registered: 08-2008
Posted on Tuesday, February 03, 2009 - 01:31 pm:   

I'm not sure I understand your question. Is this a NowSMS support question, or are you just commenting about MMS in general?

I'm going to assume that you are commenting about MMS in general.

The situation varies from mobile operator to mobile operator, and from phone to phone.

I'm certain that bandwidth and cost are a major consideration. But I suspect that compatibility is actually the more important consideration. There are two issues related to this consideration ... one is the processing power and storage capacity of low end mobile phones, and whether or not they can handle larger image sizes. The second issue is that the transport protocol used by early model MMS compatible mobile phones had issues dealing with messages larger than 250KB to 300KB.

So, in the name of compatibility, you have implementations that cater to the "least common denominator". Some phones automatically downscale images before you send them in the name of compatibility. Other times it is mobile operator MMSCs that downscale the images.

Mobile operator MMSCs should have more intelligence so that they only scale down the image if necessary. The discussion earlier in this thread pertains to the logic of how this can be done.

--
Des
NowSMS Support