Delivering Mobile Multimedia

Six M's for Mobile Application Development

According to Tomi Ahonen & Joe Barrett of Nokia, and Paul Golding of Motorola, the Six M's are the six aspects of mobile applications required to drive them to the mass-market. They are Movement (location), Moment (time), Me (personalization), Multi-user (community), Money (payments) and Machines (automation).

W3C One Web

I was reading the W3C One-Web presentation recently and it occurred to me that, with 'in-network content adaptation' that's the basis of the approach, they're trying to map the infinitely complex (web sites) with the infinitely diverse (mobile phones). When I thought about it like that, it started to seem a really absurd concept. Server adaptation seems far more favourable, in terms of feasibility, since at least we have control of one end of the mapping by removing the infinite complexity!

MMS Content-Types

Some ringtone keywords to search for: SMF files, audio/midi, smaf, Yamaha's SMAF MA2 files, application/vnd.smaf, .mmf and .mid files.

Popular ringtone format is RTTTL - http://en.wikipedia.org/wiki/Ringing_Tones_Text_Transfer_Language

MMS delivered as SMAIL - http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language

Accept headers from a typical mobile phone…

application/smil, application/vnd.wap.wmlc, application/vnd.wap.xhtml+xml, image/bmp, image/gif, image/jpeg, image/png, image/vnd.wap.wbmp, image/x-up-wpng, text/html, text/plain, text/vnd.wap.wml, audio/midi, text/vnd.wap.wmlscript, application/vnd.wap.wbxml, application/vnd.wap.wmlscriptc, application/vnd.wap.multipart.mixed, application/vnd.wap.multipart.related, application/vnd.phonecom.mmc-wbxml, application/octet-stream, application/vnd.openwave.pp, application/vnd.wap.connectivity-wbxml, text/css, application/vnd.wap.sic, application/vnd.wap.slc, application/vnd.wap.coc, application/xhtml+xml;profile="http://www.wapforum.org/xhtml", application/vnd.wap.mms-message, application/vnd.smaf, application/x-mmc.ringtone;Content-type=audio/midi;size=8000, application/x-mmc.ringtone;Content-type=application/vnd.smaf;size=8000, application/x-mmc.wallpaper;Content-type=image/gif;size=7000;color=8;h=51;w=110, application/x-mmc.wallpaper;Content-type=image/bmp;size=7000;color=8;h=51;w=110, application/x-mmc.picture;Content-type=image/gif;size=7000;color=8;h=51;w=110, application/x-mmc.picture;Content-type=image/bmp;size=7000;color=8;h=51;w=110, application/x-mmc.icon;Content-type=image/bmp;size=64, application/x-mmc.title;Charset=utf-8;size=16

Messaging Technology

SMS/MMS Gateway requires a connection to an SMSC (Short Messaging Service Centre) to interface with SMS and MMS networks. These can be as follows: -

* GSM Modem - A GSM modem or phone connected to a PC serial port (or to a USB port with an appropriate modem driver).

* SMPP (Short Message Peer to Peer Protocol) - A TCP/IP connection over the internet or a private network to a service that supports v3.3 or v3.4 of the SMPP protocol.

* UCP/EMI (Universal Computer Protocol / External Machine Interface) - A TCP/IP connection over the internet or a private network to a service that supports v3.5 or v4.0 of the UCP/EMI protocol.

* HTTP (Hyper Text Transport Protocol, e.g., the standard protocol for the “web”) - A TCP/IP connection over the internet or private network to a service that accepts SMS messages via an HTTP “GET” based protocol. (This protocol allows you to chain multiple SMS/MMS Gateways together.)

Video on Mobile Phones

Look up 3GPP, MPEG-4, H.263, Real Video, QCIF and subQCIF.

Some sites that use this stuff.

http://cms.da.gp - G-Portal seems to use WURFL

WURFL breakdown by preferred_markup

Markup html_web_3_2 count 178
Markup wml_1_2 count 93
Markup html_wi_imode_compact_generic count 19
Markup wml_1_1 count 1075
Markup wml_1_3 count 656
Markup html_web_4_0 count 20
Markup html_wi_w3_xhtmlbasic count 230
Markup html_wi_oma_xhtmlmp_1_0 count 3399
Markup html_wi_imode_html_2 count 41
Markup html_wi_imode_html_3 count 195
Markup html_wi_imode_html_1 count 25
Markup html_wi_imode_html_4 count 18
Markup html_wi_imode_html_5 count 80

Major XHTML Basic devices.

The following devices are reported by WURFL as preferring XHTML Basic. Bear in mind that this information may be incorrect and may also have been updated in WURFL since these queries were run.

