Brevet FR2928232A1 — publié le 20090904

Arrière-plan de l'invention L'invention se situe dans le contexte des réseaux de messagerie instantanée ("Instant Message" ou IM en anglais). De façon connue, la messagerie instantanée permet à des utilisateurs de converser sur le réseau Internet au moyen de terminaux équipés d'un logiciel client connecté à un serveur de messagerie instantanée. Cette application diffère du courrier électronique en ce que les conversations se déroulent instantanément, autrement dit en quasi temps réel. Dans la pratique, l'émetteur d'un message instantané saisit ce message au moyen du clavier et de son terminal, puis valide ce message, le message étant envoyé au destinataire uniquement après validation. Généralement, chacun des interlocuteurs peut visualiser les messages émis et messages reçus sur l'écran de son terminal, dans l'ordre chronologique. Les inventeurs se sont aperçus qu'aucun système de messagerie 20 instantanée connu à ce jour ne permettait de modifier un message instantané après son envoi. Objet et résumé de l'invention La présente invention vise un système de messagerie 25 instantanée qui ne présente pas les inconvénients de l'art antérieur. Ainsi, et selon un premier aspect, l'invention concerne un procédé d'envoi d'un message dit � de modification � à destination d'un terminal dans un réseau de télécommunications, ce message de modification comportant : 30 un identifiant d'un message instantané déjà envoyé à ce terminal dans le réseau, et au moins une instruction pour modifier ce message instantané. Corrélativement, l'invention concerne un terminal comportant : une table de mémorisation d'au moins un identifiant d'un message 35 instantané déjà envoyé à un terminal destinataire et des moyens pour envoyer, à ce terminal destinataire, un message dit � de modification � comportant cet identifiant et au moins une instruction pour modifier ce message instantané. L'invention permet donc, à un terminal émetteur, de modifier un message instantané déjà émis vers un ou plusieurs destinataire(s), en envoyant à ce(s) destinataire(s), un message de modification comportant l'identifiant du message instantané à modifier et les instructions de modifications. Selon un deuxième aspect, l'invention concerne un procédé de 10 traitement d'un message instantané comportant : - une étape de réception du message instantané une étape de réception d'un message dit � de modification � comportant un identifiant du message instantané et au moins une instruction de modification du message instantané ; 15 une étape de modification du message instantané conformément aux instructions ; et une étape de présentation du message instantané modifié. Corrélativement, l'invention concerne un terminal comportant : - une table de mémorisation d'au moins un identifiant d'un message 20 instantané déjà reçu par ce terminal ; des moyens pour recevoir un message dit � de modification � comportant cet identifiant et au moins une instruction de modification du message instantané ; - des moyens pour modifier ledit message instantané conformément aux 25 instructions et - des moyens de présentation du message instantané modifié. Ainsi, selon cet aspect de l'invention, un terminal récepteur d'un message instantané peut, sur réception d'un message de modification, modifier un message instantané précédemment reçu conformément aux 30 instructions comprises dans ce message de modification. Dans un mode de réalisation, la présentation du message instantané modifié peut se faire sur l'écran du terminal destinataire. Elle peut aussi se faire par d'autres moyens, par exemple par une alerte sonore. 35 Dans un mode de réalisation de l'invention, si le message instantané d'origine n'a pas été affiché sur le terminal du destinataire avant la réception du message de modification, seul le message modifié est présenté au destinataire. Si le message instantané d'origine a été affiché sur le terminal du destinataire avant réception du message de modification, le message instantané modifié peut venir remplacer le message d'origine, ou être présenté à la suite des autres messages de la conversation, ou encore dans une zone dédiée de l'écran du terminal. Le message de modification peut comporter différentes instructions et notamment : une instruction pour supprimer au moins une partie du message instantané d'origine ; une instruction pour mettre en forme ce message instantané une instruction pour compléter un message instantané ; ou une instruction pour remplacer au moins une partie du message instantané par une autre partie de message. La plupart des applications de messages instantanés connues à ce jour utilisent le protocole MSRP (Message Sessions Relay Protocol) au-dessus du protocole de signalisation SIP (Session Initial Protocol) normalisé et standardisé par I'IETF. Dans un mode particulier de réalisation de l'invention, les messages de modification peuvent être conformes au protocole MSRP ou à un protocole du type du protocole MSRP. En particulier, les messages de modification peuvent être du type des messages SEND du protocole MSRP, avec des champs particuliers comportant l'identifiant du message instantané à modifier et l'instruction de modification. Selon un autre aspect, l'invention concerne un signal représentatif d'un message de modification au sens de l'invention, à savoir un signal représentatif d'un message comportant un identifiant de message instantané et au moins une instruction pour modifier ce message instantané. L'invention vise aussi un système de messagerie instantanée dans lequel un premier terminal peut envoyer à un deuxième terminal un message comportant : - un identifiant d'un message instantané déjà envoyé par le premier terminal au deuxième terminal, et ; au moins une instruction pour modifier le message instantané. Dans un mode particulier de réalisation, les différentes étapes du procédé d'envoi de message sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans terminal ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé d'envoi de message tel que mentionné ci-dessus. Dans un mode particulier de réalisation, les différentes étapes du procédé de traitement de message sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans terminal ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de traitement de message tel que mentionné ci-dessus. Au moins, l'un ou l'autre de ces programmes peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'au moins un des programmes d'ordinateur mentionnés ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support 35 transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins D'autres caractéristiques et avantages de la présente invention 10 ressortiront de la description faite ci-dessous, en référence aux dessins et à l'annexe qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif et dans lesquels : - la figure 1 représente un système de messagerie conforme à l'invention dans un mode particulier de l'invention ; 15 - la figure 2 représente des messages échangés entre des terminaux du système de la figure 1 dans une mise en oeuvre particulière de l'invention ; - la figure 3 représente une partie du contenu d'un signal conforme à l'invention dans un mode particulier de réalisation ; 20 - les figures 4A et 4B représentent des tables. mémorisées dans des terminaux du système de la figure 1 ; - la figure 5 représente, sous forme d'organigramme, les principales étapes d'un procédé d'envoi de message conforme à l'invention dans un mode particulier de réalisation ; 25 - la figure 6 représente, sous forme d'organigramme, les principales étapes d'un procédé de traitement de message conforme à l'invention dans un mode particulier de réalisation ; -les figures 7A et 7B représentent des fenêtres affichées sur les terminaux du système de la figure 1 ; et 30 - l'annexe fournit le contenu de messages de la figure 2 dans une mise en oeuvre de l'invention utilisant les protocoles SIP et MSRP. Description détaillée d'un mode de réalisation La figure 1 représente un système 100 de messagerie instantanée conforme à l'invention. Ce système comporte deux terminaux 10, 20 interconnectés via le réseau Interne Chacun de ces terminaux comporte un logiciel client apte à se connecter à un serveur de messagerie instantané. Nous allons décrire comment le terminal 10, après avoir envoyé un message instantané au terminal 20, peut modifier ce message. Dans l'exemple décrit ici, le terminal 10 a l'architecture matérielle d'un ordinateur. Il comporte un processeur 11, une mémoire vive de type RAM 12, une mémoire morte de type ROM 13, des moyens de communication 14 avec le réseau Internet, une mémoire non volatile réinscriptible 15 de type flash et un écran 16. La mémoire morte de type ROM 13 constitue un support d'enregistrement conforme à l'invention, lisible par le terminal 10, sur lequel est enregistré un programme d'ordinateur conforme à l'invention, ce programme comportant des instructions pour l'exécution des étapes d'un procédé d'envoi selon l'invention, les principales étapes de ce procédé étant représentées sous forme d'organigramme à la figure 5. Le terminal 20 a aussi, dans l'exemple décrit ici, l'architecture matérielle d'un ordinateur. Il comporte un processeur 21, une mémoire vive de type RAM 22, une mémoire morte de type ROM 23, des moyens 24 de communication avec le réseau Internet, une mémoire non volatile réinscriptible 25 de type flash et un écran 26. La mémoire morte de type ROM 23 constitue un support d'enregistrement conforme à l'invention, lisible par le terminal 20, sur lequel est enregistré un programme d'ordinateur conforme à l'invention, ce programme comportant des instructions pour l'exécution des étapes du procédé de traitement selon l'invention, les principales étapes de ce procédé étant représentées sur l'organigramme de la figure 6. Dans l'exemple de réalisation décrit ici, chacun, des terminaux 10, 20 affiche sur son écran 16, 26' une fenêtre F qui présente les messages instantanés échangés entre ces terminaux. En référence à la figure 2, nous allons maintenant décrire des messages échangés entre les terminaux 10 et 20 pour la mise en oeuvre d'un mode de réalisation de l'invention. Ces messages sont décrits dans le contexte des protocoles SIP et MSRP connus de l'homme du métier. Le contenu de ces messages est fourni en annexe. Pour plus d'informations sur les protocoles SIP et MSRP et sur les champs des messages, on peut notamment se reporter aux documents : - RFC4975 pour le protocole MSRP (description des messages SEND, 200 OK) et - RFC3261 pour le protocole SIP (description des messages INVITE, 200 OK, ACK, BYE). Par la suite, nous supposerons que les utilisateurs des terminaux 10 et 20 se nomment respectivement Alice et Bob. Dans l'exemple décrit ici, le message M1 est un message INVITE du protocole SIP. Ce message comporte un certain nombre de champs de description de sessions (Sessions Description) de temps (Times Description) et de média (Media Description) connus de l'homme du métier. qu'Alice envoie un message instantané M4 conforme au protocole MSRP à destination de Bob. En référence à l'annexe, on remarquera notamment que ce message comporte un identifiant Message-ID (12339), un champ 25 DateTime comportant l'information 2006-05-15 T19:02:31-03:00, et un champ texte contenant la phrase "Oui, à 20h30 comme convenu!". Le message M5 est un message 200 OK conforme au protocole MSRP. Nous supposerons qu'Alice souhaite modifier le message 30 instantané M4 envoyé à Bob. A cet effet, Alice envoie un message de modification M6 conforme à l'invention, dont deux exemples de réalisation sont donnés à l'annexé, respectivement sous la forme d'un nouveau message "UPDATE" et sous la forme d'un message "SEND". En référence à l'annexe, on notera que ce message M6 35 comporte, dans chacun de ces modes de réalisation : Le message M2 est un message SIP 200 0K par lequel le terminal 20 de Bob acquitte positivement le message INVITE reçu du terminal 10. Le message M3 est un message d'acquittement ACK du 20 protocole SIP envoyé d'Alice à Bob. Nous supposerons ensuite - un champ Message-Send-ID comportant l'identifiant 12339 du message M4 ; -un champ DateTime indiquant la date et l'heure de modification du message M4; et - une chaîne de caractère ("Oui, à 19h comme convenu!). Après modification du message M4, l'application de messagerie instantanée du terminal de Bob peut, soit afficher la date et l'heure d'envoi du message M4, soit afficher la date et l'heure de modification du message M4. 10 Autrement dit, par ce message de modification, Alice demande à Bob de substituer la chaîne de caractère "Oui à 20h30 comme convenu!" par la chaîne de caractère "Oui à 19h comme convenu!", l'instruction de substitution étant ici implicite. Le message M7 est un message 200 0K conforme au protocole 15 MSRP de Bob vers Alice. Les messages M8 et M9 sont respectivement des messages BYE et 200 0K du protocole SIP pour terminer la session. La figure 3 représente, de façon conceptuelle, un signal SIG conforme à l'invention. 20 Ce signal SIG aurait pu être utilisé dans l'exemple de la figure 2 en remplacement du message de confirmation M6. Ce signal comporte notamment un champ ID comportant l'identifiant du message instantané M4 qui doit être modifié, un champ INST comportant une instruction de substitution SUBST de l'ancien 25 message "Oui, à 20h30, comme convenu!" par le nouveau message "Oui, à 19h, comme convenu!". En référence aux figures 4A et 4B, le terminal 10 et le terminal 20 comportent respectivement une table T10, T20 dans leurs mémoires non volatiles réinscriptibles du type flash 15, 25. 30 La table T10 du terminal 10 permet de mémoriser l'identifiant des messages instantanés déjà envoyés par ce terminal 10 dans le format suivant : Champ MSG : contenu du message M4 ; Champ ID : identifiant de ce message 35 Champ DEST : destinataire du message M4 ; et Champ DT : date et heure d'envoi de ce message. La table T20 du terminal 20 mémorise les messages instantanés déjà reçus par ce terminal selon le format suivant Champ MSG contenu du message M4 ; Champ ID : identifiant de ce message Champ SRC : terminal émetteur de ce message Champ DT : date et heure de réception de ce message. En référence à la figure 5, nous allons maintenant décrire les 10 principales étapes d'un procédé d'envoi d'un message instantané conforme à l'invention dans un mode de réalisation particulier. Nous supposerons dans cet exemple que ce procédé est mis en oeuvre par le terminal 10 de la figure 1. Au cours d'une étape E10, le terminal 10 envoie un message instantané M4 au terminal 20. Puis, à l'étape E20, il reçoit instruction de l'utilisateur Alice pour modifier ce message, à savoir pour remplacer la chaîne de caractère "20h30", par la chaîne de caractère "19h", cette chaîne de caractère "19h" devant être affichée en gras sur le terminal 20 du destinataire. 20 Au cours d'une étape E30, le terminal 10 recherche, dans sa table T10, l'identifiant du message M4. Il trouve l'identifiant 12339. Puis, le terminal 10 envoie, au cours d'une étape E40, le message M4, ou le signal SIG de la figure 3, ce message ou ce signal 25 comportant l'identifiant 12339 du message instantané M4 à modifier et les instructions de modification. La figure 6 représente les principales étapes d'un procédé de traitement de message instantané conforme à l'invention dans un mode particulier de réalisation. 30 Dans l'exemple décrit ici, ce procédé est mis en oeuvre par le terminal 20 de la figure 1. Au cours d'une étape F10, le terminal 20 reçoit le message instantané M4 et l'affiche dans la fenêtre F de son écran 26. Au cours d'une étape F20, le terminal 20 reçoit le message de 35 modification M6 en provenance du terminal 10, avec instruction de modifier le message d'identifiant 12339. Au cours d'une étape F30, le terminal 20 recherche, dans cette table T20, l'émetteur (champ SRC), du message d'identifiant 12339, et trouve le terminal 10. Au cours d'une étape F40, le terminal 20 vérifie que l'émetteur 5 du message de modification M6 était bien l'émetteur du message instantané M4. Lorsque cela n'est pas le cas, terminal 20 refuse modification au cours d'une étape F50. Lorsque c'est le cas, le terminal 20 modifie le message 10 instantané M4 en suivant les instructions du message de modification M6 au cours d'une étape F60 (substitution de texte, mise en forme). Puis, le message est présenté à l'utilisateur du terminal 20, à savoir Bob, au cours d'une étape F70. Les figures 7A et 7B représentent les fenêtres F des terminaux 15 10 et 20 avant et après l'envoi du message des modifications M6 par Alice. On remarquera, que dans cet exemple, seule la chaîne de caractère "20h30" du message M4 a été modifiée par la chaîne de caractère "19h", ceci s'affichant en gras. Après modification du message M4, l'application de messagerie 20 instantanée de Bob peut, soit afficher l'heure d'envoi du message M4, soit afficher l'heure de modification du message M4. On remarquera dans cet exemple que l'heure du message, à savoir 19:02 n'a pas changé. L'application a donc affiché l'heure d'envoi du message. 25 ANNEXE M1. Alice->Bob (SIP): INVITE sip:bob@example.com Cf. norme SIP : RFC3261 M2. Bob->Alice (SIP : 200 0K Cf. norme SIP : RFC3261 10 M3. Alice->Bob (SIP): ACK sip:bob@example.com Cf. norme SIP : RFC3261 M4. Alice->Bob (MSRP): MSRP d93kswow SEND 15 To-Path: msrp:llbob.example.com:888819di4eae923wzd;tcp From-Path: msrp:l/alicepc.example.com:7777liau39soe2843z;tcp DateTime : 2006-05-15T19:02:31-03:00 Message-ID: 12339 Byte-Range: 1-16116 20 Content-Type: text/plain oui, à 20h30 comme convenu! d93kswow$ M5. Bob->Alice (MSRP): 25 MSRP d93kswow 200 0K To-Path: msrp://alicepc.example.com:7777/iau39soe2843z;tcp From-Path: msrp:/Ibob.example.com:8888/9di4eae923wzd;tcp d93kswow$ 30 M6 : exemple 1 : message de nouveau type : "UPDATE" * M6. Alice->Bob (MSRP): MSRP d93kswow UPDATE To-Path: msrp://bob.example.com:8888/9di4eae923wzd;tcp From-Path: msrp:fialicepc.example.com:7777/iau39soe2843z;tcp 35 DateTime : 2006-05-15T19:03:12-03:00 Message-ID: 24058tepabc 12 Message-Send-I D: 12339 Byte-Range: 1-16/16 Content-Type: text/plain Oui, à 19h comme convenu! d93kswow$ /* M6 : exemple 2 : message de type : "SEND */ M6. Alice->Bob (MSRP): MSRP d93kswow SEND To-Path: msrp://bob.example.com:8888/9di4eae923wzd;tcp From-Path: rnsrp://alicepc.example.com:7777/iau39soe2843z;tcp DateTime : 2006-05-15T19:03:12-03:00 Message-ID: 24058tepabc Message-Send-ID: 12339 Byte-Range: 1-16116 Content-Type: text/plain oui, à 19h comme convenu! d93kswow$ M7. Bob->Alice (MSRP): MSRP d93kswow 200 0K To-Path: msrp://alicepc.example.com:7777/iau39soe2843z;tcp From-Path: msrp://bob. example.com:8888/9di4eae923wzd;tcp d93kswow$ M8. Alice->Bob (SIP): BYE sip:bob@exarnple.com 30 Cf. norme SIP : RFC3261 M9. Bob->Alice (SIP): 200 0K Cf. norme SIP : RFC3261 REVENDICATIONS 1. Procédé d'envoi (E40) d'un message (M6) dit � de modification � à destination d'un terminal (20) dans un réseau (1) de télécommunications, ledit message de modification comportant : - un identifiant (ID) d'un message instantané (M4) déjà envoyé audit terminal (20) dans ledit réseau, et - au moins une instruction (INST) pour modifier ledit message instantané (M4). 10 2. Procédé d'envoi selon la revendication 1, caractérisé en ce que ladite instruction (INST) est choisie parmi : - une instruction pour supprimer au moins une partie dudit message instantané 15 une instruction de mise en forme dudit message instantané une instruction pour compléter ledit message instantané ; ou une instruction pour remplacer au moins une partie dudit message instantané par une autre partie de message. 20 3. Procédé d'envoi selon la revendication 1 ou 2, caractérisé en ce que ledit message de modification (M6) est conforme à un protocole du type du protocole MSRP. 4. Terminal (10) comportant : 25 une table (T10) de mémorisation d'au moins un identifiant (ID) d'un message instantané (M4) déjà envoyé à un terminal destinataire (20) et - des moyens (14) pour envoyer, audit terminal destinataire, dans un réseau (1) de télécommunications, un message (M6) de modification 30 comportant, ledit identifiant et au moins une instruction (INST) pour modifier ledit message instantané (M4). 5. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé d'envoi selon l'une quelconque des 35 revendications 1 à 3 lorsque ledit programme est exécuté par un ordinateur (10). 6. Support d'enregistrement (13) lisible par un ordinateur (10) sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé d'envoi selon l'une quelconque des revendications 1 à 3. 7. Procédé de traitement d'un message instantané comportant : - une étape (F10) de réception dudit message instantané (M4) ; - une étape (F20) de réception d'un message (M6) dit � de modification � comportant un identifiant (ID) dudit message instantané (M4) et au moins une instruction (INST) de modification dudit message instantané ; une étape (F60) de modification dudit message instantané (M4) conformément à ladite au moins une instruction (INST) ; une étape (F70) de présentation dudit message instantané modifié (M4). 8. Terminal (20) comportant : une table (T20) de mémorisation d'au moins un identifiant (ID) d'un message instantané (M4) déjà reçu par ledit terminal (20) ; - des moyens (24) pour recevoir un message (M6) dit � de modification � comportant ledit identifiant (ID) et au moins une instruction (INST) de modification dudit message instantané (M4) ; des moyens (21) pour modifier ledit message instantané (M4) conformément à ladite au moins une instruction (INST) ; des moyens (26) de présentation dudit message instantané modifié (M4). 9. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de traitement selon la revendication 7 lorsque ledit programme est exécuté par un ordinateur (20). 10. Support d'enregistrement (23) lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de traitement selon la revendication 7. 11. Signal (SIG) comportant un identifiant (ID) d'un message instantané (M4) et au moins une instruction (INST) pour modifier ledit message instantané. 12. Système (100) de messagerie instantané dans lequel un premier terminal (10) peut envoyer à un deuxième terminal (20) un message (M6) comportant : - un identifiant (ID) d'un message instantané (M4) déjà envoyé par ledit 0 premier terminal (10) audit deuxième terminal (20), et ; - au moins une instruction (INST) pour modifier ledit message instantané.