Introduzione
Attualmente il numero di terminali compatibili con MMS
sono in rapida crescita, e dato il successo degli SMS,
gli MMS potranno guidare i profitti della comunicazione
mobile basata sulle reti 2.5G (GPRS) e 3G (UMTS) come
gli SMS hanno fatto per le reti 2G (SMS).
Gli MMS sono personali, includono audio, immagini e
video. Con gli MMS si apre un collegamento diretto tra
chi fa pubblicità e l'utente finale creando cosi
una fantastica opportunità per l'immediata reazione
del consumatore, il contatto o addirittura l'acquisto.
Per i fornitori di contenuti, MMS può essere
il trampolino di lancio di nuovi servizi a valore aggiunto
da proporre a tutto il mercato.
Evoluzione
della Messaggistica Mobile
I servizi di messaggistica mobile sono lo Short Message
Service (SMS), il Nokia Smart Messaging (NSM), l'Enhanced
Messaging Service (EMS) ed il Multimedia Messaging Service
(MMS).
Il primo servizio di messaggistica mobile è stato
lo Short Message Service originariamente sviluppato
con il GSM.
SMS
Il servizio Short Message Service permette di inviare
o ricevere brevi messaggi di testo di 160 caratteri.
Lo Short Message Service è stato introdotto nel
1995 senza troppa convinzione da parte delle compagnie
ed è diventato una delle forme di comunicazione
più utilizzata.
NSM
Lo standard Smart Messagging è stato creato dalla
Nokia e consente di usare gli SMS per inviare suonerie
e loghi. Tecnicamente immagini e suonerie sono inviate
tramite SMS (uno o più) con apposita codifica
a 8 bit.
EMS
Enhanced Messaging Service è stato rilasciato
nell'ottobre 2001.
EMS prevede la possibilità di inviare, con la
stessa semplicità dei messaggi SMS, oltre a del
testo anche delle semplici animazioni, icone o melodie.
Il risultato è un messaggio SMS arricchito, ad
esempio, da una "emoticons", una piccola icona
per esprimere il proprio stato emotivo.
MMS
Il Multimedia Messaging Service è un servizio
per la comunicazione mobile. In più rispetto
ai tradizionali messaggi di testo un Messaggio Multimediale
può contenere diversi formati multimediali.
I
formati attualmente supportati da un messaggio sono:
-
Immagini: JPEG, GIF87a, GIF89a, WBMP, PNG
-
Audio: AMR
-
Video: MP4
-
Pim: vCalendar 1.0 vCard 2.1
Figura 1 - L'emulatore per gli MMS, il Nokia 7600
Figura 2- L'emulatore per gli MMS, il Nokia 7600
La
dimensione massima di un Messaggio Multimediale non
è stata fissata dallo standard MMS. Questo è
stato fatto per assicurare la futura interoperabilità,
inoltre la dimensione massima può dipendere anche
dalle preferenze di ogni singolo operatore che fornisce
il servizio di consegna del messaggio. In questa prima
fase i messaggi MMS saranno di dimensioni comprese tra
i 30 KB e i 100 KB.
Standard
Il Multimedia Messaging Service è un servizio
standardizzato dal Wap Forum e dal 3GPP.
Le specifiche 3GPP definiscono i protocolli di comunicazione
e l'architettura della rete, mentre le specifiche del
Wap Forum definiscono le funzioni generali ed il formato
dati di un pacchetto MMS.
Invio
di un Messaggio
L'invio
di un Messaggio Multimediale è molto simile all'invio
di un SMS.
Invio
di un SMS
1
- Il mittente compone il proprio messaggio di testo,
inserisce il destinatario ed invia il messaggio.
2 - Il messaggio viene ricevuto da un Short Message
Service Center (SMSC).
3 - Il Short Message Service Center consegna il messaggio
al destinatario.
Figura 3 - Architettura della rete
Lo
Short Message Service Center è un server inserito
nella rete telefonica, il quale ha il compito di accettare
messaggi di testo, memorizzare i messaggi e consegnarli
appena possibile. Il tempo massimo in cui i messaggi
verranno tenuti in memoria, se lo Short Message Service
non è in grado di consegnarli immediatamente,
perché il terminale del destinatario è
spento oppure perché non ha la copertura della
rete telefonica, dipende dal gestore della rete.
Invio
di un MMS
L'invio
di un MMS, in effetti non è cosi semplice come
l'invio di un SMS:
1-
Il mittente compone il messaggio assemblando testi suoni
ed immagini. Inserisce poi il destinatario (numero di
tel., e-mail, indirizzo IPv4 o IPv6) ed invia il messaggio
utilizzando una connessione wap verso un centro MMS
(MMSC: Multimedia Messaging Service Center).
2 - Il messaggio viene ricevuto da un centro MMS.
3 - Il centro MMS invia un "messaggio push"
al destinatario, un SMS. Non è il messaggio originario,
ma una notifica la quale avverte il destinatario della
presenza di un nuovo messaggio MMS.
4 - Quando il destinatario decide di prelevare il messaggio,
il terminale effettua una connessione wap verso il centro
MMS.
5 - Il messaggio MMS viene inviato al destinatario.
6 - Il centro MMS eventualmente informa il mittente
della avvenuta consegna del messaggio al destinatario
attraverso un SMS.
Figura 4 - Architettura della rete
Complessità del Servizio
Il
Multimedia Messaging Service è formalmente specificato
da un insieme di primitive (operazioni) disponibili
ad un utente o ad altre entità per accedere ai
servizi stessi.
Queste primitive dicono al servizio di eseguire delle
azioni o di fare rapporto su una azione.
Ad
esempio l'invio di un Messaggio Multimediale corrisponde
a due primitive del servizio, M-Send.req e M-Send.conf.
Ogni primitiva del servizio è un pacchetto MMS,
ed il formato dati di un pacchetto è composto
da un header ed eventualmente da un body.
Le
primitive del servizio MMS sono otto, questa la descrizione:
1 - M-Send.req, il mittente invia un Messaggio Multimediale
al centro MMS.
2 - M-Send.conf, il centro MMS comunica al mittente
se il Messaggio Multimediale è stato accettato
3 - M-Notification.ind, il centro MMS invia una notifica
al destinatario la quale avverte della presenza di un
nuovo Messaggio Multimediale.
4 - M-NotifyResp.ind, il destinatario comunica al centro
MMS se la notifica è stata accettata.
5 - WSP/HTPP Get.req, l'utente attraverso una connessione
Wap chiede di prelevare il Messaggio Multimediale.
6 - M-retrieve.conf, il centro MMS invia il Messaggio
Multimediale al destinatario.
7 - M-Acknowledge.ind, il destinatario comunica al centro
MMS se il Messaggio Multimediale è stato accettato.
8 - M-Delivery.ind, il centro MMS invia, se è
stato richiesto, il rapporto di consegna al mittente.
Questo
il modello delle transazioni:
Figura 5 - Le primitive del servizio MMS
Il
mittente appena considerato è un terminale mobile,
ora è possibile considerare un'applicazione come
mittente. L'applicazione può essere, ad esempio,
un servizio Web per l'invio di MMS accessibile da Internet
con un qualsiasi browser.
Le primitive del servizio che ci interessano sono M-Send.req
e M-Send.conf, sono queste infatti le operazioni che
realizzano il collegamento con il centro MMS, poi questo
consegnerà il messaggio al destinatario utilizzando
tecnologie e protocolli implementati dall'operatore
telefonico..
Figura 6 - Invio di un MMS da un'applicazione
La
primitiva M-Send.req è un pacchetto MMS composto
da una parte di intestazione (header) e dal corpo del
messaggio (un testo, un'immagine , un'audio clip e cosi
via).
La
parte di intestazione contiene informazioni di indirizzamento
e di controllo. Gli headers in tutto sono 17, di cui
alcuni sono obbligatori ed altri sono opzionali.
Figura 7 - Il pacchetto MMS della primitiva M-Send.req
Questi
alcuni headers:
X-Mms-MMS-Version: obbligatorio, la versione del servizio,
ora è la 1.0.
From:
obbligatorio, il mittente.
To, Cc, Bcc: almeno un campo è obbligatorio,
il destinatario del messaggio.
X-Mms-Transaction-ID: obbligatorio, identifica univocamente
questa primitiva e la primitiva di risposta M-Send.conf.
X-Mms-Delivery-Time: opzionale, indica dopo quanto tempo
il messaggio memorizzato nel centro MMS deve essere
consegnato al destinatario.
X-Mms-Delivery-Report: opzionale, indica se il mittente
desidera il rapporto di consegna da ogni destinatario.
Content-Type: obbligatorio, indica se c'è una
presentazione multimediale, oppure no.
Il
corpo del messaggio invece viene codificato in base
allo standard del Wap Forum.
La
primitiva M-Send.conf invece è composta solo
da una parte di intestazione.
Questa primitiva viene generata dal centro MMS in risposta
alla primitiva precedente e contiene informazioni sullo
stato del messaggio.
Figura 8 - Il pacchetto MMS della primitiva M-Send.conf
Questi
sono alcuni headers generati:
X-Mms-MMS-Version: obbligatorio, come prima la versione
del servizio.
X-Mms-Transaction-ID: obbligatorio, lo stesso identificatore
della primitiva M-Send.req.
X-Mms-Response-Status: obbligatorio, indica se il messaggio
è stato accettato utilizzando un codice di stato.
Message-Id: opzionale, quando il centro MMS accetta
il messaggio assegna a questo un identificatore univoco.
Questo identificativo può essere utilizzato,
qui dall'applicazione, per la gestione del rapporto
di consegna.
Un
po' di Java
La realizzazione di un'applicazione per l'invio di MMS
richiede un contratto con un operatore di rete telefonica.
E' comunque possibile testare un'applicazione utilizzando
le librerie e gli strumenti della Nokia Corporate, disponibili
gratuitamente.
L'ultimo ambiente di sviluppo è il Nokia Mobile
Server Services SDK 1.2 rilasciato a luglio del 2003,
questo comprende le librerie Java, gli emulatori e la
documentazione.
Questo ambiente di sviluppo è però abbastanza
complesso, inizialmente è cosi conveniente utilizzare
gli strumenti e le librerie precedenti: le Java MMS
Library [1], l'emulatore MMSC EAIF [2], e gli emulatori
Nokia 5100, 6650, 7210, 7600 ed Epoc 32 per la serie
60 [3].
Le
MMS Java Library espongono le funzionalità per
creare, codificare, decodificare ed inviare un messaggio
multimediale.
Questo
frammento di codice corrisponde all'invio di un messaggio:
import
com.nokia.mms.*;
...
...
public static void main(String[] args){
//un messaggio multimediale
MMMessagge mms= new MMMessage();
//imposta gli headers
mms.setMessageType(IMMConstants.MESSAGE_TYPE_M_SEND_REQ);
mms.setTransactionId("00000000001");
mms.setVersion(IMMConstants.MMS_VERSION_10);
mms.setFrom("127.0.0.1/TYPE=PLMN")
mms.addToAddress("3768948493/TYPE=PLMN")
mms.setDeliveryReport(false);
mms.setContentType(IMMConstants.CT_APPLICATION_MULTIPART_MIXED);
. . . . . . . . . . .
// imposta il body
MMContent parte1 = new MMContent();
byte[] buf1 = readFile(path + "testo.txt");
parte1.setContent(buf1, 0, buf1.length);
parte1.setContentId("<0>");
parte1.setType(IMMConstants.CT_TEXT_PLAIN);
mms.addContent(parte1);
. . . . . . . . . . .
MMContent parte2 = new MMContent();
byte[] buf2 = readFile(path + "risultato.jpg");
parte2.setContent(buf2, 0, buf2.length);
parte1.setContentId("<1>");
parte2.setType(IMMConstants.CT_IMAGE_JPEG);
mms.addContent(part2);
. . . . . . . . . . .
//codifica del messaggio
MMEncoder encoder=new MMEncoder();
encoder.setMessage(mms);
encoder.encodeMessage();
byte[] out = encoder.getMessage()
. . . . . . . . . . .
//l'invio del messaggio resituisce un'oggetto
//MMResponse che rappresenta
//la primitiva M-Send.conf
MMSender sender = new MMSender();
sender.setMMSCURL("http://www.MMSC.com");
MMResponse response = sender.send(out);
. . . . . . . . . . .
}
Conclusioni
Questo articolo ha introdotto i concetti di base del
Multimedia Messagging Service, i contenuti supportati,
le primitive del servizio, discusso alcuni particolari
del formato dati di un pacchetto MMS, e presentato una
rassegna di alcuni tool disponibili.
Le
Nokia MMS Java Library [1] ora non sono più utilizzate,
comunque sono molto più semplici dell'ultimo
ambiente di sviluppo il Nokia Mobile Server Services
SDK 1.2, ed è consigliabile partire da queste
per chi si avvicina per la prima volta allo sviluppo
di applicazioni MMS.
In
questo articolo non si è discusso dei protocolli
di comunicazione di invio di un messaggio, comunque
per quanto riguarda l'invio di un messaggio da un'applicazione
il 3GPP ha definito l'utilizzo del Simple Object Access
Protocol (SOAP), implementato ancora in versione beta
nell'ultimo ambiente di sviluppo della Nokia a cui ci
si riferisce come MM7.
Qui sotto, i riferimenti [4], [5] e [6] sono le specifiche
del Multimedia Messagging Service per quanto riguarda
le funzioni generali e gli headers di un pacchetto MMS,
mentre [7] e [8] sono il punto di partenza per l'utilizzo
degli strumenti della Nokia Corporate.
Bibliografia
e Riferimenti
[1]
Nokia MMS Java Library Ver 1.1, 4-Marzo-2002, www.forum.nokia.com.
[2]
Nokia MMSC EAIF Emulator Ver 1.1, 2002, www.forum.nokia.com.
[3]
Nokia 5100 SDK, Nokia 6650 MMS Concept SDK, Nokia 7210
Mobile Handset Simulator (MMS/WAP), Nokia 7600 MMS Concept
SDK, Serie 60 Content Authoring SDK, www.forum.nokia.com.
[4] "MMS Architecture Overview", Wap Forum
www.wapforum.org.
[5]
"MMS Client Transaction", Wap Forum www.wapforum.org.
[6]
"MMS Encapsulation Protocol" Wap Forum www.wapforum.org.
[7]
"Getting Started with Nokia MMS Tools" 12-Giugno-2003,
www.forum.nokia.com.
[8]
"Getting Started with MMS" 25-Giugno-2003,
www.forum.nokia.com.
Diego
Marconato, vive a Treviso ed ha conseguito la Laurea
di primo livello in Ingegneria Informatica presso l'Università
degli Studi di Padova a Dicembre del 2003. Sportivo
appassionato, ssegue particolarmente il basket biancoverde,
anche quello americano dei Boston Celtics, il calcio
italiano e bianconero. Pratica il calcetto.
Appassionato di USA e la vita delle piccole città
a stelle e strisce.
|