Transmission de messages dans un contexte multi-terminaux
La présente invention concerne la transmission de messages dans un contexte multi-terminaux, et en particulier l’envoi de message de type SMS dans un tel contexte.
Le système de messagerie SMS (pour « Short Message Service » en anglais) a été développé il y a des années de cela, pour permettre l’envoi de courts messages textuels entre terminaux mobiles, au moyen de messages de signalisation utilisés dans les réseaux de communications mobiles de deuxième génération, à l’époque. Ce système a été normalisé au travers des normes 3GPP TS 23.240 et TS 23.040 et a rencontré un immense succès au point qu’il est toujours amplement utilisé de nos jours.
Cependant, le système de messagerie SMS tel que normalisé a été conçu dès son origine pour des cas de transmission de message depuis un unique terminal mobile émetteur vers un unique terminal mobile destinataire.
Or il s’avère que des systèmes dits « multi-terminaux » ont été développés récemment, dans lesquels un ensemble de terminaux partagent un même identifiant, commun aux terminaux d’un même système. Cet identifiant commun peut être le numéro de téléphone lié nativement à l’un des terminaux du système. Cet identifiant commun peut aussi être un numéro non lié nativement à l’un des terminaux du système, un tel numéro pouvant alors être appelé « numéro supplémentaire » (« extra- number » en anglais), ou encore « numéro virtuel » (« Virtual number » en anglais), lequel est typiquement un nouveau numéro attribué par l'opérateur, non lié à une carte SIM ou à un terminal particulier. Cet identifiant commun peut être utilisé par un utilisateur, avec l’un quelconque des terminaux du système, pour appeler ou recevoir un appel téléphonique indifféremment depuis l’un de ces terminaux au moyen de cet identifiant.
Le système de messagerie SMS décrit ci-dessus ne s’avère pas complètement compatible avec ce type de systèmes « multi-terminaux ». En particulier, dans le cas de messages SMS envoyés en utilisant un identifiant pouvant être utilisé par un ensemble de terminaux mobiles associés au sein d’un système multi-terminaux, si l’on applique le système SMS tel que normalisé actuellement, chaque terminal mobile du système multi-terminaux se comporte de manière totalement indépendante des autres terminaux de ce système, sans tenir compte de l’existence des autres terminaux mobiles qui lui sont pourtant associés à l'identifiant commun au sein du système multi-terminaux.
La demande de brevet EP 1 613 102 A1 décrit un système de contrôle de livraison de messages courts, dans lequel il est possible de programmer de manière
flexible, au moyen d’instructions stockées dans une base de données d’une entité réseau, la redirection, copie ou distribution de messages courts émis par un terminal source qui seraient reçus par cette entité réseau.
Cependant, la distribution de messages courts vers une pluralité de terminaux destinataires, telle qu’envisagée dans ce système, repose sur l’utilisation d’identifiants MSISDN distincts pour chaque terminal destinataire, pour pouvoir adresser le message court à distribuer vers chacun de ces terminaux destinataires en utilisant une architecture réseau conventionnelle de messagerie. Un tel système s’avère donc incompatible avec l’envoi de messages vers un système « multi-terminaux » tel que décrit précédemment, puisque les terminaux d’un tel système « multi-terminaux » partagent un même identifiant commun alors que le système de contrôle de cette demande de brevet EP 1 613 102 A1 requiert des identifiants distincts pour chaque terminal vers lequel distribuer un message court.
Le demande de brevet FR 3 053 560 A1 décrit pour sa part un système de redirection de message issu de la modification d’un système conventionnel de messagerie par SMS, dans lequel on ajoute une base de données permettant de rediriger un message destiné à une première ligne téléphonique vers une deuxième ligne téléphonique distincte et, si cette redirection échoue, de rediriger alors ce message vers la première ligne téléphonique.
Cependant, le principe de ce système repose sur la redirection d’un message vers un seul terminal à la fois, et donc n’envisage aucunement la problématique décrite précédemment liée à la transmission de messages vers les terminaux d’un système « multi-terminaux ». De plus, ici encore, chaque terminal étant nécessairement identifié par une ligne téléphonique distincte dans le système de cette demande de brevet, ce système s’avère incompatible avec l’envoi de messages vers un système « multi- terminaux » dans lequel plusieurs terminaux partagent un même identifiant commun.
La présente invention vient donc remédier à ces inconvénients.
Il est proposé à cet effet un procédé de transmission d’un message destiné à un premier terminal, dit terminal destinataire, depuis un deuxième terminal, dit terminal source, vers au moins un troisième terminal, dit terminal associé, partageant un même identifiant avec le terminal source, comprenant les étapes de transmission, du terminal source vers un serveur de synchronisation, d’un premier message de synchronisation dans lequel est inséré le message destiné au terminal destinataire et de récupération, par ledit au moins un terminal associé, du message destiné au terminal destinataire
B auprès du serveur de synchronisation au moyen d’au moins un deuxième message de synchronisation.
Selon un mode de réalisation, ce procédé comprend en outre la transmission, du terminal source vers une passerelle d’acheminement, du message destiné au terminal destinataire, afin que ladite passerelle d’acheminement puisse retransmettre ledit message dans le plan de signalisation vers le terminal destinataire.
Selon un autre mode de réalisation de l’invention, pouvant être combiné au précédent, ce procédé comprenant en outre la transmission, du serveur de synchronisation vers un nœud réseau , chargé du stockage et de la retransmission de message, du message destiné au terminal destinataire, afin que ledit nœud réseau puisse retransmettre ledit message vers le terminal destinataire.
Selon un aspect avantageux de cet autre mode de réalisation, le procédé comprend en outre une étape de détermination, par le serveur de synchronisation, de l’émission du message du terminal source vers une passerelle d’acheminement, la transmission du message du serveur de synchronisation vers le nœud réseau n’ayant lieu que si le résultat de cette détermination est positif. Cette étape de détermination peut en particulier être réalisée au moyen de la détection d’un indicateur d’activation de émission du message du terminal source vers une passerelle d’acheminement, inséré dans le premier message de synchronisation.
Selon un autre aspect de l’invention, le procédé comprend en outre la mémorisation, par le serveur de synchronisation, du message destiné au terminal destinataire, extrait du premier message de synchronisation, afin de permettre la récupération par ledit au moins un terminal associé du message destiné au terminal destinataire.
Dans un mode particulier de réalisation, le message destiné au terminal destinataire est un message au format SMS.
Dans un mode particulier de réalisation, le premier et/ou le deuxième message de synchronisation est un message conforme à un protocole parmi les protocoles IMAP, J MAP, OMA DS ou OMA NMS.
Il est proposé également un serveur de synchronisation comprenant un module de communication apte à échanger des messages de synchronisation avec un premier terminal, dit terminal source, et au moins un deuxième terminal, dit terminal associé, partageant un même identifiant avec le terminal source, et un module de traitement configuré pour extraire un message destiné à un troisième terminal, dit terminal
destinataire, d’un premier message de synchronisation reçu par le module de communication et pour insérer ledit message dans un deuxième message de synchronisation à transmettre vers ledit au moins un terminal associé.
Dans un mode particulier de réalisation, le module de traitement est configuré en outre pour transmettre le message extrait à un nœud réseau chargé du stockage et de la retransmission de messages, afin que ledit nœud réseau puisse retransmettre ledit message vers le terminal destinataire.
Il est proposé par ailleurs un terminal comprenant un module de communication et un module traitement, le module de traitement étant configuré pour insérer un message destiné à un autre terminal, dit terminal destinataire, dans un message de synchronisation et le module de communication étant configuré pour émettre ledit message de synchronisation vers un serveur de synchronisation, afin qu’au moins un autre terminal, dit terminal associé, puisse récupérer le message destiné au terminal destinataire auprès dudit serveur de synchronisation.
Dans un mode particulier de réalisation, le module de traitement est configuré en outre pour instruire au module de communication de transmettre le message vers une passerelle d’acheminement permettant sa retransmission dans le plan de signalisation vers le terminal destinataire.
Il est également proposé un système pour la transmission d’un message destiné à un premier terminal, dit terminal destinataire, depuis un deuxième terminal, dit terminal source, vers au moins un troisième terminal, dit terminal associé, partageant un même identifiant avec le terminal source, comprenant un serveur de synchronisation tel que décrit ci-avant et ledit au moins un terminal associé, configuré pour récupérer auprès du serveur de synchronisation le message au moyen d’un message synchronisation. Dans un mode de réalisation, ce système comprend en outre un terminal source, ce terminal source étant un terminal tel que présenté ci-avant.
D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :
- La figure 1 représente schématiquement l’architecture prévue pour la transmission de message SMS, tel que normalisée actuellement ;
- La figure 2 représente un mode de réalisation du procédé de transmission de message selon la présente invention ;
- La figure 3 représente un autre mode de réalisation du procédé de transmission de message selon la présente invention ;
- La figure 4 illustre un terminal selon un mode de réalisation de la présente invention ; et
- La figure 5 illustre un serveur de synchronisation selon un mode de réalisation de la présente invention.
Il est fait tout d’abord référence à la Figure 1 , laquelle illustre schématiquement l’architecture actuellement prévue dans les normes 3GPP existantes, pour permettre la transmission de messages SMS depuis un terminal mobile émetteur UE-A vers un terminal mobile destinataire UE-B.
En particulier, le terminal mobile UE-A formate le message à transmettre, typiquement une suite de caractères alphanumériques saisie par l’utilisateur de ce terminal mobile au moyen de l’interface utilisateur de ce terminal, selon le format SMS.
Pour formater ce message, le terminal mobile UE-A est pourvu d’un module de formatage de message, encore appelé « client messaging » en anglais, un tel module étant natif, c’est-à-dire intégré dans le terminal mobile UE-A dès sa construction.
Une fois ce message formaté, le terminal mobile UE-A transmet (étape A1 10) ce message SMS vers une passerelle d’acheminement A_SMS, appartenant au réseau A auquel est abonné ou attaché, selon les cas, le terminal UE-A, cette passerelle étant spécialement dédiée à la retransmission de ce type de message dans le réseau, au moyen d’un protocole réseau prévu pour une telle transmission entre terminaux et cette passerelle d’acheminement A_SMS. Ce protocole réseau est typiquement un protocole de signalisation, c’est-à-dire un protocole relatif à la transmission de messages de signalisation dans le plan de signalisation.
Dans le cas d’un réseau d’accès 2G ou 3G, cette passerelle d’acheminement A_SMS est implémentée sous la forme d’un serveur MSC (pour « Mobile Switching Center » en anglais) auquel le terminal UE-A envoie directement le message SMS, tandis que dans le cas d’un réseau d’accès 4G, cette passerelle d’acheminement A_SMS est implémentée sous la forme d’une passerelle IP-SM-GW, le message SMS1 étant alors encapsulé dans un message selon le protocole de signalisation SIP (pour « Session Initiation Protocol » en anglais) transmis vers des noeuds réseau
intermédiaires (noeuds "P-CSCF" ou « S-CSCF » par exemple, non illustrés ici) qui le retransmettent vers cette passerelle IP-SM-GW.
Cette passerelle d’acheminement A_SMS retransmet alors ce message SMS selon un protocole de signalisation MAP (pour « Mobile Application Part » en anglais) ou Diameter vers un nœud réseau de type SMSC, pour « Short Message Service Center » en anglais (sous-étape A1 12), afin que ce nœud réseau SMSC mémorise (sous-étape A1 13) ce message SMS en vue de sa retransmission ultérieure vers le réseau B auquel le terminal destinataire est attaché. Un accusé de bonne réception peut alors être également transmis, du nœud SMSC vers le terminal UE-A à ce stade (étape A11 1 ).
A ce stade, le SMSC tente de transmettre (sous-étape A1 14) immédiatement le message SMS vers une passerelle d’acheminement B_SMS de ce réseau B, au moyen du protocole de signalisation MAP. Dans le cas d’un réseau d’accès 2G ou 3G, cette passerelle d’acheminement B_SMS est implémentée sous la forme d’un nœud réseau MSC (pour « Mobile Switching Center » en anglais) tandis que dans le cas d’un réseau d’accès 4G, cette passerelle d’acheminement B_SMS est implémentée sous la forme d’une passerelle IP-SM-GW.
Une fois le message de signalisation selon le protocole MAP encapsulant le message SMS reçu par la passerelle B_SMS, cette dernière extrait le SMS de ce message de signalisation et le transmet (étape A1 15) vers le terminal UE-B en utilisant un protocole de type NAS ("Non Access Stratum"). Dans le cas d’un réseau d’accès 4G, la passerelle B_SMS transmet le message SMS1 au terminal UE-B en l’encapsulant dans un message selon le protocole SIP.
Ainsi, dans cette architecture, les autres terminaux qui pourraient être associés au terminal UE-A au sein d’un système « multi-terminaux » ne peuvent pas être informés de l’envoi, par le terminal UE-A, d’un message de type SMS vers le terminal UE-B.
Il est fait maintenant référence à la Figure 2, laquelle illustre un procédé de transmission de message selon un premier mode de réalisation de la présente invention.
Dans ce premier mode de réalisation, un premier terminal 10, appelé terminal source par la suite, souhaite émettre un message vers un deuxième terminal 20, appelé
terminal destinataire par la suite. Les terminaux 10 et 20 peuvent être en particulier des terminaux mobiles, par exemple de type smartphone.
Le message en question est ici illustré comme étant un message SMS1 , formaté selon le format SMS, sans que l’invention ne se limite à ce seul format de message, celle-ci pouvant s’appliquer à tout type de message à transmettre entre terminaux.
Dans le cas présent, le terminal 10 est associé avec au moins un autre terminal, appelé terminal associé, dans le cadre d’un contexte de communication dit « contexte multi-terminaux ». Il peut s’agir ici aussi d’un terminal mobile, par exemple du type smartphone.
Dans un tel contexte multi-terminaux, les différents terminaux associés partagent un même identifiant, encore appelé identifiant commun, qui peut typiquement être un même numéro de téléphone (i.e. le même identifiant MSISDN d’un des terminaux associés), ou aussi être un numéro non lié nativement à l’un des terminaux du système, du type « extra-number » ou « Virtual number » précédement discuté, lequel est typiquement un nouveau numéro attribué par l'opérateur, non lié à une carte SIM ou à un terminal particulier, de sorte à ce que les autres terminaux appelés par (ou destinataires d’un message provenant de) l’un des terminaux associés ne voient qu’un seul et même identifiant, indépendamment du terminal associé qui est réellement utilisé.
En l’occurrence, la figure 2 illustre le cas d’un système multi-terminaux à trois terminaux associés, dans lequel deux autre terminaux associés 10’ et 10” sont associés avec le terminal source 10, et donc partagent avec lui un même identifiant « MSISDN-IO » (en l’occurrence l’identifiant du terminal source 10), sans que l’invention ne se limite à ce seul cas, un nombre N (avec N>1 ) de terminaux pouvant être associés au terminal destinataire 10 au sein d’un tel système.
Les terminaux associés au sein d’un système multi-terminaux peuvent être notamment des terminaux mobiles (smartphones, des montres connectées, des tablettes, entre autres), mais aussi d’autres types moins mobiles de terminaux, tels que des assistants vocaux, ou des frigos connectés, c’est-à-dire tout terminal connecté au réseau et capable d’envoyer et de recevoir des messages, éventuellement en les affichant ou en les vocalisant.
Outre le terminal source et les terminaux associés à ce terminal source, ce mode de réalisation fait intervenir un serveur de synchronisation 30, avec lequel le terminal
mobile source 10 et les terminaux associés 10’ et 10” échangent des messages de synchronisation, désignés ici par « SYNC ».
A ce titre, des modules clients synchronisation sont installés dans les terminaux associés 10, 10’ et 10” tandis qu’un module serveur de synchronisation est installé dans le serveur de synchronisation, ces modules étant synchronisés de sorte à ce que les modules clients soient notifiés des changements de contenu du module serveur du serveur de synchronisation, soit en temps réel dès qu’un tel changement a lieu, soit de manière différée lorsqu’un des modules clients interroge le module serveur afin de connaître les changements qui ont eu lieu depuis la dernière connexion du terminal client au serveur.
De tels messages de synchronisation SYNC sont conformes à un protocole de synchronisation apte à être utilisé entre un module client et un module serveur, lequel peut être le protocole IMAP (pour « Interactive Message Access Protocol » en anglais), JMAP (pour l’implémentation Java du protocole IMAP), OMA DS (Data Sync) ou OMA NMS (Network Message Storage), par exemple. En d’autres termes, les terminaux 10, 10’ et 10” se synchronisent avec le serveur de synchronisation en échangeant des messages de synchronisation conforme à un protocole de synchronisation tel que l’un des protocoles susmentionnés, cités à titre d’exemple de protocole de synchronisation.
Dans une étape préalable (non illustrée) au présent procédé, les terminaux 10’ et 10” associés au terminal source 10 s’enregistrent auprès du serveur de synchronisation 30, afin de bénéficier ultérieurement du service de synchronisation géré par ce serveur. En particulier, le serveur de synchronisation 30 dispose de l’information permettant de faire le lien entre tous les terminaux associés, typiquement un identifiant commun à tous ces terminaux tels qu’un identifiant MSISDN10 du terminal source 10, ou encore un numéro supplémentaire de type « extra-number », i.e. un nouveau numéro, fourni par l’opérateur, non lié à une carte SIM ou à un terminal particulier.
Lorsqu’un message SMS1 (ici un message selon le format SMS) est à transmettre depuis le terminal source 10 vers un terminal destinataire 20, le terminal 10 procède d’une part à la transmission de message SMS1 vers le terminal 20 de la manière illustrée précédemment à la figure 1 , en utilisant les étapes A110 à A115 décrites précédemment en relation avec cette figure 1.
Cependant, outre ces étapes de transmission du message directement au terminal 20 dans le plan de signalisation, dans le présent mode de réalisation, le terminal 10 insère (étape S120) ce message SMS1 dans un message de
synchronisation SYNC conforme au protocole de synchronisation utilisé par le serveur de synchronisation 30.
En particulier, l’insertion de ce message peut se faire dans un champ du message de synchronisation permettant une telle insertion. A titre d’exemple, ce message SYNC peut être une requête de type HTTP POST avec une structure de type Mime Text/plain dans laquelle est inséré le message SMS1 , comme illustré ci-dessous :
POST texampteAPI/mi^vlinifStcrf ¾ ¾ %2B195055501 CWcÆiects
Accept: appfafcnftiin!
Autbertzatim: BEARER f»7Ji724-M«- 3*-a«4-2tKliMcM3
Host: bcr.t . ch
Content- T y e: tact/pian
Content- Lengti: 40
Hi Je ri , «hst abc ut a cirte this evertihg?
En réponse à cette requête, le serveur 30 peut transmettre au terminal 10 un identifiant unique, attribué par le serveur 30 au message SMS1 , inséré dans une structure XML ou JSON par exemple.
Une fois le message SMS1 à transmettre inséré dans le message de synchronisation, le message de synchronisation résultant SYNC[SMS1 ] est transmis par le terminal source 10 vers le serveur de synchronisation 30 (étape S130), dans le plan de transport de données.
Il convient de noter ici que l’étape A1 10 de transmission du message SMS1 directement au terminal 20 d’une part, et les étapes S120 et S130 d’insertion et d’envoi du message de synchronisation contenant le message SMS1 au serveur de synchronisation 30 d’autre part, peuvent être effectuées en parallèle, c’est-à-dire simultanément ou dans un ordre quelconque les unes par rapport aux autres.
Une fois ce message de synchronisation SYNC[SMS1 ] reçu par le serveur de synchronisation 30, le message SMS1 qu’il contient peut être extrait et stocké par ce serveur de synchronisation 30 (étape S140), soit au sein même d’une mémoire de ce serveur, soit dans une base de données associée à ce serveur.
A ce stade, les terminaux associés 10’ et 10” récupèrent respectivement le message SMS1 destiné au terminal destinataire 10 au moyen de messages de synchronisation qu’ils échangent respectivement avec le serveur de synchronisation 30. Ainsi, pour ce qui est du terminal associé 10’, le serveur de synchronisation 30 récupère le message SMS1 destiné au terminal destinataire 20 au moyen d’un message de synchronisation SYNC’[SMS1 ] qu’il transmet à ce terminal 10 (étape S150’). Il fait de
même pour tous les autres terminaux associés, en l’occurrence ici pour le terminal 10” (étape S150”) auquel il envoie un message de synchronisation SYNC”[SMS1 ] dans lequel il a inséré le message SMS1.
Les messages de synchronisation (ici SYNC’[SMS1 ] et SYNC”[SMS1 ]) sont générés selon des procédures distinctes, pouvant toutefois utiliser les mêmes mécanismes et protocoles de synchronisation. Alternativement, ces messages de synchronisation peuvent utilisés des protocoles de synchronisation différents. En outre, les messages de synchronisation SYNC’[SMS1 ] ou SYNC”[SMS1 ] utilisés pour transmettre le message SMS1 vers l’un des terminaux associés 10’ ou 10“’ peuvent être générés selon les mêmes mécanismes et protocoles de synchronisation que le message de synchronisation SYNC[SMS1 ] utilisé pour transmettre le message SMS1 depuis le terminal source 10, ou bien encore être un message de synchronisation d’un type différent.
Ces messages de synchronisation peuvent être implémentés sous la forme d’un message contenant un attribut dans lequel le message SMS1 est inséré. Il peut s’agir notamment d’un message de type « pager-messager » selon l’interface REST NMS, contenant un objet de type SMS dit « inline », dans lequel le message SMS1 peut être directement inséré dans un attribut « textContent », comme illustré par l’exemple ci- dessous :
|<object>
<attributes>
<attribute>
<n ajie >Me s s age -Context /name>
<value>pager-message</value>
</attribute>
<attribute>
<name>F roii< / n ame >
<va1ue>tel :+19585550100</ va1 u e>
</attribute>
<attribute>
<name>To</name>
<value>tel :+19585550210</value>
</attribute>
<attrlbyte>
<name>Date</nafie>
<va1ue>2013-11-12T08 : 30: 10Z</value>
</attribute>
<attribute>
<name>Direction</name>
<valuG>In</value>
</attribute>
<attrlbute>
<naine >Con te nt -Type</ n ante>
<value>text/plain</value>
</attribute>
<attribute>
<name>TextContent</name>
<value>The weather is nice to ay, lef s go to the beach ! </value> </att:ribute>
</att ri butes >
Ces messages de synchronisation peuvent aussi être implémentés sous la forme de message avec un champ « payload » contenant une adresse permettant le téléchargement ultérieur du message SMS1 (par requête GET par exemple). En particulier, il peut s’agir d’un message de type « pager-messager » selon l’interface REST NMS, comme illustré par l’exemple ci-dessous :
Ces messages de synchronisation peuvent aussi être implémentés sous forme d’une notification du serveur de synchronisation, contenant dans son objet une URL permettant de télécharger directement un objet « message SMS1 », comme illustrée par l’exemple ci-dessous, où l’élément « oldl OOO » en fin d’URL représente un identifiant unique de ce message :
Les trois exemples précédents sont au format XML, mais une structure JSON peut être également utilisée.
Chaque terminal associé peut alors, après avoir reçu un tel message de synchronisation, récupérer le message SMS1 destiné au terminal destinataire 20, soit en l’extrayant du message de synchronisation lorsqu’il y est inséré, soit en téléchargeant ce message SMS1 depuis une adresse indiqué dans ce message de
synchronisation. Les terminaux associés 10’ et 10” peuvent alors stocker ce message SMS1 dans leurs propres mémoires, pour consultation ou restitution ultérieure par un utilisateur.
Ainsi, au terme de ce procédé, tous les terminaux associés au terminal source disposent du message SMS1 émis par le terminal source, ainsi que des informations associées à ce message, telles que l’heure d’envoi du message, le lieu d’envoi du message, l'état de lecture ou de réponse du message, etc. L’utilisateur d’un système multi-terminaux a donc accès à un même historique d’envoi de message, peu importe le terminal par lequel il y accède.
Dans un mode de réalisation, le procédé illustré sur la figure 2 peut être déclenché pour tous les messages utilisant comme identifiant d'origine un identifiant commun potentiellement utilisé sur d'autres terminaux, saisis par un utilisateur sur le terminal source 10. Pour ce faire, le terminal source 10 peut comprendre un module de formatage de message de synchronisation, configuré pour recevoir en entrée tous les messages à transmettre en utilisant un identifiant commun à plusieurs terminaux et pour les insérer dans des messages de synchronisation à transmettre vers le serveur de synchronisation 30.
Dans le présent mode de réalisation, ce module de formatage de message de synchronisation fonctionne parallèlement au module natif de formatage de message à transmettre, de sorte à transmettre en parallèle aussi bien le message destiné au terminal destinataire selon un schéma classique (étapes A1 10 à A1 15) qu’un message de synchronisation contenant ce message vers le serveur de synchronisation 30 (étape S130).
Dans un tel mode de réalisation « hybride », le message reste transmis vers le terminal destinataire au moyen de messages de signalisation, dans le plan de signalisation donc, tandis que des copies de ce message sont transmises aux terminaux associés au terminal source, dans le plan de transport de données. Ceci permet de garantir une certaine rapidité de transmission au terminal destinataire, tout en économisant des ressources du plan de signalisation pour ce qui est des copies transmises aux terminaux associés, pour lesquelles le temps de transmission est moins critique que pour le terminal destinataire.
Dans un autre mode de réalisation, ce module de formatage de message de synchronisation est placé en sortie du module natif de formatage de message à transmettre, de sorte à intercepter les messages en sortie de ce dernier. Dans ce cas,
un message destiné au terminal destinataire 20 n’est pas émis tel quel, selon le schéma classique (i.e. vers une passerelle d’acheminement du réseau). Au contraire, seul un message de synchronisation contenant ce message est émis, vers le serveur de synchronisation 30.
Il est fait maintenant référence à la Figure 3, laquelle illustre un procédé de transmission de message selon un deuxième de réalisation de la présente invention.
Cet autre mode de réalisation diffère du précédent en ce que la transmission directe du message SMS1 , du terminal 10 au terminal 20 dans le seul plan de signalisation, est inhibée, le message SMS1 étant alors transmis au moyen d’un message de synchronisation, au moins en partie dans le plan de transport de données, tout comme pour les terminaux associés au terminal 10.
En d’autres termes, dans le présent mode de réalisation, lorsqu’un message SMS1 (ici encore un message selon le format SMS) est à transmettre depuis le terminal source 10 vers un terminal destinataire 20, le terminal 10 ne procède pas à la transmission de ce message SMS1 vers le terminal 20 de la manière illustrée précédemment à la figure 1 , et donc n’utilise pas les étapes A 1 10 à A115 décrites précédemment en relation avec cette figure 1. Cette transmission traditionnelle est ici inhibée au niveau du terminal 10.
Au contraire, le procédé selon le présent mode de réalisation début par l’étape S120 d’insertion du message SMS1 dans un message de synchronisation SYNC[SMS1 ], suivie par l’étape S130 de transmission de ce message de synchronisation au serveur de synchronisation 30 et de l’étape S140 de mémorisation de ce message SMS1 , après son éventuelle extraction du message de synchronisation, par le serveur de synchronisation 30, telles que décrites précédemment en relation avec la figure 2.
A ce stade, les terminaux associés 10’ et 10” peuvent récupérer le message SMS1 destiné au terminal destinataire 20, au moyen de messages de synchronisation qu’ils échangent respectivement avec le serveur de synchronisation 30, lors d’étapes respectives S150’ et S150” comme décrites précédemment en relation avec la figure 2.
Cependant, dans le présent mode de réalisation, le serveur de synchronisation 30 peut également à ce stade transmettre le message SMS1 , qu’il a extrait du message de synchronisation SYNC[SMS1 ] reçu du terminal 10, vers le nœud réseau 40 chargé de stocker et retransmettre les messages entre terminaux mobiles, en l’occurrence le
centre SMSC dans le cas de messages SMS (étape S142), par exemple au moyen du protocole de signalisation MAP employé par exemple par les passerelles IP-SM-GW pour transmettre les messages SMS vers un tel nœud réseau 40. Tout autre protocole IP de synchronisation, voire une API, peut être utilisé alternativement.
Ceci permet au nœud réseau 40 de stocker temporairement ce message SMS1 (étape A113) avant de le retransmettre (étape A1 14) vers une passerelle d’acheminement B_SMS de tels messages (une passerelle IP-SM-GW dans le cas d’un réseau d’accès 4G ou un serveur MSC dans le cas d’un réseau d’accès 2G ou 3G), située dans le réseau B auquel le terminal destinataire 20 est abonné/attaché, afin que celle-ci retransmette (étape A1 15) le message vers le terminal destinataire 20. Ces étapes A1 13 à A1 15 sont similaires à celles déjà décrites en relation avec les figures 1 et 2.
Il convient de noter ici que les étapes S142, A1 13, A114 et A1 15 d’une part, permettant la transmission du message SMS1 du serveur de synchronisation vers le terminal 20, et les étapes S140, S150’ et S150”, permettant la récupération de ce message SMS1 par les terminaux associés au terminal source, peuvent être effectuées en parallèle, c’est-à-dire simultanément ou dans un ordre quelconque les unes par rapport aux autres.
Ainsi, au terme de ce procédé, tous les terminaux associés au terminal source disposent du message SMS1 émis par le terminal source, ainsi que des informations associées à ce message, telles que l’heure d’envoi du message, le lieu d’envoi du message, etc. L’utilisateur d’un système multi-terminaux a donc accès à un même historique d’envoi de message, peu importe le terminal auquel il accède.
Similairement au précédent mode de réalisation, pour implémenter ce procédé, le terminal source 10 peut comprendre un module de formatage de message de synchronisation, configuré pour recevoir en entrée tous les messages à transmettre utilisant un identifiant potentiellement commun à plusieurs terminaux et pour les insérer dans des messages de synchronisation à transmettre vers le serveur de synchronisation 30.
Cependant, dans le présent mode de réalisation, ce module de formatage de message de synchronisation peut être placé en sortie du module natif de formatage de message à transmettre, de sorte à intercepter les messages en sortie de ce dernier. Dans ce cas, un message destiné au terminal destinataire 20 n’est pas émis tel quel, selon le schéma classique (i.e. vers une passerelle d’acheminement du réseau). Au
contraire, seul un message de synchronisation contenant ce message est émis, vers le serveur de synchronisation 30, lors de l’étape S130. Alternativement, dans le cas d’un module natif de formatage de message à transmettre qui serait placé en parallèle du module de formatage de message de synchronisation, et donc pourrait éventuellement transmettre directement le message SMS1 dans le plan de signalisation, il convient ici d’instruire à ce module natif de formatage de message à transmettre d’inhiber une telle transmission directe, qui serait redondante avec celle effectuée par le serveur de synchronisation lors des étapes S142 à S148.
Dans cet autre mode de réalisation, les messages à transmettre sont donc transmis quasiment intégralement dans le plan de transport de données, ce qui présente l’avantage d’économiser encore plus les ressources du plan de signalisation du réseau, afin qu’elles puissent être allouées à d’autres services. L’utilisation du seul plan de transport de données, pour la transmission de tels messages depuis ou vers les terminaux, peut s’avérer moins rapide que l’utilisation du plan de signalisation, mais ce désagrément peut s’avérer mineur au regard du gain obtenu en termes d’économie de ressources du plan de signalisation, surtout si l’on considère qu’il n’y a pas véritablement de besoin de transmettre de tels messages en temps-réel et qu’un léger temps de latence est alors tolérable.
Le terminal source 10 et le serveur de synchronisation 30 peuvent être configurés pour mettre en oeuvre uniquement le premier ou le deuxième mode de réalisation.
Ainsi, pour ce qui est du premier mode de réalisation illustré en figure 2, le terminal 10 peut être nativement configuré (ou configuré par mise à jour logicielle) pour se synchroniser avec le serveur de synchronisation (étape S120) en plus de l’émission du message SMS1 vers la passerelle d’acheminement 50 (étape A1 10). Le serveur de synchronisation 30 peut être configuré pour se synchroniser avec les terminaux associés (étapes S150’ et S150”), sans envoyer de message de signalisation incluant le message SMS1 vers le nœud réseau 40.
Pour ce qui est du deuxième mode de réalisation illustré en figure 3, le terminal 10 peut être nativement configuré (ou configuré par mise à jour logicielle) pour se synchroniser avec le serveur de synchronisation (étape S120) sans toutefois émettre le message SMS1 vers la passerelle d’acheminement 50. Autrement dit, sa fonction traditionnelle d’envoi du message directement dans le plan de signalisation peut être désactivée. Le serveur de synchronisation 30 peut alors être configuré pour, outre le fait
de se synchroniser avec les terminaux associés (étapes S150’ et S150”), envoyer également un message de signalisation incluant le message SMS1 vers le nœud réseau 40 (S142), afin de permettre à ce message d’atteindre le terminal destinataire 20.
Le serveur de synchronisation 30 peut être configuré pour se synchroniser avec les terminaux associés (étapes S150’ et S150”), sans envoyer de message incluant le message SMS1 vers le nœud réseau 40.
Dans un autre mode de réalisation cependant, aussi bien le terminal 10 que le serveur de synchronisation 30 peut mettre en œuvre le premier ou le deuxième mode de réalisation du procédé décrit précédemment.
Le terminal 10 est alors configuré nativement (ou configuré par mise à jour logicielle) pour se synchroniser avec le serveur de synchronisation (étape S120) et, en outre, pouvoir activer ou désactiver l’émission du message SMS1 vers la passerelle d’acheminement 50 dans le plan de signalisation (étape A1 10).
Cette activation ou désactivation peut être instruite par l’utilisateur du terminal, au moyen d’une commande saisie via l’interface utilisateur ou d’un menu de configuration du terminal 10, ou encore à distance par un message de commande transmis depuis le réseau de communication, par exemple par l’opérateur de ce réseau. Ainsi, lorsque la transmission du message SMS1 est effectué par un module de communication du terminal 10, ce module peut être configuré pour recevoir une telle commande d’activation, ou de désactivation, de ce type de transmission (étape A1 10) et activer, ou désactiver, cette transmission en fonction de cette commande.
Le serveur de synchronisation 30 est alors, pour sa part, configuré pour se synchroniser avec les terminaux associés (étapes S150’ et S150”) et, en outre, pour pouvoir activer ou désactiver l’émission d’un message de signalisation incluant le message SMS1 vers le nœud réseau 40 (étape S142).
Cette activation ou désactivation peut être instruite par un opérateur du serveur, au moyen d’une commande saisie via une interface utilisateur ou d’un menu de configuration de ce serveur 30, ou encore à distance par un message de commande transmis depuis le réseau de communication, par exemple par l’opérateur de ce réseau.
Cependant, comme il est préférable que cette activation ou désactivation côté serveur 30 tienne compte de l’activation ou désactivation côté terminal 10, le procédé peut avantageusement comprendre une étape de détermination (non illustrée), par le serveur de synchronisation 30, de l’émission (étape A110) du message SMS1 du
terminal source 10 vers une passerelle d’acheminement 50. La transmission (étape S142) du message SMS1 du serveur de synchronisation 30 vers le nœud réseau 50 n’a alors lieu que si le résultat de cette détermination est positif.
Cette détermination peut être réalisation au moyen de la détection d’un indicateur d’activation, ou de désactivation, de l’étape A1 10, inséré dans le message de synchronisation SYNC[SMS1 ] que le terminal 10 transmet au serveur 30.
En d’autres termes, lorsque l’émission (étape A1 10) du message SMS1 est activée côté terminal 10, le terminal 10 insère un indicateur signalant cette activation dans le message SYNC[SMS1 ] envoyé au serveur 30. Quand ce serveur 30 reçoit ce message SYNC[SMS1] et y détecte cet indicateur, il désactive alors l’émission (étape S142) du message SMS1 vers le nœud réseau 40, qui serait redondante. Inversement, lorsque l’émission (étape A1 10) du message SMS1 est désactivée côté terminal 10, le terminal 10 insère un indicateur signalant cette désactivation dans le message SYNC[SMS1 ] envoyé au serveur 30. Quand ce serveur 30 reçoit ce message SYNC[SMS1 ] et y détecte cet indicateur, il active alors l’émission (étape S142) du message SMS1 vers le nœud réseau 40, afin de déclencher la retransmission de ce message SMS1 vers le terminal 20.
On se réfère à présent à la figure 4, illustrant un terminal selon un mode de réalisation de la présente invention.
Le terminal 10 (lequel peut être un terminal mobile, comme par exemple un smartphone) comprend en particulier un module d’interface utilisateur 11 , permettant à un utilisateur de saisir un message, dit « message brut », à transmettre vers un terminal mobile destinataire, ce module d’interface utilisateur pouvant prendre la forme d’un clavier ou d’un écran tactile permettant de rentrer des caractères alphanumériques, voire d’une interface de reconnaissance vocale permettant une telle saisie.
Le terminal 10 comprend également un module de traitement 13 configuré pour recevoir, en entrée, le message brut saisi par un utilisateur et pour le formater sous la forme d’un message pouvant être transmis sur le réseau de communication auquel le terminal est attaché. A cet effet, le module de traitement 13 comprend un module natif 13i de formatage de message à transmettre, configuré pour encapsuler le message brut saisi par l’utilisateur dans un message formaté permettant sa transmission sur le réseau, typiquement un module de formatage SMS délivrant, en sortie, des messages SMS à transmettre vers le réseau. Comme discuté précédemment, ce module natif 13i
peut être configuré pour recevoir une instruction d’inhibition de transmission directe de messages vers le réseau, notamment lorsque l’on souhaite mettre en oeuvre le procédé tel qu’illustré par la figure 3. Un tel module de traitement est typiquement implémenté sous la forme d’un ou plusieurs processeurs exécutant des instructions de code d’un programme informatique, associé à une mémoire vive et/ou une mémoire morte dans laquelle sont stockées ces instructions de code.
Le terminal 10 comprend en outre un module de mémorisation 15 dans lequel est mémorisé, entre autres, un identifiant du terminal 10, typiquement mais non exclusivement un numéro de téléphone attribué au terminal, ici MSISDN10. Ce module de mémorisation 15 peut également mémoriser un identifiant commun au système multi-terminaux auquel appartient le terminal 10, ou un identifiant virtuel, lequel peut alors être utilisé pour indiquer que les messages transmis par ce terminal sont à diffuser auprès des terminaux associés à ce terminal dans un tel système.
Ce module de mémorisation peut être implémenté sous la forme d’une carte SIM amovible, ou encore d’une carte eSIM intégrée dans le terminal 10. Le module natif 13i accède à ce module 15 pour y extraire l’identifiant MSISDN10 afin soit de l’insérer tel quel en tant qu’identifiant commun dans le message formaté qu’il prépare, soit de l’utiliser dans une requête pour récupérer l’identifiant commun auprès d’un serveur distant de type HLR lors de l’attachement au réseau, avant d’insérer cet identifiant récupéré dans le message formaté qu’il prépare, de sorte à ce que ce message puisse identifier son émetteur.
Dans le cadre de la présente invention, le module de traitement 13 comprend en outre un module 132 de formatage de message de synchronisation, recevant en entrée le message délivré par le module natif 13i et l’insérant dans un message de synchronisation destiné à être transmis à un serveur de synchronisation auprès duquel le terminal 10 est enregistré.
Le terminal 10 comprend enfin un module de communication 17, apte à recevoir les messages préparés par le module de traitement 13 afin de les transmettre, par voie radio, vers le réseau de communication auquel le terminal 10 est attaché. Un tel module de communication peut être implémenté en particulier sous la forme d’une ou plusieurs antenne(s) radio connectées à un convertisseur numérique/analogique recevant en entrée les messages préparés par le module de traitement 13, en particulier les messages de synchronisation délivrés par le module 132. Comme indiqué précédemment, ce module de communication 17 peut, outre les messages de
synchronisation SYNC encapsulant des messages destinés à un terminal destinataire, également recevoir des messages préparés par le module natif 13i, afin de les transmettre en parallèle des messages de synchronisation contenant ces messages.
On se réfère à présent à la figure 5, illustrant un serveur de synchronisation selon un mode de réalisation de la présente invention.
Ce serveur de synchronisation 30 comprend en particulier un module de communication 31 (typiquement implémenté sous forme d’émetteur-récepteur) configuré pour échanger des messages de synchronisation SYNC avec le terminal source 10, ainsi que de messages de synchronisation SYNC’ avec le ou les terminaux 10’, 10” qui lui sont associés (un seul terminal 10’ associé étant illustré ici).
Le serveur de synchronisation 30 comprend en outre un module de traitement 33, configuré tout d’abord pour traiter les messages de synchronisation SYNC reçus en provenance du terminal source 10, et notamment pour en extraire un message destiné à un terminal destinataire 20, par exemple un message SMS, lorsqu’un tel message y a été inséré (ce cas étant ici illustré sur la figure 5 par le message SYNC[SMS1 ]). Un tel module de traitement est typiquement implémenté sous la forme d’un ou plusieurs processeurs exécutant des instructions de code d’un programme informatique, associé à une mémoire vive et/ou une mémoire morte dans laquelle sont stockées ces instructions de code.
Ce message SMS1 , une fois extrait du message de synchronisation SYNC[SMS1 ], peut être alors mémorisé dans un module de mémorisation 35 (typiquement implémenté sous forme d’une mémoire non-volatile), ici illustré comme étant compris dans le serveur de synchronisation 30, mais pouvant être aussi implémenté sous la forme d’une base de données distincte de ce serveur, à laquelle ce serveur a accès pour mémoriser ces messages et y accéder ensuite.
La mémorisation de ce message, dans le module de mémorisation 35, peut être faite en association avec un identifiant du terminal source 10 (ici, son identifiant « MSISDN-IO ») afin de faciliter sa récupération ultérieure.
Lorsqu’ultérieurement, un terminal associé au terminal source 10 doit être synchronisé, le module de traitement 33 peut alors vérifier auprès du module de mémorisation 35 si un message SMS1 associé à l’identifiant unique qui lui est associé a été mémorisé et, si c’est le cas, le module 33 peut alors récupérer ce message afin de l’insérer dans un message de synchronisation SYNC’[SMS1 ] qu’il fournit au module de
communication 31 afin que ce dernier transmette le message de synchronisation SYNC’[SMS1 ] au terminal associé en question.
Les messages SYNC[SMS1 ] et SYNC’[SMS1 ] peuvent être émis spontanément (c’est-à-dire sans qu’une requête préalable n’ait été reçue pour déclencher l’émission de ce message) respectivement par le terminal source 10 et le serveur de synchronisation 30, par exemple à intervalle régulier, dans un mode « push ». Alternativement, ces messages peuvent être des messages émis en réponse à des requêtes de synchronisation reçues respectivement du serveur de synchronisation 30 et du terminal source 10, dans un mode dit « pull » (de telles requêtes étant illustrées par « REQ SYNC » sur la figure 4).
Bien entendu, l’invention n’est pas limitée aux exemples de réalisation ci-dessus décrits et représentés, à partir desquels on pourra prévoir d’autres modes et d’autres formes de réalisation, sans pour autant sortir du cadre de l’invention.
En particulier, les messages de type SMS ont été discutés précédemment comme exemple de messages courts pouvant être avantageusement transmis grâce aux modes de réalisation de la présente invention. Cependant, tout autre type de message, plus ou moins court, peut être également concerné, l’invention étant cependant particulièrement avantageuse lorsque la taille du message à transmettre est inférieure à la taille du champ disponible pour l’insérer dans un message de synchronisation entre un terminal et un serveur de synchronisation, de sorte à ce qu’un seul message de synchronisation suffise à transmettre un (voire plusieurs) message(s), destiné(s) à un terminal « destinataire », à un autre terminal associé à ce terminal destinataire.
De plus, le serveur de synchronisation présenté précédemment peut être un équipement spécifique, dédié uniquement à la synchronisation de messages avec des terminaux associés à un terminal destinataire de messages, mais également tout équipement réseau ayant d’autres fonctionnalités, dans lequel un module logiciel de type « serveur » est installé pour échanger les messages de synchronisation SYNC présentés ci-dessus avec un module logiciel de type « client » installé dans des terminaux associés au terminal destinataire.