Home

MMSCam Pilotage à distance d`un téléphone MMS (in French)

image

Contents

1. Envoi du sms try mc MessageConnection Connector open sms 16030 this getApgoProperty port ms tm TextMessage mc newMessage mc TEXT_MESSAGE tm setAddress adresse tm setPayloadText texte mc send tm Travail de dipl me MMSCam EIVD 2003 Page 86 109 Error Style not defined Error Style not defined David Jeanmonod catch Exception e Fermeture de la connection try if mc null mc close catch IOException ex afficherErreur La connection SMS ne s est pas ferm e vous devrez sans doute teindre vous t l phone pour pouvoir utiliser a nouveau ce programme Sauvegarde des infos et fermeture du programe du progranme sauvgarderEnt ree baseDonnee fermer notifyDestroyed M thode appel e au d marrage de l application ay public void startApp baseDonnee ouvrir creationEcran M thode appel e juste avant que l application soit mise en pause public void pauseApp sauvgarderEnt ree baseDonnee fermer M thode appell e lorsque qu un v nement est d tect param c L objet command qui d clanch l v nement param d L objet affichable sur lequel est d clar l objet c Z public void commandAction Command c Displayable d D clanchement de l envoi if c cmdEnvoi envoyerO
2. Travail de dipl me MMSCam EIVD 2003 Page 109 109
3. return png Quitte le mode surveillence et revient au menu principal 4 public void arreterSurveillanceSms serveurSms terminerLEcoute serveurSms null afficherMenu Envoie une photo l adresse sp cifi e param adresse L adresse ou la photo va tre envoy e Travail de dipl me MMSCam EIVD 2003 Page 92 109 Error Style not defined Error Style not defined David Jeanmonod Travail de dipl me af public void envoyerPhoto String adresse Cr ation d une cam ra et prise de la photo Camera cam new Camera this byte temp cam prendrePhoto formatCapture cam null String resulta EcranSurveillance actuel EcranSurveillance affichage getCurrent wi r Si la photo t prise if temp null Affichage de l image sur l cran Gauge barre new Gauge Progression de l envoi false 1 0 Image image Image createImage temp 0 temp length affichage setCurrent new EcranEnvoiImage image barre Envoi de l image l adresse sp cifi e resultat ComunicationServelet transmettre programme getAppProperty adresseServlet adresse image formatCapture temp barre temp null Affichage du r sultat actuel ajouterEvenement Envoi adresse resultat Retour au mode surveillance afficherEcran actuel if serveurSms demarrerUneEcoute th
4. SIT 1 Site d aide aux d veloppeurs de Nokia ce site tr s complet fourni des exemples de programmes des documents de r f rences un forum de discussion et bien d autres outils d aide http forum nokia com SIT 2 Site de Sun ce site fourni des toute la documentation possible sur les librairies Java J2ME cr e par Sun dont MIDP MMAPI WMA etc http java sun com j2me SIT 3 Site d information en fran ais concernant les technologies de d veloppement sur t l phones portables http www cellconcept com SIT 4 Site de banalisation des technologies informatiques tr s utiles pour obtenir des r sum s de technologie http www commentcamarche net SIT 5 Travail d Etude et de Recherche de Laurent BLIN Novembre 2001 http www lirmm fr ajm Cours 01 02 DESS_TNI TER9 index htm SIT 6 Recommandation W3C Documents traitant des formulaires dans les documents HTML http www w3 org TR 1999 REC htm1401 19991224 interact forms html SIT 7 Divers articles sur J2ME et sur le d veloppement en g n ral http developpeur journaldunet com Travail de dipl me MMSCam EIVD 2003 Page 70 109 Error Style not defined Error Style not defined David Jeanmonod 11 4 Forum de discussions FRM 1 Forum de discussion de Nokia ce forum constituera probablement la meilleure source d aide Tr s fr quent les questions trouvent r ponse moins d une journ e soit par des autres d v
5. Travail de dipl me MMSCam EIVD 2003 Page 102 109 Error Style not defined Error Style not defined David Jeanmonod temp position chaine Transmission de la liste return temp Defini une nouvelle liste des num ros autoris a donner des ordres param liste La nouvelle liste public void definirlisteNumero String liste String chaine Cr ation des chaine en concatenant les num ros de la liste if liste null for int i 0 i lt liste length i if i 0 chaine liste i else chaine chaine liste i Inscription de la nouvelle chaine modifier positionListeNumero chaine Ouverture de la base de donn e public void ouvrir Ouverture try base RecordStore openRecordStore nomBaseDonnee true catch Exception ex afficheur afficherErreur 2 ex toString try Si c est la premi re utilisation de la base de donn e alors on initialise les 3 champs avec une chaine vide if base getNextRecordID 1 byte a champVide getBytes base addRecord a 0 a length Mot de passe base addRecord a 0 a length adresseReponse base addRecord a 0 a length ListeNumero base addRecord a 0 a length NumCamera catch Exception exl afficheur afficherErreur Probl me lors de l ouverture de la base de donn e Ferme l
6. D placement du codage Base64 Au d but le codage en Base64 tait r alis sur le serveur relais une des hypoth ses aurait donc pu tre que la transmission entre le t l phone et le serveur relais d formait l image Ainsi la premi re mesure qui a t appliqu pour tenter de corriger cette erreur t de transf rer la tache du codage en Base64 au t l phone et non plus au serveur uniquement Pour cela il a fallu r crire la fonction de codage qui n existait pas sur le t l phone comme cela tait le cas sur le serveur Malheureusement cette modification n a pas corrig le probl me des images corrompues Des espaces inattendus Finalement c est en tudiant le code en Base64 qu est apparu le probl me Il avait des espaces dans le code Pour rappel le codage Base64 est un codage l aide d un sous ensemble de ASCII sous ensemble qui ne contient pas le caract re espace Mais alors comment donc ces espaces ont pu appara tre dans ce code Travail de dipl me MMSCam EIVD 2003 Page 53 109 Error Style not defined Error Style not defined David Jeanmonod Apr s de nombreux tests et suppositions la source du probl me a finalement t trouv e Rappelez vous le probl me qui est survenu lors de l utilisation d HTTP pour pouvoir transmettre des param tres il avait fallu configurer le champ d er t te pr cisant le type de donn es transmises comme ceci Content T
7. EcranSurveillance EcranNumeroAutoriseAjout ajouterEvenementitexte String void texteAided String commandaction c Command d Displayable void commandAction e Command d Displayable void texteAided String Pour r aliser cette interface c est la classe Form qui a servi de base a tous les crans deux de ces crans sont particuliers Travail de dipl me MMSCam EIVD 2003 Page 56 109 Error Style not defined Error Style not defined David Jeanmonod Le premier est l cran principal qui ne d rive par directement de la classe Form mais de la classe List cette classe permet d afficher une liste de choix donc exactement ce dont nous avons besoin le menu principal Le deuxi me est l cran qui s affiche lors de l envoi d images Car cet cran ne propose aucune interaction avec l utilisateur il demande simplement l utilisateur de patienter Tous les autres crans d rivent de la classe EcranGenerique Cette classe fournit la base commune de tous les crans savoir le bouton retour et l aide affichable par l utilisateur Travail de dipl me MMSCam EIVD 2003 Page 57 109 Error Style not defined Error Style not defined David Jeanmonod 7 8 Stockage des informations Ce chapitre retrace le d veloppement du paquetage stockageDonnee Si chaque fois que l utilisateur veut utiliser le programme il doit r introduire le num ro de
8. Retourne l adresse de r ponse sauvgard e return L adresse de r ponse VA public String adresseReponse return lire positionadresseReponse Modifie l adresse de r ponse param adresseReponse La nouvelle adresse de r ponse af public void definirAdresseReponse String adresseReponse modifier positionadresseReponse adresseReponse Retourne le num ro de l appareil avec la camera return Le num ro de la camera public String numeroCamera return lire positionNumCamera Modifie le num ro de l appareil avec la camera param Le nouveau numero th public void definirNumeroCamera String numero modifier positionNumCamera numero Retourne un tableau de num ro de t l phone autoris donn e des ordres return La liste de num ro de t l phones public String listeNumero String chaine lire positionListeNumero String temp null Si la chaine contient des num ros if chaine length gt 0 int nombre 1 int i 0 On capte le nombre de num os while i lt chaine length if chaine charAt i nombre i Cr ation du tableau temp new String nobre i 0 int position 0 Placement des num ros dans la liste while i lt chaine length if chaine charAt i temp position chaine substring 0 i 1 chaine chaine substring i 1 positiont
9. null return true Sinon on verifie que le num ro soit dans la liste for int i 0 i lt listeNumeroAutorise length i Si il y est alors c est bon if numero equals listeNumeroAutorise i return true Si on ne l as pas trouv on retourne faux return false Travail de dipl me MMSCam EIVD 2003 Page 90 109 Error Style not defined Error Style not defined David Jeanmonod Analise un message recu et retourne un tableau de string avec dans la premi re case le mot de passe transmis et dans la seconde l adresse de retour transmise param message le message analiser return tableau de string avec les infos du message private String extractionInfo String message String texte message String info LL T we A Tant que le message n est pas totalement parcouru while texte length gt 0 Si a commence par un m alors on a faire un mot de passe if texte charAt 0 m texte texte substring 1 Lecture du mt de passe while texte compareTo 0 amp amp texte charAt 0 info 0 info 0 String valueOf texte charAt 0 texte texte substring 1 Si a commence par un a alors on faire une adresse d retour else if texte charAt 0 a texte texte substring 1 Lecture de l adresse de retour while texte compareTo 0 amp amp texte charAt 0 info 1
10. Certes l utilisation de WTK d un diteur de texte standard peut suffire pour d velopper une application mais le travail peut tre extr mement simplifi avec l utilisation d un bon environnement de l http java sun com products j2mewtoolkit download html Travail de dipl me MMSCam EIVD 2003 Page 38 109 Error Style not defined Error Style not defined David Jeanmonod d veloppement JBuilder tant l environnement de d veloppement choisi par l EIVD c est donc lui qui sera utilis pour ce projet Comme JBuilder est la base con u pour travailler avec la version standard de Java il faut modifier son environnement pour travailler avec J2ME cette modification intervient en installant une extension nomm e MobileSet MobileSet Ce produit livr gratuitement par Borland est t l chargeable depuis leur site Cette extension qui s ajoute JBuilder offre des outils de conception visuelle pour cr er des applications mobiles un mulateur de p riph rique et un d bogueur L environnement de d veloppement de JBuilder MobileSet totalement int gr a JBuilder permet donc la construction d applications J2ME utilisant les plates formes MIDP et CLDC Emulateurs suppl mentaires Les mulateurs fournis par Sun dans WTK sont des mulateurs que lon pourrait qualifier de g n riques Mais si l on veut avoir une meilleure visibilit du r sultat du d veloppement il est int ressant d u
11. D clenchement par r ception d un SMS avec des param tres d finir R cup ration de la photo prise sur un natel par MMS ou sur une adresse e mail destinataire d fini dans le SMS Lecture des images l cran D clenchement automatique selon un intervalle de temps selon l ordre donn par SMS D clenchement par un appel en absence Possibilit de contr ler l acc s 1 D clenchement de l ordre uniquement par des num ros pr definis 2 D clenchement de l ordre par tout le monde Travail de dipl me MMSCam EIVD 2003 Page 2 109 ve wy Error Style not defined Error Style not defined David Jeanmonod 2 Tables des mati res Cahier des CAPES sacs nn En ne ne 2 Tables Ges rit ati Gb 68 senior interdisent ro boroi oet 3 ADILA TES EAEE seduce entiere ete ane ie ai eee tete et lee ete eee de 6 DVO CEO cares cstntciee sca ch iccecteta ciuce cette denhecuasuen cebweeesa dau actuccnetent scuncustsstedeskeceusstecchueeeansndel 7 Analyse et tude de faisabilit sccssscssscssssssssssssscssccssssssssssnessssscsscsssessnesssssssscssses 9 Sly We projet en g n ral smerem Me An eee ce ee 10 5 1 1 VOLUE RS SR RS A M A AA 10 52o Capture de l imap ss ns RS nea inde el ne BQ ne 10 515 Transnussionde Fimage naiera T teen ated pecans 10 5 21 Developpement SUT Tele PHONG x5 SR RSR Ra nn mn setae aes 11 2241 AE A E SR Wh eg ae nt ne a 11 5 2 2 Symbian CEF eiert ieai a a a aa
12. MMSCam EIVD 2003 Page 96 109 Error Style not defined Error Style not defined David Jeanmonod Trois boutons de commande normalement disponible sur tout les ecrans Wa protected Conmand cmdRetour protected Conmand cmdAide Sert d finir le controleur avec lequel comuniqueront les ecrans II Doit tre defini avant la cr ation d un cran param control Le controleur de l application 4 public static void definirControleur Controleur control EcranGenerique control control Constructeur d un cran g n rique V4 public EcranGenerique Affichage du titre super MmsCam Cr ation et placement des boutons cmdRetour new Command Retour Command BACK 1 cmdAide new Command Aide Command HELP 1 addCommand cmdRetour addCommand cmdAide Methode qui devra retourner un texte d aide pour l utilisation de l cran return Le texte d aide abstract protected String texteAide M thode appell e lorsque qu un v nement est d tect param c L objet command qui d clanch l v nement param d L objet affichable sur lequel est d clar l objet c public void commandAction Command c Displayable dj Si bouton retour alors on retourne au menu principal if c cmdRetour control afficherMenu System gc Si bouton d aide on affiche l aide if c cmdAide control afficherAide tex
13. envoyer des SMS des MMS des e mails et de t l phoner Sur ces quatre modes de transmission d informations deux sont disponibles unique ment sur les t l phones de derni re g n ration il s agit des emails et des MMS De plus ces deux possibilit s se r v lent plus on reuses que les deux autres C est pourquoi elles ne vont pas tre abord es De plus en ce qui concerne la transmission d informations par un appel il est bien entendu qu il n est pas question de dicter vocalement ces ordres au t l phone cam ra mais l id e serait plut t de se servir d un appel en absence pour stimuler l appareil 5 1 2 Capture de l image Cette partie ne n cessite pas d tude particuli re si ce n est la recherche des librairies qui permettent une telle manipulation d un t l phone portable 5 1 3 Transmission de l image La troisi me partie du projet consiste trouver le meilleur moyen pour renvoyer limage celui qui l a command e L aussi il existe plusieurs possibilit s On peut transf rer une image par MMS par E mail par une connexion r seau sur un serveur etc Ces diff rentes possibilit s font appel un grand nombre de technologies qu il va falloir tudier et tester de mani re valuer quelle sera la plus adapt e ce projet Travail de dipl me MMSCam EIVD 2003 Page 10 109 Error Style not defined Error Style not defined David Jeanmonod 5 2 D veloppe
14. info 1 String valueOf texte charAt 0 texte texte substring 1 else texte texte substring 1 transf re du tableau return info M thode qui traite la reception d un sms aram numero le num ro d origine du sms param texte le texte qui tait contenu dans le sms Wwe public void smsRecu String numero String texte Si le num ro le droit de donner un ordre if numeroAutorise numero Extraction des informations du message String info extractionInfo texte Si le mot de passe correspond if motDePasse equals info 0 equals motDePasse Arret de l coute sms pendant l envoi serveurSms terminerLEcoute Envoie d une photo soit l adresse standard soit celle envoy e if info 1 envoyerPhoto info 1 else envoyerPhoto adresseRetour else EcranSurveillance affichage getCurrent ajouterEvenement Re u message de numero nMot de passe incorrect Travail de dipl me MMSCam EIVD 2003 Page 91 109 Error Style not defined Error Style not defined David Jeanmonod EcranSurveillance affichage getCurrent ajouterEvenement Re u message de numero nNum ro non accept Place le t l phone en mode surveillence c est dire sensible aux sms public void demarrerSurveillanceSms Pr paration d un cran pa
15. son destinataire try smsRecu TextMessage mc receive numero smsRecu getAddress numero numero substring 0 numero last IndexOf lecteur smsRecu numero String valueOf bug smsRecu getPayloadText catch IOException e lecteur afficherErreur Impossible de lire le message re u bug 13 3 6 Paquetage de capture de l image package gest ionCamera import javax microedition media import javax microedition media control import controleur Classe charg e de la capture d une image lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MMS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 af public class Camera Travail de dipl me Le controlleur du programe WA Controleur control null Constructeur de la camera param control Le controlleur du programme public Camera Controleur control this control control Capture une image et la retourne sous la forme d un tableau de byte retum L image captur e public byte prendrePhoto String format La camera fournie par le telephone Player enregistreur null Le controlleur de la camera VideoControl controleurVideo
16. X Mms Message Size 485 Travail de dipl me MMSCam EIVD 2003 Page 28 109 Error Style not defined Error Style not defined David Jeanmonod M PriO9rLeys 3 Part _ 4691 LEGS LOS 7S SS 561687 Content Type text plain name Text txt Conrene iIremsier Ineochhnes O contents DE KcC Content Location Text txt Content Disposition inline ir Gr al SFR Perte OIL SNCS IOGTESSELCIGENE NTE Comme on peut le voir dans cet exemple beaucoup de champs de l en t te sont sp cifique aux MMS ils commencent par X Mms Il serait inutile de commencer expliquer l utilit des tous ces champs dans ce document Le lecteur int ress trouvera toutes les informations n cessaires dans le document de r f rence DOC 17 Transmission du message Une fois tous les param tres de connexion au serveur MMSC d finis sur le t l phone la transmission du message se fait par une requ te HTTP Post Pour commencer ces tests il a d abord t tent de transmettre un MMS simple contenant uniquement du texte Puisqu il n est possible de communiquer avec le serveur MMSC uniquement depuis un t l phone il n tait pas envisageable de faire ces tests depuis un PC Il a donc fallu d velopper une petite application de test avec J2ME qui a t install e sur un t l phone Sony Ericsson P800 Aucune r ponse Lors du test d envoi de ce premier MMS le serveur MMSC n a donn aucune r pon
17. byte temp Si la nouvelle valeur est une chaine vide on la remplace par la constante chaine vide if valeur compareTo 0 temo champVide getBytes else temo valeur getBytes Placement de la valeur la position demand e try base setRecord position temp 0 temp length catch Exception ex afficheur afficherErreur Impossible de sauvgarder les donn es seront perdues lors de la fermeture Lis les donn es situ e une position donn e param position La position desir e return Les donn es qui on t lues 7 private String lire int position String temp null Lecture de la valeur try temo new String base getRecord position catch Exception ex afficheur afficherErreur Impossible de charger les donn es Si c est la constante chaine vide alors on la remplace if temp compareTo champVide 0 temp mw return temp Retourne le mot de passe sauvgard return le mot de passe V4 public String motDePasse return lire positionMotDePasse Travail de dipl me MMSCam EIVD 2003 Page 101 109 Error Style not defined Error Style not defined David Jeanmonod Modifier le mot de passe sauvgarder param motDePasse Le nouveau mot de passe LA public void definirMotDePasse String motDePasse modifier positionMotDePasse motDePasse
18. connexion pour s assurer que la connexion soit possible param requete param reponse x public void doGet HttpServletRequest requete HttpServletResponse reponse Pr aparation de l envoi de la r pons try reponse setContentType text plain PrintWriter out reponse getWriter out print OK catch Exception e M thode qui est appell e lorsque le t l phone post ces donn param request La r ponse qui va tre transmise au t l phone param response La requ te envoy e par le t l phon throws IOException throws ServletException Le public void doPost HttpServletRequest requete HttpServletResponse reponse throws IOException ServletException Lecture des param tres transmis par le t l phone String pour requete getParameter pour tring photo requete getParameter photo String nomFichier requete getParameter nomFichier un Correction car lors de l envoi les espace sont transform en photo photo replace Envoi de 1 e mail avec la photo String texteRetour envoyerImage pour nomFichier photo Envoi de la confirmation Pr aparation de l envoi de la r pons reponse setContentType text plain PrintWriter out reponse getWriter out print texteRetour out close La M thode chagr e d envoy un e mail a
19. e par le programme de surveillance est une classe nomm e controleur C est cette classe qui est le centre du programme La classe controleur Cette classe qui est le c ur du programme regroupe toutes les actions que peut effectuer le programme tel que envoyerPhoto ou demmarrerSurveillance Travail de dipl me MMSCam EIVD 2003 Page 43 109 Error Style not defined Error Style not defined David Jeanmonod Controleur motDePasse String adresseRetour String collectionEcran listeNumeroAutorise String dejaConnecteUneF ois boolean false Controleur prog MIDlet libererMemoired void gestionEmail redemmaragedg void quitterd void afficherMenu void afficherEcran ecran EcranGenerique void afficherAide texte String void afficherErreuritexte String void gestionCamera numeroAutorise numero String boolean extractionInfo message String String smsRecuinumero String texte String void demarrerSurveillanceSms void formatCaptured String arreterSurveillanceSms0 void stockageDonnee envoyerPhoto adresse String void motDePassei String definirmotDePasse motDePasse String void adresseRetour String definirAdresseRetour adr String void listeNumeroAutorised String gestionSms ajouterNumeroAutorise numero String void retirerNumeroAutorisefindex int void Pour
20. new char entree length 2 3 4 Parcourt de toutes la chaine d entr e for int i 0 index 0 i lt entree length it 3 index 4 Lecture du premi re caract re valeur OxFF amp int entree i valeur lt lt 8 Lecture du second caract re si il y en a un if i 1 lt entree length valeur OxFF amp int entreeli 1 triplet true valeur lt lt 8 Lecture du troisi me caract re si il y en a un if i 2 lt entree length valeur OxFF amp int entree i 2 quadruplet true Les 3 caract res ce 8 bits lu soit 24 bits sont comverti en 4 caract res de 6 bits pris dans la table des caract res Base64 Dans le case ou il n y en avait que 1 ou 2 on bourre avec des sortie index 3 carBase64 quadruplet valeur amp Ox3F 64 valeur gt gt 6 sortie index 2 carBase64 triplet valeur amp 0x3F 64 valeur gt gt 6 sortie index 1 carBase64 valeur amp 0x3F valeur gt gt 6 sortie index 0 carBase64 valeur amp O0x3F Travail de dipl me MMSCam EIVD 2003 Page 104 109 Error Style not defined Error Style not defined David Jeanmonod return String valueOf sortie package gestionEmail import java io import javax microedition io import javax microedition lcdui Classe qui permet de transmettre les donn es la servelet
21. t effectu es Mot de passe oT C est l que vous pourrez d finir un mot de passe Si vous laissez le champ mot de passe vide alors aucun mot de passe ne sera n cessaire pour ordonner la prise d une photo Si vous d finissez un mot de passe celui ci devra imp rativement tre transmis dans le SMS de commande N Autoris MmsCam Liste des seuls numer 41244454676 41765670908 41790709432 Cet cran affiche la liste des num ros des t l phones qui peuvent envoyer des ordres En ajoutant ou en enlevant des num ros vous pouvez ainsi d finir pr cis ment qui a droit de commander des photos Pour ajouter ou enlever des num ros il suffit d utiliser les options du menu Travail de dipl me MMSCam EIVD 2003 Page 77 109 Error Style not defined Error Style not defined David Jeanmonod a HmsCam Ajouter Aide Exit Select Cancel Si aucun num ro n est sp cifi alors tous les num ros sont autoris s Note Les deux options de s curit savoir la protection par mot de passe et la limitation des num ros autoris s donner des ordres sont compl mentaires Vous pouvez tr s bien d finir une liste de num ros et quand m me demander un mot de passe Adresse de retour HmsCam Adresse d envoi adresse eivdich Ici vous pouvez sp cifier une adresse E mail par d faut Si un SMS de commande sans adresse E mail est re u c est cette adresse que s
22. 1 62 Transmission de limage SR RE SR RS ee Dr nr ne Le 49 7 6 1 TSS PERV CLS ct Run amies 49 7 6 2 Envoi du courrier lectronique 2 esse creeds ds et ea nain entre 50 7 6 3 DERVEME MOLE 4 Tete E css 51 7 6 4 Le codage de l image en base64 is nes ne AR etes 51 7 6 5 Probl mes Image corrompue 2e ARE RSR EM EE 53 Tl Mnlerkace Utlisateuy sine demain a E ESEAS 55 TN MONG SOUL ON EE E A A RR ee 55 Td 2s R ALISATION nd as 56 7 8 Stockage des informations surnisirnsnaininininniamnndantennlie 58 Hs RMS ans dees ae a es a ea aes 58 7 8 2 Base d donn es usines lan iranienne LEES 58 Bilan dela Pe alis Ati ois vsssssctcevasnevt sesssnsvasenteussisoneerscengnetondedesuseesdenessineensuengievassedenscenonsvis 59 8 1 1 L application Regi seer se eisien en e E a R E SA a 59 8 1 2 Probl mes T s due lS a Ne ee Te tn ne a A ARE 59 OS Eyol tion TUCUEC nent es let ns doses n stress anasevensenxesesunaseoncseetenstesnoenetes 61 Due Passage a MEDP 2 0 died tamis 62 9 1 1 Meilleure interface 2raphique tin nine n e ies 62 9 1 2 Meilleure interactivit entre les t l phones 20 0 0 eee eeeeeeceseeeceseeeeeeeeeesteeeeeaeees 62 9 1 3 Abandon du serye r relais isrann a re e ana eats 62 Travail de dipl me MMSCam EIVD 2003 Page 4 109 Error Style not defined Error Style not defined David Jeanmonod 9 2 Utilisation de la librairie MMS JSR 205 WMA 2 0 64 10 H ROS ini ie eea eaea otaa En oaen eroana soass
23. 26 2003 10 27 AM Still not working with php First Thank all of you for the answers have been trying many things to make working php and midlet post but without any result At the end I m using a servlet that can fetch the information that need If someone find something new for php please tell it but at least you know that with a servlet all is working fine 13 2 2 Discussion de la transmission MM1 FRM 4 Hello I m trying to send a MMS from my Midlet using the HttpConnection Like I have been looking in some document sending an MM1 is based on a WSP HTTP Post method But when try to do it didn t get any answers from the MMSC Proxy Maybe did a mistake with the encapsulation of my MM but would like to have a confirmation If someone has already did that or if you think that what I m trying is impossible for some reasons please let me know Thanks Some MMSCs will simply ignore or disconnect a very badly formatted PDU Are you sure that you re actually getting a connection to the MMSC over HTTP How are you physically connected to the MMSC can the MMSC identify who you are Many MMSCs require that you connect through a WAP proxy Since so many people want to see examples a simple MMS session is shown in the following thread http www nowsms com discus messages 12 522 html 13 2 3 Discussion de la transmission MM1 FRM 4 Hi I m looking for a sample with explanation How to bu
24. Extensions sont un standard qui a t cr e pour permettre d tendre les possibilit s du courrier lectronique Ces types permettent d ins rer des documents images sons textes dans un courrier qui jusque l tait r serv a la transmission de texte Le type MIME est utilis d une part pour typer les documents attach s a un courrier mais aussi pour typer les documents transf r s par le protocole HTTP La syntaxe d un type MIME est d finie comme suit Content type type_mime_principal sous_type_mime Une image GIF a par exemple le type MIME suivant Content type image gif 5 6 5 Depuis MIDP 1 0 Le probl me de ce protocole c est que la connexion avec le serveur SMTP doit se faire en mode connect g n ralement bas sur TCP La gestion r seau de MIDP 1 0 ne permet pas de telles connexions Ce type de connexion a t introduit dans la version 2 mais n est pas support par assez de terminaux pour tre utilis actuellement Le seul moyen d envoyer des Emails depuis notre application MIDP 1 0 serait de se servir d un serveur que l on puisse contacter en mode sans connexion et que ce serveur se charge d envoyer le mail Travail de dipl me MMSCam EIVD 2003 Page 26 109 Error Style not defined Error Style not defined David Jeanmonod 5 7 Essai de l envoi de MMS Il y a plusieurs avantages vouloir envoyer limage captur e sous forme d un MMS Premi reme
25. WSP specification 8 1 2 but could nt understand Perhaps a simpler explaination would be help ful Also how can i get hex of the filesize e g i have file of 4123 bytes how to reverse into hex Sure If the high bit of one of the bytes in a length field is set or with 0x80 then this indicates that the field continues for at least another byte So you ignore this bit in computing the actual value Let s take 85 09 In binary this is 10000101 00001001 85 09 To decode this you remove the high bit from each byte which gives you this 0000101 0001001 Or converting the bits to bytes you get 000010 10001001 02 89 And in decimal 649 Travail de dipl me MMSCam EIVD 2003 Page 84 109 Error Style not defined Error Style not defined David Jeanmonod 13 3 Code source 13 3 1 Programme de pilotage import java io import javax microedition io import javax microedition lcdui import javax microedition midlet import javax wireless messaging import stockageDonnee Programme de pilotage par sms de MMSCam c est ce programme qui cr e les sms de commande envoy MMSCam lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage a distance par SMS d un t l phone MMS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod versi
26. aveugle mais en ayant un retour des actions effectu es Soulignons quand m me que ce retour un co t puisque dans ce cas il est quand m me du prix d un SMS par message transmis 9 1 3 Abandon du serveur relais Dernier avantage de ce nouveau profil la possibilit d effectuer des communications en mode connect Alors qu avec la version 1 0 on ne pouvait effectuer que des transmissions de type UDP on peut donc maintenant tablir des connections TCP Travail de dipl me MMSCam EIVD 2003 Page 62 109 Error Style not defined Error Style not defined David Jeanmonod L avantage de cette volution pour la transmission de l image est qu on va pouvoir se passer du serveur relais entre le t l phone et le serveur de mail Comme nous l avons vu pr c demment le protocole SMTP requiert une connexion TCP IP C est pourquoi nous avons d mettre un interm diaire entre le serveur de mail et le t l phone Avec cette volution de la version 2 0 le t l phone va pouvoir lui m me directement communiquer avec le serveur SMTP Cette modification aura deux cons quences La premi re plut t n gative est que pour utiliser MMSCam l utilisateur devra commencer par fournir les coordonn es un serveur SMTP dont il a Vacc s De la m me mani re qu il fournit ces donn es lors de la configuration d un compte de messagerie La deuxi me cons quence beaucoup plus int ressante le programme devi
27. browsers WEB pour envoyer les donn es collect es par un formulaire DOC 17 L hypoth se est donc que pour des raisons probablement de s curit les corps des requ tes qui ne proviennent pas d un trafic WEB standard sont supprimer En d autre terme ces m canismes de s curit laissent passer les requ tes g n r es par un navigateur Internet mais suppriment celle provenant d autre programme Travail de dipl me MMSCam EIVD 2003 Page 32 109 Error Style not defined Error Style not defined David Jeanmonod 6 Bilan de l analyse L analyse qui a t effectu e permis de mieux comprendre le fonctionnement des principaux protocoles qui seront utilis s lors du d veloppement de I application Mais cette analyse a surtout r v l certaines difficult s Ces difficult s vont malheureusement impliquer des modifications du cahier des charges Modifications qui sont n cessaires a la r alisation du projet Travail de dipl me MMSCam EIVD 2003 Page 33 109 Error Style not defined Error Style not defined David Jeanmonod 6 1 Modification du cahier des charges 6 1 1 Utilisation d E mail a la place des MMS Apr s presque 6 semaines de recherche de documentation puis de tests la connexion au serveur MMSC ne marchait toujours pas et lors d envoi de donn e en HTTP le seul moyen de les r cup rer tait l utilisation d une Servlet Il a donc fallu prendre une d cision pour la su
28. charg e d envoyer un mail lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 KA final public class ComunicationServelet Fonction qui r alise une pr connexion c est dire qui active l utilisation du r seau mais ne transmet rien param adresse Une adresse ou effectuer une pr connexion wh static public void preConnexion String adresse try HttpConnection c HttpConnection Connector open adresse c setRequestMethod HttpConnection GET OutputStream os c openOutputStream os close c close catch IOException ex Transmet les param tres de l e mail la servelet param adresseServlet L adresse de la servlet param adrDestination L adresse de destination param namFichier Le nom du fichier image oaram codePhoto Le code de la photo param barre La barre de progression de l envoi return Le code de retour de la servlet ke static public String transmettre String adresseServlet String adrDestination String nomFichier byte codePhoto Gauge barre Encodage de la photo en Base64 String photo Base64 encoder codePhoto 3 objets de connexion L
29. devrait signifier que personne n a le droit d envoyer un ordre inutile Constatation n 2 Inversement si l on veut autoriser tout le monde il faudrait introduire tous les num ros existants impossible Face ces deux constatations la modification suivante s impose il sera d fini que si aucun num ro n est pr cis alors tout le monde aura acc s Travail de dipl me MMSCam EIVD 2003 Page 46 109 Error Style not defined Error Style not defined David Jeanmonod 7 5 Capture d une image Ce chapitre retrace le d veloppement du paquetage gestionCamera La capture d image n tant bien entendu possible qu avec des appareils munis d une cam ra il est normal que cette option ne fasse pas partie des fonctions de base de MIDP En fait les fonctions se rapportant la capture d image sont disponibles au travers d un package optionnel nomm Mobile M dia API MMAPI 7 5 1 Fonctionnement Pour prendre une photo il faut premi rement cr e un objet du type Player que l on trouve dans la librairie MMAPI Ensuite il faut Vinitialis selon le sch ma ci dessous close close CLOSED realize UNREALIZED REALIZED PREFETCHED deallocate deallocate stop Quand on a cr e l objet il faut successivement appeler ces m thodes realize prefetch et start Apr s avoir initialis les l ments de pilotage de la cam ra il suffit de f
30. est l application d envoi des ordres Travail de dipl me MMSCam EIVD 2003 Page 75 109 Error Style not defined Error Style not defined David Jeanmonod Select application amp PilotageMMSC ATTENTION Ne jamais envoyer un ordre avec l application de pilotage si l application de surveillance est activ e sur le m me t l phone Cette action aura pour effet de rendre l application de surveillance inop rante 13 1 5 L application de surveillance Le premier cran qui s affiche lors de l ouverture de l application de surveillance est le me nu principal HmsCam Mot de passe N Autoris Adresse de retour Quitter Options Vous pouvez vous d placer avec les fl ches et s lectionner une option l aide du bouton Choisir Activer MMSCam C est option permet d activer le mode de surveillance partir du moment ou vous aurez activ MMSCam le programme sera sensible l arriv e de SMS de commande En attente dun sms Liste des messages envoy s Travail de dipl me MMSCam EIVD 2003 Page 76 109 Error Style not defined Error Style not defined David Jeanmonod A chaque fois qu un SMS de commande sera re u l cran affichera l action effectu e image envoy e probl me de transmission mot de passe erron etc Ainsi en r cup rant le t l phone qui effectu une surveillance vous pourrez savoir quelles sont les actions qui on
31. exactement quelle est l activit du r seau et ce qui s y passe On peut ainsi contr leur que les trames mises correspondent bien ce que l on d sire Mais en travaillant avec un t l phone portable il est impossible d installer un tel programme puisque le r seau est sans fil et donc ne poss de par de point de connexion Manque d information Certes d s le d but je savais que j allais devoir rechercher norm ment d informations Premi rement pour combler le manque du fait de ma formation en orientation logiciel et non t l com ce projet tant destin un tudiant de t l com Mais aussi parce que le domaine t l phonie mobile volue extr mement vite de nouvelles technologies sp cifications etc sont continuellement mise en service Mais tous cela restait dans le domaine du pr visible Par contre ce que je n avais pas imagin ont t les probl mes li s l utilisation du r seau de t l phonie Le plus gros probl me a t cette histoire de requ te HTTP tronqu e Quelques personnes ont pu me donner un d but de r ponse dans divers forums Par contre je n ai trouv aucune informations officielles qui ont pu m aider Travail de dipl me MMSCam EIVD 2003 Page 65 109 Error Style not defined Error Style not defined David Jeanmonod 11 Reference amp Bibliographie Ce projet traite d un sujet la pointe de l actualit et n cessite d tre inform au max
32. la cam ra l adresse e mail le mot de passe etc Il va tr s rapidement se lasser et finir par ne plus utiliser du tout V application L id al serait de pouvoir enregistrer toutes ces informations dans un fichier comme on le ferait sur un ordinateur Malheureusement le concept de Java qui se veut totalement ind pendant du support d ex cution ne permet en aucun cas d acc der des fichiers Par contre un autre m canisme est fourni pour g rer le stockage persistant de donn es 7 8 1 RMS RMS Record Management System est une API de stockage persistant sur le terminal C est en quelque sorte une base de donn es ind pendante du terminal Chaque enregistrement est repr sent sous forme de tableau d octets Les enregistrements sont stock s dans ce que l on appelle un Record store Si l on veut faire un parall le avec les SGBD relationnels RMS correspond au SGBD lui m me et le Record store la table Les enregistrements sont identifi s par un nombre entier La valeur de l ID du premier enregistrement est 1 et chaque nouvel enregistrement a une valeur ID augment e de un 7 8 2 Base de donn es Dans le cas de notre programme il nous faut g rer deux bases de donn es diff rentes une pour l application de commande et une pour V application principale Etant donn que ces deux bases de donn e sont similaires ce qui a t r alis c est une seule classe de manipulation de la base de donn es Co
33. null Capture d une image au format sp cifi byte imagePng null try Le manager cr e l instance de la camera nregistreur Manager createPlayer capture video MMSCam EIVD 2003 Page 99 109 Error Style not defined Error Style not defined David Jeanmonod Pr paration et initialisation de la camera nregistreur realize nregistreur prefetch Cr ation du controleur vid o controleurVideo VideoControl enregistreur getControl VideoControl controleurVideo initDisplayMode VideoControl USE_GUI_PRIMITIVE null D marrage de l activit de l enregistreur enregistreur start Mise en veille d une seconde pour que la cam ra fasse le point Thread sleep 1000 Capture de l image imagePng controleurVideo getSnapshot encoding format amp width 200 amp height 150 Fermeture des toutes les instances controleurVideo setVisible false controleurVideo null enregistreur stop nregistreur deallocate nregistreur close catch Exception e Affichage de l erreur control afficherErreur Impossible de capturer une image la cam ra est peut tre d j utilis e Retourne l image return imagePng 13 3 7 Paquetage de stockage des donn es package stockageDonnee import javax microedition rms Classe qui s occupe de stocker les donn e du programe de mani re viter un
34. param tres de connexion Comme depuis Java il n est pas possible de lire ces param tres il va falloir les rentrer la main Il faudra donc configurer l application sur chaque terminal ce qui malheureusement sera un gros frein la portabilit souhait e dans le cahier des charges de ce projet Chaque compagnie de t l phone poss de un voire m me plusieurs serveurs MMSC Les param tres de connexion dont nous avons besoin sont simplement les donn es pour se connecter un serveur MMSC Dans notre cas le serveur MMSC de Swisscom se trouve l adresse http mms natel ch 8079 Malheureusement cette adresse ne suffit pas pour s y connecter Voici la liste des param tres qui doivent re utilis s pour contacter le serveur MMSC Compte ILMESTNSE Adresse de 1 APN event swisscom ch Compte WAP IP de la passerelle 109261686210 2 Port de la passerelle 9201 Centre de servic Adresse du MMSC http mms natel ch Pome cb MMSE 2 8079 Formatage du message MMS Les messages MMS sont similaires aux messages E Mail ils utilisent la m me syntaxe et le typage MIME voir point 5 6 4 Voici un exemple de message MMS X Mms Message Type m send req X Mms Transaction ID 451048788 Mnse Versilons I O Proms ANNONCES To david lombric ch Subject test MIME Version 1 0 Content Type multipart mixed boundary Part 4691 5946653 1067333561687 X Mms Message Class Personal
35. plus complets et donc permettent de cr er des interfaces utilisateurs plus conviviales et plus simples utiliser 9 1 2 Meilleure interactivit entre les t l phones Avec la version 1 0 du profil MIDP les op rations qui ont un co t comme l envoi de SMS par exemple n cessitent toujours une confirmation de l utilisateur avant d tre effectu es Ceci pour viter qu une application abuse des fonctionnalit s payantes du t l phone au d pens de son propri taire ce qui est fort compr hensible Malheureusement cette fa on de faire limite consid rablement l activit des programmes qui comme MMSCam doivent tre con us pour fonctionner sans la pr sence d un utilisateur pour donner sans arr t l autorisation d envoyer ou non des messages Avec cette nouvelle version une nouvelle notion est int gr e celle d application de confiance qui peut si l utilisateur donn son autorisation au d but utiliser toutes les fonctions payantes sans qu une confirmation soit demand e chaque fois Ceci est tr s int ressant actuellement lorsque l utilisateur envoie un SMS de commande Il ne re oit aucun message de confirmation en retour Si le mot de passe tait erron il ne le saura pas alors qu avec MIDP 2 0 on pourrait automatiquement lui signaler son erreur par SMS On arriverait ainsi une meilleure interactivit entre les deux t l phones et on pourra piloter l appareil MMSCam non plus l
36. s assurer de la compatibilit compl te du terminal h te Il est aussi possible d ajouter des informations compl mentaires qui seront utilis es par le programme Cela l avantage de pouvoir modifier certaines constantes sans avoir besoin de recompiler les classes Pour acc der ces informations on utilise la m thode suivante MIDlet getAppProperty Nom du param tre Voici c dessous le fichier jad utilis dans MMSCam MIDlet 1 Pilotage 2 png MmsCamCommande MIDlet 2 MMSCam 1l png MmsCam MIDI Descrisvions Procremnme Ce suryeillancs pour martel MMS MIDI T Teong Jone MIDlet Jar Size 24076 MIDlet Jar URL MmsCam jar MIDlet Name MmsCam MIDlet Vendor D Jeanmonod MIDlet Version 1 0 MiLeonchheion ContigurarilLons CDC 0 Mal Gre mcllicslom P rei MEENTE O adresseSsServlet http www mycgiserver com servlet jeanmonod EmailServle poole Sims g 16753 On peut par exemple voir que le num ro de port utilis pour l envoi des SMS est stock dans ce fichier On y trouve aussi l adresse du Servlet On peut ainsi facilement modifier cette valeur Remarque L id e de ce fichier de description est tr s bonne pouvoir viter ainsi qu un programme ne s installe sur un mat riel insuffisant son ex cution est une tr s bonne chose Travail de dipl me MMSCam EIVD 2003 Page 41 109 Error Style not defined Error Style not def
37. solution constituerait la meilleure option existante elle permettrait d allier les avantages des MMS et de ne plus avoir le probl me de configuration du serveur MMSC puisque cela serait automatiquement g r par la librairie Mais comme rien n est parfait il reste un probl me l utilisation de cette librairie en effet il n y a encore aucun t l phone sur le march qui la prennent en charge Mais cette situation devrait changer d s l ann e prochaine car selon certaines personnes qui travaillent dans le domaine plusieurs terminaux devraient la prendre en charge partir du d but de l ann e 2004 5 7 2 Utilisation de l interface MM7 Comme cela a t expliqu plus haut l utilisation de l interface MM7 requiert l ouverture d un compte chez un op rateur de t l phonie Ce Travail de dipl me MMSCam EIVD 2003 Page 27 109 Error Style not defined Error Style not defined David Jeanmonod compte n ayant pas t cr e l envoi de MMS par cette interface n a pas pu tre test 5 7 3 Utilisation de l interface MM1 Pour envoyer des MMS avec l interface MM1 il faut transf rer le message correctement format un serveur MMSC et cela l aide d une connexion WSP HTTP Le serveur MMSC Quand un utilisateur veut utiliser le service MMS pour la premi re fois il doit configurer le service pour son t l phone Il doit envoyer un message son op rateur qui lui renvoie les
38. transform en caract re bizarre Ce genre de modification est courant et nous nous d brouillons tout de m me pour lire les messages ainsi d form s Le code d une image Pour optimiser au maximum la compression d une image on n utilise pas des caract res mais un code binaire Par contre lors d une transmission il arrive souvent que le code binaire soit interpr t comme du texte Quand on ouvre un fichier binaire en mode texte on voit que toute la palette des 256 caract res est utilis e Si l on ouvre un Travail de dipl me MMSCam EIVD 2003 Page 51 109 Error Style not defined Error Style not defined David Jeanmonod fichier du type JPG dans un diteur de texte voila ce que l on va trouver Q9 TYA AG A UUCO7 _EAOEN 431 D AcE m F UkYy Ra Obx M da Sie c fg n Y 0A S 0 3 O00BEAt G7 gt XAIUJ SNO BefOE y nyK8 7i d Ew A FT AS 60j i SB i H7 ji BUpT 9 t2 JO wid e R WAF i 12 K 6 1GOd64 P A 2 D772tGUaV 3 _ Fh i O4BBt w E E8R9 n 4AN Y Mais alors comment une image qui en mode texte compos de tous les caract res peut elle garder son int grit lors d un transfert si un simple texte accentu peut tre alt r par une transmission La norme Base64 La solution qui a t adopt e consiste recoder les images pour leur transf
39. type de communication qui est cette fois la communication entre un client HTTP et un serveur MMSC Il est donc possible l aide de cette interface d envoyer des MMS non plus uniquement depuis un t l phone portable mais depuis n importe quel client HTTP Bien entendu les op rateurs n ont pas pr vu que vous puissiez envoyer gratuitement des MMS depuis une page Web Et cela est financi rement compr hensible Mais par contre ce qui t pr vu c est que l on puisse ouvrir un compte aupr s d un op rateur pour obtenir un acc s l interface MM7 Ainsi l op rateur pourra tout de m me facturer son service Travail de dipl me MMSCam EIVD 2003 Page 20 109 Error Style not defined Error Style not de fined David Jeanmonod Taxation L avantage de cette interface c est qu une fois un compte ouvert il est possible de d finir le mode de taxation que l on veut utiliser On pourrait par exemple sp cifier que c est celui qui re oit le MMS qui est charg de payer son prix Ainsi la personne qui a command une photo la payerait la r ception Ce syst me serait pratique pour des cam ras qu on pourrait qualifier de publiques Inconv nient Le principal inconv nient r side dans l ouverture du compte chez l op rateur Puisque que nous voulions une bonne portabilit il est assez probl matique de devoir ouvrir ce compte En effet si l on regarde d ja pour la Suisse il faudrai
40. utiliser les MMS il faut garantir la compatibilit des nombreuses interconnections Pour cela des interfaces ont t d finies On entend par interface la sp cification des communications entre deux entit s Ces interfaces s parent les sp cifications en huit sous normes nomm es MM1 MM2 jusqu MM8 La figure suivante met en vidence le champ d activit s de chacune de ces interfaces La partie centrale de la figure pr c dente compos e d un Relay et d un Server est ce que l on nomme le MMSC Multim dia Message Service Center C est le centre du syst me Ainsi par exemple pour une transmission entre deux serveurs MMSC on utilise la norme MM4 entre un t l phone portable et un serveur MMSC se sera la norme MM1 et ainsi de suite 5 4 3 L interface MM1 Bien entendu l interface qui nous int resse le plus est MM1 car c est elle qui d crit comment envoyer un MMS depuis un t l phone portable Les informations officielles concernant cette interface sont disponibles dans deux documents publi s par 3GPP Ces deux parties bien distinctes sont premi rement la structure du message c est dire la mani re dont il est cod et deuxi mement sa transmission c est dire les protocoles utilis s ainsi que l ordre des messages Les deux documents publi s par 3GPP sont WAP 206 MMS Client Transactions DOC 16 WAP 209 MMS Encapsulation DOC 17 Travail de dipl me MM
41. 87 12523285 Classe COntrole Un SE RSR ns E dede 88 13 3 4 Paquetage de la collection d cran 94 13 3 5 Paquetage de transmission de l ordre e cc eeescecesececesececeeceeceeececeeeeecseeeeeeaeees 97 13 3 6 Paquetage de capture de limage 2 4 2 onic Bia eee eae Bae 99 13 3 7 Paquetage de stockage des donn es veo es ne 100 13 3 8 Paquetage de transmission de l image nent 104 1339 Code dela servlet ea e ana E a A EA 106 Travail de dipl me MMSCam EIVD 2003 Page 5 109 Error Style not defined Error Style not defined David Jeanmonod 3 Synth se Le but de ce projet tait de modifier un t l phone portable de mani re pouvoir le commander distance Le t l phone prendrait alors une photo qu il nous renverrait par MMS La r alisation de ce travail de dipl me s est d coup e en deux phases distinctes Premi rement une analyse des possibilit s techniques 7 Deuxi mement la r alisation du travail Analyse Cette partie la plus importante consister en une tude des diff rentes technologies et protocoles utilis s dans le monde de la t l phonie mobile Les sujets abord s sont li s la transmission dinformations d un t l phone portable un autre soit une communication avec Internet L analyse a permis de r v ler des difficult s techniques qui ont influenc la suite du projet comme par exe
42. HTTP qui parviennent au serveur h te et cela avec du code java alors que g n ralement on aurait utilis un script PHP ou ASP L utilisation de servlets a plusieurs avantages mais le principal est a mon avis qu il est possible d utiliser toutes les classes Java Utilisation Afin de d velopper une servlet fonctionnant avec le protocole HTTP il suffit de cr er une classe tendant javax servlet http HttpServlet Travail de dipl me MMSCam EIVD 2003 Page 49 109 Error Style not defined Error Style not defined David Jeanmonod Suivant le type de la requ te que l on d sire traiter GET ou POST il suffit de d finir la m thode ad quate Si la m thode utilis e est GET il faut de red finir la m thode void doGet HttpServletRequest r HttpServletResponse p Si la m thode utilis e est POST il faut de red finir la m thode void doPost HttpServletRequest r HttpServletResponse p En interrogant le param tre de r la requ te on peut obtenir les valeurs des variables que le client a transmises C est comme cela que l on va lire les donn es de l image Pour donner une r ponse au client il faut la d finir en modifiant le param tre p Une servlet de base a donc la structure suivante Imoret Javak SOIOWILSIE 4 y imoore Javak sery leto heto public class ServletDeBas xtends HttpServlet pulolic Youcl coter HiroServlerRectestr rec HttpServletResponse res thro
43. Il arrive parfois que le SMS de commande re u ne soit pas d tect par V application Ce probl me se produit dans 10 des cas environ Le message est donc plac dans la bo te de r ception standard l ordre n est pas ex cut Si l on arr te la surveillance et qu on la red marre le message est alors g n ralement consomm ce moment l et l application commence par r pondre l ordre qui tait rest en attente Travail de dipl me MMSCam EIVD 2003 Page 59 109 Error Style not defined Error Style not defined David Jeanmonod Perte de la connexion GPRS Le probleme vient du fait que lors de la connexion a GPRS le t l phone demande l utilisateur de choisir le point d acc s qu il veut utiliser Si le t l phone est plac en surveillance et que personne n est l pour choisir ce point d acc s le t l phone restera en attente ind finiment Pour corriger partiellement ce probl me il a t ajout une pr connexion de mani re ce que cette question soit pos e avant que l utilisateur ne place sont t l phone pour une surveillance Le probl me se pose lorsque le t l phone perd la connexion GPRS car le t l phone reposera la question lors de la r ouverture Ce probl me ne se pose pas souvent puisque g n ralement le t l phone garde sa connexion ind finiment Le cas peut se produire par exemple si l appareil cam ra est plac sur un v hicule et que celui ci quit
44. MMS est destin v hiculer un contenu multim dia Pour le moment le type du contenu est encore passablement limit mais terme on devrait pouvoir transf rer tous types de textes d images de sons et de vid os De plus ces messages multim dias sont encod s de mani re a pouvoir tre lus comme des petites pr sentations qui enchainent les affichages des l ments du message un peu comme le fait une pr sentation PowerPoint Acteurs Certes on peut toujours envoyer ces messages de portables a portables mais les MMS sont pr vus aussi pour d autres utilisations tels que des envois commerciaux des communications avec des serveurs etc Beaucoup de services multim dias vont commencer utiliser les MMS comme vecteurs de communication On imagine facilement des services m t o touristique de divertissement qui vont utiliser les MMS et ainsi repousser la difficult qui tait jusqu alors la petite taille des SMS Ainsi des MMS vont tre envoy s depuis un nombre de sources tr s vari e et passer par de nombreux interm diaires tels que des serveurs web serveurs d autres op rateurs ainsi qu une multitude de terminaux diff rents comprenant PC Agenda lectronique t l phone mobile etc Travail de dipl me MMSCam EIVD 2003 Page 17 109 Error Style not defined Error Style not defined David Jeanmonod 5 4 2 Les diff rentes interfaces du service MMS Face la multitude d acteurs qui vont
45. MMSCam Pilotage a distance d un t l phone MMS Auteur Jeanmonod David R pondant externe Cecchin Gianpaolo Prof Responsable Robert Stephan Sujet propos par Swisscom Mobile Travail de dipl me 2003 D partement d lectricit et d informatique erva Ecole d ing nieurs du Canton de Vaud Error Style not defined Error Style not defined David Jeanmonod le Cahier des charges Donn es de base L id e est d exploiter le service MMS de tout t l phone portable muni d une cam ra pour capter des images n importe quel moment depuis n importe quelle position Un logiciel pour t l phones portables ayant la fonction de commander la cam ra du terminal et d envoyer la photo par MMS sera d velopp pour satisfaire les fonctionnalit s d crites ci dessus Il sera possible d installer le logiciel sur tout terminal mobile muni d une cam ra Cahier des charges Le cahier des charges de ce projet consiste Cr er une application combinant la r ception d un ordre de prise de vue par SMS et d envoyer cette photo vers une adresse e mail d finie dans le SMS ou via MMS vers le num ro ordonnant Programmer l application dans un langage qui soit le plus portable possible L application doit tre simple utiliser et a installer Programmer une interface utilisateur de haute qualit Ecrire un rapport d taill code en annexe et un mode d emploi Fonction
46. P par d faut sur le port 25 Chacune des commandes envoy e par le client valid e par la cha ne de caract res ASCII CR LF quivalent un appui sur la touche entr e est suivie d une r ponse du serveur SMTP compos e d un num ro et d un message descriptif Ce protocole est extr mement simple voici donc un exemple d envoi d un mail Il faut tre connect sur le port 25 d un serveur SMTP D but de communication avec le serveur SMTP la commande HELO permet de signaler HELO there D finition de l adresse de l exp diteur du mail MAIL FROM expediteur domaine com D finition de l adresse du destinataire RCPT TO destinataire domaine com Transmission du corps du mail Voir point 5 6 3 DATA Corps du mail Sortie du serveur SMTP QUIT Travail de dipl me MMSCam EIVD 2003 Page 24 109 Error Style not defined Error Style not defined David Jeanmonod 5 6 3 Le format du message Le format d un message e mail est d fini par la sp cification RFC 822 DOC 14 En fait on peut distinguer deux types de message Les messages Mono Contenu et Multi Contenu Dans un message du premier type quelques champs d er t te peuvent tre sp cifi s mais ne sont pas obligatoires Ces champs sont par exemple Return Path Received Date From Subject Sender To cc etc Ensuite vient le message texte proprement dit Exemple Return Path lt moi e
47. SCam EIVD 2003 Page 18 109 Error Style not defined Error Style not defined David Jeanmonod Le support de transmission Dans le document consacr a la transmission des MMS on apprend que l envoi d un MMS est bas sur une communication WSP http De quoi s agit il Pour commencer qu est ce que WSP En fait WSP est une couche de la norme WAP Commen ons donc par rappeler ce qu est le WAP WAP La technologie WAP a pour but de permettre des terminaux mobiles d acc der des documents circulant par des r seaux sans fil Il s agit donc de permettre n importe quel terminal mobile de pouvoir formater des documents C est pour cela qu un protocole universel a t mis en place le WAP Wireless Application Protocol Il se propose de d finir la fa on par laquelle les terminaux mobiles acc dent des services Internet et cela un niveau au dessus de la transmission des donn es Le protocole WAP est d fini selon des couches c est dire des niveaux d abstraction des donn es dans l esprit du mod le OSD afin de s parer les diff rents traitements des donn es n cessaires pour effectuer la transaction L illustration suivante montre les 5 couches WAP ainsi qu en parall le la correspondance par rapport au mod le OSI Travail de dipl me MMSCam EIVD 2003 Page 19 109 Error Style not defined Error Style not defined David Jeanmonod WSP Comme son nom l indique WSP Wireless Sessi
48. Travail de dipl me MMSCam EIVD 2003 Page 52 109 Error Style not defined Error Style not defined David Jeanmonod Base64 Caract re en J V p Y O Q Base64 Cha ne encod e JVp70Q Note 1 On remarque que lors de la r organisation des bits s il n y a pas assez de bits pour le dernier groupe de 6 bits des z ros donc sont ajout s pour le compl ter Note 2 Une fois la cha ne encod e il faut qu elle soit un multiple de 4 caract res on y ajoute donc des caract res qui servent Application du codage Dans notre cas ce codage en Base64 doit imp rativement tre r alis pour cr er le corps de l e mail Ainsi ce travail pourrait tre r alis par le serveur relais Ce choix se justifiait car la communication de l image entre le t l phone et le serveur tait 33 plus petite que si le codage Base64 avait t fait sur le t l phone Une autre raison de ce choix tait que le serveur poss dait d ja les codecs pour r aliser cet encodage 7 6 5 Problemes Image corrompue La solution pr sent e ci dessus a t test e l aide d image du type PNG avec succ s par contre des images de type JPG se retrouvaient corrompues en arrivant sur le serveur relais Il y avait donc d j une modification du code lors de ce premier transfert Ce probl me a t tr s difficile r soudre car il tait impossible d utiliser le d buggeur pour voir ce qui tait mis par le t l phone
49. a base de donn e wa public void fermer try base closeRecordStore catch Exception ex1 afficheur afficherErreur Probl me lors de la fermeture de la base de donn e Travail de dipl me MMSCam EIVD 2003 Page 103 109 Error Style not defined Error Style not defined David Jeanmonod 13 3 8 Paquetage de transmission de l image package gestionEmail Classe d encodage d un tableau de byte en base64 lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod bas sur le code de Dr Mark Thornton version 1 0 4f final public class Base64 Table des caract res utilis s dans le code hase64 static private char carBase64 ABCDEFGHIJKLMNOPORSTUVWXY Zabcdefghi jk Imnopgrstuvwxyz0123456789 toCharArray Encode la chaine de bytes pass e en param tre en code Base64 param entree La chaine de bytes encoder return La chaine de caract re encod e 4 static public String encoder byte entree boolean quadruplet false boolean triplet false Valeur form e par la lecture de 3 caract res de 8 bits int valeur Chaine de caract re resultat taille 4 3 de l entr e char sortie
50. a connexion http le flux d entr e et de sortie HttpConnection c null InputStream is null OutputStream os null Le resultat de la requete String resultat Envoi des donn es aux serveur try Initialisation des param tres de cammunication c HttpConnection Connector open adresseServlet c setRequestMethod HttpConnection POST Travail de dipl me MMSCam EIVD 2003 Page 105 109 Error Style not defined Error Style not defined David Jeanmonod Param tre faux mais essentiel pour un bon fonctionnement c setRequestProperty Content Type application x www form urlencoded Pr paration de la barre d avancement barre setMaxValue photo length 72 Ouverture du flux de sortie et criture des donn es os c openOutputStream os write pour adrDestination getBytes os write amp nomFichier nomFichier getBytes os write amp photo getBytes Envoie la photo en ligne de 72 caract re comme sp cifier dans la RFC while photo length gt 72 os write photo substring 0 72 r n getBytes photo photo substring 72 barre setValue barre getValue 1 os write photo getBytes Modification de la barre barre setLabel Cr ation du mail par la Servlet barre setValue barre getValue 2 catch Exception e resultat Impossible d envoyer les donn es Ouvert
51. a osoasa asosa isas 65 11 R f rence amp Bibliographie sesseessescoesccsseesoesocsscesoesocsseesoesocsseesoesoossccssescossocsseesoesoe 66 HIEL YE CR ARR RE AR ge aes Ick cnet 67 112 Documents techniques si sniper 68 11 3 Site Internet de r f rence issssisniinnnetnmininmamidanintinsnnteeniiheitsns 70 LI Poe discussions 05s is ise Skis onl dey dh lsc ir ante diese dade te Save wate 71 12 Listes des abr viations utilis es esse 72 13 ANNEXES ios isssss sueievascassenissscecicecsiicess ssvessespuasencdannennasunsanescstaussabensuvansousvoastuasiaahouteessesnncbss 74 13 1 Mode d emplor du programme ne Ra ae Raise 75 LS LoVe Configurator mM Mde SES RES a a M Enr estes 75 13 12 Diffusion d logiciel ennnen R a ne AS 75 13 1 3 Installation du prosramme s ss sn caen lune nn ni 75 13 4 Ex cution de la MUD et c iccssscctavsccvettesavasaisageatvashavadsasesenecasuncneeasdeveaeasperateetatenes 75 13 1 5 Leapplication de surveillance Rs RE 76 13 1 6 L application d envoi des ordres ES SR ER NS ds 78 13 2 Communication sur les forums snnnanadnanthsantishe datent 80 13 2 1 Discussion du probl me HTTP FRM 1 80 13 2 2 Discussion de la transmission MM1 FRM 41 82 13 2 3 Discussion de la trans mission MM1 FRM 4 82 13 3 Code Source nn nana haine antoine 85 13 3 1 Programme depilotage aiseniianeennnantetanmentiennsninnnlientissen 85 13 3 2 Programme principale MMSCam se
52. aire appel une m thode nomm e getSnapshot pour obtenir une photo Travail de dipl me MMSCam EIVD 2003 Page 47 109 Error Style not defined Error Style not defined David Jeanmonod 7 5 2 Probl mes rencontr s Image floue et bleue ne A chaque capture l image tait de tr s mauvaise qualit et de couleur bleut e photo de gauche Ce probl me venait du fait qu une fois d marr e m thode start la cam ra a besoin d un petit moment pour faire le point Il suffisait donc de patienter une seconde entre le moment d ouverture de la camera et la prise de la photo M moire pleine A chaque fois qu une deuxi me photo est prise l application se termine en affichant le message d erreur Memory full J ai pass passablement de temps chercher la cause de cette erreur Fnalement le probl me a trouv sa solution lors de l ajout du d lai entre l initialisation de la cam ra et la prise de vue voir probl me pr c dant Apparemment le t l phone ne supportait pas un enchainement trop rapide des op rations Travail de dipl me MMSCam EIVD 2003 Page 48 109 Error Style not defined Error Style not defined David Jeanmonod 7 6 Transmission de l image Ce chapitre retrace le d veloppement du paquetage gestionEmail Comme nous l avons vu dans l analyse le transfert qui devait la base tre r aliser a l aide de MMS a t remplac par un tra
53. arest nt 34 6 1 1 Utilisation E mail la place des MMS o oo eee eeecceceeeeeceeceeceeeeeceeeeeesteeeenaeers 34 6 1 2 Une deuxi me application pour commander eeeeeeceseeeceeeceeeteeeeseeeeenaeees 34 6 1 3 R sum de Ce Qui Sera TEASE nn en nn nt ire 34 Te R alisation send nn cuby cxsbasph setast esr cue tosi resies 36 JL Environnement J va nncs csv ld tlds eGov Ra ee ee veins wee ish ge ea 37 Tl TSS composant Che JANTES RSR E TEE E ua E 37 TNZ Environnement de d veloppement ss sseessssssessseeessstessresseesseessseessseessresseessee 38 gs La MIDlet enmen cess eas cassette snd gaa samc ds ae a cen aces 40 Ply ACyCles de V NUS MES oie ee nie Se A ut 40 2222 Java Application D S riIplor ist inanentrnslidetsnn ee thes naheseonsenduaeaed 41 T23 MIDlet SUIS ann ne ae r a ae Ea a ate en 42 3 Stru t re du programme n e a A es Pema eee 43 14 9 Pil t g AMISANES Lise ns et an A a REE aE E ESKE a tee 45 74 1 Informations transmettre socse cs juisesesatecdgsesy aus sdedeuctoads savas seasunsgtasetanbentonees Lite 45 7 4 2 Envoi d un ordre par appel en absence ceeeceeeescecseececeeeeeceeeeeceeeeeeseeeeenaeees 45 7 4 3 Activation par enyvoi de SMS oiteig eirt eir onr gastei 46 7 4 4 Restriction par num ro de telephone entrent nement 46 Taso Capture d une IAS eoo siria a done 47 Leads FONCHOHN MENL seken iee te lt nn setae de is 47 Ve PrODIEMISS T NCON S SSSR ecto soa EE A E EEE 48
54. bien comme souvent la majorit des utilisateurs n utilisent que les fonctions de base savoir t l phoner et envoyer des SMS Les possibilit s actuelles Aujourd hui en plus de transmettre du son et des SMS les t l phones actuels sont capables de se connecter Internet Ce qui permet d j d envisager une multitude d applications Mais en plus est apparu un nouveau standard pour l envoi de message le MMS qui permet de transf rer des messages multim dias compos s d images de sons de textes de vid os etc Une grande partie des appareils commercialis s actuellement poss de aussi une cam ra incorpor e De tels progr s permettent d imaginer de nouvelles applications pour ces appareils qui n taient la base que des outils de communication vocale L id e de base du projet C est en partant de ce constat que l id e de d tourner ces appareils de leur fonction de base et d en faire des outils de surveillance est apparue Puisque les t l phones actuels nous permettent de prendre Travail de dipl me MMSCam EIVD 2003 Page 7 109 Error Style not defined Error Style not defined David Jeanmonod des photos et de les envoyer Pourquoi ne pas tenter d am liorer encore un peu le syst me et d automatiser le t l phone de mani re ce qu il prenne des photos et les envoie seul Ainsi on pourrait placer un t l phone quelque part et voir ce qui s y passe depuis n impo
55. dChoisir switch getSelectedIndex case 0 Displayable d control demarrerSurveillanceSms break case 1 control afficherEcran new EcranMotDePasse break case 2 control afficherEcran new EcranNumeroAutorise break case 3 control afficherEcran new EcranAdresseRetour break case 4 control quitter break package collectionEcran import javax microedition lcdui import java util public class EcranSurveillance extends Travail de dipl me MMSCam EIVD 200 EcranGenerique 3 Page 95 109 Error Style not defined Error Style not defined David Jeanmonod Command cmdArreter public EcranSurveillance removeConmmand cmdRetour removeCommand cmdAide cmdArreter new Command Arreter Command BACK 1 addCommand cmdArreter addCommand cmdArreter setCommandListener this setTicker new Ticker En attente d un sms d ordre ajouterEvenement D but de la surveillance public void ajouterEvenement String texte Calendar calendrier Calendar get Instance Affichage de la date et de l heure append Str imig valueOf calendrier get Calendar DAY OF MONTH My a String valueOf calendrier get Calendar MONDAY String valueOf calendrier get Calendar YEAR String valueOf calendrier get Calenda
56. destinatrice sur un t l phone Ainsi plusieurs applications peuvent utiliser le service SMS sur un m me t l phone et cela sans risque de voir leurs messages se m langer 5 3 4 R ception de message Lors de tests 1l est vite apparu qu il n est pas possible de r ceptionner les SMS standards qui sont envoy s sur le t l phone De m me qu une application ne peut pas capter les messages TCP qui ne lui sont pas destin s il est impossible de r ceptionner les SMS qui sont destin s une autre application Si la possibilit d intercepter les SMS standards avait t laiss e on aurait eu des probl mes de concurrence Imaginer deux applications qui attendent un SMS comment le syst me aurait pu savoir qui d livrer les messages entrants La solution consiste couter l arriv e de SMS sur un autre port que le port standard Comme pour TCP UDP il existe aussi 216 ports on n a donc le choix pour choisir un port pour son application Mais bien que l utilisation de n importe quel num ro de ports puisse fonctionner il faut tout de m me se r f rer la sp cification GSM DOC 13 qui pr cise que seul les num ros de ports de 16000 16999 sont r serv s aux applications Le gros inconv nient d couter sur un autre port c est qu il faut aussi envoyer le message de commande sur ce m me port Et puisque ma connaissance aucun t l phone ne permet de s lectionner le port lors de Penvo
57. deux t l phones portables qui ont les caract ristiques suivantes Support du profile MIDP 1 0 et de CLDC 1 0 Support de l api WMA JSR 120 30ko d espace m moire disponible Uniquement pour l appareil qui sera utilis pour prendre les photos Support de l api MMAPI JSR 135 13 1 2 Diffusion du logiciel Pour diffuser ce logiciel il existe plusieurs possibilit s mais dans chacun des cas les deux seuls fichiers qui doivent tre fourni a l utilisateur sont MmsCam jad MmsCam jar Ces fichiers doivent tre transf r sur le t l phone pour cela il y a plusieurs solutions T l chargement sur le t l phone d un E mail contenant les deux fichiers en pi ces jointes Acc s aux fichiers plac s sur un serveur Web Accessible temporairement sur www lombric ch mmscam Transfert l aide de l infrarouge Etc Dans tous les cas les deux fichiers doivent se trouver dans le m me r pertoire ou le m me E mail 13 1 3 Installation du programme Etant donn que l installation diff re selon les t l phones il n est pas possible de donner une marche suivre pr cise Mais normalement le simple fait d ouvrir le fichier MmsCam jad suffit installer V application 13 1 4 Ex cution de la MIDlet Lors du d marrage vous devez choisr quelle application vous d sirez vous avez le choix entre MMSCam qui est l application de surveillance PilotageMMSCam qui
58. devrait tre d sign par l acronyme SM mais pour ne pas perturber la majorit des lecteurs je les appellerai tout de m me SMS Ces messages peuvent contenir au plus 160 caract res qui sont cod s l aide d ASCII 7 bits sur 140 octets Leur format est d fini par une recommandation de GSM DOC 13 5 3 2 Utilisation dans J2ME L envoi et la r ception de SMS n est pas directement une fonctionnalit du profil MIDP Cela se comprend car certains appareils compatibles MIDP n ont pas la possibilit d envoyer de tels messages Pour pouvoir utiliser le service de message court il faut que le terminal supporte le paquetage optionnel Wireless Messaging Api 1 0 JSR 120 WMA Gr ce la librairie fournie par Sun la compatibilit avec passablement de t l phones portables modernes est garantie 5 3 3 Num ro de port Le sch ma suivant montre la structure d un message SMS En t te 1 octet Adresse du port applicatif 4 octets Information de concatenation de SM 5 octets optionnels Dewun s atilissteur 1 Donn es 135 octets 3 TP UD 140 octets Travail de dipl me MMSCam EIVD 2003 Page 15 109 Error Style not defined Error Style not defined David Jeanmonod Comme on peut le voir dans le format du message les SMS poss dent un num ro de port Ce num ro de port a exactement le m me r le qu un num ro de port dans TCP ou UDP Il sert diff rencier Vapplication
59. e MMSCam EIVD 2003 Page 55 109 Error Style not defined Error Style not defined David Jeanmonod De plus pour aider l utilisateur qui serait un peu perdu chacun des diff rents crans sera quip d un bouton Aide qui permettra d afficher un petit texte d aide Programme de pilotage Pour l interface du programme de commande rien de tr s difficile le peu d l ments que doit contenir cette partie de l application permet de placer le tout sur un seul cran Le r sultat est pr sent ci dessous Envoi d un ordre z de retour Numero de la camera eo Mot de passe Adresse de retour Options 7 7 2 Realisation Voici le diagramme de classes des crans de l interface graphique a o S 3 A S m A V EcranPrincipal EcranEnvoilmage definirControleur control Controleur void commandAction void EcranGeneriqued texteAided String commandAction e Command d Displayable void VN J R EcranMotDePasse EcranMotDePasse texteAided String commandAction void EcranNumeroAutorise EcranAdresseRetour EcranNumeroAutoriseSupprimer EcranNumerodutorised EcranAdresseRetour0 EcranNumeroAutoriseSupprimer texteAided String texteAided String texteAided String commandactiong void commandActiong void commandAction void EcranSurveillance EcranNumeroAutoriseAjout
60. e r introduction compl te entre chaque utilisation lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jearmonod version 1 0 wA public class BaseDeDonnee HH HH HK La case de donnee private RecordStore base null Le nom de la base de donnee 7 private String nomBaseDonnee Une contante repr sentant un champ texte vide af private String champVide vide Lien sur le controlleur du programme Travail de dipl me MMSCam EIVD 2003 Page 100 109 Error Style not defined Error Style not defined David Jeanmonod private AfficheurErreur afficheur L emplacement des diff rents champs dans la bse de donn e af private int positionMotDePasse 1 private int positionadresseReponse 2 private int positionListeNumero 3 private int positionNumCamera 4 Constructeur param con Le lien sur le controlleur gA public BaseDeDonnee String nom AfficheurErreur con nomBaseDonnee nom afficheur con Modification d une valeur de la base de donn e param position La position de la valeur modifier param valeur La nouvelle valeur private void modifier int position String valeur
61. eloppeurs soit par le personnel professionnel de Nokia http discussion forum nokia com forum FRM 2 Forum de discussion de Siemens beaucoup moins fr quent et moins s rieux que celui de Nokia mais pouvant apporter une aide tout de m me https communication market siemens de portal puis cliquer sur Developer Portal FRM 3 Forum de discussion en fran ais traitant du monde de Java embarqu http www cellconcept com phpBB2 index php FRM 4 Forum de Now SMS entreprise active dans l offre d acc s a des serveurs MMSC et SMSC http www nowsms com messages Il existe bien d autres forums mais ces 4 sont les principaux que j ai utilis s pour la r daction de ce document Travail de dipl me MMSCam EIVD 2003 Page 71 109 Error Style not defined Error Style not defined David Jeanmonod 12 Listes des abr viations utilis es Travail de dipl me MMSCam EIVD 2003 Page 72 109 Error Style not defined Error Style not defined David Jeanmonod POP Pow OficeProweot oo fore User Drum Powel Travail de dipl me MMSCam EIVD 2003 Page 73 109 Error Style not defined Error Style not defined David Jeanmonod 13 Annexes Travail de dipl me MMSCam EIVD 2003 Page 74 109 Error Style not defined Error Style not defined David Jeanmonod 13 1 Mode d emploi du programme 13 1 1 Configuration minimale Pour pouvoir utiliser le logiciel MmsCam il faut
62. ent d s lors compl tement autonome et ne requiert plus l utilisation du serveur relais L application devient donc utilisable sans qu une infrastructure sp cifique soit n cessaire son bon fonctionnement Travail de dipl me MMSCam EIVD 2003 Page 63 109 Error Style not defined Error Style not defined David Jeanmonod 9 2 Utilisation de la librairie MMS JSR 205 WMA 2 0 A la base ce projet devait tre bas sur une utilisation des MMS Suite aux probl mes techniques rencontr s et d crits dans ce document la transmission des images par MMS t abandonn e et remplac e par une transmission par e mail Cette modification t n cessaire pour contourner certains probl mes et le manque de support des MMS dans la version java utilis e lors du d veloppement Ce manque de support devrait tre combl rapidement puisqu un groupe d experts de la communaut java est en train de d velopper un package d extension devant prendre en charge la communication par MMS En fait ce package sera simplement l extension de la librairie WMA JSR 120 Renomm en WMA 2 0 JSR 205 on aura donc la possibilit d envoyer et de recevoir des MMS facilement depuis une application J2ME comme on peut d j le faire actuellement avec les SMS et les CBS A l heure actuelle c est dire d cembre 2003 le d veloppement de cette librairie est presque termin puisqu on peut d j la trouver en ver
63. ent s par d eux pas une ligne vide Voici un exemple complet d une requ te du type POST la demande d une fiche tudiant POST http www eivd ch etudiant fiche php HTIP 1 0 ACCEDE 2 ies menm If Modified Since Monday 15 January 2000 14 37 11 GMT User Agent Mozilla 4 0 MSIE 5 0 Windows 95 Nom Jeanmonod amp Pr nom David Travail de dipl me MMSCam EIVD 2003 Page 23 109 Error Style not defined Error Style not defined David Jeanmonod 5 6 Le courrier lectronique 5 6 1 G n ralit Le courrier lectronique est consid r comme tant actuellement le service le plus utilis sur Internet Ce service qui fonctionne un peu comme le service de courrier r el est bas sur l utilisation de deux protocoles principaux SMTP et POP POP tant utilis pour consulter le courrier re u 1l ne sera pas abord dans ce document Par contre le protocole SMTP Simple Mail Transfer Protocol qui est lui la base de tout envoi de courrier lectronique n cessite un d veloppement 5 6 2 Le protocole SMTP Le protocole SMTP est le protocole standard permettant de transf rer le courrier d un serveur un autre en connexion point point Il s agit d un protocole fonctionnant en mode connect encapsul dans une trame TCP IP Le courrier est remis directement au serveur de courrier du destinataire Le protocole SMTP fonctionne gr ce des commandes textuelles envoy es au serveur SMT
64. entrales de la technologie Java et les capacit s de m moire virtuelle de la machine La configuration CDC s adresse aux appareils mobiles derni re g n ration tels que les organiseurs t l phones haut de gamme etc La configuration CLDC est pr vue pour les t l phones mobiles d entr e de gamme tels que les portables actuels C est donc la configuration CLDC qui nous sera utile A noter encore que dans le cas de J2ME la machine virtuelle s appelle KVM pour Kilobyte Virtual Machine a Java 2 Platform Micro Edition J2ME lt Le profil MIDP En dessus des configurations il y a les profils qui d finissent les fonctionnalit s dans chaque cat gorie sp cifique d appareils Le Mobile Information Device Profile MIDP est un profil pour les appareils mobiles utilisant la configuration CLDC comme les t l phones mobiles Le profil MIDP pr cise les fonctionnalit s comme l usage de l interface client la persistance de stockage la mise en r seau et l application mod le Sur la plupart des t l phones actuels la version J2ME est compos e de la configuration CLDC et du profil MIDP Travail de dipl me MMSCam EIVD 2003 Page 12 109 Error Style not defined Error Style not defined David Jeanmonod Les packages optionnels En plus du profil standard MIDP peuvent suivant les appareils tre ajout des packages suppl mentaires pour permettre l utilisation de certaines sp cificit s des appareil
65. er si cette option existait dans les librairies java disponible dans J2ME Malheureusement elle n existe pas Cela n est pas tr s tonnant car part dans notre cas sp cifique je ne vois pas trop o une telle fonction pourrait avoir une utilit Comme expliqu plus haut une MIDlet peut avoir plusieurs tats actif en pause d truite une solution la d tection des appels en absence pourrait donc tre li e la transition entre ces diff rents tats Travail de dipl me MMSCam EIVD 2003 Page 45 109 Error Style not defined Error Style not defined David Jeanmonod Ces transitions d tats permettent de lib rer la m moire lorsqu un autre programme prend la main L id e de base serait de d tecter le changement d tat qui a lieu lorsque le t l phone reprend la main pour traiter le coup de fil Hypoth se fausse En fait apr s plusieurs tentatives 1l s est av r que le fait de recevoir un coup de t l phone ne fait pas passer l application en mode pause L application continue son ex cution pendant toute la dur e de P appel Ces tests ont t r alis s sur un appareil Nokia 3650 Peut tre que pour d autres types d appareil l id e pr c dente peut tre fonctionnelle mais faute d avoir pu essayer il n est pas possible de V affirmer Il n est donc pas possible ma connaissance de d tecter qu un appel ait t re u C est pourquoi l option de d tecti
66. era transmise la photo Quitter La derni re option permet de quitter le programme ATTENTION Utilisez la touche rouge de votre t l phone n a pas le m me effet Si vous sortez de l application l aide d une autre m thode que cette option Quitter l application sera toujours active 13 1 6 L application d envoi des ordres Cette application beaucoup plus simple vous permet d envoyer les ordres de prise de photos Travail de dipl me MMSCam EIVD 2003 Page 78 109 Error Style not defined Error Style not defined David Jeanmonod Envoid unordre ig et Adresse de retour Numero de la camera Mot de passe Adresse de retour Options Les trois champs que vous devez remplir vous permettent de pr ciser Le num ro de l appareil qui envoyer le message Le mot de passe ventuel L adresse E mail qui envoyer la capture Une fois que vous avez rempli les informations n cessaires choisissez envoyer dans le menu A ce moment le t l phone va vous demander si vous voulez envoyer le message a Envoi d un ordre Numero de la camera 41793825848 Mot de passe ske ske ske ske Send message to 41793825848 Choisissez Oui Si vous venez choisir non le message ne sera pas envoy Travail de dipl me MMSCam EIVD 2003 Page 79 109 Error Style not defined Error Style not defined David Jeanmonod 13 2 Communication
67. ermeture de la MIDLet A public void quitter if serveurSms null serveurSms terminerLEcoute serveurSms null programme notifyDestroyed Affiche le menu principal public void afficherMenu affichage setCurrent new EcranPrincipal this Affiche l ecran pass en param tre param ecran l cran afficher 4 public void afficherEcran EcranGenerique ecran affichage setCurrent ecran Affiche une petite fen tre avec un texte d aide param texte le texte qui ser affich public void afficherAide String texte Alert message new Alert Aide texte null AlertType INFO message setTimeout Alert FOREVER affichage setCurrent message affichage getCurrent Affiche une erreur param texte le descriptif de l erreur LA public void afficherErreur String texte Alert message new Alert Erreur texte null AlertType ERROR message setTimeout Alert FOREVER affichage setCurrent message affichage getCurrent Fonction qui verifie si un num ro est autoris donn e un ordre par sms param numero le num ro v rifier return vrai si le num ro le droit de donner un ordre af private boolean numeroAutorise String numero Si la liste des num ros autoris est vide alors on a le droit if listeNumeroAutorise
68. ert cela avec uniquement des caract res standards et non accentu s On utilise donc la norme Base64 qui est clairement d finie dans la RFC 2045 DOC 15 Le principe est qu un un groupe de 3 caract res 3 octets devient un groupe de 4 ensembles de 6 bits les 6 bits tant cod s selon un sous ensemble de 64 caract res de l US ASCIT qui est compos des caract res Les lettres A Z majuscule code 0 25 Les lettres a z minuscule code 26 51 Les chiffres de 0 9 code 52 61 Les caract res sp ciaux et code 62 et 63 Le caract re qui est utilis uniquement comme caract re de bourrage en fin de message pour que le nombre de caract re soit toujours multiple de 4 Cela permet d changer n importe quelle donn e binaire a travers des r seaux ne connaissant que le texte non accentu Il faut noter tout de m me que cet encodage suppl mentaire provoque une augmentation de la taille des fichiers encod s En effet si 6 bits deviennent 1 caract re donc 8 bits alors on a une augmentation de taille de 33 Voici un petit exemple de codage de 4 caract res ASCII Cha ne de base ZoZ 9 Caract res de Z 9 base en ASCII Valeur du code 37 90 123 57 ASCII Valeur binaire 00100101 01011010 01111011 00111001 4 x 8 bits R organisation 001001 010101 101001 111011 001110 010000 6 x 6 bits Valeur du code 9 21 41 59 14 16
69. es ordres Ainsi deux syst mes d identification vont tre int gr s 7 4 1 Informations transmettre Lorsque l on d sire commander le t l phone muni de la cam ra on doit bien entendu pouvoir lui dire de prendre une photo On doit aussi pouvoir lui transmettre l adresse e mail du destinataire qui il devra renvoyer la photo et pour finir la possibilit de transmettre le mot de passe qui prot ge le t l phone cam ra Donc en r sum les informations sont L ordre de prendre la photo L adresse du destinataire de la photo L ventuel mot de passe 7 4 2 Envoi d un ordre par appel en absence L id e de cette option est assez simple Lorsque l on d sire obtenir une photo de la zone surveill e il suffit de t l phoner un court instant au t l phone cam ra et de raccrocher Le t l phone d tectera cet appel en absence et prendra une photo qui sera envoy e a une adresse pr d finie Le principal avantage de cette m thode est la gratuit de op ration mais en contre partie on ne pourra pas transmettre d autres informations que celle de l ordre de prendre une photo Ainsi il faudra que l adresse d envoi de l image ait d j t d finie sur le t l phone cam ra On ne pourra pas non plus effectuer de v rification d un ventuel mot de passe D tection d appel en absence Pour impl menter la fonction de d tection des appels en absence j ai commenc par tudi
70. est la vitesse d ex cution le choix du langage est donc crucial et C s impose comme une solution tr s valable Mais dans notre cas o la vitesse d ex cution n est pas un crit re de choix cet argument n as pas d importance Ce qui ressort du cahier des charges est avant tout une grande compatibilit avec un maximum de t l phones Et 1a c est sans contexte que Java sait s imposer M me si le nombre de t l phones compatibles avec toutes les librairies n cessaires au projet n est pas encore norme 1l est s r qu il va progresser C est donc pour cette raison principale que Java t choisi pour la r alisation de ce projet Mais il faut souligner que les deux environnements se valent plus ou moins Et qu il aurait probablement t possible de travailler sur les deux plates formes et d obtenir le m me r sultat Travail de dipl me MMSCam EIVD 2003 Page 14 109 Error Style not defined Error Style not defined David Jeanmonod 5 3 Le service SMS 5 3 1 G n ralit SMS signifie Short Message Service que l on pourrait traduire par service de messages courts Ce service est disponible sur r seau GSM est permet a un utilisateur de t l phone mobile de composer un message textuel et de l envoyer un autre t l phone mobile G n ralement quand on parle de messages courts on les appelle des SMS mais ceci est un abus de langage car SMS d signe le service Un message
71. et Correction qui consiste simplement reconvertir tous les espaces du texte re u en caract re Apr s cette modification les images arrivent enfin dans un tat coh rent Travail de dipl me MMSCam EIVD 2003 Page 54 109 Error Style not defined Error Style not defined David Jeanmonod 7 7 Interface utilisateur Ce chapitre retrace le d veloppement du paquetage collectionEcran Etant donn la petite taille des crans et la difficult d utilisation de certains claviers de t l phones portables la cr ation de l interface utilisateur a une grande importance Heureusement au sein du profil MIDP le paquetage javax microedition lcdui fournit les composants n cessaires la r alisation d une interface adapt e au t l phone portable 7 7 1 Conception Programme de surveillance Pour cette partie du programme tant donn le nombre d options qui doivent tre pr sentes il faut trouver une structure qui permette de naviguer facilement entre les diff rentes parties Le choix qui a t fait est la cr ation d un menu principal qui permet de rentrer dans diff rents sous menus Ensuite chaque sous menu est quip d un bouton Retour qui permet de revenir au menu principal HmsCam Mot de passe N Autoris Adresse de retour Quitter 41244454676 41765678906 41798705432 Dptions Choisir Fw HmsCam Adresse d envoi adresse eivd ch Travail de dipl m
72. et en transmettra le code la Servlet 3 La Servlet se connectera un serveur SMTP pour envoyer un E mail avec l image en fichier attach 4 L utilisateur se connectera au serveur SMTP soit l aide d un t l phone soit l aide d un ordinateur Ainsi il pourra r cup rer la photo qu il a command quelques secondes plus t t Travail de dipl me MMSCam EIVD 2003 Page 35 109 Error Style not defined Error Style not defined David Jeanmonod 7 Realisation Cette partie du rapport retrace les tapes de r alisations du projet Je ne voulais pas rentrer trop dans le d tail ainsi chaque chapitre pr sente les choix qui ont t pris et les probl mes qui ont t rencontr s Pour avoir plus d informations concernant l impl mentation du code le choix de telle classe plut t que telle autre etc Autant se rendre directement aux listings qui sont comment s de mani re assez claire et compr hensible pour r pondre aux questions qu on pourrait qualifier de bas niveau Travail de dipl me MMSCam EIVD 2003 Page 36 109 Error Style not defined Error Style not defined David Jeanmonod 7 1 Environnement Java Comme nous l avons vu dans l analyse le d veloppement pour t l phones portables est bas sur l utilisation de la configuration CLDC et sur l utilisation du profil MIDP En plus de ces deux l ments standards nous allons aussi utiliser des paquetages op
73. fined in section 8 5 of the WAP WSP specification Basically it is a binary encoding for a multipart MIME message See this link here as there s more discussion of this in another message Explain MMS binary code Thanx read that samples Now have specific problem Octec 1C means the lenght of header counted from 9E to the beginning of the Data found some examples of MMS s and thing that the next 3 Octecs 82 C6 1F means the lenght of te image file jpeg Because in another MMS thare was only 2 octecs and these 2 Octecs were the same in two different MMS with the same image added text message was different etc But it is strange that there was value 85 09 and the image was only 649B long In another MMS there was FO 09 and the image was 14KB long Im confused of that Travail de dipl me MMSCam EIVD 2003 Page 83 109 Error Style not defined Error Style not defined David Jeanmonod Lengths are encoded as variable length unsigned integers as defined by section 8 1 2 of the WAP Wireless Session Protocol WSP specification Basically for each byte that has the high bit set this indicates that the length continues for another byte Your example of 82 C6 1F would decode to 0x02 0x80 0x46 0x80 Ox1F OxA31F 41759 85 09 would decode to 0x05 0x80 0x09 0x289 649 Can you explain further about this decoding 85 09 would decode to 0x05 0x80 0x09 0x289 649 logic read the
74. i d un SMS Il va falloir cr er une deuxi me application pour P envoi des messages de commande Ce point est particuli rement ennuyeux pas du fait qu il faille d velopper une deuxi me application mais parce que celle ci devra tre install e sur un t l phone compatible avec la librairie WMA Ce qui r duit quand m me passablement la liste des appareils utilisables Ainsi on passe d une compatibilit compl te tous les t l phones portables une compatibilit r duite aux t l phones modernes Travail de dipl me MMSCam EIVD 2003 Page 16 109 Error Style not defined Error Style not defined David Jeanmonod 5 4 Le service MMS 5 4 1 G n ralit MMS pour Multimedia Messaging System est un service qui peut a premi re abord tre consid r comme le successeur du SMS Mais si on tudie un peu plus profond ment ce service on se rend compte que MMS est bien plus complet et du m me coup plus compliqu que le service SMS L o les SMS taient principalement utilis s pour une communication de t l phones portables t l phones portables les MMS d passent largement ce cadre et sont destin s une utilisation beaucoup plus tendue Les grandes diff rences entre ces deux services sont premi rement le contenu qui peut tre transmis et deuxi mement les acteurs qui vont V utiliser Contenu Le contenu des MMS ne se limite pas au 160 caract res des SMS comme son nom l indique le
75. ild MMS Message can t find anything usefull have created header part text header part and have added text data But now need to now how to build Image Header part have sample of Image header part but don t understand it Travail de dipl me MMSCam EIVD 2003 Page 82 109 Error Style not defined Error Style not defined David Jeanmonod 8C 84 Message type MMS Message 8D 90 MMS Version 85 04 datum and Lenght 3F 27 B3 43 datum value in sec from 01 01 1970 84 A3 01 Content type 1 part image or text only don t understand what does A3 mean now starts Image Header 1C 82 C6 1F this don t understand thing that there must be lenght and maybe size of the picture Petr A3 is the content type MMS uses content type codes from the WAP WSP Wireless Session Protocol specification Actually the codes are published separately at http www wapforum org wina wsp content type htm In this case the content type is application vnd wap multipart mixed which has a code of 0x23 according to the WINA link but WSP encoding OR s this value with 0x80 The content type field is ALWAYS the last field of the MMS header of an m retrieve conf Ox8C 0x84 header or m send req format MMS message Immediately after the content type field comes the content itself In this case you re looking at data encoded in the application vnd wap multipart mixed format This format is de
76. imum des avanc es technologiques effectu es dans le d veloppement pour appareils portatifs C est pourquoi il est tr s difficile voir m me impossible de s appuyer sur des ouvrages crits Ainsi la majeure partie des r f rences qui vont tre cit es cr dessous sont des sites Internet sp cialis s ou des forums de discussion Travail de dipl me MMSCam EIVD 2003 Page 66 109 Error Style not defined Error Style not defined David Jeanmonod 11 1 Livres LIV 1 Introduction to 3G Mobile Communications 2d edition Juha Korhonen 2003 Artech House Publishers Norwood USA LIV 2 Learning Wireless Java Qusay H Mahmoud Jan 2002 O Reilly Sebastopol USA Travail de dipl me MMSCam EIVD 2003 Page 67 109 Error Style not defined Error Style not defined David Jeanmonod 11 2 Documents techniques DOC 1 Using the Nokia 3650 Messaging Api Version 1 0 06 sept 02 Exemple de programmation en C qui cr e des MMS et les envoies document trouv sur le site de Nokia SIT 1 DOC 2 Using the Nokia 3650 Camera Version 1 0 06 sept 02 Exemple de programmation en C qui permet de prendre des images avec la cam ra et de les stocker sur le natel document trouv sur E site de Nokia SIT 1 DOC 3 Datasheet Java 2 Platform Micro Edition Pr sentation g n rale des buts et fonctionnalit s deJ2ME http java sun com j2me j2me ds pdf DOC 4 Brief Introduc
77. ined David Jeanmonod La surprise fut grande quand j ai remarqu qu il tait impossible d ajouter l utilisation des paquetages optionnels Ainsi il n est pas possible de pr ciser que j utilise les deux paquetages WMA et MMAPI Ce qui est fort dommage car beaucoup de personnes ne savent pas si leur t l phone impl mente ces librairies Elles pourront donc t l charger l application et constateront lors de l ex cution la nonconformit de leur appareil 7 2 3 MIDlet Suite Pour diffuser une application MIDP il faut premi rement stocker le programme c est a dire la classe qui d rive de MIDlet toutes les classes utilis es ainsi que les fichiers n cessaires au fonctionnement dans une archive compress e JAR Plusieurs programmes peuvent tre stock s dans la m me archive avec la possibilit de se partager les composants du JAR Ce qu on appelle MIDlet Suite est simplement une suite de plusieurs MIDlets qui sont rang es dans la m me archive JAR Leur fichier JAD fait aussi partie de la suite Pour l application MMSCam la suite sera compos e des deux applications celle de commande et l application principale Elles se partageront ainsi les fichiers de classes les fichiers de ressources tels que les ic nes et le descripteur de la suite JAD Travail de dipl me MMSCam EIVD 2003 Page 42 109 Error Style not defined Error Style not defined David Jeanmonod 7 3 Structure du progra
78. ique et un kit pour d veloppeurs logiciels SDK S rie 60 tous ces l ments fonctionnant sous Symbian Commercialis au deuxi me trimestre 2002 le Nokia 7650 a t le premier produit quip de la plate forme S rie 60 Cette plate forme fournie donc un environnement commun toute une s rie de t l phones 5 2 3 Choix r alis C poss de une plus grande flexibilit que Java En effet Java dispose de proc dures d j impl ment es qui peuvent ne pas convenir dans certains cas tel que le management des ressources m moires le nettoyage automatique de la m moire RAM en Java peut causer des dysfonctionnements sur certains programmes N anmoins les diff rents probl mes associ s au codage en C sur Symbian sont Travail de dipl me MMSCam EIVD 2003 Page 13 109 Error Style not defined Error Style not defined David Jeanmonod Management de la m moire pour la majorit des applications le systeme Java semble tre suffisant Environnement d ex cution les options propos es sur les ex cutables Java comme les protections au t l chargement ou l ex cution s curis e sont gratuites alors qu en C il faut les d velopper les tester et les maintenir P rennit Java semble avoir t accept pour le d veloppement d applications sur t l phones mobiles Les d veloppements futurs rendront Java peut tre aussi rapide que le C Pour les jeux o le crit re recherch
79. is programme getAppProperty portSms actuel ajouterEvenement La d tection de SMS ne marche plus Red mmarage n cessaire Retourne le mot de passe d fini par l utilisateur return Le mot de passe V4 public String motDePasse return motDePasse Modifie le mot de passe param motDePasse le nouveau mot de passe public void definirMotDePasse String motDePasse this motDePasse motDePasse donnee definirMotDePasse motDePasse Retourne l adresse de retour d finie par l utilisateur return L adresse de retour 7 public String adresseRetour return adresseRetour Modifie l adresse de retour ou l image sera envoy e param adr La nouvelle adresse V4 public void definirAdresseRetour String adr adresseRetour adr donnee definirAdresseReponse adr MMSCam EIVD 2003 Page 93 109 Error Style not defined Error Style not defined Retourne la liste des num ros autoris donn e des ordres par sms return La liste de num ros public String listeNumeroAutorise return listeNumeroAutorise Ajoute un num ros la liste des num ros autoris param numero Le num ro ajouter af public void ajouterNumeroAutorise String numero Liste temporaire String temp Si la liste est vide alors on cr e une liste de taille 1 if listeNumeroAutorise
80. ite du projet Continuer a chercher dans la voie des MMS aurait pu tre possible mais au risque que le projet n aboutisse pas du tout C est pourquoi j ai d cid d opter pour une autre solution qui elle avait prouv qu elle marchait J ai donc d cid d utiliser la connexion avec la Servlet qui elle fonctionnait pour envoyer la photo jusque l et de la d livrer par mail par la suite D livrer l image par MMS aurait pus tre possible depuis la Servelet par le biais de l interface MM7 Mais les inconv nients de cette interface discut plus haut m on fait opter pour l utilisation d e mail 6 1 2 Une deuxi me application pour commander Face au probl me de la r ception de SMS standard il n y a apparemment pas de solution disponible pour capter ces messages Le recours une seconde application d di e l envoi de SMS est donc n cessaire pour la continuation du projet 6 1 3 R sum de ce qui sera r alis Servlet Ordinateur Commande Cam ra Travail de dipl me MMSCam EIVD 2003 Page 34 109 Error Style not defined Error Style not defined David Jeanmonod Ce qui va donc tre r alis est repr sent sur le sch ma ci dessus Le d roulement des op rations sera le suivant 1 Un utilisateur se servira d un t l phone avec le programme de commande pour envoyer un SMS l appareil de surveillance 2 Le t l phone de surveillance prendra une photo
81. iv e de sms private GestionnaireSms serveurSms La zone de stockage persistante des donn es a7 private BaseDeDonnee donnee Ie mot de passe courant ga private String motDePasse L adresse de retour courante private String adresseRetour La liste des num ros d ou peuvent venir les ordres ay private String listeNumeroAutorise Sp cifie si l application c est d j connecter une fois au GPRS ah private boolean dejaConnecteUneFois false Le constructeur de ce controlleur param prog la MIDLet qui declare le controlleur 4 public Controleur MIDlet prog programme prog donnee new BaseDeDonnee mmscam this M thode qui lib re un maximum de m moire g n ralement appell e avant la mise en pause de l application 4p public void libererMemoire donnee fermer M thode qui est appell e apr s une mise en pause de 1 application public void redemarage Chargement des donn es donnee ouvrir motDePasse donnee motDePasse adresseRetour donnee adresseReponse listeNumeroAutorise donnee listeNumero Travail de dipl me MMSCam EIVD 2003 David Jeanmonod Page 89 109 Error Style not defined Error Style not defined David Jeanmonod Placemment du menu principal affichage Display getDisplay programme afficherMenu D marre la procedure de f
82. ivd ch gt Subject Message d exempl 1e lt c waCeawel cln gt Texte du message d exemple Les messages a contenu multiple sont utilis s lorsque le message doit contenir plus qu un l ment Par exemple si l on veut envoyer un message ainsi qu une image et un fichier HTML Pour envoyer un tel message le champ d ert te doit contenir 3 lignes suppl mentaires Mime Version 1 0 Content Type multipart mixed Boundary ParrileSuilvantce Ces trois lignes pr cisent La version du type MIME utilis voir point 5 6 4 Le type du message dans ce cas que c est un message Multt Contenu avec des documents de plusieurs types La chaine de caract res qui sera utilis e pour s parer deux parties Voici un exemple de message qui contient un petit texte et un fichier HTML Subject Message multi contenu To lt toi eivd ch gt Mime Version 1 0 Content Type multipart mixed Boundary igne de separation ligme de S paration Content Type text plain Message texte liione de sepacatiom Content Type text html lt HTML gt lt BODY gt lt B gt Message html lt B gt lt BODY gt Travail de dipl me MMSCam EIVD 2003 Page 25 109 Error Style not defined Error Style not defined David Jeanmonod lt HTML gt Wiene cle SePeikait LOM 5 6 4 Les types MIME Les types MIME Multipurpose Internet Mail
83. l e chaque fois que l application reprends la main af public void startApp control redemmarage M thode appell e chaque fois que l application perd la main public void pauseApp control libererMemoire M tode appell e une seule fois au moment de la fermeture de la MIDLet param unconditional sp cifie si la MIDLet doit effectuer un nettoyage af public void destroyApp boolean unconditional control quitter 13 3 3 Classe controleur package controleur import javax microedition lcdui import javax microedition midlet import collectionEcran import gestionCamera import gestionEmail import gestionSms import stockageDonnee Le controlleur du programme MMSCam lt gt Titre Projet MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MMS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod 4 HH Travail de dipl me MMSCam EIVD 2003 Page 88 109 Error Style not defined Error Style not defined version 1 0 7 public class Controleur implements LecteurSms AfficheurErreur Lien sur la MIDIet en cours d execution Wa private MIDlet programme L affichage courant wh private Display affichage L objet charger de d t cter l arr
84. la classe serlvet r alis e encore fallait il trouver la place sur un serveur Web pour pouvoir l utiliser Comme il tait obligatoire que ce serveur ait une connexion Internet pour que le t l phone puisse le contacter je n ai pas pu installer ce serveur en local J ai donc d utiliser un serveur existant Apr s quelques recherches sur Internet je me suis orient vers le serveur http www mycgiserver com qui est un des seuls proposer ce service gratuitement De plus ce serveur a l avantage de fournir un acc s a un serveur SMTP ainsi j ai pu utiliser directement le serveur de courrier fourni 7 6 4 Le codage de l image en base64 Dans le code du mail pr sent en dessus on peut voir que le champ suivant Content rans er Hine Osan Gi biclsiclo4 Cette ligne signifie que l image est cod e l aide du codec Base64 voyons donc de quoi il s agit Introduction Que ce soit lors de la transmission d un mail ou lors de la transmission d un MMS ces messages peuvent traverser de nombreux interm diaires avant d atteindre leur but Ces nombreux quipements sont issus de technologies et d origines tr s diverses et ne travaillent pas avec les m mes tables de caract res Certains utilisent le code ASCII certains l ANSI et ainsi de suite Il arrive donc souvent qu un message soit modifi en traversant certaines parties du r seau Qui n a jamais re u un mail ou les accents avec t
85. lacement des champs textes numero new TextField Numero de la camera baseDonnee numeroCamera 20 TextField PHONENUMBER motDePasse new TextField Mot de passe baseDonnee motDePasse 12 TextField PASSWORD destination new TextField Adresse de retour baseDonnee adresseReponse 100 TextField EMATLADDR fenetre append numero fenetre append motDePasse fenetre append destination Cr ation et placement des boutons cmdEnvoi new Command Envoyer Command OK 1 fenetre addCommand cmdEnvoi Cr ation de la ligen d aide fenetre setTicker new Ticker Les champs mot de passe et Adresse de retour sont optionnels Activation de l coute d venements fenetre setCommandListener this Placements de la fenetre a l cran Display getDisplay this setCurrent fenetre M thode qui envoye l ordre par sms public void envoyerOrdre La connection et le message MessageConnection mc null TextMessage tm null Cr ation de la ligne d adresse String adresse sms numero getString this getAppProperty portSms Cr ation du texte du sms String texte if motDePasse getString texte texte m motDePasse getString if destination getString texte texte a destination getString
86. lication Java fonctionne dans tous les appareils qui ont une plate forme Java similaire J2ME Pour pouvoir faire tourner une machine virtuelle Java sur un t l phone portable il faut bien entendu qu elle soit plus petite que celle que l on ferait tourner sur un serveur d entreprise Ainsi la plate forme Java 2 a t d clin e en trois versions La version d entreprise Java 2 J2EE a t con ue pour d ployer les solutions exigeantes des serveurs la version standard Java 2 J2SE est utilis e par les ordinateurs de bureau et la version Micro Java 2 J2ME a t sp cialement cr e pour les petits appareils lectroniques tels que les t l phones mobiles Cette approche garantit qu une application appropri e fonctionnera pour diff rents types d appareils Travail de dipl me MMSCam EIVD 2003 Page 11 109 Error Style not defined Error Style not defined David Jeanmonod Servers amp Servers amp High end PDAs Mobile Smart enterprise personal TV set top boxes phones amp cards computers computers Embedded devices entry level m PDAs La version J2ME est une collection de technologies et sp cifications qui sont con ues pour diff rentes parties du march des petits appareils La partie principale de la plate forme J2ME est constitu e par deux configurations diff rentes Connected Device Configuration CDC et Connected Limited Device Configuration CLDC Une configuration d finit les biblioth ques c
87. ment sur t l phone De par la vari t des t l phones portables sur le march il existe aussi une grande vari t d environnements de programmation pour t l phones portables Mais d sirant r aliser un logiciel qui soit compatible avec une majorit de t l phones portables il convient de pr ter une attention particuli re a la s lection de cet environnement Dans cette discipline toute r cente puisqu il n y a que 2 a 3 ans qu il est possible de d velopper des applications pour mobiles deux tendances ont merg et dominent l univers du d veloppement pour ces petits appareils qui tiennent dans notre poche Ce sont les environnements de Java et de Symbian 5 2 1 Java La technologie Java inclut deux l ments un langage de programmation et un cadre d application dans lequel les programmes Java peuvent tre ex cut s La syntaxe du langage de programmation Java est similaire au langage C tous les deux sont des langages orient s objet La principale diff rence entre le C et Java c est que pour le C le code source est compil dans le code machine natif qui fonctionne uniquement avec la cible sp cifique de l appareil alors que le compilateur Java ne g n re pas de fichier ex cutable Il cr e pour chacune des classes d un fichier Java un fichier qui sera interpr t par la Machine Virtuelle Java C est le m canisme qui permet aux applications Java d tre portables c est dire qu une app
88. mme Comme il a d j t pr cis l application est compos e de deux programmes Le premier qui sert envoyer les ordres poss de une structure plut t simple le second de par sa taille n cessit un d coupage logique plus important Crdessous un aper u de la structure g n rale de l application MmsCamCommande MmsCamCommandei afficherErreur texte String void MmsCamo creationEcrang void startAppd void envoyerOrdred void pauseAppd void startAppd void destroyApp unconditional boolean void pauseApp void commandaAction c Command d Displayable void sauvgarderEntree void destroyApp unconditional boolean void MmsCam control Controleur fenetre motDePasse destination numero TextField ET LC cmdEnvoi BaseDeDonneeMmsCam Command On peut voir que les deux programmes d rivent de la classe MIDLet condition n cessaire pour qu ils soient eux m mes consid r s comme des MIDlets On peut aussi voir que le programme de pilotage MMSCamCommande utilise toute une s rie d objets tels que des zones de texte un bouton une fen tre et le paquetage de base de donn es Cela vient du fait que le corps de ce programme qui est relativement r duit est directement impl ment en son sein De l autre c t on voit que la seule classe qui est utilis
89. mme les deux programmes sont stock s dans la m me suite les deux on donc acc s aux classes qui composent la suite ainsi on gagne de la place grace ce partage des ressources Travail de dipl me MMSCam EIVD 2003 Page 58 109 Error Style not defined Error Style not defined David Jeanmonod 8 Bilan de la realisation 8 1 1 L application r alis e Envoi de l orde Finalement ce qui a t r alis pour commander l appareil muni de la cam ra est un syst me de communication bas sur SMS Comme il n est pas possible de faire cette communication avec des SMS standards Il a fallu d velopper une seconde application qu il faut installer sur le t l phone qui enverra l ordre De plus 2 m canismes pour assurer une certaine s curit ont aussi t d velopp s Premi rement la possibilit de restreindre les num ros de t l phone qui on droit de donner des ordres en g rant l ajout et le retrait de num ros d une liste Deuxi mement la possibilit de d finir un mot de passe qui devra correspondre celui transmis dans le SMS Transmission de l image La transmission est r alis e l aide d un serveur relais L image est tout d abord encod e en Base64 puis transmise par HTTP un serveur relais connect Internet Ce serveur se charge ensuite d envoyer cette image par courrier lectronique au destinataire d sir 8 1 2 Probl mes r siduels R ception des SMS
90. mple l abandon des MMS au profit du courrier lectronique R alisation Le choix a t pris de travailler avec l environnement de d veloppement Java pour appareils mobiles J2ME Ce qui a t r alis trois applications distinctes Une a installer sur un t l phone pour envoyer les ordres a l appareil muni de la cam ra Une installer sur l appareil muni de la cam ra qui est charg e de prendre la photo est de l envoyer a un serveur Web La derni re qui fonctionne sur le serveur Web qui cr e un E mail contenant la photo et l envoie un serveur SMTP Travail de dipl me MMSCam EIVD 2003 Page 6 109 Error Style not defined Error Style not defined David Jeanmonod 4 Introduction L volution de la t l phonie Il y a maintenant une dizaine d ann es apparaissait la t l phonie mobile Il devenait alors possible de communiquer depuis n importe quelle zone couverte par le r seau GSM Cette technologie a rapidement conquis la population puisque actuellement presque tout le monde du moins en Suisse poss de un t l phone cellulaire Lors de leur apparition les possibilit s offertes par les t l phones portables taient assez restreintes mais d j extr mement pratiques ce qui a suffi convaincre Comme toutes les technologies la t l phonie mobile a volu et actuellement les possibilit s offertes sont bien plus importantes qu il y a dix ans Mais
91. n t te suivi de deux points et de la valeur de l en t te Ex Content Type text plain Le corps de la requ te c est un ensemble de lignes optionnelles devant tre s par des lignes pr c dentes par une ligne vide et permettant par exemple un envoi de donn es par une commande POST 5 5 2 M thode de communication Une requ te HTTP peut tre de deux types principaux c est ce que l on appelle la m thode de transfert qui est le premier param tre de la ligne d er t te Ces deux types sont GET et POST Une requ te du type GET concerne la simple demande d un fichier il n y a pas de corps de requ te La totalit des informations transmises au serveur se trouve soit dans l URL soit dans les champs d er t te Travail de dipl me MMSCam EIVD 2003 Page 22 109 Error Style not defined Error Style not defined David Jeanmonod Note il faut souligner tout de m me que des param tres peuvent tre transmis par l URL Ex Transmission du param tre page qui vaut 76 GET http www eivd ch page 76 HTTP 1 0 Il est ainsi possible de passer des param tres mais cela jusqu la taille maximum d une URL soit 256 caract res Lorsque plus de donn es doivent tre transmises on utilise une m thode POST qui permet de transf rer un corps a la requ te qui permet de l envoi d autant de donn es que n cessaire Ce corps de requ te doit se trouver apr s les champs d er t te simplem
92. ne aus 13 5 2 3 CHOIX reali SEa a n r S 13 Is T EeSer vice SMS seue a a a a a M a 15 5 3 1 G n ralit s a E O e E S EEA EA 15 5 3 2 Utilisation dans PME tiens nt sus nil r ae Ea aR SEEE 15 5 3 3 N m ro de DOLR ste r ae e E AR Ea 15 5 3 4 R ception de message nent a tn ne noel a ERa 16 JA Le service MMS e at se E A T lee e ATS 17 5 4 1 G n ralit s PT TaS 17 5 4 2 Les diff rentes interfaces du service MMS ssessossesseesseessessseessseessseessresseessee 18 5 4 3 Diner ace MMS see nl Ass Rules 18 5 4 4 PILE FACS MNT nn en ne nn ns nant 20 2 0 Leprotocole PERS a nt ee ds de 22 SL RUS LC a N DA D SSSR ee E ct 22 5 5 2 M thode de COMMUMOAHON LES RSR A 22 3 6 Le COUmIEN ClECIOMIGUS ss ee ne Ne snctae means 24 5 6 1 G R E EUR RS A a er ie 24 5 6 2 LeprotocoleSM EP nn a a a undead S 24 5 6 3 Leformatdu messages eon ts 25 5 6 4 BSS MIME SR SRE A RE A R 26 5 6 5 D puis MIDP 1 0 ssnainantenienuannishninidanniniiinemaenienssseet 26 Travail de dipl me MMSCam EIVD 2003 Page 3 109 Error Style not defined Error Style not defined David Jeanmonod ds ESSAI de envor de MMS ee diner een te ete nr nn ne tn 27 5 7 1 Utilisation d une Ti brane Jay ass nent oesie Est 27 5 1 2 Utlisation de interface MIM sn nn a a e e SE 27 5 7 3 Utilisation de l interface MM1 Li nn Re sn ef 28 5 0 Probl me Avec HIER nee ad A A ne a ina 30 6 Bilan de analysent nent mandats 33 6 1 Modification du cahier des Ch
93. nsfert d E mail Dans l analyse nous avons aussi vu qu avec le profile MIDP 1 0 il n tait pas possible d envoyer directement des Emails Nous allons donc utiliser un serveur relais Pour envoyer un email il faut contacter un serveur de mail qui se chargera d acheminer l image a bon port La connexion un tel serveur se fait via le protocole SMTP Simple Mail Protocol Transfer Ce sera donc le r le de la Servlet d effectuer cette connexion Avantage Le fait de passer par un serveur relais n as pas que des inconv nients La connexion un serveur SMTP rcessite de conna tre un serveur SMTP et d y avoir acc s Comme ces serveurs sont g n ralement mis disposition par les FAI Fournisseurs d Acc s Internet ils ne sont accessibles que pour les gens qui sont abonn s Cela signifie que chaque utilisateur devra configurer son logiciel pour lui indiquer un serveur SMTP valide Une telle configuration peut paraitre assez basique pour quelqu un qui sait de quoi nous parlons mais c est loin d tre le cas pour monsieur tout le monde En passant par un serveur relais on peut utiliser son propre SMTP et ainsi l utilisateur n a plus besoin de configurer quoi que se soit 7 6 1 Les Servlets Les servlets sont une technologie qui a t d velopp e par Sun Elles sont en quelque sorte des applets mais s ex cutant du cot serveur cette fois Il est alors possible de g rer les requ tes
94. nt cela permet de recevoir l image soit sur un autre t l phone portable par exemple celui qui a donn l ordre mais aussi directement dans une boite e mail puisque le serveur MMSC peut transf rer le MMS sur une adresse e mail et cela sans avoir besoin d impl menter une option particuli re Deuxi mement il y a pour le moment un avantage financier En effet d apr s les tarifs actuellement en vigueur chez Swisscom DOC 10 Venvoi d un MMS de 100ko co te 90 frs alors que l envoi du m me nombre de donn e sur GPRS co te lui 1 90 frs 3 80 si l on compte la r ception De plus la r ception d un MMS est gratuite alors que celle d un e mail par exemple est payante Cet avantage financier doit tous de m me tre nuanc car lors de la transmission d images de basse r solution 10ko le co t est de 20cts alors que le MMS aurait co t 50cts 5 7 1 Utilisation d une librairie Java Comme nous l avons d j vu auparavant il existe une librairie java qui s appelle Wireless messaging Api Cette librairie fournit la possibilit d envoyer des SMS et des CBS mais tonnement ne permet pas l envoi de MMS Pour combler ce manque la version 2 de cette librairie la JSR 205 est en cours de d veloppement et permettra l envoi de MMS Le d veloppement de cette librairie touche a sa fin puisqu elle en est a la r vision publique qui a t lanc e d but novembre 2003 Il est clair que cette
95. null temo new String 1 Sinon on allonge la liste existente else temo new String listeNumeroAutorise length 1 On place le nouveaux num ros en d but de liste temporaire temp 0 numero On d cale tout les autres dans la liste temporaire for int i 1 i lt temp length i temp i listeNumeroAutorise i 1 Remplacement de la liste courante par la nouvelle listeNumeroAutorise temp donnee definirListeNumero listeNumeroAutorise Retire un num ro ce la liste des num ros autoris donner des ordres param index L emplacement du num ro supprimer public void retirerNumeroAutorise int index String temp Si la liste une taille sup rieur 1 if listeNumeroAutorise length 1 temp new String listeNumeroAutorise length 1 On garde tous les num ros situ avant l indice supprimer for int i 0 i lt index i temp i listeNumeroAutorise i On d cale tous les num ros situ apr s for int i index i lt temp length i temo i listeNumeroAutorise i 1 Si la liste a une taille 1 on la suprime else temp null Remplacement de la liste courante par la nouvelle listeNumeroAutorise temp donnee definirListeNumero listeNumeroAutorise 13 3 4 Paquetage de la collection d cran David Jeanmonod Pour ce paquetage je pr sente ici uniquement le code de 3 crans les autre
96. okia ch french phones technologies java faq html DOC 12 Rapport de stage de Nicolas Frick Juillet 2001 Impl mentation de nouveaux services valeur ajout e sur les r seaux radio mobiles GSM http www chez com jaaayyy html Radiomobiles stage Sommaire ht ml DOC 13 Sp cification ETSI 3 40 de GSM Technical realization of the Short Message Service SMS http www 3gpp org ftp Specs archive 03_series 03 40 0340 600 zip DOC 14 RFC 822 Crocker D Standard for the Format of ARPA Internet Text Messages Department of Electrical Engineering University of Delaware August 1982 http www w3 org Protocols rfc822 rfc822 txt DOC 15 RFC 2045 Multipurpose Internet Mail Extensions MIME Part One Format of Internet Message Bodies http www ietf org rfc rfc2045 txt DOC 16 WAP 206 WAP MMS Client Transactions Version 15 Jan 2002 http www openmobilealliance org wapdocs WAP 206 MMSCTR 200201 15 a pdf DOC 17 Wireless Application Protocol MMS Encapsulation Protocol Version 05 Jan 2002 http www openmobilealliance org wapdocs W AP 209 MMSEncapsulation 20020105 a pdf Beaucoup d autres documents ont t consult s lors de ce travail de dipl me mais uniquement dans une optique de culture g n rale que j ai eu besoin d acqu rir Travail de dipl me MMSCam EIVD 2003 Page 69 109 Error Style not defined Error Style not defined David Jeanmonod 11 3 Site Internet de r f rence
97. on ainsi que les primitives g rant la vie de l application javax microedition rms qui fournit une possibilit de stockage d informations 7 1 2 Environnement de d veloppement Ci dessous voici la liste des composants qui ont t n cessaires au d veloppement du projet Cette liste repr sente ce qui a t utilis mais ne repr sente pas la seule possibilit Il existe une multitude d autres outils qui auraient bien pu tre utilis s en compl ment ou en remplacement de ceux pr sent s ci dessous J2ME Wireless Toolkit 2 0 WTK est le kit de d veloppement fourni par Sun que l on peut trouver sur le site leur site Il permet la cr ation d applications con ues pour fonctionner sur des appareils mobiles On y trouve donc toutes les librairies n cessaires ainsi que le compilateur Il contient aussi un mulateur qui permet de tester la compatibilit avec les diff rentes configurations et profiles Connected Limited Device Configuration CLDC JSR 039 Mobile Information Device Profile MIDP JSR 118 J2ME Web Services JSR 172 Wireless Messaging APIs WMA JSR 120 Mobile Media APIs MMAPI JSR 135 En plus de ces fonctions de base on y trouve l outil KToolbar qui permet de cr er modifier compiler et ex cuter des projets J2ME Finalement on y trouve aussi toute une s rie d exemples qui sont tr s int ressants pour d buter une tude des possibilit s de J2ME JBuilder
98. on 1 0 7 public class MmsCamCommande extends MIDlet implements CommandListener AfficheurErreur La fen tre qui contiendra les carposents graphiques 7 private Form fenetre Ie champ texte avec le num ro de l appareil executant MMSCam Ws private TextField numero Te champ texte avec le mot de passe de l appareil executant MMSCam private TextField motDePasse Le champ texte avec l adresse d sir e de r ception de l image Wa private TextField destination Un bouton pour envoyer le sms de commande we private Command cmdEnvoi Base de donn e servant a donner une persistance aux information wh private BaseDeDonnee baseDonnee Constructeur il ouvre la base de donn e public MmsCamCommande baseDonnee new BaseDeDonnee mmscamcommande this M thode qui affiche l erreur pass e en param tre param texte Le message d erreur Travail de dipl me MMSCam EIVD 2003 Page 85 109 Error Style not defined Error Style not defined David Jeanmonod a7 public void afficherErreur String texte Display getDisplay this setCurrent new Alert Erreur texte null AlertType ERROR M thode qui met en place les composents graphiques af public void creationEcran Cr ation de la fen tre fenetre new Form Envoi d un ordre Cr ation et p
99. on CLDc 1 0 c setRequestProperty Content Language en CA os c openOutputStream String str name 163748 byte postmsg str getBytes roe ane t O lt postusg lengen tairi 1 os write postmsglil OS o Elusa p De plus la page PHP qui a t plac e sur un serveur WEB contenait uniquement le code suivant lt php mail djeanmon eivd ch test S_POST name echo Coimitaiamae riomh gt Ainsi lorsque le t l phone effectuera sa requ te POST un mail confirmera le passage du param tre name R sultat du test d HTTP Apr s avoir effectu le test d crit cidessus j ai t tonn de constater que le mail re u contenait une valeur null Ainsi il y a un probl me de transmission du corps de la requ te HTTP Travail de dipl me MMSCam EIVD 2003 Page 30 109 Error Style not defined Error Style not defined David Jeanmonod Ne sachant pas comment r soudre ce probl me j ai tent d obtenir de laide en postant ce probl me sur des forums de d veloppement FRM1 et FRM4 Dans les r ponses que j ai obtenues voir Error Reference source not found 2 types de id es ont tent de r pondre mon probl me Certains pr tendent que le probl me vient de l op rateur du r seau mobile qui pour des raisons de s curit tronquerait les requ tes HTTP D autres pr tendent que le probl me vient de PHP et qu avec d au
100. on Protocol la couche session permet d tablir une session entre un client et un serveur c est dire de d finir les param tres de connexion pour effectuer des transactions La couche WSP permet ainsi la couche application de b n ficier de deux types de sessions diff rentes Session orient e connexion dans laquelle la couche session va interagir avec la couche transaction Session orient e non connexion dans laquelle la couche session va directement agir au niveau de la couche transport pour l envoi de datagrammes bruts WSP est dans son ensemble l quivalent du protocole HTTP dans sa version 1 1 On retrouve d ailleurs un bon nombre d impl mentations identiques au HTTP dans WSP Compression des en t tes Une diff rence majeure consiste en la compression des en t tes connus Comme nous allons le voir dans le chapitre consacr http voir 5 5 la premi re partie d un message est compos de un ou plusieurs champs d en t te qui ont la forme suivante nomDuChamp valeurDuChamp Certains champs sont pr sents dans presque tous les messages L id e de WSP est de remplacer ces champs standards par des valeurs hexad cimales dans le but de r duire la taille du message On arrive ainsi augmenter le taux de transf re des informations utiles Par exemple l en t te suivant dans HTTP Message typ MMS Message Correspond en WSP 8C 84 5 4 4 L interface MM7 Cette interface concerne un autre
101. on des appels en absence t supprim e du projet 7 4 3 Activation par envoi de SMS Avec cette technique la transmission des informations se fait par SMS Comme nous l avons vu dans l analyse l utilisateur ne pourra pas crire son propre message Il faut donc d velopper une application qui s installera sur le t l phone commande Cette technique permettra de transmettre toutes les informations n cessaires et cela co t raisonnable co t correspondant l envoi d un SMS Les deux applications devront donc avoir un num ro de port commun qui sera choisi et inscrit dans le fichier JAD Ce num ro de port devra tre compris entre 16000 et 16999 tel que pr cis dans la sp cification SMS DOC 13 7 4 4 Restriction par num ro de t l phone Puisque lors de la r ception d un SMS il est possible de conna tre le num ro de t l phone de celui qui a envoy l ordre nous pouvons donc r aliser un second contr le de s curit Il suffit de n autoriser que certains num ros envoyer des ordres Cette seconde s curit n entre pas en concurrence avec la s curit procur e par le mot de passe mais peut tre vue comme un compl ment L utilisateur devra configurer l appareil muni de la cam ra et pr ciser les num ros de t l phone qui sont autoris s commander Les ordres provenant d autres num ros seront simplement ignor Constatation n 1 si aucun num ro n est configur cela
102. onnaireSms implements MessageListener Ta connection pas laquelle le message va arriver 7 private MessageConnection connexionDEcoute Le demandeur de sms a qui on transmettra le sms recu wh private LecteurSms lecteur M thode qui d marre l coute de sms param destinataire L objet qui il faudra transmettre le sms param port Le port sur lequel il faut couter l arriv e de sms 4 public boolean demarrerUneEcoute LecteurSms destinataire String port this lecteur destinataire Ouverture de la connection try lecteur afficherErreur Debut d coute sur sms port connexionDEcoute MessageConnection Connector open sms port connexionDEcoute setMessageListener this return true catch IOException e return false M thode qui ferme la connexion 4 public void terminerlEcoute if connexionDEcoute null try connexionDEcoute close catch IOException ex Travail de dipl me MMSCam EIVD 2003 Page 98 109 Error Style not defined Error Style not defined David Jeanmonod int bug 1110 M thode appel e lors de la r ception d un sms param mc La connection sur laquelle est arriv le message LA public void notifyIncomingMessage MessageConnection mc TextMessage smsRecu null String numero Lecture du message et transmission de celui ci
103. p d en t te content type tait d fini avec la valeur suivante Content Type application x www form urlencoded Cette valeur ne correspondant pas celle des donn es transmises j ai voulu corriger ce param tre en remplacent le champ par Content Type text plain En testant le programme avec la nouvelle valeur plus rien ne fonctionnait c est ce moment que j ai compris que la transmission Travail de dipl me MMSCam EIVD 2003 Page 31 109 Error Style not defined Error Style not defined David Jeanmonod complete de la requ te HTTP d pendait de la valeur du champ Content Type Hypoth se N ayant pas pu obtenir de r ponse a ce probl me il n est pas possible de dire qu elles en sont les causes Malgr cela voici tout de m me une hypoth se qui n engage que l auteur Puisque la requ te HTTP envoy e par le t l phone est probablement transmise correctement et que la Servlet n a aucune raison de supprimer le corps de cette requ te cela signifie que la modification se passe entre le t l phone et le serveur Comme nous l avons vu plus haut les seuls interm diaires qui touchent aux requ tes HTTP sont la passerelle WAP et le FireWall Swisscom Mais pourquoi donc ces l ments supprimeraint le corps de la requ te Pour mieux comprendre revenons sur le param tre du Content Type La valeur application x www form urlencoded est celle qui est utilis e par d faut par les
104. r HOUR_OF_DAY Mi calendrier get Calendar MINUTE lt 10 0 String valueOf calendrier get Calendar MINUTE Affichage de l v nement append n texte n n M thode appell e lorsque qu un v nement est d tect param c L objet command qui d clanch l v nement param d L objet affichable sur lequel est d clar l objet c 4 public void conmmandAction Command c Displayable d super commandAction c d if c cmdArreter control arreterSurveillancesms public String texteAide return Mode surveillance votre t l phone est actuellement sensible aux sms de commande Cet cran affiche toutes les op rations qui ont d j t effectu es package collectionEcran import javax microedition lcdui import controleur Ecran g n rique qui sera la base des crans de commande de MSCam lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 abstract public class EcranGenerique extends Form implements CommandListener Travail de dipl me R f rence sur le controleur du progranme wh protected static Controleur control null
105. rdre sauvgarderEnt ree Sauvgarde les valeur entr e par l utilisateur public void sauvgarderEntree baseDonnee definirNumeroCamera numero getString baseDonnee definirMotDePasse motDePasse getString baseDonnee definirAdresseReponse destination getString M tode appell e une seule fois au moment de la fermeture de la MIDLet param unconditional sp cifie si la MIDLet doit effectuer un nettoyage af public void destroyApp boolean unconditional 13 3 2 Programme principale MMSCam import javax microedition midlet Travail de dipl me MMSCam EIVD 2003 Page 87 109 Error Style not defined Error Style not defined David Jeanmonod import collectionEcran import controleur MIDLet classe de base qui est le point d entr e du programe lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 4f public class MmsCam extends MIDlet Le controlleur du programe VA private Controleur control Constructeur de la MIDLet A public MnsCam control new Controleur this EcranGenerique definirControleur control M thode appel
106. rois m thodes seront lors de l ex cution appel e par la KVM et feront passer la MIDlet d un tat un autre comme le montre le sch ma suivant gt Paused destroyApp pauseApp Destroyed startApp Active mma destroyApp Ainsi tout moment notre application pourra tre mise en pause Il sera important ce moment de proc der une lib ration des ressources qui peuvent l tre Travail de dipl me MMSCam EIVD 2003 Page 40 109 Error Style not defined Error Style not defined David Jeanmonod 7 2 2 Java Application Descriptor Lorsque l on voit les prix pratiqu s DOC 10 pour la transmission de donn es sur les r seaux mobiles On se rend vite compte qu il ne faut pas en abuser Comme il existe une multitude de configurations et de profil il serait dommage qu apr s avoir t l charg un programme on se rende compte qu il ne peut pas fonctionner sur son t l phone Un autre probl me pourrait aussi tre qu il n y a pas la place d installer le logiciel sur son portable L id al serait que le t l phone puisse savoir l avance les sp cificit s du programme que l on aimerait t l charger en terme de composant de m moire etc C est pour cela qu t cr e le Java Application Descriptor JAD C est un fichier qui contient toutes les informations utiles concernant la MIDlet Il est g n ralement t l charg avant le programme ce qui permet de
107. rte o Alors qu une dizaine d ann es auparavant un tel projet aurait n cessit de gros moyens ainsi qu une grosse infrastructure aujourd hui un simple t l phone portable peut suffire Une grande partie des appareils commercialis s actuellement poss de une cam ra incorpor e Travail de dipl me MMSCam EIVD 2003 Page 8 109 Error Style not defined Error Style not defined David Jeanmonod 5 Analyse et etude de faisabilite N ayant jamais r alis de projet de t l communication la premi re tache de ce travail a t d tudier et de tester les diff rentes technologies existantes Le contenu de ce chapitre retrace les grandes lignes de cette tude Comme vous allez le voir cette analyse va r v ler des probl mes techniques qui vont avoir pour cons quence une modification du cahier des charges L ensemble des modifications qui devront tre n cessaires sont pr sent es au chapitre 6 Travail de dipl me MMSCam EIVD 2003 Page 9 109 Error Style not defined Error Style not defined David Jeanmonod 5 1 Le projet en g n ral 5 1 1 Envoi de l ordre La premi re partie qui devra tre r alis e concerne la commande a distance du t l phone muni de la cam ra Il faudra envoyer un message d ordre cet appareil Pour transmettre un message de t l phone portable t l phone portable il n existe pas norm ment de possibilit s En effet il est possible d
108. s tant tous bas s sur le m me principe de construction il serait inutile de les pr senter ici package collectionEcran import javax microedition lcdui import javax microedition midlet Travail de dipl me MMSCam EIVD 2003 Page 94 109 Error Style not defined Error Style not defined import controleur lt p gt Titre Projet MnsCam lt p gt David Jeanmonod lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 A public class EcranPrincipal extends List implements CommandListener private Controleur control private Command cmdChoisir public EcranPrincipal Controleur control super MmsCam ChoiceGroup IMPLICIT this control control append Activer MmsCam null append Mot de passe null append N Autoris null append Adresse de retour null append Quitter null cmdChoisir new Command Choisir Command BACK 1 addCommand cmdChoisir setCommandListener this M thode appell lorsque qu un v nement param c L objet command qui d clanch est d tect l v nement param d L objet affichable sur lequel est d clar l objet c public void commandAction Command c if c cm
109. s Par exemple il existe un package optionnel nomm WMA qui permet l envoi et la r ception de messages du type SMS ou CBS Comme ces options sont typiquement r serv es aux t l phones portables il tait naturel de ne pas les int grer directement dans le profil standard MIDP 5 2 2 Symbian C A la diff rence de Java qui est une sorte environnement d ex cution pour les programmes Symbian est un syst me d exploitation Apparu en premier sur des organiseurs de poche tels que par exemple les Psions Symbian a su s imposer comme le syst me d exploitation le plus utilis actuellement dans les nouveaux t l phones portables Symbian n est donc pas un langage de programmation On trouve d ailleurs plusieurs compilateurs pour Symbian ce qui permet de coder en Java C Visual Basic etc C Symbian a t crit en C Ce langage est donc le langage natif de Symbian Une application C sera plus rapide qu une application quivalente dans un autre langage Le code natif requiert aussi moins d espace On peut donc dire que C est le langage de Symbian Il n y a pas vraiment de raison technique de vouloir utiliser un autre langage pour d velopper un logiciel sur la plate forme Symbian La plate forme S rie 60 La plate forme S rie 60 a t d velopp e par Nokia mais est utilis e sous licence par d autres fabricants Elle comprend une interface utilisateur graphique IUG une suite bureaut
110. s have been mangled with The solution for this is usually to use an Internet access point instead of a WAP access point by setting the gateway IP to 0 0 0 0 in the connection settings of the phone shmoove Travail de dipl me MMSCam EIVD 2003 Page 80 109 Error Style not defined Error Style not defined David Jeanmonod Posted by imarenic on 11 17 2003 11 40 AM HTTP POST seems to be common pitfall for developers these days had same the same problem Just look at thread http discussion forum nokia com f amp threadid 33254 What shmoove told you is probably write about carriers cutting POST s But it shouldn t happen to local machine on local server using the emulator hope there is sollution in PHP for fetching POST data couldn t find it And I ve searched it for days PHP works fine when classic web clinets are POSTing data Maybe we should give fake info for user agent However PERL and ASP fetch posted data pretty well You may try them as an alternative Greetings Ivan Posted by aled morris on 11 18 2003 12 20 AM maybe due to tcpip chunking we had similar problems in a Java servlet on tomcat 4 1 where seemingly the parameters were being stripped out of the request however in that case we noticed that there was some body content lo and behold the parameters were actually in the message body but had not been parsed by tomcat to be presented through the servlet interface so i think act
111. s writeBytes Content Transfer Encoding 7bit n n os writeBytes Image captur e par un appareil MMSCam le new Date n n Seconde partie l imag os writeBytes _NextPart n os writeBytes Content Type application octet stream n os writeBytes Content Disposition attachment n os writeBytes filename nomFichier n os writeBytes Content Transfer Encoding base64 n n os writeBytes photo os writeBytes n n os writeBytes _NextPart n n os writeBytes n n os writeBytes QUIT n catch Exception e return Communication interompue avec le SMIP Verifiez l adresse E mail String texte L e mail n as pas pu tre delivr au destinataire verifiez l adresse svp try String ligne BufferedReader buffer new BufferedReader new InputStreamReader is while ligne buffer readLine null if ligne matches delivery texte OK break catch Exception e return Connexion perdue avec le serveur SMIP l E mail est peut tre perdu Fermeture des connexipn aux serveur smtp Travail de dipl me MMSCam EIVD 2003 Page 108 109 Error Style not defined Error Style not defined David Jeanmonod try os close is close smtpSocket close catch Exception ex return texte
112. se et aucun MMS n est arriv destination Il y a donc un probl me de transmission mais il est extr mement difficile d identifier son origine puisqu il est impossible d installer un analyseur de trame sur le t l phone Ce probl me va demander norm ment de temps pour tre r solu le chapitre suivant y est consacr Travail de dipl me MMSCam EIVD 2003 Page 29 109 Error Style not defined Error Style not defined David Jeanmonod 5 8 Probleme avec HTTP Suite au probl me de contact du serveur MMSC voir 5 7 il a fallu tenter d en identifier la source La premi re s rie de tests r alis s t de controller si la conne xion HTTP fonctionnait correctement Test avec PHP Le premier test a t une simple transmission de donn es a une page PHP pour voir si toutes les donn es sont transmises correctement Pour ne pas commettre une erreur dans le code du programme il tait pr f rable de prendre un programme plus s r c est pourquoi le code de test est en fait un code d exemple fourni par Sun et disponible a Vadresse http developers sun com techtopics mobility midp articles servlets P ostMidlet java La partie importante de se code tant la connexion http voici un petit aper u du c ur de l exemple c setRequestMethod HttpConnection POST c setRequestProperty IF Modified Since u20 gen LOOL ESS 10 ia Emin p c setRequestProperty User Agent Vbrotille MIDP 1 0 Contiguratic
113. sion b ta La version finale devrait sortir d ici quelques mois et on devrait trouver rapidement des t l phones compatibles avec cette version 2 0 de WMA Selon une communication norofficielle d un employ de Swisscom les premiers terminaux compatibles avec cette librairie devraient sortir au premier semestre 2004 A ce moment il serait tr s int ressant de modifier le projet en cons quence ce qui permettrait ainsi de retrouver l id e de base du projet c est dire une communication par MMS qui est plus adapt e entre deux t l phones qu une communication par e mail Travail de dipl me MMSCam EIVD 2003 Page 64 109 Error Style not defined Error Style not defined David Jeanmonod 10 Conclusion Avant de commencer ce travail je pensais qu il serait facile d atteindre les objectifs fix s par le cahier des charges Mais au fur et a mesure de l avancement de l analyse je me suis rendu compte que de nombreux probl mes allaient me rendre la tache difficile C tait la premi re fois que je r alisais un logiciel destin a fonctionner ailleurs que sur un ordinateur de bureau Ainsi de nombreuses difficult s que je n avais pas pr vues me sont apparues Parmi ces probl mes 1l faut souligner D boguage l aveugle Le plus gros probl me qui s est pos t Videntification des probl mes r seau Sur un ordinateur il est possible d installer un programme d espionnage pour voir
114. sur les forums 13 2 1 Discussion du probl me HTTP FRM 1 Developer Discussion Boards http discussion forum nokia com forum index php Networking http discussion forum nokia com forum forumdisplay php forumid 56 http post is not working on 3650 http discussion forum nokia com forum showthread php threadid 33407 Posted by jeanmonod on 11 17 2003 10 00 AM http post is not working on 3650 Hello try to send some data to a web serveur using the http post method and to get the data with a PHP page The problem is that when the php script try to read the variable it s empty The midlet code is the one that is provide by sun on the address http wireless java sun com midp a PostMidlet java And the code of the php page is like follow lt php mail info lombric ch _POST name _POST name echo Confirmation gt I m using a nokia 3650 to make the test know that the connection is ok and that the script had been executed because get the mail but the variable name is empty If someone add an idee why is not working please tell me Posted by shmoove on 11 17 2003 10 42 AM Sometimes the network carrier has things set up so that POST s are cut off This sounds like what your problem may be Try installing a sniffer on your server to see exactly how the request your sending looks and think you ll see that your POST data is not arriving and maybe some of your header
115. t ouvrir 3 comptes De plus l utilisateur du programme devra d finir quel compte utiliser sur son t l phone Travail de dipl me MMSCam EIVD 2003 Page 21 109 Error Style not defined Error Style not defined David Jeanmonod 5 5 Le protocole HTTP Le protocole HTTP Hyper Text Transfer Protocol est le protocole le plus utilis sur Internet depuis 1990 A partir de la version 1 0 du protocole on peut transf rer des messages avec des en t tes d crivant le contenu du message Le but du protocole HTTP est de permettre un transfert de fichiers a la base essentiellement des fichiers HTML mais tout autre type de fichier est possible Les fichiers sont localis s grace a une chaine de caract res appel e URL 5 5 1 Requ te HTTP La communication entre le client et le serveur se fait en deux temps 1 Le navigateur effectue une requ te HTTP 2 Le serveur traite la requ te puis envoie une r ponse HTTP Une requ te HTTP est un ensemble de lignes envoy es au serveur par le client Ces lignes comprennent Une ligne de requ te elle sp cifie le document demand la m thode qui doit tre appliqu e et la version du protocole utilis e Ex GET http www eivd ch HTTP 1 0 Les champs d en t te de la requ te il s agit d un ensemble de lignes facultatives permettant de donner des informations suppl mentaires sur la requ te et le client Chacune de ces lignes est compos e d un nom qualifiant le type d e
116. te momentan ment la zone de couverture GSM Blocage de la transmission Dernier probl me il arrive que lors de l envoi de l image au serveur Web la transmission s arr te pendant un temps variable qui peut durer jusqu 5 minutes Cette interruption se produit aussi dans environ 10 des cas Il n a pas t possible d identifier pourquoi Peut tre le probl me vient il du serveur Web public qui est utilis mycgiserver com Quoiqu il en soit ce probl me ne perturbe pas l envoi de l image puisque E mail parvient bien son destinataire Le seul d sagr ment est le retard de la r ception du courrier lectronique Travail de dipl me MMSCam EIVD 2003 Page 60 109 Error Style not defined Error Style not defined David Jeanmonod 9 Evolution future Le programme qui a t r alis dans le cadre de ce projet devra voluer rapidement pour avoir un avenir commercial Je vais tenter de pr senter les volutions qui devront avoir lieu dans un futur proche Travail de dipl me MMSCam EIVD 2003 Page 61 109 Error Style not defined Error Style not defined David Jeanmonod 9 1 Passage a MIDP 2 0 Le passage a la nouvelle version du profil MIDP va apporter de nouvelles possibilit s qu il serait tr s int ressantes d exploiter 9 1 1 Meilleure interface graphique Les grandes nouveaut s de MIDP 2 0 sont surtout pr sentes au niveau des composants d interface qui deviennent
117. teAide 13 3 5 Paquetage de transmission de l ordre package gestionSms Interface qui permet de transmettre un sms recu celui qui 1 impl mente lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 public abstract interface LecteurSms Signale la r ception d un sms param numero Le num ro de celui qui a envoy le sms Travail de dipl me MMSCam EIVD 2003 Page 97 109 Error Style not defined Error Style not defined David Jeanmonod param texte Le texte du sms void smsRecu String numero String texte Affiche une erreur l cran param texte Le message d erreur afficher 4 void afficherErreur String texte package gestionSms import java io import javax microedition io import javax wireless messaging Classe charg e de la r ception d sms de commande lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MS avec cam ra lt p gt lt p gt Copyright Travail de dipl me D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 af public class Gesti
118. tientez Form ecranPatience new Form MMSCam ecranPatience append Initialisation patientez SVP affichage setCurrent ecranPatience Effecture une pr connexion si il n y a jamais eu de connexion auparavant cela pour eviter le message bloquant Select access point if dejaConnecteUneFois CommunicationServelet preConnexion programme getAppProperty adresseServlet dejaConnecteUneFois true D marage de l ecoute de sms serveurSms new GestionnaireSms Si la d tection est possible if serveurSms demarrerUneEcoute this programme getAppProperty portSms Cr ation et affichage d un cran de surveillance afficherEcran new EcranSurveillance else Affichage de l erreur et retour au menu principal Alert message new Alert Erreur Impossible de d t cter l arriv e de sms Red marrer votre t l phone SVP null AlertType ERROR message setTimeout Alert FOREVER affichage setCurrent message new EcranPrincipal this Retourne le meilleur format possible pour la capture return le format soit jpeg soit png We public String formatCapture Lecture des encodages possibles String codages System getProperty video snapshot encodings Recherche de jpeg while codages length gt 3 if codages startsWith jpeg return jpeg codages codages substring 1
119. tiliser les mulateurs d appareils r els La plupart des fabricants de t l phones compatibles avec J2ME fournissent de tel mulateurs Ainsi pour ce projet l mulateur du t l phone Nokia 3650 t utilis Comme pour le reste de ces outils on peut aussi le trouver sur Internet http www borland com products downloads download_jbuilder html http www forum nokia com main html Travail de dipl me MMSCam EIVD 2003 Page 39 109 Error Style not defined Error Style not defined David Jeanmonod 7 2 La MIDlet Tout comme les applets les MIDlets sont contr l es par le logiciel qui les lance Dans le cas d une applet le logiciel utilis est la JVM Java Virtual Machine qui est lanc e par un navigateur web Dans le cas d une MIDlet c est la KVM du t l phone Il faut savoir que toutes les MIDlets d rivent de la classe MIDlet disponible dans MIDP 7 2 1 Cycles de vie Une MIDlet a un cycle de vie un peu diff rent d une application standard En effet la plupart des t l phones n ont techniquement pas la possibilit de faire fonctionner plusieurs applications en parall le I a fallu concevoir un syst me pour pouvoir tout de m me passer d une application une autre sans qu elles aient totalement termin leur ex cution Pour cela chaque MIDlet doit obligatoirement d clarer les 3 m thodes suivantes startApp i pauseApp destroyApp boolean unconditional Ces t
120. tion to MIDP Programming Version 1 0 18 nov 02 Ce documents propose deux exemples simples d introduction la programmation de MidLet document trouv sur le site de Nokia SIT 1 DOC 5 The Wireless Messaging API by C Enrique Decembre 2002 Article de pr sentation de la librairie WMA qui permet d envoy ou de recevoir des messages MMS ou SMS article trouv sur le site de Sun SIT 2 DOC 6 How to Create MMS Service Version 4 0 26 juin 2003 Document qui explique les principes de la cr ation et d envoi de MMS document trouv sur le site Nokia SIT 1 DOC 7 Mobile Media Api Overview de Jonathan Knudsen Juin 2002 Documents de pr sentation des fonctionnalit s de la librairie MMAPI documents trouv sur le site de Sun SIT 2 DOC 8 Camera MIDLet A Mobile Media API Example Version 1 0 24 janvier 03 Document qui explique au travers d un exemple l utilisation de la librairies MMAPI dans le buts de capturer une image avec la cam ra d un t l phone documents trouv sur le site de Nokia SIT 1 Travail de dipl me MMSCam EIVD 2003 Page 68 109 Error Style not defined Error Style not defined David Jeanmonod DOC 10 Les tarifs de communication mobile appliqu s par Swisscom en novembre 2003 http www swissconr mobile ch Objekte vipsystemeuploadcharges_11_01 fr pdf DOC 11 Un r sum de la technologie java pour les t l phones portables http www n
121. tionnels un pour la gestion des SMS nomm WMA et un pour Vutilisation de la cam ra nomm MMAPI 7 1 1 Les composants de J2ME CLDC Le CLDC Connected Limited Device Configuration est constitu d une API de base n cessaire au langage java java lang java io java util ainsi qu une API sp cialis e dans l acc s r seau mobile javax microedition io C est surtout cette partie r seau qui nous int resse car c est elle qui a d termin quel moyen utiliser pour communiquer l image Le diagramme crdessus correspond aux diff rentes classes javax microedtion io C est gr ce ces impl mentations que nous pourrons effectuer des requ tes HTTP qui seront r alis es l aide de la classe ContentConnection Travail de dipl me MMSCam EIVD 2003 Page 37 109 Error Style not defined Error Style not defined David Jeanmonod MIDP Le MIDP Mobile Information Device Profile est une API JAVA de haut niveau permettant la gestion de l interface utilisateur la gestion de l interface r seau et la gestion d une base de donn es sur le mobile Cette API est ce jour celle que vous trouvez sur vos mobiles compatibles J2ME Si l on regarde un peu plus dans le d tail ce qu elle contient on y trouve les trois packages suivants javax microedition lcdui qui fournit les composants graphiques n cessaires la cr ation d applications javax microedition midlet qui fournit le composant applicati
122. tre technologie comme Perl par exemple le probl me peut tre r solu Au premier abord la premi re explication me para t plus cr dible que la seconde mais pour avoir le c ur ret j ai test de r ceptionner ma requ te avec une autre technologie R ception de la requ te avec une Servelet Pour le deuxi me test j ai aussi utilis un exemple de Sun disponible l adresse developers sun com techtopics mobility midp articles socketRMI Cette fois la MIDlet effectue aussi une requ te HTTP mais c est une Servlet d pos e sur un serveur TOMCAT qui devra r cup rer les donn es Surprise la transmission a fonctionn Sur le moment je ne comprenais pas comment la technologie utilis e pour la r ception d une requ te HTTP pouvait interf rer sur les donn es transmises Mais tant donn que je n avais pas plus d informations j ai admis que le probl me venait de la technologie de traitement de la requ te L explication C est seulement 3 semaines de la fin de ce projet que j ai d couvert un d but d explication ce probl me Comme cela a d j t mentionn plus haut il semblait bizarre que le destinataire d une requ te http influence la transmission Mais une vidence tait que l exemple Servlet tait le seul fonctionner C est en retravaillant le code que j ai finalement trouv la diff rence entre les programmes Dans le programme contactant la Servlet le cham
123. ually this was a tomcat problem but perhaps common to other servers so the solution would be to not rely on your server to extract the parameters but try and pick up what it regards to be the message body which would look something like action email amp subject j2me_network_access amp message all_screwed_up amp re cipients operators which you can now parse to breakdown into parameter amp value pairs hopefully after this we helped another developer fix the same problem with a SE t610 gt tomcat on closer investigation using Ethereal the chunking of the request was different to other phones the request was coming in 3 chunks it was something like 1 HTTP POST line 2 headers and 3 parameters whereas other phones were posting 2 chunks this might help explain why you can see this behaviour through one network s gateways and different behaviour on other networks it is down to the gateways and their configurations as to whether they keep the same chunking or run them together in a buffer before forwarding or whatever other grim messing around as shmoove says btw for direct internet there may be more settings to change than just Travail de dipl me MMSCam EIVD 2003 Page 81 109 Error Style not defined Error Style not defined David Jeanmonod gateway IP but usually problems i ve had with WAP APN vs Internet APN is whether the request gets through at all good luck dan Posted by jeanmonod on 11
124. ue du flux d entr e et lecture du resultat try StringBuffer lecture new StringBuffer is c openDataInputStream int caractere while caractere is read 1 lecture append char caractere resultat lecture toString catch Exception e resultat La serveur Web ne donne pas de r ponse Fermeture des connexions try is close os close c close catch Exception e On retourne le resulat de l envoi qui cevrai tre OK return resultat toString 13 3 9 Code de la servlet Packetage nominale pour tre d pos sur le site mycgiserver com package jeanmonod import java io import java text import java net import java util Date import javax servlet import javax servlet http Travail de dipl me MMSCam EIVD 2003 Page 106 109 Error Style not defined Error Style not defined David Jeanmonod La servlet qui r c ptionne les donn e transmise par le t l phon lt p gt Titre Projet de dipl me MnsCam lt p gt lt p gt Description Pilotage distance par SMS d un t l phone MMS avec cam ra lt p gt lt p gt Copyright Travail de diplome D Jeanmonod Hivers 2003 lt p gt lt p gt Soci t EIVD Yverdon lt p gt author D Jeanmonod version 1 0 FF F ay public class FmailServlet extends HttpServlet M thode qui est appell e lors de la pr
125. un meilleur d coupage des diff rentes activit s plusieurs paquetages ont t cr s et sont utilis s par le contr leur Les paquetages Ces diff rents paquetages regroupent des classes qui ont une m me utilit Voici quelle est l utilit de chacun d eux gestionSms Regroupe les classes charg es de d tecter l arriv e d un ordre et de transmettre les informations au contr leur stockageDonn e Regroupe les classes charg es de conserver les donn es entre deux utilisations du programme gestionCamera Regroupe les classes charg es de capturer une image lorsque n cessaire gestionEmail Regroupe les classes qui s occupent de transf rer les donn es du mail a la Servlet collectionEcran Regroupe les diff rents crans qui composent Vinterface graphique Les chapitres suivants traitent de l activit de ces diff rents paquetages et tentent d expliquer les d cisions qui ont t prises Travail de dipl me MMSCam EIVD 2003 Page 44 109 Error Style not defined Error Style not defined David Jeanmonod 7 4 Pilotage a distance Ce chapitre retrace le d veloppement du paquetage gestionSms Le but de ce projet est de pouvoir piloter le t l phone muni de la cam ra et cela distance Par pilotage on entend lui demander de prendre une photo et de la transmettre un destinataire De plus on aimerait int grer un minimum de s curit pour viter que n importe qui puisse envoyer d
126. vec une photo param from Permet de sp cifi qui a envoy l e mail param to L adresse de destination de l e mail param subject Le sujet de l e mail param photo Le code de la photo private String envoyerImage String pour String nomFichier String photo Socket smtpSocket null Travail de dipl me MMSCam EIVD 2003 Page 107 109 Error Style not defined Error Style not defined David Jeanmonod DataOutputStream os null DatalnputStream is null Ouverture d une connexion sur un serveur SMIP try smtpSocket new Socket mycgiserver com 25 os new DataOutputStream smtpSocket getOutputStream is new DataInputStream smtpSocket get InputStream catch Exception e return Impossible de contacter le serveur SMIP try os writeBytes EHLO there n os writeBytes MAIL FROM pour n os writeBytes RCPT TO pour n os writeBytes DATA n os writeBytes Date new Date n os writeBytes From pour n os writeBytes To pour n os writeBytes Subject Photo MMSCam n os writeBytes Mime Version 1 0 n os writeBytes Content Type multipart mixed os writeBytes Boundary _NextPart n Premi re partie le texte du mail os writeBytes _NextPart n os writeBytes Content Type text plain n os writeBytes charset us ascii n o
127. ws ServletException lecture de la requet traitements envoi de la reponse 7 6 2 Envoi du courrier lectronique Le r le de la servlet est tr s limit dans le cas de ce projet En effet l image lui est transmise donc la seule action qui doit tre r alis e est la connexion un serveur SMTP pour lui communiquer le mail que l on d sire envoyer La structure du mail est elle aussi assez simple C est un mail mul partie Il contient d abord une partie de texte qui pr cise quelle heure t prise la photo Et la deuxi me partie qui contient la photo Ci dessous le code du E mail Date Date amp heure From adresse du destinataire To adresse du destinataire Subject Photo MMSCam Mime Version 1 0 Content Type multipart mixed Boundary NextPart ee NeXTCPEN TE Content Type text plain Charser us asc Conrene Transier Ineoochhnes Toit Image captur e par un appareil MMSCam le Date amp heure s Nextar Travail de dipl me MMSCam EIVD 2003 Page 50 109 Error Style not defined Error Style not defined David Jeanmonod Content Type application octet stream Content Disposition attachment filename nom du fichier Content Transfer Encoding base64 Code de la photo SNe xe Pansies Note Les valeurs gris es du mail c dessus sont celles qui devront tre modifi e 7 6 3 Serveur h te Une fois
128. ype application x www form urlencoded Ce champ signifie que les donn es transmises proviennent d un formulaire web Ceci est faux mais n cessaire au bon fonctionnement du transfert Les formulaires HTTP Ce que je ne savais pas et qui aurait pu maider r soudre ce probl me c est que lors de la transmission des donn es d un formulaire le navigateur WEB transforme tous les espaces en caract re Ceci vient du fait que g n ralement ces donn es sont transmises dans l URL l aide de la m thode GET Et puisque la syntaxe d une URL n accepte pas les espaces la transformation en un autre caract re tait obligatoire Dans notre cas il n y a pas de navigateur qui proc de ces transformations Par contre lorsque la servlet re oit les donn es et regarde le type de contenu et puisqu elle pense que les donn es proviennent d un formulaire elle remplace les caract res par des espaces de mani re r tablir la situation Correction du probl me Le probl me vient donc du champ Content Type lors de la transmission de l image d apr s les sp cifications la valeur que je devrais mettre est text plain qui signifie texte sans mise en forme ce qui correspond au r sultat d un codage en Base64 Mais malheureusement si cette valeur est pr cis e comme param tre alors la connections HTTP ne marche plus Il a donc fallu laisser la valeur fausse et proc der a une correction dans la servl

Download Pdf Manuals

image

Related Search

Related Contents

5400C Series DVR User Manual  Gembird CAM67U surveillance camera  LOT 09 PLATRERIE PEINTURE    M。ufhwush DーSPENSER  OM, 130 BT, 150 BT, 170 BT, 180 BT, 2008-03  Interruptor Remoto Plug`n Power® (Listo para Usar)  Disc Publisher / Disc Publisher II KioskKit Manual  Service Manual – Soluble Coffee Machine  位置図および図面等 (ファイル名:24-a63es3 サイズ:1.16 MB)  

Copyright © All rights reserved.
Failed to retrieve file