LG A7150, Chocolate (Canada), KG245, KG800 Chocolate, KG810, KS10 JOY, KU730, KU950, MG100c, MG120, MG125, MG320, MG810, MG810C, TU500, U300, U8290, U8550, U900
Nokia 2855, 2865, 2865i, 3250, 5070, 6165, E50, E51, N76, N77
RIM BlackBerry 5810, BlackBerry 5820, BlackBerry 6210, BlackBerry 6220, BlackBerry 6230, BlackBerry 6280, BlackBerry 6510, BlackBerry 6710, BlackBerry 6720, BlackBerry 6750, BlackBerry 7100, BlackBerry 7100 v4, BlackBerry 7130, BlackBerry 7130c, BlackBerry 7130e, BlackBerry 7210, BlackBerry 7220, BlackBerry 7230, BlackBerry 7230 v4, BlackBerry 7250, BlackBerry 7280, BlackBerry 7280 v4, BlackBerry 7290 v4, BlackBerry 7510, BlackBerry 7510 v4, BlackBerry 7730, BlackBerry 7750, BlackBerry 7780, BlackBerry 8800, BlackBerry 8820, BlackBerry Charm
SamsungA501, A660, A680, A701, C260, E351, E351L, E870, I320N, I520, I520v, I607 BlackJack, I750, P900, P910, P920, T319R, VI660, X210, X480, X480C, X490, X830, Z100, Z105, Z105U, Z600, Z620, Z710
SonyEricsson K618i, K790, K790a, K790c, K790i, K810c, Z310a

XHTML support can be identified/inferred with one of the following techniques: (From Luca's WURFL)

* A known major browser is detected in the UA string
* The Accept HTTP header contains at least one of the following three MIME-types: text/html, application/xml+xhtml, application/vnd.wap.xml+xhtml.
* The UAprof profile contains one of the following three MIME_types among the list of accepted MYME-Types:text/html, application/xml+xhtml, application/vnd.wap.xml+xhtml.
* The UA-String starts with "Mozilla".

Detecting Browser Type (Mobile or Desktop)

Here's a good starting point, but consider also using WURFL
http://www.brainhandles.com/2007/10/15/detecting-mobile-browsers/
http://www.andymoore.info/php-to-detect-mobile-phones/


Tips on rendering appropriate XHTML

Use the style="font-size: smaller" is good to use on the 'body' tag.

Use tel:0123456 protocol in an href to suggest to the phone it should dial that number.

Use sms:0123456 protocol in an href to suggest to the phone it should send an sms.

Useful stuff on detecting a mobile client: http://devfiles.myopera.com/articles/195/mobilewebdesignexcerpt.pdf

In order to force a particular input element type, use of the format ( style="-wap-input-format:'NNNN'" ). The format may include special characters, such as '-', but these may need to be escaped or double escaped '\\'. This is a de-facto standard that compensates for the lack of WML's 'format' attribute in XHTML.

The HTML accesskey attribute is particularly useful on mobile devices <li><a href="http://somewhere.com/" accesskey="1"><strong>This option links somewhere</strong></a></li>superscript

Cache control headers

header('Cache-Control: maxage=3600');
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

GPS from a browser (i-mode)

When you want to use location based information with i-mode devices all you have to do is prepare a CGI to manage an HTTP request from the device.
In your HTML add an anchor like this device:location?url=http://server/location.cgi. When clicked by the user, the device will place a request to your location.cgi CGI adding the location parameters using this structure: http://server/location.cgi?datum=AAA&unit=BBB&lat=XXX&lon=YYY. All you have to do is take the values and make your further elaboration.

Avoiding Content Transformation

Cache-Control "no-transform"
Vary "User-Agent, Accept"

Detecting a mobile web page

  • The DOCTYPE will have something like 'DTD XHTML Mobile 1.0' or 'wapforum.org' or 'xhtml-mobile10' in the declaration.
  • The URI will be part of the .mobi TLD.

Funambol uses SyncML

1. Go to Menu and choose Connectivity (on some devices this option is under Settings)
2. Select Synchronization
3. Select New account
4. Set Name: Funambol and press continue
5. Set Server address: http://my.funambol.com/sync
6. Set Username (on some devices Server username): <Funambol username>
7. Set Password (on some devices Server password): <Funambol password>
8. Set Connection: enter a working internet connection (if you don't have one, contact your mobile provider)
9. Select Applications
10. Mark Contacts and Calendar (on some devices Phonebook/Address Book and Appointments)
11. Select Application settings
12. Select Contacts (on some devices Phonebook/Address Book)
13. Set Database name: card
14. Press OK
15. Select Calendar (on some devices Appointments)
16. Set Database name: cal
17. Press OK
18. Go back once
19. Press Save to save the changes

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.