WO2008144251A1 - Establishing and translating within multilingual group messaging sessions using multiple messaging protocols - Google Patents

Establishing and translating within multilingual group messaging sessions using multiple messaging protocols Download PDF

Info

Publication number
WO2008144251A1
WO2008144251A1 PCT/US2008/063170 US2008063170W WO2008144251A1 WO 2008144251 A1 WO2008144251 A1 WO 2008144251A1 US 2008063170 W US2008063170 W US 2008063170W WO 2008144251 A1 WO2008144251 A1 WO 2008144251A1
Authority
WO
WIPO (PCT)
Prior art keywords
session
user
messaging
message
participant
Prior art date
Application number
PCT/US2008/063170
Other languages
French (fr)
Inventor
Michael John Donahue
Original Assignee
Moka, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Moka, Llc filed Critical Moka, Llc
Publication of WO2008144251A1 publication Critical patent/WO2008144251A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content

Definitions

  • the present disclosure relates to methods and systems for messaging between computing devices. Specifically, the present disclosure relates to systems and methods for establishing, and translating within, multilingual group messaging sessions using one or more messaging protocols.
  • a method for establishing a multilingual messaging session using multiple messaging protocols includes the step of receiving a request from a first user for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user.
  • the method includes the step of storing, in a session data table, an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user.
  • the method includes the steps of creating a messaging session between the first user and the second user, generating a translation of the message in a target language associated with the second user, and transmitting, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
  • the method includes the step of transmitting, to a server, by the first user, the request for establishment of a messaging session with a second user, in a short messaging service message addressed to the server.
  • the method includes the step of transmitting the request to a server by the first user, for establishment of a messaging session with a second user, in an electronic mail message addressed to the server.
  • the method includes the step of transmitting the request to a server by the first user, for establishment of a messaging session with a second user, in an instant message addressed to the server.
  • the method includes the step of receiving, from a user, a request for establishment of a messaging session between the user and a server, the request including a message in a source language, an identification of a target language associated with the user.
  • the method includes the step of establishing a messaging session between the user and the server.
  • the method includes the step of transmitting, by the server, to the user, a translation of the message in the target language associated with the user, within the messaging session.
  • the method includes the step of receiving, from the second user, a request for transmission, to the first user, of a second message, in the target language associated with the second user.
  • the method includes the step of determining that the session data table includes an identification of the first user.
  • the method includes the steps of generating a translation of the second message in a language associated with the first user and transmitting the second message to the first user according to a messaging protocol associated with the first user.
  • a system for establishing a multilingual messaging session using multiple messaging protocols includes a server, a session date table, a session management component, a translation engine, and a messaging gateway.
  • the server receives, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user.
  • the session data table stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user.
  • the session management component on the server creates a messaging session between the first user and the second user.
  • the translation engine in communication with the session management component receives the message, an identification of the source language, and the identification of the target language associated with the session participant, and generates a translation of the message in the target language.
  • the messaging gateway receives the translation of the message and transmits, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
  • a method for real-time translation within a group short message service session includes the step of receiving a request from a user for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each of the plurality of session participants and including an identification of a target language associated with each of the session participants.
  • the method includes the step of storing in a session data table an identification of each of the plurality of session participants, an identification of the user, and the identification of the target language associated with each session participant in the plurality of session participants.
  • the method includes the step of creating a short message service session between the user and each of the session participants.
  • the method includes the step of generating a translation of the message in a first target language associated with a first session participant in the plurality of session participants.
  • the method includes the step of transmitting, within the short message service session, the translation of the message in the first target language to the first session participant.
  • the method includes the step of generating a translation of the message in a second target language associated with a second session participant in the plurality of session participants.
  • the method includes the step of transmitting, within the short message service session, the translation of the message in the second target language to the second session participant.
  • the method includes the step of receiving a second message, from a second user, determining that the session data table includes an identification of the second user, generating, for each session participant in the plurality of session participants, a translation of the second message in a target language associated with each session participant and transmitting the translation of the second message to the user and to each of the session participants.
  • the method includes the step of receiving a request for establishment of a messaging session among a plurality of session participants.
  • the request includes a message in a source language for transmission to each session participant, an identification of a target language associated with each session participant, and an identification of a messaging protocol associated with each session participant.
  • the method includes storing the identification of the messaging protocol associated with each of the session participants in the session data table.
  • the method includes the steps of transmitting, within the messaging session, the translation of the message to the first session participant, according to a first messaging protocol associated with the first session participant and of transmitting, within the messaging session, the translation of the message to the second session participant, according to a second messaging protocol associated with the second session participant.
  • a system for real-time translation within a group short message service session includes a server, a session date table, a session management component, a translation engine, and a messaging gateway.
  • the server receives, from a user, a request for establishment of a short message service session among a plurality of session participants.
  • the request includes a message in a source language for transmission to each of the session participants and an identification of a target language associated with each of the session participants.
  • the session data table stores an identification of the user, an identification of each of the session participants, and the identification of the target language associated with each of the session participants.
  • the session management component on the server creates a messaging session between the user and each of the session participants.
  • the translation engine generates, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant and generates for a second session participant in the plurality of session participants, a translation of the message in a second target language associated with the second session participant.
  • the messaging gateway transmits, within the short message service session, the translation of the message in the first target language to the first session participant and transmits the translation of the message in the second target language to the second session participant in the plurality of session participants.
  • the server receives the request via a messaging gateway.
  • the server receives the request from a client device operated with the user.
  • the server further comprises means for receiving a second message and from a second user and determining that the session data table includes an identification of the second user.
  • the translation engine further includes means for generating translations of the second message in target languages associated with each of the session participants.
  • the messaging gateway includes means for transmitting the translation of the second message to the user and each of the session participants.
  • the system includes means for receiving a request for establishment of a messaging session among a plurality of session participants.
  • the request includes a message in a source language for transmission to each of the session participants, an identification of a target language associated with each of the session participants and an identification of a messaging protocol associated with each of the session participants.
  • the session data table includes a stored identification of the messaging protocol associated with each of the session participants.
  • the messaging gateway includes means for transmitting translations of the message within the messaging sessions, to each of the session participants in an associated language and messaging protocol.
  • a method for establishing a group messaging session using multiple messaging protocols includes the step of receiving, from a user, a request for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
  • a session data table stores an identification of each of the plurality of session participants, an identification of the user, and an identification of the messaging protocol associated with each session participant in the plurality of session participants.
  • the method includes the steps of creating a messaging session between the session participants in the plurality of session participants and the user, and of the transmitting the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant, within the messaging session and of the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant, within the messaging session.
  • the method includes the steps of receiving, from a second user, a second message, of determining that the session data table includes an identification of the second user, and of transmitting the second message to the user and to each session participant in the plurality of session participants according to the messaging protocol associated with each session participant in the plurality of session participants.
  • the transmission of the second message to the user according to a messaging protocol associated with the user is described.
  • the message includes the step of receiving a request including a message in a source language for transmission to each session participant in the plurality of session participants and an identification of a target language associated with each session participant in the plurality of session participants
  • the method includes the step of storing, in the session data table, the identification of the target language associated with each session participant in the plurality of session participants.
  • the method includes the step of generating, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant and the method includes the step of transmitting, within the messaging session, the translation of the message to the first session participant, according to the first messaging protocol associated with the first session participant.
  • the method includes the steps of generating, for a second session participant in the plurality of session participants, a translation of the message in a second language associated with the session participant and of transmitting, within the messaging session, the translation of the message to the second session participant, according to the second messaging protocol associated with the second session participant.
  • a system for establishing a messaging session using multiple messaging protocols includes a server, a session data table, a session management component, a first messaging gateway, and a second messaging gateway.
  • the server receives, a request from a user for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
  • the session data table stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants.
  • the session management component on the server creates a messaging session between each session participant in the plurality of session participants and the user.
  • the first messaging gateway transmits, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant.
  • the second messaging gateway transmitting, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
  • FIG. IA is a block diagram depicting one embodiment of a network environment for a client to access a server via an appliance
  • FIGs. IB and 1C are block diagrams depicting embodiments of a computing device;
  • FIG. 2 is a block diagram depicting one embodiment of a system for establishing a messaging session between two users using different languages and messaging protocols;
  • FIG. 3 is a flow diagram depicting one embodiment of the steps taken in a method for establishing a messaging session between two users using different languages and messaging protocols;
  • FIG. 4 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first language to a plurality of users using different languages;
  • FIG. 5 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first language to a plurality of users using different languages;
  • FIG. 6 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first protocol to a plurality of users using different protocols;
  • FIG. 7 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first protocol to a plurality of users using different protocols;
  • FIG. 8 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first protocol and a first language to a plurality of users using different protocols and different languages;
  • FIG. 9 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first protocol and a first language to a plurality of users using different protocols and different languages.
  • a network environment comprises one or more clients 102a-102n (also generally referred to as local machines or client devices 102) in communication with one or more servers 106a-106n (also generally referred to as remote machines 106) via one or more networks 104.
  • the network 104 can be a local-area network (LAN), such as a company Intranet, a metropolitan area network (MAN), or a wide area network (WAN), such as the Internet or the World Wide Web.
  • LAN local-area network
  • MAN metropolitan area network
  • WAN wide area network
  • the network 104 may be any type and/or form of network and may include any of the following: a point to point network, a broadcast network, a wide area network, a local area network, a telecommunications network, a data communication network, a computer network, an ATM (Asynchronous Transfer Mode) network, a SONET (Synchronous Optical Network) network, a SDH (Synchronous Digital Hierarchy) network, a wireless network and a wireline network.
  • the network 104 may comprise a wireless link, such as an infrared channel or satellite band.
  • the topology of the network 104 may be a bus, star, or ring network topology.
  • the network 104 and network topology may be of any such network or network topology as known to those ordinarily skilled in the art capable of supporting the operations described herein.
  • the network 104 may comprise mobile telephone networks utilizing any protocol or protocols used to communicate among mobile devices, including AMPS, TDMA, CDMA, GSM, GPRS or UMTS.
  • AMPS Term Evolution
  • TDMA Time Division Multiple Access
  • CDMA Code Division Multiple Access
  • GSM Global System for Mobile Communications
  • GPRS Packet Radio Service
  • UMTS Universal Mobile communications
  • a server 106 in the network may be a file server, application server, web server, proxy server, electronic mail server, short-message service (SMS) server, instant messaging server, a router, appliance, network appliance, gateway, application gateway, gateway server, virtualization server, deployment server, Secure Sockets Layer Virtual Private Network (SSL VPN) server, or firewall.
  • the clients 102 may also be referred to as client nodes, client machines, endpoint nodes, or endpoints.
  • a client 102 has the capacity to function as both a client node seeking access to resources provided by a server and as a server providing access to hosted resources for other clients
  • a client 102 may execute, operate or otherwise provide an application, which can be any type and/or form of software, program, or executable instructions such as any type and/or form of web browser, web-based client, client-server application, a thin-client computing client, an ActiveX control, or a Java applet, or any other type and/or form of executable instructions capable of executing on client.
  • the application can use any type of protocol and it can be, for example, an HTTP client, an FTP client, an Oscar client, an electronic mail client, a short-message service (SMS) client or a Telnet client.
  • the application comprises any type of software related to voice over internet protocol (VoIP) communications, such as a soft IP telephone.
  • the application comprises any application related to real-time data communications, such as applications for streaming video and/or audio.
  • FIGs. IB and 1C depict block diagrams of an embodiment of a computing device 100 useful as an embodiment of the client 102 or the server 106.
  • each computing device 100 includes a central processing unit 121, and a main memory unit 122.
  • a computing device 100 may include a visual display device 124, a keyboard 126 and/or a pointing device 127, such as a mouse.
  • Each computing device 100 may also include additional optional elements, such as one or more input/output devices 13 Oa- 13 Ob (shown in FIG. 1C and generally referred to using reference numeral 130), and a cache memory 140 in communication with the central processing unit 121.
  • the central processing unit 121 is any logic circuitry that responds to and processes instructions fetched from the main memory unit 122.
  • the central processing unit is provided by a microprocessor unit, such as: those manufactured by Intel Corporation of Mountain View, California; those manufactured by Motorola Corporation of Schaumburg, Illinois; those manufactured by Transmeta Corporation of Santa Clara, California; the RS/6000 processor, those manufactured by International Business Machines of White Plains, New York; or those manufactured by Advanced Micro Devices of Sunnyvale, California.
  • the computing device 100 may be based on any of these processors, or any other processor capable of operating as described herein.
  • Main memory unit 122 may be one or more memory chips capable of storing data and allowing any storage location to be directly accessed by the microprocessor 121, such as Static random access memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Dynamic random access memory (DRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (BEDO DRAM), Enhanced DRAM (EDRAM), synchronous DRAM (SDRAM), JEDEC SRAM, PClOO SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM).
  • SRAM Static random access memory
  • BSRAM SynchBurst SRAM
  • DRAM Dynamic random access memory
  • FPM DRAM Fast Page Mode DRAM
  • EDRAM Enhanced
  • the main memory 122 may be based on any of the above described memory chips, or any other available memory chips capable of operating as described herein.
  • the processor 121 communicates with main memory 122 via a system bus 150 (described in more detail below).
  • FIG. IB depicts an embodiment of a computing device 100 in which the processor communicates directly with main memory 122 via a memory port 103.
  • the main memory 122 may be DRDRAM.
  • FIG. 1 C depicts an embodiment in which the main processor 121 communicates directly with cache memory 140 via a secondary bus, sometimes referred to as a backside bus.
  • the main processor 121 communicates with cache memory 140 using the system bus 150.
  • Cache memory 140 typically has a faster response time than main memory 122 and is typically provided by SRAM, BSRAM, or EDRAM.
  • the processor 121 communicates with various I/O devices via a local system bus 150.
  • FIG. 1C depicts an embodiment of a computer 100 in which the main processor 121 communicates directly with I/O device 130b via HyperTransport, Rapid I/O, or InfiniBand.
  • FIG. 1C also depicts an embodiment in which local busses and direct communication are mixed: the processor 121 communicates with I/O device 130a using a local interconnect bus while communicating with I/O device 130b directly.
  • the computing device 100 may support any suitable installation device
  • the computing device 100 may further comprise a storage device 128, such as one or more hard disk drives or redundant arrays of independent disks, for storing an operating system and other related software, and for storing application software programs such as any program related to the client agent 120.
  • a storage device 128, such as one or more hard disk drives or redundant arrays of independent disks, for storing an operating system and other related software, and for storing application software programs such as any program related to the client agent 120.
  • any of the installation devices 116 could also be used as the storage device 128.
  • the operating system and the software can be run from a bootable medium, for example, a bootable CD, such as KNOPPIX, a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net.
  • a bootable CD such as KNOPPIX
  • KNOPPIX a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net.
  • the computing device 100 may include a network interface
  • LAN Local Area Network
  • WAN Wide Area Network
  • Internet Internet
  • connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.11, Tl, T3, 56kb, X.25, SNA, DECNET), broadband connections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET), wireless connections, or some combination of any or all of the above.
  • standard telephone lines LAN or WAN links
  • broadband connections e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET
  • wireless connections or some combination of any or all of the above.
  • Connections can be established using a variety of communication protocols (e.g., TCP/IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.1 1, IEEE 802.11a, IEEE 802.1 1b, IEEE 802.1 Ig, CDMA, GSM, WiMax and direct asynchronous connections).
  • the computing device communicates with other computing devices via any type and/or form of gateway or tunneling protocol such as Secure Socket Layer (SSL) or Transport Layer Security (TLS).
  • SSL Secure Socket Layer
  • TLS Transport Layer Security
  • the network interface 118 may comprise a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 100 to any type of network capable of communication and performing the operations described herein.
  • I/O devices 13Oa-13On may be present in the computing device 100.
  • Input devices include keyboards, mice, trackpads, trackballs, microphones, and drawing tablets.
  • Output devices include video displays, speakers, inkjet printers, laser printers, and dye-sublimation printers.
  • the I/O devices 130 may be controlled by an I/O controller 123 as shown in FIG. IB.
  • the I/O controller may control one or more I/O devices such as a keyboard 126 and a pointing device 127, e.g., a mouse or optical pen.
  • an I/O device may also provide storage 128 and/or an installation medium 1 16 for the computing device 100.
  • the computing device 100 may provide USB connections to receive handheld USB storage devices such as the USB Flash Drive line of devices manufactured by Twintech Industry, Inc. of Los Alamitos, California.
  • the computing device 100 may comprise or be connected to multiple display devices 124a-124n, which each may be of the same or different type and/or form.
  • any of the I/O devices 13 Oa- 13 On and/or the I/O controller 123 may comprise any type and/or form of suitable hardware, software, or combination of hardware and software to support, enable or provide for the connection and use of multiple display devices 124a-124n by the computing device 100.
  • the computing device 100 may include any type and/or form of video adapter, video card, driver, and/or library to interface, communicate, connect or otherwise use the display devices 124a-124n.
  • a video adapter may comprise multiple connectors to interface to multiple display devices 124a-124n.
  • the computing device 100 may include multiple video adapters, with each video adapter connected to one or more of the display devices 124a-124n. In some embodiments, any portion of the operating system of the computing device 100 may be configured for using multiple displays 124a-124n. In other embodiments, one or more of the display devices 124a-124n may be provided by one or more other computing devices, such as computing devices 100a and 100b connected to the computing device 100, for example, via a network. These embodiments may include any type of software designed and constructed to use another computer's display device as a second display device 124a for the computing device 100. One ordinarily skilled in the art will recognize and appreciate the various ways and embodiments that a computing device 100 may be configured to have multiple display devices 124a-124n.
  • an I/O device 130 may be a bridge 170 between the system bus 150 and an external communication bus, such as a USB bus, an Apple Desktop Bus, an RS-232 serial connection, a SCSI bus, a Fire Wire bus, a Fire Wire 800 bus, an Ethernet bus, an AppleTalk bus, a Gigabit Ethernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, a Super HIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus, or a Serial Attached small computer system interface bus.
  • an external communication bus such as a USB bus, an Apple Desktop Bus, an RS-232 serial connection, a SCSI bus, a Fire Wire bus, a Fire Wire 800 bus, an Ethernet bus, an AppleTalk bus, a Gigabit Ethernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, a Super HIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus, or
  • a computing device 100 of the sort depicted in FIGs. IB and 1C typically operate under the control of operating systems, which control scheduling of tasks and access to system resources.
  • the computing device 100 can be running any operating system such as any of the versions of the Microsoft WINDOWS operating systems, the different releases of the Unix and Linux operating systems, any version of the MAC OS for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein.
  • Typical operating systems include: WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS CE, and WINDOWS XP, all of which are manufactured by Microsoft Corporation of Redmond, Washington; MAC OS, manufactured by Apple Computer of Cupertino, California; OS/2, manufactured by International Business Machines of Armonk, New York; and Linux, a freely-available operating system distributed by Caldera Corp. of Salt Lake City, Utah, or any type and/or form of a Unix operating system, among others.
  • the client 102 and server 106 may be deployed as and/or executed on any type and form of computing device 100, such as a computer, network device or appliance capable of communicating on any type and form of network and performing the operations described herein.
  • the computing device 100 can be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile telephone or other portable telecommunication device, media playing device, a gaming system, or any other type and/or form of computing, telecommunications or media device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.
  • the computing device 100 may comprise a device of the IPOD family of devices manufactured by Apple Computer of Cupertino, California, a PLAYSTATION 2 , PLAYSTATION 3, or PERSONAL PLAYSTATION PORTABLE (PSP) device manufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS, NINTENDO GAMEBOY, NINTENDO GAMEBOY ADVANCED or NINTENDO REVOLUTION device manufactured by Nintendo Co., Ltd., of Kyoto, Japan, or an XBOX or XBOX 360TM device manufactured by the Microsoft Coiporation of Redmond, Washington.
  • PSP PERSONAL PLAYSTATION PORTABLE
  • the computing device 100 may have different processors, operating systems, and input devices consistent with the device.
  • the computing device is a TREO 180, 270, 600, 650, 680, 70Op, 70Ow, 700wx, or 750 smart phone manufactured by Palm, Inc.
  • the TREO smart phone is operated under the control of the PalmOS operating system and includes a stylus input device as well as a five-way navigator device.
  • the computing device 100 is a mobile device, such as a JAVA-enabled cellular telephone or personal digital assistant (PDA), such as the i55sr, i58sr, i85s, i88s, i90c, i95cl, or the iml 100, all of which are manufactured by Motorola Corp. of Schaumburg, Illinois, the 6035 or the 7135, manufactured by Kyocera of Kyoto, Japan, or the 1300 or 1330, manufactured by Samsung Electronics Co., Ltd., of Seoul, Korea.
  • PDA personal digital assistant
  • the computing device 100 is a Blackberry handheld or smart phone, such as the devices manufactured by Research In Motion Limited, including the Blackberry 7100 series, the 7130 series, 7200 series, the 7700 series, the 8300 series, the 8700 series, the 8800 series, the Blackberry 7520, or the Blackberry Pearl.
  • the computing device 100 is a smart phone, Pocket PC, Pocket PC Phone, or other handheld mobile device supporting Microsoft Windows Mobile Software.
  • the computing device 100 can be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile telephone, any other computer, or other form of computing or telecommunications device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.
  • the computing device 100 is a portable media player.
  • the computing device 100 is a portable media player, such as the Zen Vision W, the Zen Vision series, or the Zen Portable Media Center devices, manufactured by Creative Technologies Ltd.
  • the computing device 100 is an MP3 player, such as the Zen line of MP3 players or the Digital, manufactured by Creative Technologies Ltd.
  • the computing device 100 is a digital audio player.
  • the computing device 100 is a digital audio player such as the Apple iPod, iPod mini, iPod Nano, and iPod Shuffle lines of devices, manufactured by Apple Computer of Cupertino, California.
  • the digital audio player may also function as a portable media player and as a mass storage device.
  • the computing device is a digital audio player such as the DigitalAudioPlayer Select MP3 players, manufactured by Samsung Electronics America, of Ridgefield Park, NJ, or the Motorola m500 or m25 Digital Audio Players, manufactured by Motorola Inc. of Schaumburg, IL.
  • the computing device 100 is a portable media player or digital audio player supporting file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.
  • file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.
  • the computing device 100 comprises a combination of devices, such as a mobile phone combined with a digital audio player or portable media player.
  • the client is a Motorola RAZR or Motorola ROKR line of combination digital audio players and mobile smartphones.
  • the computer 200 is an iPhone smartphone, manufactured by Apple Computer of Cupertino, California.
  • the computing device 100 connects to a second computing device 100, on a network using any one of a number of well-known protocols from the GSM or CDMA families, such as W-CDMA. These protocols support commercial wireless communication services and W-CDMA, in particular, is the underlying protocol supporting i-Mode and mMode services, offered by NTT DoCoMo.
  • the computing device 100 communicates with a second computing device 100 when providing a user with a service made available by the Global System for Mobile Communications (GSM) standard.
  • the computing device 100 provides a user with a short message service (SMS).
  • SMS short message service
  • the computing device 100 may transmit messages to the second computing device 100 via an intermediate computing device 100' (not shown), such as a short message service center.
  • the computing device 100 may transmit messages to the second computing device 100 according to a telecommunications protocol standard for transmitting digital data on a broadband network, such as the Signaling System 7 (SS7) protocol.
  • SS7 Signaling System 7
  • the computing device 100 transmits enhanced short messages to the second computing device.
  • the computing device 100 transmits text messages to the second computing device 100.
  • the text messages comply with the GSM standard for short messages.
  • the computing devices 100 transmit text messages that do not comply with a GSM standard.
  • the computing device 100 transmits text messages over a control channel between the computing device and a cell phone tower, which forwards the text messages to the recipient computing device 100.
  • methods and systems for establishing a multilingual messaging session using multiple messaging protocols allow a first user to send, via a first messaging protocol, a request for a translation of a message in a source language into a target language associated with a second user.
  • the first user may request the transmission of the translated message to the second user via a second messaging protocol, associated with the second user.
  • a server receiving the request translates the message into the target language and transmits the translated message to the second user according to the second messaging protocol.
  • the first user and second user send and receive messages in their respective languages, according to their respective messaging protocols, although the languages and protocols differ.
  • an English-speaking user transmits an SMS message written in English to the server and an Italian-speaking user receives an instant message written in Italian.
  • source and target languages include, but are not limited to, Arabic, Chinese, Danish, Dutch, English, Farsi, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Pashto, Persian, Polish, Portuguese, Russian, Spanish, Swahili, Swedish, Tagalog, Vietnamese, Vietnamese, and Welsh.
  • FIG. 2 a block diagram depicts one embodiment of a system for establishing a messaging session between two users using different languages and messaging protocols.
  • the system includes a first client device 102, a server 106, a session management component 220, a session data table 230, a translation engine 240, a messaging gateway 250 and a second client device 102'.
  • the server 106 receives, from a first user of the first client device 102, a request 210 for establishment of a messaging session with a second user of a second client device 102', the request including a message 212 in a source language for transmission to the second client device 102', an identification 214 of a target language associated with the second user, and an identification of a messaging protocol associated with the second user.
  • the session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user.
  • the session management component 220 on the server creates a messaging session between the first user and the second user.
  • the translation engine 240 in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification of the target language associated with the second user, and generates a translation of the message 260 in the target language.
  • the messaging gateway 250 receives the translation of the message 260 and transmits, within the messaging session, the message 260 to the second user according to the messaging protocol associated with the second user.
  • the server 106 receives, from a first user of the first client device 102, a request 210 for establishment of a messaging session with a second user, the request including a message 212 in a source language for transmission to the second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user.
  • the server 106 is referred to as a translation server.
  • the server 106 receives the request via a messaging gateway 250.
  • the server 106 receives the request from the first client device 102.
  • the server 106 receives a request 210 to translate the message and transmit the message to the second user according to a messaging protocol associated with the second user.
  • the messaging protocol associated with the second user is a different messaging protocol than a messaging protocol associated with the first user.
  • messaging protocols include, but are not limited to, protocols for formatting and exchanging electronic mail, such as the Simple Mail Transfer Protocol (SMTP) as defined in the Internet Engineering Task Force (IETF) Request for Comments (RFC) Document 2821, Internet Message Formatting as defined in IETF RFC 2822, the Post Office Protocol (version 3) as defined in IETF RFC 1939, the Internet Message Access Protocol (IMAP), as defined in IETF RFC 2195, or protocols for sending email to client devices over wireless networks, such as the 2.5G (GPRS) and 3GSM networks.
  • SMTP Simple Mail Transfer Protocol
  • IETF Internet Engineering Task Force
  • RFC Request for Comments
  • IMAP Internet Message Access Protocol
  • messaging protocols include, but are not limited to, protocols such as the Internet Relay Chat (IRC) protocol, the Microsoft Network (MSNP) protocol used by clients such as the Microsoft WINDOWS LIVE MESSENGER, the Oscar protocol used by clients such as America Online INSTANT MESSENGER and the ICQ instant messenger, the Protocol for Synchronous Conferencing (PSYC), the Extensible Messaging and Presence Protocol (XMPP) used by JABBER clients such as the Google GTALK client, the IETF SIP and SIMPLE protocols, the YAHOO! MESSENGER (YMSG) protocol, the SKYPE protocol, or protocols for sending instant messages to mobile client devices over wireless networks.
  • protocols such as the Internet Relay Chat (IRC) protocol, the Microsoft Network (MSNP) protocol used by clients such as the Microsoft WINDOWS LIVE MESSENGER, the Oscar protocol used by clients such as America Online INSTANT MESSENGER and the ICQ instant messenger, the Protocol for Synchronous Conferencing (PSYC), the Ex
  • messaging protocols include multimedia messaging service (SMS) protocols, providing store-and-forward messaging services allowing mobile subscribers to exchange multimedia messages including the transmission of text, picture, audio and video attachments.
  • SMS multimedia messaging service
  • messaging protocols include short messaging service protocols allowing users to send and receive text messages on a mobile client device, using a keyboard or numbered keypad on the client device to input characters.
  • the messaging protocols comply with GSM standards.
  • each SMS message can be up to 160 characters long and sent to and from users of different operator networks.
  • the server 106 retrieves information associated with the first user. In another embodiment, the server 106 retrieves an identification of a preferred language associated with the first user. In still another embodiment, the server 106 retrieves authentication information associated with the first user.
  • the request 210 includes a message in a source language for transmission to a second client device 102' operated by a second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user.
  • the source language and the target language are different languages.
  • the identification of the target language is an abbreviation of the name of the target language.
  • the request 210 includes a command to establish the messaging session.
  • the request 210 includes an identification of the source language in which the message is written.
  • the first user transmits a request comprising an alphanumeric string to the server.
  • a request may have the following form: "ts es 5551234567.”
  • the command to establish a translation session is "ts”
  • the identification of the source language is "e” for English
  • the identification of the target language is "s” for Spanish
  • the identification of the second user is "5551234567.”
  • a request may be sent via a first messaging protocol and identify a user associated with a second messaging protocol.
  • the request may be sent via an SMS text message and have the following form: "ts es IMUser24.”
  • the server 106 includes a parsing component, which parses the request into the request for establishment of a session, the message, the identification of the target language, the identification of the source language, and the identification of the second user.
  • the parsing component transmits the request for establishment of the session and the identification of the second user to the session management component.
  • the parsing component transmits the message, the identification of the target language, and the identification of the source language to the translation engine 240.
  • the parsing component transmits the request for establishment of the session, the identification of the second user, the message, the identification of the target language, and the identification of the source language to the session management component.
  • the parsing component transmits the request for establishment of the session, the identification of the second user, the message, the identification of the target language, and the identification of the source language to the session data table.
  • the parsing component parses a plurality of transmissions received from the user of the client device 102, the plurality of messages comprising the request.
  • the parsing component parses a plurality of short message service messages.
  • the parsing component parses a plurality of electronic mail messages.
  • the parsing component parses a plurality of instant messages.
  • the parsing component parses a single transmission comprising the request.
  • the request 210 includes an identifier for a messaging service account associated with the second user.
  • the request 210 may include, without limitation, a mobile phone number associated with the second user, an electronic mail address associated with the second user, an SMS address, which may combine a mobile phone number and an email address associated with the second user, or an instant message user name associated with the second user.
  • the request 210 includes a command to terminate a messaging session.
  • the identifier of the second user identifies the first user. In one of these embodiments, the first user requests that the server 106 translate a message and transmit the translation to the first user.
  • the request 210 includes a command to store messages exchanged during a messaging session.
  • the first user sends a command to save session information for future use.
  • the first user may transmit a command having the following form: "is save [alias]".
  • the messaging session (identified by "ts") is stored and associated with the alias provided by the first user.
  • the command may have the following form: "ts save [alias].”
  • contact information for each session participant and language preferences associated with each session participant are also stored.
  • the first user transmits the request to the server 106 via an SMS message.
  • the first user transmits the request in an SMS message addressed to a short code or control number associated with the server 106.
  • the first user transmits the request to the server 106 via an electronic mail message addressed to an email address associated with the server.
  • the first user transmits the request to the server 106 via an instant message addressed to an instant message user name associated with the server.
  • an instant messaging robot application may execute on the server 106 and receive instant messages addressed to the server 106.
  • the session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user.
  • the identification of the second user includes a messaging account identifier, such as an SMS number, an instant message user name, or an email address.
  • the session data table stores information associated with the first user.
  • the session data table 230 stores an identification of a language associated with the first user.
  • the session data table 230 stores an identification of a messaging protocol associated with the first user.
  • the session data table 230 stores information retrieved from a user profile associated with the user.
  • the server 106 retrieves information from the session data table 230 to translate messages and transmit translations from one user to another.
  • the session data table 230 stores a transcript of messages exchanged within a messaging session. In other embodiments, the session data table 230 stores an identification of a default language associated with a user or session participant. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session and the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message received in the subsequent session for transmission to the user.
  • the session data table 230 stores data in an ODBC- compliant database.
  • the session data table 230 may be provided as an ORACLE database, manufactured by Oracle Corporation of Redwood Shores, Calif.
  • the session data table 230 can be a Microsoft ACCESS database or a Microsoft SQL server database, manufactured by Microsoft Corporation of Redmond, Wash.
  • the session data table 230 stores data in a file system on the server.
  • the session data table 230 may be stored in volatile memory.
  • the session data table 230 may use a hierarchical memory system with some data elements stored in volatile memory and some data elements stored in persistent storage.
  • the session management component 220 on the server creates a messaging session between the first user and the second user.
  • the session management component 220 resides on the server 106.
  • the session management component 220 resides on a second server 106'.
  • the session management component 220 establishes a messaging session between the first user and the second user upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the first user and the second user upon authenticating the first user and the second user. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component provides a different level of service to users with accounts than a level of service received by users without accounts.
  • the session management component 220 establishes a first messaging session between itself and the first user and a second messaging session between itself and the second user.
  • the session management component 220 forwards messages received via a first messaging protocol from the first user in the first messaging session to the second user in the second messaging session via a second messaging protocol.
  • the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
  • SIP Session Initiation Protocol
  • SIMPLE Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions
  • the session management component 220 retrieves information associated with a previous session in initiating a subsequent session. In one of these embodiments, the session management component 220 retrieves a default language associated with a session participant. In another of these embodiments, the session management component 220 retrieves a default messaging protocol associated with a session participant. In still another of these embodiments, the session management component 220 transmits a transcript from the previous session to a session participant in the subsequent session.
  • the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request via a messaging gateway in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
  • the session management component 220 forwards the request to a translation engine 240. In other embodiments, the session management component 220 forwards the message in the request 210 to the translation engine 240. In still other embodiments, the session management component 220 forwards the message in the source language, an identification of the source language, and the identification 214 of the target language.
  • the translation engine 240 in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification 214 of the target language associated with the session participant, and generates a translation of the message 260 in the target language.
  • the translation engine 240 is in communication with at least one translation dictionary 245.
  • the translation engine 240 comprises at least one translation dictionary 245.
  • the translation engine 240 accesses a translation dictionary 245 to generate a translation of the message 260 from the source language to the target language.
  • the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries 245. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for generating translations from the identified source language and the identified target language.
  • the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country-specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
  • the translation engine 240 selects a second translation dictionary 245 in the plurality of translation dictionaries for translation of a different pairing of source and target languages.
  • the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message in a source language from the user into a target language associated with the second user and select a second translation dictionary 245 in the plurality of translation dictionaries for translating a response in a target language from the second user to the user that composed the initial message in the source language.
  • the translation engine 240 includes a translation memory that stores an enumeration of phrases, terms, sentences, or other segments of text in the source language with a corresponding translation into the target language for each of the enumerated segments of text. In one of these embodiments, the translation engine 240 accesses the translation memory to retrieve a translation in a target language for a message in a source language.
  • the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • the server 106 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
  • the translation engine 240 transmits the generated translation 260 to the session management component 220.
  • the session management component 220 selects a messaging gateway 250 responsive to receiving an identification 216 of a messaging protocol associated with the second user.
  • the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user.
  • the session management component 220 transmits, to the messaging gateway, an identification 216 of a messaging protocol to use in transmitting the translated message 260 to the second user.
  • the messaging gateway 250 receives the translation of the message 260 and transmits, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
  • the system includes a plurality of messaging gateways 250 through which users may send and receive messages to other users.
  • a first messaging gateway 250 in the plurality of messaging gateways accepts user input via a messaging protocol different from a messaging protocol accepted by a second messaging gateway 250' 250' in the plurality of messaging gateways.
  • each messaging gateway 250 in the plurality of messaging gateways accepts user input via a different messaging protocol. For example, one messaging gateway 250 may receive user input via electronic mail messages while another messaging gateway 250' may receive user input via a short message service.
  • a messaging gateway 250 resides on a server.
  • a web server includes a messaging gateway 250.
  • a messaging gateway 250 is provided by software executing on a client 102 or a server 106.
  • a messaging gateway 250 is a router.
  • the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
  • the messaging gateway 250 includes a routing table.
  • the messaging gateway 250 accesses the routing table.
  • the session management component 220 accesses a routing table to identify a messaging gateway 250.
  • a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications.
  • the session management component 220 receives a request including an identification of a second user.
  • the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user.
  • a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user.
  • the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user.
  • a user may transmit the following request: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim”.
  • the session management component 220 accesses the routing table to identify a messaging gateway providing functionality for transmitting AOL INSTANT MESSENGER messages to "usersmith.”
  • the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol.
  • the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient.
  • the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request.
  • the server 106 receives a request 210 for establishment of a messaging session between the user and the server, the request 210 including a message in a source language for transmission to the user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the user.
  • the server establishes a messaging session with the user.
  • the server generates a translation 260 of the message in the target language associated with the user.
  • the server 106 transmits, within the messaging session, the translated message 260 to the user.
  • the server 106 transmits the translated message 260 to a client device 102' operated by the user, according to a messaging protocol associated with the user.
  • a flow diagram depicts one embodiment of the steps taken in a method for establishing a multilingual messaging session using multiple messaging protocols.
  • the method includes the step of receiving, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user (step 302).
  • a session data table stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user (step 304).
  • a messaging session is created between the first user and the second user (step 306).
  • a translation is generated of the message in a target language associated with the second user (step 308).
  • the message is transmitted to the second user according to the messaging protocol associated with the second user (step 310).
  • a request 210 is received from a first user requesting establishment of a messaging session with a second user, the request 210 including a message in a source language for transmission to the second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user (step 302).
  • the first user transmits the request to a translation server 106.
  • the translation server 106 receives the request via a messaging gateway 250, which forwards the request from the user to the translation server 106.
  • the request 210 includes an identification of the source language in which the first user composed the message.
  • a session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification 216 of the messaging protocol associated with the second user (step 304).
  • the session data table 230 stores information associated with the first user.
  • the session data table 230 stores an identification of a language associated with the first user.
  • the session data table 230 stores an identification of a messaging protocol associated with the first user.
  • the session data table stores a session identifier associated with the requested session.
  • a messaging session is created between the first user and the second user
  • a translation server 106 creates the messaging session.
  • a session management component 220 on the translation server 106 creates the messaging session.
  • the translation server 106 sends a request to a first messaging gateway 250 to establish a connection between the server 106 and the first user and sends a request to a second messaging gateway 250' to establish a connection between the server 106 and the second user.
  • a translation 260 of the message is generated in a target language associated with the second user (step 308).
  • the translation server 106 transmits the message to a translation engine 240, with an identification of the source language and an identification of the target language.
  • the translation server 106 retrieves the identification of the target language from the session data table 230.
  • the translation engine 240 retrieves the identification of the target language from the session data table 230.
  • a translation engine 240 selects a translation dictionary 245 for use in translating the message from a source language in which the first user composed the message to the target language associated with the second user.
  • the translation engine 240 selects a translation dictionary 245 optimized for translating between the source language and the target language. For example, the translation engine 240 may select a first translation dictionary 245 when translating a message from English to Spanish and select a second translation dictionary 245' (not shown) when translating a message from Greek to Japanese.
  • the translation engine 240 transmits the translated message to the translation server 106. In another embodiment, the translation engine 240 transmits the translated message 260 to the session management component 220. In still another embodiment, the translation engine 240 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user.
  • the message is transmitted to the second user according to the messaging protocol associated with the second user (step 310).
  • the translation server 106 initiates a first session between itself and the first user via a first messaging gateway 250 using a first messaging protocol, and initiates a second session between itself and the second user via a second messaging gateway 250' using a second messaging protocol.
  • the translation server 106 receives messages from the first user, translates the messages, and then forwards them to the second user.
  • a session management component 220 on the translation server 106 transmits a request to a messaging gateway to transmit the translated message 260 over a connection to the second user.
  • the second user requests transmission of a second message, in the target language associated with the second user, to the first user.
  • a determination is made that the session data table 230 includes an identification of the first user.
  • a translation of the second message is generated in a language associated with the first user.
  • the second message is transmitted to the first user according to a messaging protocol associated with the first user.
  • a block diagram depicts one embodiment of a system for real-time translation of a message in a source language to a plurality of target languages.
  • the system includes a client device 102, a server 106, a session management component 220, a session data table 230, a translation engine 240, and a messaging gateway 250.
  • the server 106 receives, from a user of the client device 102, a request 210 for message translation, the request 210 including a message 212 in a source language for translation and an identification 214 of a target language.
  • the session data table 230 stores an identification of the user and the identification 214 of the target language.
  • the session management component 220 on the server 106 creates a messaging session between the server 106 and the client device 102.
  • the translation engine 240 in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification 214 of the target language, and generates a translation of the message 260 in the target language.
  • the messaging gateway 250 receives the translation 260 of the message and transmits, within the messaging session, the message 260 to the client device 102' according to a messaging protocol associated with the client device 102'.
  • the system allows a first user to send, via a translation server 106, a message in a source language to participants in a group session, the participants using different target languages, the translation server 106 generating messages translated into the appropriate target languages for each participant.
  • the first user requests the transmission of a message to a group of users within a shared group messaging session.
  • a server 106 receiving the request identifies an appropriate target language for each participant, translates the message into the appropriate target language for each participant, and transmits the translated message to each participant.
  • the first user and each of the participants send and receive messages in their respective languages within a group messaging session, although their languages differ.
  • an English-speaking user transmits an SMS message written in English to the server 106 and an Italian-speaking user receives an Italian translation 260 of the SMS message while a French-speaking user in the same messaging session receives a French translation 260' of the SMS message.
  • the server 106 receives, from a user of the client device 102, a request 210 for message translation, the request 210 including a message 212 in a source language for translation and an identification 214 of a target language.
  • the server 106 is referred to as a translation server.
  • the server 106 receives the request via a messaging gateway 250.
  • the server 106 receives the request from the client device 102.
  • the client device 102 requests translations of messages sent to the server 106 via an SMS message and the server 106 responds with an SMS message including the translated message 260.
  • a translation session is established between the client device 102 and the server 106.
  • no session is established.
  • the server 106 and the client device 102 communicate according to a messaging protocol associated with the client device 102. Messaging protocols include, but are not limited to, the protocols for formatting and exchanging electronic mail, instant messages and text or multimedia messages described above.
  • the server 106 retrieves information associated with the first user.
  • the server 106 retrieves an identification of a preferred language associated with the first user.
  • the server 106 retrieves authentication information associated with the first user.
  • the identification of the target language is an abbreviation of the name of the target language.
  • the request 210 includes an identification of the source language in which the message is written.
  • the first user transmits a request comprising an alphanumeric string to the server.
  • a request 210 may have the following form: "t es hello.”
  • the command to translate a message is "t”
  • the identification of the source language is "e” for English
  • the identification of the target language is “s” for Spanish
  • the message in the source language is "hello.”
  • the client device 102 establishes a translation session with the server 106 by sending a request 210 having the following form: “ts es hello.”
  • the client device sends a command to establish a translation session, "ts”, with an identification of the source language ("e” for English), an identification of the target language ("s” for Spanish), and the message in the source language (“hello”).
  • a user in a session with a server 106 sends a command to save session information for future use.
  • the user may later resume the session.
  • the user may later retrieve information exchanged in the session.
  • the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias]” to resume a saved session.
  • contact information for each session participant and language preferences associated with each session participant are also stored.
  • the server 106 includes a parsing component, which parses the request into the request for message translation, the message, the identification of the source language, and the identification 214 of the target language.
  • the parsing component transmits the request for message translation to the session management component.
  • the parsing component transmits the message, the identification 214 of the target language, and the identification of the source language to the translation engine 240.
  • the parsing component transmits the request for message translation, the message, the identification of the target language, and the identification of the source language to the session management component 220.
  • the parsing component transmits the request for establishment of the session, the message, the identification of the target language, and the identification of the source language to the session data table 230.
  • the user transmits the request to the server 106 via an
  • the user transmits the request in an SMS message addressed to a short code or control number associated with the server.
  • the first user transmits the request to the server 106 via an instant message addressed to an instant message user name associated with the server.
  • an instant messaging robot application may execute on the server and receive instant messages addressed to the server 106.
  • the session data table 230 stores information associated with the user. In one of these embodiments, the session data table 230 stores an identification of a language associated with the first user. In another of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In still another of these embodiments, the session data table 230 stores information retrieved from a user profile associated with the user. In other embodiments, the server 106 retrieves information from the session data table to translate messages and transmit translations from one user to another. In still other embodiments, the session data table 230 stores data in data structures as described above.
  • the session data table 230 stores a transcript of messages exchanged within a translation session between the client device 102 and the server 106. In other embodiments, the session data table 230 stores an identification of a default language associated with the user. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session, the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message received in the subsequent session for transmission to the user.
  • the session management component 220 establishes a messaging session between the user and the server 106. In another embodiment, the session management component 220 establishes a messaging session between the user and the server 106 upon authenticating the user. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts.
  • the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
  • SIP Session Initiation Protocol
  • SIMPLE SIP for Instant Messaging and Presence Leveraging Extensions
  • the session management component 220 receives the request from the user. In one of these embodiments, the session management component 220 receives the request via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request from the server 106.
  • the session management component 220 forwards the request to a translation engine 240. In other embodiments, the session management component 220 forwards the message in the request to the translation engine 240. In still other embodiments, the session management component 220 forwards the message in the source language, an identification of the source language, and the identification 214 of the target language.
  • the translation engine 240 in communication with the session management component 220, receives the message, an identification of the source language, and the identification 214 of the target language associated with the session participant, and generates a translation 260 of the message in the target language.
  • the translation engine 240 is in communication with at least one translation dictionary 245.
  • the translation engine 240 comprises at least one translation dictionary 245.
  • the translation engine 240 accesses a translation dictionary 245 to generate a translation 260 of the message from the source language to the target language.
  • the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary optimized for generating translations from the identified source language and the identified target language.
  • the translation engine 240 selects a second translation dictionary 245' (not shown) in the plurality of translation dictionaries for translation of a different pairing of source and target languages.
  • the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message in a source language from the user into a target language associated with the second user and select a second translation dictionary 245' (not shown) in the plurality of translation dictionaries for translating a response in a target language from the second user to the user that composed the initial message in the source language.
  • the translation engine 240 includes a translation memory that stores an enumeration of phrases, terms, sentences, or other segments of text in the source language with a corresponding translation into the target language for each of the enumerated segments of text. In one of these embodiments, the translation engine 240 accesses the translation memory to retrieve a translation in a target language for a message in a source language.
  • the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • the server provides an interface to collaboration software, such as server-side Wiki software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
  • the translation engine 240 transmits the generated translation 260 to the session management component 220.
  • the session management component 220 selects a messaging gateway 250 responsive to receiving an identification of a messaging protocol associated with the second user.
  • the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user.
  • the session management component 220 transmits, to the messaging gateway 250, an identification of a messaging protocol to use in transmitting the translated message 260 to the second user.
  • the messaging gateway 250 receives the translation 260 of the message and transmits, within the messaging session, the message to the user according to a messaging protocol associated with the user.
  • a messaging gateway 250 resides on a server 106.
  • a web server includes a messaging gateway 250.
  • a messaging gateway 250 is provided by software executing on a client 102 or a server 106.
  • a messaging gateway 250 is a router.
  • the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
  • the server 106 receives, from a user, a request for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants.
  • the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants.
  • the session management component 220 on the server creates a short message service session between each session participant in the plurality of session participants and the user.
  • the translation engine 240 generates, for a first session participant in the plurality of session participants, a translation 260 of the message in a first target language associated with the first session participant, and generates, for a second session participant in the plurality of session participants, a translation 260' of the message in a second target language associated with the second session participant.
  • the messaging gateway transmits, within the short message service session, the translation 260 of the message in the first target language to the first session participant and transmits the translation 260' of the message in the second target language to the second session participant in the plurality of session participants.
  • the server 106 receives, from a user, a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification 214 of a target language associated with each session participant in the plurality of session participants.
  • the server 106 is referred to as a translation server.
  • the server 106 receives the request from the user via a messaging gateway 250.
  • the server 106 receives the request from a client device 102 operated by the user.
  • the server 106 receives a request to transmit a translated version of the message to each of a plurality of session participants, the message translated according to a target language associated with each user in the plurality of session participants.
  • the target language associated with a first user in the plurality of session participants is different from a target language associated with a second user in the plurality of session participants.
  • messaging protocols used to transmit the translated messages amongst the plurality of session participants include the protocols for email, instant message, SMS, and MMS described above.
  • the server 106 retrieves information associated with the user. In another embodiment, the server 106 retrieves an identification of a preferred language associated with the user. In still another embodiment, the server retrieves authentication information associated with the user.
  • the request 210 includes an identifier for a messaging service account associated with each of the session participants in the plurality of session participants.
  • the request 210 may include, without limitation, mobile phone numbers associated with the plurality of session participants, electronic mail addresses associated with the plurality of session participants, SMS addresses, which may combine mobile phone numbers and email addresses associated with the plurality of session participants, or instant message user names associated with the plurality of session participants.
  • the server 106 receives a request for establishment of an SMS messaging session amongst a plurality of session participants, the request including SMS addresses for each of the plurality of session participants.
  • the server 106 receives a request for establishment of a multilingual instant messaging session amongst a plurality of session participants, the request including instant messaging user names for each of the plurality of session participants.
  • the request includes a command to terminate a messaging session.
  • the request includes an identification of the source language in which the message is written.
  • the identifier of a session participant identifies the first user.
  • the user requests that the server translate a message and transmit the translation back to the user.
  • the request 210 includes a command to store messages exchanged during a messaging session.
  • the first user sends a command to save session information for future use.
  • the first user may transmit a command having the following form: "gs save [alias]".
  • a group session (identified by "gs") is stored and associated with the alias provided by the first user.
  • the command may have the following form: "ts save [alias].”
  • contact information for each session participant and language preferences associated with each session participant are also stored.
  • a user in a session with a server sends a command to save session information for future use.
  • the user may later resume the session.
  • the user may later retrieve information exchanged in the session.
  • the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias] to resume a saved session.
  • the user transmits the request 210 to the server 106 via an SMS message.
  • the user transmits the request 210 in an SMS message addressed to a short code or control number associated with the server 106.
  • the user transmits the request 210 to the server 106 via an electronic mail message addressed to an email address associated with the server 106.
  • the user transmits the request 210 to the server 106 via an instant message addressed to an instant message user name associated with the server 106.
  • an instant messaging robot application may execute on the server and receive instant messages addressed to the server 106.
  • the first user transmits a request 210 comprising an alphanumeric string to the server 106.
  • a request 210 may have the following form: "ts es 5551234567.”
  • the command to establish a translation session is "ts”
  • the identification of the source language is "e” for English
  • the identification of the target language is “s” for Spanish
  • the identification of a session participant is "5551234567.”
  • a request 210 may include an identification of a second source language, an identification of a second target language, and an identification of a second session participant.
  • the request 210 may have the following form: "ts ji 5553217654; es 5551234567.”
  • the request 210 may have the following form: "gs
  • 5559876543 s 5551239876 p 5554440000.
  • "gs” is the command for establishing a group messaging session
  • "5559876543 s” identifies a first session participant and a target language (Spanish) associated with the first session participant
  • "5551239876 p” identifies a second session participant and a target language (Portuguese) associated with the second session participant
  • "5554440000” identifies a third session participant using a default language of the user initiating the messaging session.
  • the server 106 includes a parsing component, which parses the request 210 into the message 212, the identification 214 of the target language, the identification of the source language, and the identifications of the plurality of session participants.
  • the parsing component transmits the request 210 for establishment of the session and the identifications of the session participants to the session management component 220.
  • the parsing component transmits the message 212, the identification 214 of the target language, and the identification of the source language to the translation engine 240.
  • the parsing component transmits the request 210 for establishment of the session, the identifications of the session participants, the message 212, the identification 214 of the target language, and the identification of the source language to the session management component 220. In yet another of these embodiments, the parsing component transmits the request 210 for establishment of the session, the identifications of the session participants, the message 212, the identification 214 of the target language, and the identification of the source language to the session data table 230.
  • the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants. In some embodiments, the session data table 230 stores data as described above.
  • the session data table 230 stores a transcript of messages exchanged within a messaging session. In other embodiments, the session data table 230 stores an identification of a default language associated with a user or session participant. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session, the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message 212 received in the subsequent session for transmission to the user.
  • the session management component 220 on the server 106 creates a short message service session between each session participant in the plurality of session participants and the user.
  • the session management component 220 resides on the server 106.
  • the session management component 220 resides on a second server 106' (not shown).
  • the session management component 220 establishes a messaging session between the user and each session participant in the plurality of session participants upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the user and each of the session participants upon authenticating the user and each of the session participants. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts.
  • the session management component 220 establishes a first messaging session between itself and the user and a plurality of messaging sessions between itself and each session participant in the plurality of session participants. In another embodiment, the session management component 220 forwards messages received from the user in the first messaging session to all of the session participants in the plurality of messaging sessions.
  • the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
  • the session management component 220 initiates a session including as participants in the session the user requesting the session and each of the plurality of session participants identified in the request 210.
  • the session management component 220 removes one of the plurality of session participants from the session upon receiving a request 210 from the one of the plurality of session participants to disconnect from the session.
  • the session management component 220 modifies a target language associated with one of the plurality of session participants responsive to receiving a request 210 from one of the plurality of session participants to translate messages for the one of the plurality of session participants into a different target language than the target language identified by the user requesting establishment of the request 210.
  • the session management component 220 adds a session participant to the plurality of session participants responsive to receiving a request 210 to add an additional user to the group messaging session. In still other embodiments, the session management component 220 broadcasts messages to all members of the group messaging session, including the user and the plurality of session participants.
  • the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request 210 via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
  • the session management component 220 forwards the message 212 in the received request 210 to the translation engine 240. In other embodiments, the session management component 220 forwards the message 212 in the source language, an identification of the source language, and the identification 214 of the target language.
  • the translation engine 240 generates, for a first session participant in the plurality of session participants, a translation of the message 212 in a first target language associated with the first session participant, and generates, for a second session participant in the plurality of session participants, a translation of the message 260 in a second target language associated with the second session participant.
  • the translation engine 240 is in communication with at least one translation dictionary 245.
  • the translation engine 240 comprises at least one translation dictionary 245.
  • the translation engine 240 accesses a translation dictionary 245 to generate a translation of the message 212 from the source language to the target language.
  • the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for generating translations from the identified source language and the identified target language.
  • the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country-specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
  • the translation engine 240 selects a second translation dictionary 245 in the plurality of translation dictionaries for translation of a different pairing of source and target languages.
  • the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating the message 212 in the source language into a target language associated with a first session participant in the plurality of session participants and select a second translation dictionary 245' in the plurality of translation dictionaries for translating the message 212 in the source language into a target language associated with a second session participant in the plurality of session participants.
  • the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message 212 in a source language from the user into a target language associated with a session participant in the plurality of session participants and select a second translation dictionary 245' in the plurality of translation dictionaries for translating a response in a target language from the session participant to the user that composed the initial message 212 in the source language.
  • the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • the server 106 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240.
  • user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
  • the translation engine 240 transmits the generated translation to the session management component 220.
  • the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to a session participant in the plurality of session participants.
  • the messaging gateway 250 transmits, within the short message service session, the translation of the message 212 in the first target language to the first session participant and transmits the translation of the message 260 in the second target language Io the second session participant in the plurality of session participants.
  • a messaging gateway 250 resides on a server 106.
  • a web server includes a messaging gateway 250.
  • a messaging gateway 250 is provided by software executing on a client 102 or a server 106.
  • a messaging gateway 250 is a router.
  • the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
  • the messaging gateway 250 includes a routing table.
  • the messaging gateway 250 accesses the routing table.
  • the session management component 220 accesses a routing table to identify a messaging gateway 250.
  • a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications.
  • the session management component 220 receives a request 210 including an identification of a second user.
  • the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user.
  • a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user.
  • the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user.
  • a user may transmit the following request 210: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim”.
  • the session management component 220 accesses the routing table to identify a messaging gateway 250 providing functionality for transmitting AOL INSTANT MESSENGER messages to "'usersmith.”
  • the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol.
  • the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient.
  • the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request 210.
  • the server 106 receives a second message 212' (not shown) from a first session participant in the plurality of session participants and determines that the session data table 230 includes an identification of the first session participant.
  • the translation engine 240 generates, for each session participant in the plurality of session participants, a translation of the second message 212' in the target language associated with each session participant.
  • the messaging gateway 250 transmits the translation of the second message 212' to the user and to each session participant in the plurality of session participants.
  • the method includes the step of receiving, from a user, a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants (step 502).
  • a session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants(step 504).
  • a short message service session is created between each session participant in the plurality of session participants and the user (step 506).
  • a translation of the message 260 is generated for a first session participant in the plurality of session participants in a first target language associated with the first session participant (step 508). Within the short message service session, the translation of the message 212 in the first target language is transmitted to the first session participant (step 510). A translation of the message 260 is generated, for a second session participant in the plurality of session participants, in a second target language associated with the second session participant (step 512). The translation of the message 260' in the second target language is transmitted to the second session participant in the plurality of session participants (step 514).
  • the server 106 receives from a user a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants (step 502).
  • the request 210 is transmitted to the server 106 in a short message service message.
  • the request 210 is transmitted to the server 106 via a plurality of short message service messages.
  • the message 212 in the source language is transmitted separately from the request for establishment of the short message service session.
  • the first user transmits the request 210 to a translation server.
  • the translation server 106 receives the request 210 via a messaging gateway 250, which forwards the request 210 from the user to the translation server 106.
  • the request 210 includes an identification of the source language in which the first user composed the message 212.
  • a session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants (step 504).
  • the session data table 230 stores information associated with the first user.
  • the session data table 230 stores an identification of a language associated with the first user.
  • the session data table 230 stores a session identifier associated with the requested session.
  • a short message service session is created between each session participant in the plurality of session participants and the user (step 506).
  • a translation server 106 creates the messaging session.
  • a session management component 220 on the translations server 106 creates the messaging session.
  • the session management component 220 sends a request to a short message service messaging gateway 250 to initiate a short message session including as participants the user and the plurality of session participants identified by the user.
  • a translation of the message 260 is generated for a first session participant in the plurality of session participants in a first target language associated with the first session participant (step 508).
  • the translation server 106 transmits the message 212 to a translation engine 240, with an identification of the source language and an identification 214 of the target language.
  • the translation server 106 retrieves the identification 214 of the target language from the session data table 230.
  • the translation engine 240 retrieves the identification 214 of the target language from the session data table 230.
  • a translation engine 240 selects a translation dictionary 245 for use in translating the message 212 from a source language in which the first user composed the message 212 to the target language associated with the first session participant.
  • the translation engine 240 selects a translation dictionary 245 optimized for translating between the source language and the target language. For example, the translation engine 240 may select a first translation dictionary 245 when translating a message 212 from English to Spanish for the first session participant and select a second translation dictionary 245' when translating the message 212 from English to Japanese for a second session participant, and select a third translation engine 240 when translating a response in Japanese from the second session participant to the English-speaking user.
  • the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country- specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
  • a translation of the message 260' is generated, for a second session participant in the plurality of session participants, in a second target language associated with the second session participant (step 512).
  • the second session participant is associated with a second target language, which differs from the source language in which the message 212 was composed.
  • the second session participant is associated with a second target language, which differs from the target language associated with the first session participant.
  • the translation engine 240 transmits the translated message 260 to the translation server 106. In another embodiment, the translation engine 240 transmits the translated message 260' to the session management component 220. In still another embodiment, the translation engine 240 transmits the translated message 260' to a messaging gateway 250 for transmission to the session participant.
  • a second message 212' is received from one of the session participants in the plurality of session addressed to the user and the plurality of session participants.
  • the second message 212' responds to a previously-transmitted message.
  • the session management component 220 determines that the session data table 230 includes an identification of the second user.
  • the translation engine 240 generates, for each session participant in the plurality of session participants, a translation of the second message 260' in the target language associated with each session participant.
  • the messaging gateway 250 transmits the translation of the second message 260' to the user and to each session participant in the plurality of session participants.
  • a block diagram depicts one embodiment of a system for establishing a messaging session using multiple messaging protocols.
  • methods and systems for establishing a messaging session using multiple messaging protocols allow a user to send a message 212 to participants in a group session, the participants communicating within a single session while using different messaging protocols.
  • a server 106 receiving a request 210 for establishment of a group messaging session identifies a messaging protocol for each participant in the session and transmits the translated message 260 to each participant.
  • the user and each of the participants send and receive messages within a single group messaging session, although their messaging protocols differ.
  • a first user transmits an SMS message to the server 106 and a second user receives an instant message while a third user receives an electronic mail message.
  • a system for establishing a messaging session using multiple messaging protocols includes a server 106, a session data table 230, a session management component 220, a first messaging gateway 250, a second messaging gateway 250' and a third messaging gateway 250".
  • the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
  • the session data table 230 stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants.
  • the session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the first user.
  • the first messaging gateway 250 transmits, within the messaging session, the message 260 to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant.
  • the second messaging gateway 250' transmits, within the messaging session, the message 260' to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
  • the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
  • the server 106 is referred to as a translation server.
  • the server 106 receives the request 210 via a messaging gateway 250. In another embodiment, the server 106 receives the request 210 from the first client device 102. In still another embodiment, the server 106 receives a request 210 to translate the message 212 and transmit the message to the second user according to a messaging protocol associated with the second user. In yet another embodiment, the messaging protocol associated with the second user is a different messaging protocol than a messaging protocol associated with the first user. In some embodiments, messaging protocols used to transmit the translated messages amongst the plurality of session participants include the protocols for email, instant message, SMS, and MMS described above.
  • the server 106 retrieves information associated with the first user. In another embodiment, the server 106 retrieves an identification of a preferred messaging protocol associated with the first user. In still another embodiment, the server 106 retrieves authentication information associated with the first user.
  • the request 210 includes a command to terminate a messaging session.
  • the identifier of the second user identifies the first user.
  • the first user requests that the server 106 translate a message 212 and transmit the translation to the first user.
  • the request 210 includes a command to store messages exchanged during a messaging session.
  • the first user sends a command to save session information for future use.
  • the first user may transmit a command having the following form: "gs save [alias]".
  • the group session (identified by "gs") is stored and associated with the alias provided by the first user.
  • the command may have the following form: "ts save [alias].”
  • contact information for each session participant and messaging protocol preferences associated with each session participant are also stored.
  • a user in a session with a server 106 sends a command to save session information for future use.
  • the user may later resume the session.
  • the user may later retrieve information exchanged in the session.
  • the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias] to resume a saved session.
  • the first user transmits the request 210 to the server
  • the first user transmits the request 210 in an SMS message addressed to a short code or control number associated with the server 106.
  • the first user transmits the request 210 to the server 106 via an electronic mail message addressed to an email address associated with the server 106.
  • the first user transmits the request 210 to the server 106 via an instant message addressed to an instant message user name associated with the server 106.
  • an instant messaging robot application may execute on the server 106 and receive instant messages addressed to the server 106.
  • the first user transmits a request 210 comprising an alphanumeric string to the server 106.
  • a request 210 may have the following form: "s 5551234567, 5557654321.”
  • the command to establish a session is "s”
  • the identification of a first session participant in the plurality of session participants is 5551234567
  • the identification of a second session participant is "5557654321.”
  • a request 210 may be sent via a first messaging protocol, identify a first session participant associated with a second messaging protocol and identify a second session participant associated with a third messaging protocol, which may be the same as or different from the first and second messaging protocol.
  • the request 210 may be sent via an SMS text message and have the following form: "s IMUser24; 5551236543.”
  • the request 210 may have the following form: “Gs 5559876543 michael@aim smith@gmail.com.”
  • "Gs” is the command for establishing a group messaging session, "5559876543” identifies a first session participant receiving messages via SMS, "Michael@aim” identifies a second session participant receiving messages via instant messenger services provided by AOL INSTANT MESSENGER, and "smith@gmail.com” identifies a third session participant receiving messages. All three session participants communicate in the default language of the first user.
  • the server 106 includes a parsing component, which parses the request 210 into the message 212, and the identifications of the plurality of session participants.
  • the parsing component transmits the request 210 for establishment of the session and the identifications of the plurality of session participants to the session management component 220.
  • the parsing component transmits the request 210 for establishment of the session and the identifications of the plurality of session participants to the session data table 230.
  • the request 210 includes an identifier for a messaging service account associated with a session participant.
  • the request 210 may include, without limitation, mobile phone numbers associated with the plurality of session participants, electronic mail addresses associated with the plurality of session participants, SMS addresses, which may combine mobile phone numbers and email addresses associated with the plurality of session participants, or instant message user names associated with the plurality of session participants.
  • the server 106 receives a request 210 for establishment of an SMS messaging session amongst a plurality of session participants, the request 210 including SMS addresses for each of the plurality of session participants.
  • the server 106 receives a request 210 for establishment of a hybrid messaging session amongst a plurality of session participants, the request 210 identifying a different messaging protocol for each of the plurality of session participants.
  • the server 106 may receive a request 210 from a user via an SMS session for establishment of a hybrid messaging session, the request 210 identifying an instant message 212 user name of a first session participant, an email address associated with a second session participant, and an SMS address associated with a third session participant.
  • the session data table 230 stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants. In some embodiments, the session data table 230 stores data as described above. In other embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In another of these embodiments, the session data table 230 stores information retrieved from a user profile associated with the user. In still other embodiments, the server 106 retrieves information from the session data table 230 to transmit translations from one user to another.
  • the session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the first user.
  • the session management component 220 resides on the server 106. In another embodiment, the session management component 220 resides on a second server 106.
  • the session management component 220 establishes a messaging session between the first user and the plurality of session participants upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the first user and the plurality of session participants upon authenticating the first user and each session participant in the plurality of session participants. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts.
  • the session management component 220 establishes a first messaging session between itself and the first user and a plurality of messaging sessions between itself and each session participant in the plurality of session participants. In another embodiment, the session management component 220 forwards messages received via a first messaging protocol from the first user in the first messaging session to all of the session participants in the plurality of messaging sessions.
  • the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
  • the session management component 220 initiates a session including as participants in the session the user requesting the session and each of the plurality of session participants identified in the request 210.
  • the session management component 220 removes one of the plurality of session participants from the session upon receiving a request 210 from the one of the plurality of session participants to disconnect from the session.
  • the session management component 220 modifies a messaging protocol associated with one of the plurality of session participants responsive to receiving a request 210 from one of the plurality of session participants to associate a different messaging protocol with the session participant than the messaging protocol identified by the user requesting establishment of the request 210.
  • the session management component 220 adds a session participant to the plurality of session participants responsive to receiving a request 210 to add an additional user to the group messaging session. In still other embodiments, the session management component 220 broadcasts messages to all members of the group messaging session, including the user and the plurality of session participants.
  • the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request 210 via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
  • the session management component 220 forwards the message 212 to a messaging gateway 250. In other embodiments, the session management component 220 forwards the message 212 to a plurality of messaging gateways. In still other embodiments, the session management component 220 forwards the message 212 to a gateway selected responsive to an identification of the messaging protocol associated with a session participant in the plurality of session participants.
  • the system includes a plurality of messaging gateways through which users may send and receive messages to other users.
  • a first messaging gateway 250' in the plurality of messaging gateways accepts user input via a messaging protocol different from a messaging protocol accepted by a second messaging gateway 250" in the plurality of messaging gateways.
  • each messaging gateway in the plurality of messaging gateways accepts user input via a different messaging protocol.
  • one messaging gateway 250' may receive user input via electronic mail messages while another messaging gateway 250" may receive user input via a short message service.
  • the first messaging gateway 250' transmits, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant.
  • the second messaging gateway 250" transmits, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
  • a messaging gateway 250 resides on a server 106.
  • a web server includes a messaging gateway 250.
  • a messaging gateway 250 is provided by software executing on a client 102 or a server 106.
  • a messaging gateway 250 is a router.
  • the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
  • the messaging gateway 250 includes a routing table.
  • the messaging gateway 250 accesses the routing table.
  • the session management component 220 accesses a routing table to identify a messaging gateway 250.
  • a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications.
  • the session management component 220 receives a request 210 including an identification of a second user.
  • the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user.
  • a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user.
  • the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user. For example, and in some embodiments, a user may transmit the following request 210: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim".
  • the session management component 220 accesses the routing table to identify a messaging gateway 250 providing functionality for transmitting AOL INSTANT MESSENGER messages to "usersmith.” In another embodiment, the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol. In still another embodiment, the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient. In yet another embodiment, the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request 210.
  • the server 106 receives a second message 212' from a first session participant in the plurality of session participants and determines that the session data table 230 includes an identification of the first session participant.
  • the messaging gateway 250 transmits the second message to the user and to each session participant in the plurality of session participants.
  • a flow diagram depicts one embodiment of the steps taken in a method for establishing a group messaging session using multiple messaging protocols.
  • the method includes the step of receiving, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 702).
  • a session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 704).
  • a messaging session is created between the session participants in the plurality of session participants and the user (step 706).
  • the message is transmitted to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant (step 708).
  • the message is transmitted to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant (step 710).
  • the server 106 receives from a user a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 702).
  • the user transmits the request 210 to a server 106.
  • the server 106 receives the request 210 via a messaging gateway 250, which forwards the request 210 from the user to the server 106.
  • a session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 704). In some embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In other embodiments, the session data table 230 stores a session identifier associated with the requested session. [0186] A messaging session is created between the session participants in the plurality of session participants and the user. In one embodiment, a server 106 creates the messaging session (step 706). In another embodiment, a session management component 220 on the server 106 creates the messaging session.
  • the server 106 sends a request 210 to a first messaging gateway 250 to establish a connection between the server 106 and the user and sends a request 210 to a plurality of messaging gateways to establish a plurality of connections between the server 106 and each session participant in the plurality of session participants.
  • the message is transmitted to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant (step 708).
  • the message is transmitted to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant (step 710).
  • a session management component 220 on the server 106 transmits a request 210 to a messaging gateway 250 to transmit the translated message 260 over a connection to a session participant in the plurality of session participants.
  • the session management component 220 selects the messaging gateway 250 responsive to the identifications of messaging protocols associated with each of the plurality of session participants.
  • a block diagram depicts one embodiment of a system for establishing a messaging session using multiple languages and multiple messaging protocols.
  • the server 106 receives, from a session participant in the plurality of session participants a second message.
  • the server 106 determines that the session data table 230 includes an identification of the second user.
  • the server 106 transmits the second message to the user and to each session participant in the plurality of session participants according to the messaging protocols associated with the user and with each session participant in the plurality of session participants.
  • a translation server 106 initiates a first session between itself and the first client device 102 via a first messaging gateway 250 using a first messaging protocol, and initiates a second session between itself and a first session participant via a second messaging gateway 250' using a second messaging protocol.
  • the translation server 106 receives messages from the first user, translates the messages, and then forwards them to the first session participant.
  • the translation server 106 initiates a third session between itself and a second session participant via a third messaging gateway 250" using a third messaging protocol and forwards messages received from one of the first user and the second user and translated into a third language to the third session participant.
  • the translation server 106 initiates a third session between itself and a third session participant using one of the first messaging protocol and the second messaging protocol and forwards messages received from one of the first user and the second user and translated into a third language to the third user.
  • a flow diagram depicts one embodiment of the steps taken in a method for establishing a group messaging session using multiple languages and multiple messaging protocols.
  • the method includes the step of receiving, by the server 106, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 902).
  • the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, the identification 214 of the target language associated with each session participant in the plurality of session participants, and the identification of a messaging protocol associated with each session participant in the plurality of session participants (step 904).
  • a session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the user (step 906).
  • a translation engine 240 generates (step 908), for a first session participant in the plurality of session participants, a translation of the message 260 in a first target language associated with the first session participant, and generates (step 912), for a second session participant in the plurality of session participants, a translation of the message 260' in a second target language associated with the second session participant.
  • a messaging gateway 250 transmits (step 910), within the messaging session, the translation of the message 260 in the first target language to the first session participant, according to a first messaging protocol associated with the first session participant, and transmits (step 914) the translation of the message 260' in the second target language to the second session participant, according to a second messaging protocol associated with the second session participant.
  • the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 902).
  • the request 210 may have the following form: "Gs
  • the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, the identification 214 of the target language associated with each session participant in the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 904).
  • a messaging session is created between the session participants in the plurality of session participants and the user (step 906).
  • a translation of the message 260 is generated (step 908) for a first session participant in the plurality of session participants in a first target language associated with the first session participant and the translation of the message 260 in the first target language is transmitted (step 910) to the first session participant, according to a first messaging protocol associated with the first session participant.
  • a translation of the message 260' is generated (step 912) for a second session participant in the plurality of session participants in a second target language associated with the second session participant; and transmitted (step 914) within the messaging session to the second session participant, according to a second messaging protocol associated with the second session participant.
  • a session participant when invited to a group messaging session they receive a message welcoming them, for example, a message stating "You have been invited to a Group Text session. Respond to this message with your initials to join.”
  • group messages received from this participant will begin with the users initials, i.e., "MD: Hi, what are you doing today?"
  • each of the participants in a session receive a notification when a new user joins, the notification including the new user's identifier (e.g., SMS, IM or Email address) and the new user's initials.
  • the notification including the new user's identifier (e.g., SMS, IM or Email address) and the new user's initials.
  • session participants can send private messages to other session participants in a session by including the target user's initials, i.e., "JS: Let's not talk about that.”
  • a user initiating a session can invite additional participants by sending a command to add participants and identifier for each user(s). For example, the user may send a command such as "add 5556771 1 1 1” to add a user associated with SMS number 5556771 1 11 or "add 55567711 1 1 g” to translate the user's session into German.
  • users can drop out of a group text session by sending their initials followed by a command to terminate the session.
  • a user may request 210 termination of a session by sending a command to the server 106 such as "JS end.”
  • other users are notified that a participant has dropped out of a session.
  • a user may receive a notification that "User JS has dropped from the session”.
  • the initiator can end a group messaging session at any time by sending a command to the server 106 to do so, such as "GS stop, quit or end.”
  • the systems and methods described above may be implemented as a method, apparatus or article of manufacture using programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
  • the systems and methods described above may be provided as one or more computer- readable programs embodied on or in one or more articles of manufacture.
  • article of manufacture is intended to encompass code or logic accessible from and embedded in one or more computer-readable devices, firmware, programmable logic, memory devices (e.g., EEPROMs, ROMs, PROMs 5 RAMs, SRAMs, etc.), hardware (e.g., integrated circuit chip, Field Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), etc.), electronic devices, a computer readable non-volatile storage unit (e.g., CD-ROM, floppy disk, hard disk drive, etc.), a file server providing access to the programs via a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc.
  • firmware programmable logic
  • memory devices e.g., EEPROMs, ROMs, PROMs 5 RAMs, SRAMs, etc.
  • hardware e.g., integrated circuit chip, Field Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), etc.
  • FPGA Field Programmable Gate Array
  • the article of manufacture includes hardware logic as well as software or programmable code embedded in a computer readable medium that is executed by a processor.
  • the computer-readable programs may be implemented in any programming language, LISP, PERL, C, C++, C#, PROLOG, or any byte code language, such as JAVA.
  • the software programs may be stored on or in one or more articles of manufacture as object code.

Abstract

A system for establishing multilingual messaging sessions using one or more messaging protocols includes a server, a session data table, a session management component, a translation engine, and a messaging gateway. The server receives a request for establishment of a messaging session, a message in a source language for transmission to a plurality of session participants and an identification of a target language associated with each session participant. The session management component creates a messaging session between the session participants. The translation engine generates a translation of the message in a first target language associated with a first session participant and generates a translation of the message in a second target language associated with a second session participant. The messaging gateway transmits the message in the first target language to the first session participant and transmits the message in the second target language to the second session participant.

Description

ESTABLISHING AND TRANSLATING WITHIN MULTILINGUAL GROUP MESSAGING SESSIONS USING MULTIPLE MESSAGING PROTOCOLS
FIELD
[0001] The present disclosure relates to methods and systems for messaging between computing devices. Specifically, the present disclosure relates to systems and methods for establishing, and translating within, multilingual group messaging sessions using one or more messaging protocols.
BACKGROUND
[0002] In a modern communications environment, there exists a variety of messaging protocols. Typical messaging devices support one main messaging protocol, and in many cases, one main language. However, between expanding computing networks and globalization, more and more messaging systems and their specific messaging protocols have become available, each with broad user-bases. In order to support multiple messaging protocols, a user may, for example, carry two or more devices supporting a different protocol each, or acquire an expensive integrated device incorporating technology to support multiple messaging protocols. This becomes a burden to the typical user in terms of cost, convenience, or a combination of both.
[0003] Similarly, due to globalization and cross-cultural interaction, a typical market may now serve demographics covering more than one communication language. For example, English and Spanish are commonly used for communication in the United States, and many European languages are used across the European Union. Large international events, such as international sporting events, bring people of all nationalities and different languages together within certain localities. Communication devices, including mobile devices such as cellular telephones, pagers, personal handheld computers, personal digital assistants, and laptop computers, may support or be configured in one language corresponding to the language of choice for a particular user. Even global networks, despite allowing users and communication devices in different countries to be linked electronically, typically limited communications to a single messaging protocol or a single language. Thus, a plurality of messaging protocols and languages present challenges for a truly interconnected and transparent communication system.
BRIEF SUMMARY
[0004] In one aspect, a method for establishing a multilingual messaging session using multiple messaging protocols includes the step of receiving a request from a first user for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user. The method includes the step of storing, in a session data table, an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user. The method includes the steps of creating a messaging session between the first user and the second user, generating a translation of the message in a target language associated with the second user, and transmitting, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
[0005] In one embodiment, the method includes the step of transmitting, to a server, by the first user, the request for establishment of a messaging session with a second user, in a short messaging service message addressed to the server. In another embodiment, the method includes the step of transmitting the request to a server by the first user, for establishment of a messaging session with a second user, in an electronic mail message addressed to the server. In still another embodiment, the method includes the step of transmitting the request to a server by the first user, for establishment of a messaging session with a second user, in an instant message addressed to the server.
[0006] In one embodiment, the method includes the step of receiving, from a user, a request for establishment of a messaging session between the user and a server, the request including a message in a source language, an identification of a target language associated with the user. In another embodiment, the method includes the step of establishing a messaging session between the user and the server. In still another embodiment, the method includes the step of transmitting, by the server, to the user, a translation of the message in the target language associated with the user, within the messaging session.
[0007] In one embodiment, the method includes the step of receiving, from the second user, a request for transmission, to the first user, of a second message, in the target language associated with the second user. In another embodiment, the method includes the step of determining that the session data table includes an identification of the first user. In still another embodiment, the method includes the steps of generating a translation of the second message in a language associated with the first user and transmitting the second message to the first user according to a messaging protocol associated with the first user.
[0008] In another aspect, a system for establishing a multilingual messaging session using multiple messaging protocols includes a server, a session date table, a session management component, a translation engine, and a messaging gateway. The server receives, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user. The session data table stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user. The session management component on the server creates a messaging session between the first user and the second user. The translation engine, in communication with the session management component receives the message, an identification of the source language, and the identification of the target language associated with the session participant, and generates a translation of the message in the target language. The messaging gateway receives the translation of the message and transmits, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
[0009] In still another aspect, a method for real-time translation within a group short message service session includes the step of receiving a request from a user for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each of the plurality of session participants and including an identification of a target language associated with each of the session participants. The method includes the step of storing in a session data table an identification of each of the plurality of session participants, an identification of the user, and the identification of the target language associated with each session participant in the plurality of session participants. The method includes the step of creating a short message service session between the user and each of the session participants. The method includes the step of generating a translation of the message in a first target language associated with a first session participant in the plurality of session participants. The method includes the step of transmitting, within the short message service session, the translation of the message in the first target language to the first session participant. The method includes the step of generating a translation of the message in a second target language associated with a second session participant in the plurality of session participants. The method includes the step of transmitting, within the short message service session, the translation of the message in the second target language to the second session participant. In one embodiment, the method includes the step of receiving a second message, from a second user, determining that the session data table includes an identification of the second user, generating, for each session participant in the plurality of session participants, a translation of the second message in a target language associated with each session participant and transmitting the translation of the second message to the user and to each of the session participants.
[0010] In one embodiment, the method includes the step of receiving a request for establishment of a messaging session among a plurality of session participants. The request includes a message in a source language for transmission to each session participant, an identification of a target language associated with each session participant, and an identification of a messaging protocol associated with each session participant. In another embodiment, the method includes storing the identification of the messaging protocol associated with each of the session participants in the session data table. In still another embodiment, the method includes the steps of transmitting, within the messaging session, the translation of the message to the first session participant, according to a first messaging protocol associated with the first session participant and of transmitting, within the messaging session, the translation of the message to the second session participant, according to a second messaging protocol associated with the second session participant.
[0011 ] In still even another aspect, a system for real-time translation within a group short message service session includes a server, a session date table, a session management component, a translation engine, and a messaging gateway. The server receives, from a user, a request for establishment of a short message service session among a plurality of session participants. The request includes a message in a source language for transmission to each of the session participants and an identification of a target language associated with each of the session participants. The session data table stores an identification of the user, an identification of each of the session participants, and the identification of the target language associated with each of the session participants. The session management component on the server creates a messaging session between the user and each of the session participants. The translation engine generates, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant and generates for a second session participant in the plurality of session participants, a translation of the message in a second target language associated with the second session participant. The messaging gateway transmits, within the short message service session, the translation of the message in the first target language to the first session participant and transmits the translation of the message in the second target language to the second session participant in the plurality of session participants.
[0012] In one embodiment, the server receives the request via a messaging gateway. In another embodiment, the server receives the request from a client device operated with the user. In still another embodiment, the server further comprises means for receiving a second message and from a second user and determining that the session data table includes an identification of the second user. In yet another embodiment, the translation engine further includes means for generating translations of the second message in target languages associated with each of the session participants. In another embodiment, the messaging gateway includes means for transmitting the translation of the second message to the user and each of the session participants.
[0013] In one embodiment, the system includes means for receiving a request for establishment of a messaging session among a plurality of session participants. The request includes a message in a source language for transmission to each of the session participants, an identification of a target language associated with each of the session participants and an identification of a messaging protocol associated with each of the session participants. In another embodiment, the session data table includes a stored identification of the messaging protocol associated with each of the session participants. In still another embodiment, the messaging gateway includes means for transmitting translations of the message within the messaging sessions, to each of the session participants in an associated language and messaging protocol.
[0014] In one aspect, a method for establishing a group messaging session using multiple messaging protocols includes the step of receiving, from a user, a request for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants. A session data table stores an identification of each of the plurality of session participants, an identification of the user, and an identification of the messaging protocol associated with each session participant in the plurality of session participants. The method includes the steps of creating a messaging session between the session participants in the plurality of session participants and the user, and of the transmitting the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant, within the messaging session and of the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant, within the messaging session.
10015] In one embodiment, the method includes the steps of receiving, from a second user, a second message, of determining that the session data table includes an identification of the second user, and of transmitting the second message to the user and to each session participant in the plurality of session participants according to the messaging protocol associated with each session participant in the plurality of session participants. In another embodiment, the transmission of the second message to the user according to a messaging protocol associated with the user is described. In still another embodiment, the message includes the step of receiving a request including a message in a source language for transmission to each session participant in the plurality of session participants and an identification of a target language associated with each session participant in the plurality of session participants, hi yet another embodiment, the method includes the step of storing, in the session data table, the identification of the target language associated with each session participant in the plurality of session participants.
(0016] In one embodiment, the method includes the step of generating, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant and the method includes the step of transmitting, within the messaging session, the translation of the message to the first session participant, according to the first messaging protocol associated with the first session participant. In another embodiment, the method includes the steps of generating, for a second session participant in the plurality of session participants, a translation of the message in a second language associated with the session participant and of transmitting, within the messaging session, the translation of the message to the second session participant, according to the second messaging protocol associated with the second session participant. [0017] In another aspect, a system for establishing a messaging session using multiple messaging protocols includes a server, a session data table, a session management component, a first messaging gateway, and a second messaging gateway. The server receives, a request from a user for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants. The session data table stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants. The session management component on the server creates a messaging session between each session participant in the plurality of session participants and the user. The first messaging gateway transmits, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant. The second messaging gateway transmitting, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
BRIEF DESCRIPTION OF THE FIGURES
[0018] The foregoing and other objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:
[0019] FIG. IA is a block diagram depicting one embodiment of a network environment for a client to access a server via an appliance;
[0020] FIGs. IB and 1C are block diagrams depicting embodiments of a computing device; [0021] FIG. 2 is a block diagram depicting one embodiment of a system for establishing a messaging session between two users using different languages and messaging protocols;
[0022] FIG. 3 is a flow diagram depicting one embodiment of the steps taken in a method for establishing a messaging session between two users using different languages and messaging protocols;
[0023] FIG. 4 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first language to a plurality of users using different languages;
[0024] FIG. 5 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first language to a plurality of users using different languages;
[0025] FIG. 6 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first protocol to a plurality of users using different protocols;
[0026] FIG. 7 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first protocol to a plurality of users using different protocols;
[0027] FIG. 8 is a block diagram depicting one embodiment of a system for transmitting a message from a user using a first protocol and a first language to a plurality of users using different protocols and different languages; and
[0028] FIG. 9 is a flow diagram depicting one embodiment of the steps taken in a method for transmitting a message from a user using a first protocol and a first language to a plurality of users using different protocols and different languages. DETAILED DESCRIPTION
[0029] Referring now to Fig. IA, a block diagram depicts one embodiment of a network environment. A network environment comprises one or more clients 102a-102n (also generally referred to as local machines or client devices 102) in communication with one or more servers 106a-106n (also generally referred to as remote machines 106) via one or more networks 104. The network 104 can be a local-area network (LAN), such as a company Intranet, a metropolitan area network (MAN), or a wide area network (WAN), such as the Internet or the World Wide Web. The network 104 may be any type and/or form of network and may include any of the following: a point to point network, a broadcast network, a wide area network, a local area network, a telecommunications network, a data communication network, a computer network, an ATM (Asynchronous Transfer Mode) network, a SONET (Synchronous Optical Network) network, a SDH (Synchronous Digital Hierarchy) network, a wireless network and a wireline network. In some embodiments, the network 104 may comprise a wireless link, such as an infrared channel or satellite band.
[0030] The topology of the network 104 may be a bus, star, or ring network topology. The network 104 and network topology may be of any such network or network topology as known to those ordinarily skilled in the art capable of supporting the operations described herein. The network 104 may comprise mobile telephone networks utilizing any protocol or protocols used to communicate among mobile devices, including AMPS, TDMA, CDMA, GSM, GPRS or UMTS. In some embodiments, different types of data may be transmitted via different protocols. In other embodiments, the same types of data may be transmitted via different protocols.
[0031] A server 106 in the network may be a file server, application server, web server, proxy server, electronic mail server, short-message service (SMS) server, instant messaging server, a router, appliance, network appliance, gateway, application gateway, gateway server, virtualization server, deployment server, Secure Sockets Layer Virtual Private Network (SSL VPN) server, or firewall. The clients 102 may also be referred to as client nodes, client machines, endpoint nodes, or endpoints. In some embodiments, a client 102 has the capacity to function as both a client node seeking access to resources provided by a server and as a server providing access to hosted resources for other clients
102.
[0032] A client 102 may execute, operate or otherwise provide an application, which can be any type and/or form of software, program, or executable instructions such as any type and/or form of web browser, web-based client, client-server application, a thin-client computing client, an ActiveX control, or a Java applet, or any other type and/or form of executable instructions capable of executing on client. The application can use any type of protocol and it can be, for example, an HTTP client, an FTP client, an Oscar client, an electronic mail client, a short-message service (SMS) client or a Telnet client. In other embodiments, the application comprises any type of software related to voice over internet protocol (VoIP) communications, such as a soft IP telephone. In further embodiments, the application comprises any application related to real-time data communications, such as applications for streaming video and/or audio.
[0033] FIGs. IB and 1C depict block diagrams of an embodiment of a computing device 100 useful as an embodiment of the client 102 or the server 106. As shown in FIGs. IB and 1C, each computing device 100 includes a central processing unit 121, and a main memory unit 122. As shown in FIG. IB and 1C, a computing device 100 may include a visual display device 124, a keyboard 126 and/or a pointing device 127, such as a mouse. Each computing device 100 may also include additional optional elements, such as one or more input/output devices 13 Oa- 13 Ob (shown in FIG. 1C and generally referred to using reference numeral 130), and a cache memory 140 in communication with the central processing unit 121.
[0034] The central processing unit 121 is any logic circuitry that responds to and processes instructions fetched from the main memory unit 122. In many embodiments, the central processing unit is provided by a microprocessor unit, such as: those manufactured by Intel Corporation of Mountain View, California; those manufactured by Motorola Corporation of Schaumburg, Illinois; those manufactured by Transmeta Corporation of Santa Clara, California; the RS/6000 processor, those manufactured by International Business Machines of White Plains, New York; or those manufactured by Advanced Micro Devices of Sunnyvale, California. The computing device 100 may be based on any of these processors, or any other processor capable of operating as described herein.
[0035] Main memory unit 122 may be one or more memory chips capable of storing data and allowing any storage location to be directly accessed by the microprocessor 121, such as Static random access memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Dynamic random access memory (DRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (BEDO DRAM), Enhanced DRAM (EDRAM), synchronous DRAM (SDRAM), JEDEC SRAM, PClOO SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM). The main memory 122 may be based on any of the above described memory chips, or any other available memory chips capable of operating as described herein. In the embodiment shown in FIG. IB, the processor 121 communicates with main memory 122 via a system bus 150 (described in more detail below). FIG. IB depicts an embodiment of a computing device 100 in which the processor communicates directly with main memory 122 via a memory port 103. For example, in FIG. 1C the main memory 122 may be DRDRAM.
[0036] FIG. 1 C depicts an embodiment in which the main processor 121 communicates directly with cache memory 140 via a secondary bus, sometimes referred to as a backside bus. In other embodiments, the main processor 121 communicates with cache memory 140 using the system bus 150. Cache memory 140 typically has a faster response time than main memory 122 and is typically provided by SRAM, BSRAM, or EDRAM. In the embodiment shown in FIG. IB, the processor 121 communicates with various I/O devices via a local system bus 150. Various busses may be used to connect the central processing unit 121 to any of the I/O devices 130, including a VESA VL bus, an ISA bus, an EISA bus, a MicroChannel Architecture (MCA) bus, a PCI bus, a PCI-X bus, a PCI-Express bus, or a NuBus. For embodiments in which the I/O device is a video display 124, the processor 121 may use an Advanced Graphics Port (AGP) to communicate with the display 124. FIG. 1C depicts an embodiment of a computer 100 in which the main processor 121 communicates directly with I/O device 130b via HyperTransport, Rapid I/O, or InfiniBand. FIG. 1C also depicts an embodiment in which local busses and direct communication are mixed: the processor 121 communicates with I/O device 130a using a local interconnect bus while communicating with I/O device 130b directly.
[0037] The computing device 100 may support any suitable installation device
116, such as a floppy disk drive for receiving floppy disks such as 3.5-inch, 5.25-inch disks or ZIP disks, a CD-ROM drive, a CD-R/RW drive, a DVD-ROM drive, tape drives of various formats, USB device, hard-drive or any other device suitable for installing software and programs such as any client agent 120, or portion thereof. The computing device 100 may further comprise a storage device 128, such as one or more hard disk drives or redundant arrays of independent disks, for storing an operating system and other related software, and for storing application software programs such as any program related to the client agent 120. Optionally, any of the installation devices 116 could also be used as the storage device 128. Additionally, the operating system and the software can be run from a bootable medium, for example, a bootable CD, such as KNOPPIX, a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net.
[0038] Furthermore, the computing device 100 may include a network interface
1 18 to interface to a Local Area Network (LAN), Wide Area Network (WAN) or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.11, Tl, T3, 56kb, X.25, SNA, DECNET), broadband connections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET), wireless connections, or some combination of any or all of the above. Connections can be established using a variety of communication protocols (e.g., TCP/IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.1 1, IEEE 802.11a, IEEE 802.1 1b, IEEE 802.1 Ig, CDMA, GSM, WiMax and direct asynchronous connections). In one embodiment, the computing device communicates with other computing devices via any type and/or form of gateway or tunneling protocol such as Secure Socket Layer (SSL) or Transport Layer Security (TLS). The network interface 118 may comprise a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 100 to any type of network capable of communication and performing the operations described herein.
[0039] A wide variety of I/O devices 13Oa-13On may be present in the computing device 100. Input devices include keyboards, mice, trackpads, trackballs, microphones, and drawing tablets. Output devices include video displays, speakers, inkjet printers, laser printers, and dye-sublimation printers. The I/O devices 130 may be controlled by an I/O controller 123 as shown in FIG. IB. The I/O controller may control one or more I/O devices such as a keyboard 126 and a pointing device 127, e.g., a mouse or optical pen. Furthermore, an I/O device may also provide storage 128 and/or an installation medium 1 16 for the computing device 100. In still other embodiments, the computing device 100 may provide USB connections to receive handheld USB storage devices such as the USB Flash Drive line of devices manufactured by Twintech Industry, Inc. of Los Alamitos, California.
[0040] In some embodiments, the computing device 100 may comprise or be connected to multiple display devices 124a-124n, which each may be of the same or different type and/or form. As such, any of the I/O devices 13 Oa- 13 On and/or the I/O controller 123 may comprise any type and/or form of suitable hardware, software, or combination of hardware and software to support, enable or provide for the connection and use of multiple display devices 124a-124n by the computing device 100. For example, the computing device 100 may include any type and/or form of video adapter, video card, driver, and/or library to interface, communicate, connect or otherwise use the display devices 124a-124n. In one embodiment, a video adapter may comprise multiple connectors to interface to multiple display devices 124a-124n. In other embodiments, the computing device 100 may include multiple video adapters, with each video adapter connected to one or more of the display devices 124a-124n. In some embodiments, any portion of the operating system of the computing device 100 may be configured for using multiple displays 124a-124n. In other embodiments, one or more of the display devices 124a-124n may be provided by one or more other computing devices, such as computing devices 100a and 100b connected to the computing device 100, for example, via a network. These embodiments may include any type of software designed and constructed to use another computer's display device as a second display device 124a for the computing device 100. One ordinarily skilled in the art will recognize and appreciate the various ways and embodiments that a computing device 100 may be configured to have multiple display devices 124a-124n.
[0041] In further embodiments, an I/O device 130 may be a bridge 170 between the system bus 150 and an external communication bus, such as a USB bus, an Apple Desktop Bus, an RS-232 serial connection, a SCSI bus, a Fire Wire bus, a Fire Wire 800 bus, an Ethernet bus, an AppleTalk bus, a Gigabit Ethernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, a Super HIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus, or a Serial Attached small computer system interface bus.
[0042] A computing device 100 of the sort depicted in FIGs. IB and 1C typically operate under the control of operating systems, which control scheduling of tasks and access to system resources. The computing device 100 can be running any operating system such as any of the versions of the Microsoft WINDOWS operating systems, the different releases of the Unix and Linux operating systems, any version of the MAC OS for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein. Typical operating systems include: WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS 2000, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS CE, and WINDOWS XP, all of which are manufactured by Microsoft Corporation of Redmond, Washington; MAC OS, manufactured by Apple Computer of Cupertino, California; OS/2, manufactured by International Business Machines of Armonk, New York; and Linux, a freely-available operating system distributed by Caldera Corp. of Salt Lake City, Utah, or any type and/or form of a Unix operating system, among others.
[0043] The client 102 and server 106 may be deployed as and/or executed on any type and form of computing device 100, such as a computer, network device or appliance capable of communicating on any type and form of network and performing the operations described herein. The computing device 100 can be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile telephone or other portable telecommunication device, media playing device, a gaming system, or any other type and/or form of computing, telecommunications or media device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein. For example, the computing device 100 may comprise a device of the IPOD family of devices manufactured by Apple Computer of Cupertino, California, a PLAYSTATION 2 , PLAYSTATION 3, or PERSONAL PLAYSTATION PORTABLE (PSP) device manufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS, NINTENDO GAMEBOY, NINTENDO GAMEBOY ADVANCED or NINTENDO REVOLUTION device manufactured by Nintendo Co., Ltd., of Kyoto, Japan, or an XBOX or XBOX 360™ device manufactured by the Microsoft Coiporation of Redmond, Washington.
[0044] In some embodiments, the computing device 100 may have different processors, operating systems, and input devices consistent with the device. For example, in one embodiment the computing device is a TREO 180, 270, 600, 650, 680, 70Op, 70Ow, 700wx, or 750 smart phone manufactured by Palm, Inc. In some of these embodiments, the TREO smart phone is operated under the control of the PalmOS operating system and includes a stylus input device as well as a five-way navigator device.
[0045] In other embodiments the computing device 100 is a mobile device, such as a JAVA-enabled cellular telephone or personal digital assistant (PDA), such as the i55sr, i58sr, i85s, i88s, i90c, i95cl, or the iml 100, all of which are manufactured by Motorola Corp. of Schaumburg, Illinois, the 6035 or the 7135, manufactured by Kyocera of Kyoto, Japan, or the 1300 or 1330, manufactured by Samsung Electronics Co., Ltd., of Seoul, Korea.
[0046] In still other embodiments, the computing device 100 is a Blackberry handheld or smart phone, such as the devices manufactured by Research In Motion Limited, including the Blackberry 7100 series, the 7130 series, 7200 series, the 7700 series, the 8300 series, the 8700 series, the 8800 series, the Blackberry 7520, or the Blackberry Pearl. In yet other embodiments, the computing device 100 is a smart phone, Pocket PC, Pocket PC Phone, or other handheld mobile device supporting Microsoft Windows Mobile Software. Moreover, the computing device 100 can be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile telephone, any other computer, or other form of computing or telecommunications device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.
[0047] In some embodiments, the computing device 100 is a portable media player. In one of these embodiments, the computing device 100 is a portable media player, such as the Zen Vision W, the Zen Vision series, or the Zen Portable Media Center devices, manufactured by Creative Technologies Ltd. In another of these embodiments, the computing device 100 is an MP3 player, such as the Zen line of MP3 players or the Digital, manufactured by Creative Technologies Ltd.
[0048] In other embodiments, the computing device 100 is a digital audio player.
In one of these embodiments, the computing device 100 is a digital audio player such as the Apple iPod, iPod mini, iPod Nano, and iPod Shuffle lines of devices, manufactured by Apple Computer of Cupertino, California. In another of these embodiments, the digital audio player may also function as a portable media player and as a mass storage device. In still another of these embodiments, the computing device is a digital audio player such as the DigitalAudioPlayer Select MP3 players, manufactured by Samsung Electronics America, of Ridgefield Park, NJ, or the Motorola m500 or m25 Digital Audio Players, manufactured by Motorola Inc. of Schaumburg, IL. In some of these embodiments, the computing device 100 is a portable media player or digital audio player supporting file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.
[0049] In some embodiments, the computing device 100 comprises a combination of devices, such as a mobile phone combined with a digital audio player or portable media player. In one of these embodiments, the client is a Motorola RAZR or Motorola ROKR line of combination digital audio players and mobile smartphones. In another of these embodiments, the computer 200 is an iPhone smartphone, manufactured by Apple Computer of Cupertino, California.
[0050] In some embodiments, the computing device 100 connects to a second computing device 100, on a network using any one of a number of well-known protocols from the GSM or CDMA families, such as W-CDMA. These protocols support commercial wireless communication services and W-CDMA, in particular, is the underlying protocol supporting i-Mode and mMode services, offered by NTT DoCoMo.
[0051] In some embodiments, the computing device 100 communicates with a second computing device 100 when providing a user with a service made available by the Global System for Mobile Communications (GSM) standard. In other embodiments, the computing device 100 provides a user with a short message service (SMS). In one of these embodiments, the computing device 100 may transmit messages to the second computing device 100 via an intermediate computing device 100' (not shown), such as a short message service center. In another of these embodiments, the computing device 100 may transmit messages to the second computing device 100 according to a telecommunications protocol standard for transmitting digital data on a broadband network, such as the Signaling System 7 (SS7) protocol. In still other embodiments, the computing device 100 transmits enhanced short messages to the second computing device.
[0052] In other embodiments, the computing device 100 transmits text messages to the second computing device 100. In one of these embodiments, the text messages comply with the GSM standard for short messages. In another of these embodiments, the computing devices 100 transmit text messages that do not comply with a GSM standard. In still another of these embodiments, the computing device 100 transmits text messages over a control channel between the computing device and a cell phone tower, which forwards the text messages to the recipient computing device 100.
[0053] In some embodiments, methods and systems for establishing a multilingual messaging session using multiple messaging protocols allow a first user to send, via a first messaging protocol, a request for a translation of a message in a source language into a target language associated with a second user. In one of these embodiments, the first user may request the transmission of the translated message to the second user via a second messaging protocol, associated with the second user. In another of these embodiments, a server receiving the request translates the message into the target language and transmits the translated message to the second user according to the second messaging protocol. In still another of these embodiments, the first user and second user send and receive messages in their respective languages, according to their respective messaging protocols, although the languages and protocols differ. For example, and in one embodiment, an English-speaking user transmits an SMS message written in English to the server and an Italian-speaking user receives an instant message written in Italian. In some embodiments, source and target languages include, but are not limited to, Arabic, Chinese, Danish, Dutch, English, Farsi, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Pashto, Persian, Polish, Portuguese, Russian, Spanish, Swahili, Swedish, Tagalog, Thai, Turkish, Ukrainian, Vietnamese, and Welsh.
[0054] Referring now to Fig. 2, a block diagram depicts one embodiment of a system for establishing a messaging session between two users using different languages and messaging protocols. The system includes a first client device 102, a server 106, a session management component 220, a session data table 230, a translation engine 240, a messaging gateway 250 and a second client device 102'. In brief overview, the server 106 receives, from a first user of the first client device 102, a request 210 for establishment of a messaging session with a second user of a second client device 102', the request including a message 212 in a source language for transmission to the second client device 102', an identification 214 of a target language associated with the second user, and an identification of a messaging protocol associated with the second user. The session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user. The session management component 220 on the server creates a messaging session between the first user and the second user. The translation engine 240, in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification of the target language associated with the second user, and generates a translation of the message 260 in the target language. The messaging gateway 250 receives the translation of the message 260 and transmits, within the messaging session, the message 260 to the second user according to the messaging protocol associated with the second user.
[0055] Referring now to FIG. 2, and in greater detail, the server 106 receives, from a first user of the first client device 102, a request 210 for establishment of a messaging session with a second user, the request including a message 212 in a source language for transmission to the second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user. In some embodiments, the server 106 is referred to as a translation server. In one embodiment, the server 106 receives the request via a messaging gateway 250. In another embodiment, the server 106 receives the request from the first client device 102. In still another embodiment, the server 106 receives a request 210 to translate the message and transmit the message to the second user according to a messaging protocol associated with the second user. In yet another embodiment, the messaging protocol associated with the second user is a different messaging protocol than a messaging protocol associated with the first user.
[0056] In some embodiments, messaging protocols include, but are not limited to, protocols for formatting and exchanging electronic mail, such as the Simple Mail Transfer Protocol (SMTP) as defined in the Internet Engineering Task Force (IETF) Request for Comments (RFC) Document 2821, Internet Message Formatting as defined in IETF RFC 2822, the Post Office Protocol (version 3) as defined in IETF RFC 1939, the Internet Message Access Protocol (IMAP), as defined in IETF RFC 2195, or protocols for sending email to client devices over wireless networks, such as the 2.5G (GPRS) and 3GSM networks.
[0057] In other embodiments, messaging protocols include, but are not limited to, protocols such as the Internet Relay Chat (IRC) protocol, the Microsoft Network (MSNP) protocol used by clients such as the Microsoft WINDOWS LIVE MESSENGER, the Oscar protocol used by clients such as America Online INSTANT MESSENGER and the ICQ instant messenger, the Protocol for Synchronous Conferencing (PSYC), the Extensible Messaging and Presence Protocol (XMPP) used by JABBER clients such as the Google GTALK client, the IETF SIP and SIMPLE protocols, the YAHOO! MESSENGER (YMSG) protocol, the SKYPE protocol, or protocols for sending instant messages to mobile client devices over wireless networks.
[0058] In still other embodiments, messaging protocols include multimedia messaging service (SMS) protocols, providing store-and-forward messaging services allowing mobile subscribers to exchange multimedia messages including the transmission of text, picture, audio and video attachments. In yet other embodiments, messaging protocols include short messaging service protocols allowing users to send and receive text messages on a mobile client device, using a keyboard or numbered keypad on the client device to input characters. In one of these embodiments, the messaging protocols comply with GSM standards. In another of these embodiments, each SMS message can be up to 160 characters long and sent to and from users of different operator networks.
[0059] In one embodiment, the server 106 retrieves information associated with the first user. In another embodiment, the server 106 retrieves an identification of a preferred language associated with the first user. In still another embodiment, the server 106 retrieves authentication information associated with the first user.
10060] In one embodiment, the request 210 includes a message in a source language for transmission to a second client device 102' operated by a second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user. In another embodiment, the source language and the target language are different languages. In still another embodiment, the identification of the target language is an abbreviation of the name of the target language. In still even another embodiment, the request 210 includes a command to establish the messaging session. In yet another embodiment, the request 210 includes an identification of the source language in which the message is written.
[0061] In some embodiments, the first user transmits a request comprising an alphanumeric string to the server. For example, and in one of these embodiments, a request may have the following form: "ts es 5551234567." In this example, the command to establish a translation session is "ts", the identification of the source language is "e" for English, the identification of the target language is "s" for Spanish, and the identification of the second user is "5551234567." In another of these embodiments, a request may be sent via a first messaging protocol and identify a user associated with a second messaging protocol. For example, the request may be sent via an SMS text message and have the following form: "ts es IMUser24."
[0062] In other embodiments, the server 106 includes a parsing component, which parses the request into the request for establishment of a session, the message, the identification of the target language, the identification of the source language, and the identification of the second user. In one of these embodiments, the parsing component transmits the request for establishment of the session and the identification of the second user to the session management component. In another of these embodiments, the parsing component transmits the message, the identification of the target language, and the identification of the source language to the translation engine 240. In still another of these embodiments, the parsing component transmits the request for establishment of the session, the identification of the second user, the message, the identification of the target language, and the identification of the source language to the session management component. In yet another of these embodiments, the parsing component transmits the request for establishment of the session, the identification of the second user, the message, the identification of the target language, and the identification of the source language to the session data table. In some embodiments, the parsing component parses a plurality of transmissions received from the user of the client device 102, the plurality of messages comprising the request. In one of these embodiments, the parsing component parses a plurality of short message service messages. In another of these embodiments, the parsing component parses a plurality of electronic mail messages. In still another of these embodiments, the parsing component parses a plurality of instant messages. In other embodiments, the parsing component parses a single transmission comprising the request.
[0063] In one embodiment, the request 210 includes an identifier for a messaging service account associated with the second user. In some embodiments, the request 210 may include, without limitation, a mobile phone number associated with the second user, an electronic mail address associated with the second user, an SMS address, which may combine a mobile phone number and an email address associated with the second user, or an instant message user name associated with the second user. In other embodiments, the request 210 includes a command to terminate a messaging session. In some embodiments, the identifier of the second user identifies the first user. In one of these embodiments, the first user requests that the server 106 translate a message and transmit the translation to the first user.
[0064] In some embodiments, the request 210 includes a command to store messages exchanged during a messaging session. In one of these embodiments, the first user sends a command to save session information for future use. For example, the first user may transmit a command having the following form: "is save [alias]". In this example, the messaging session (identified by "ts") is stored and associated with the alias provided by the first user. In another example, the command may have the following form: "ts save [alias]." In another of these embodiments, contact information for each session participant and language preferences associated with each session participant are also stored.
[0065] In one embodiment, the first user transmits the request to the server 106 via an SMS message. In another embodiment, the first user transmits the request in an SMS message addressed to a short code or control number associated with the server 106. In still another embodiment, the first user transmits the request to the server 106 via an electronic mail message addressed to an email address associated with the server. In yet another embodiment, the first user transmits the request to the server 106 via an instant message addressed to an instant message user name associated with the server. For example, an instant messaging robot application may execute on the server 106 and receive instant messages addressed to the server 106.
[0066] The session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user. In one embodiment, the identification of the second user includes a messaging account identifier, such as an SMS number, an instant message user name, or an email address. In some embodiments, the session data table stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a language associated with the first user. In another of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In still another of these embodiments, the session data table 230 stores information retrieved from a user profile associated with the user. In other embodiments, the server 106 retrieves information from the session data table 230 to translate messages and transmit translations from one user to another.
[0067] In some embodiments, the session data table 230 stores a transcript of messages exchanged within a messaging session. In other embodiments, the session data table 230 stores an identification of a default language associated with a user or session participant. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session and the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message received in the subsequent session for transmission to the user.
[0068] In some embodiments, the session data table 230 stores data in an ODBC- compliant database. For example, the session data table 230 may be provided as an ORACLE database, manufactured by Oracle Corporation of Redwood Shores, Calif. In other embodiments, the session data table 230 can be a Microsoft ACCESS database or a Microsoft SQL server database, manufactured by Microsoft Corporation of Redmond, Wash. In some embodiments, the session data table 230 stores data in a file system on the server. In other embodiments, the session data table 230 may be stored in volatile memory. In still other embodiments, the session data table 230 may use a hierarchical memory system with some data elements stored in volatile memory and some data elements stored in persistent storage.
[0069] The session management component 220 on the server creates a messaging session between the first user and the second user. In one embodiment, the session management component 220 resides on the server 106. In another embodiment, the session management component 220 resides on a second server 106'.
10070] In one embodiment, the session management component 220 establishes a messaging session between the first user and the second user upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the first user and the second user upon authenticating the first user and the second user. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component provides a different level of service to users with accounts than a level of service received by users without accounts.
[0071] In one embodiment, the session management component 220 establishes a first messaging session between itself and the first user and a second messaging session between itself and the second user. In another embodiment, the session management component 220 forwards messages received via a first messaging protocol from the first user in the first messaging session to the second user in the second messaging session via a second messaging protocol. In still another embodiment, the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
[0072] In some embodiments, the session management component 220 retrieves information associated with a previous session in initiating a subsequent session. In one of these embodiments, the session management component 220 retrieves a default language associated with a session participant. In another of these embodiments, the session management component 220 retrieves a default messaging protocol associated with a session participant. In still another of these embodiments, the session management component 220 transmits a transcript from the previous session to a session participant in the subsequent session.
[0073] In some embodiments, the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request via a messaging gateway in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
[0074] In some embodiments, the session management component 220 forwards the request to a translation engine 240. In other embodiments, the session management component 220 forwards the message in the request 210 to the translation engine 240. In still other embodiments, the session management component 220 forwards the message in the source language, an identification of the source language, and the identification 214 of the target language.
[0075] The translation engine 240, in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification 214 of the target language associated with the session participant, and generates a translation of the message 260 in the target language. In one embodiment, the translation engine 240 is in communication with at least one translation dictionary 245. In another embodiment, the translation engine 240 comprises at least one translation dictionary 245. In still another embodiment, the translation engine 240 accesses a translation dictionary 245 to generate a translation of the message 260 from the source language to the target language.
[0076] In one embodiment, the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries 245. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for generating translations from the identified source language and the identified target language.
[0077] In some embodiments, the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country-specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
[0078] In some embodiments, the translation engine 240 selects a second translation dictionary 245 in the plurality of translation dictionaries for translation of a different pairing of source and target languages. In one of these embodiments, the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message in a source language from the user into a target language associated with the second user and select a second translation dictionary 245 in the plurality of translation dictionaries for translating a response in a target language from the second user to the user that composed the initial message in the source language.
[0079] In some embodiments, the translation engine 240 includes a translation memory that stores an enumeration of phrases, terms, sentences, or other segments of text in the source language with a corresponding translation into the target language for each of the enumerated segments of text. In one of these embodiments, the translation engine 240 accesses the translation memory to retrieve a translation in a target language for a message in a source language.
[0080] In some embodiments, the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In other embodiments, the server 106 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In still other embodiments, user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
[0081] In one embodiment, the translation engine 240 transmits the generated translation 260 to the session management component 220. In another embodiment, the session management component 220 selects a messaging gateway 250 responsive to receiving an identification 216 of a messaging protocol associated with the second user. In still another embodiment, the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user. In yet another embodiment, the session management component 220 transmits, to the messaging gateway, an identification 216 of a messaging protocol to use in transmitting the translated message 260 to the second user.
[0082] The messaging gateway 250 receives the translation of the message 260 and transmits, within the messaging session, the message to the second user according to the messaging protocol associated with the second user. In some embodiments, the system includes a plurality of messaging gateways 250 through which users may send and receive messages to other users. In one of these embodiments, a first messaging gateway 250 in the plurality of messaging gateways accepts user input via a messaging protocol different from a messaging protocol accepted by a second messaging gateway 250' 250' in the plurality of messaging gateways. In another of these embodiments, each messaging gateway 250 in the plurality of messaging gateways accepts user input via a different messaging protocol. For example, one messaging gateway 250 may receive user input via electronic mail messages while another messaging gateway 250' may receive user input via a short message service.
[0083] In one embodiment, a messaging gateway 250 resides on a server. In another embodiment, a web server includes a messaging gateway 250. In still another embodiment, a messaging gateway 250 is provided by software executing on a client 102 or a server 106. In still even another embodiment, a messaging gateway 250 is a router. In yet another embodiment, the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
[0084] In one embodiment, the messaging gateway 250 includes a routing table.
In another embodiment, the messaging gateway 250 accesses the routing table. In still another embodiment, the session management component 220 accesses a routing table to identify a messaging gateway 250.
[0085] In some embodiments, a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications. In one of these embodiments, the session management component 220 receives a request including an identification of a second user. In another of these embodiments, the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user. In still another of these embodiments, a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user. In yet another of these embodiments, the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user.
[0086] For example, and in some embodiments, a user may transmit the following request: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim". In one embodiment, the session management component 220 accesses the routing table to identify a messaging gateway providing functionality for transmitting AOL INSTANT MESSENGER messages to "usersmith." In another embodiment, the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol. In still another embodiment, the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient. In yet another embodiment, the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request.
[0087] In some embodiments, the server 106 receives a request 210 for establishment of a messaging session between the user and the server, the request 210 including a message in a source language for transmission to the user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the user. In one of these embodiments, the server establishes a messaging session with the user. In another of these embodiments, the server generates a translation 260 of the message in the target language associated with the user. In still another of these embodiments, the server 106 transmits, within the messaging session, the translated message 260 to the user. In yet another of these embodiments, the server 106 transmits the translated message 260 to a client device 102' operated by the user, according to a messaging protocol associated with the user.
[0088] Referring now to Fig. 3, a flow diagram depicts one embodiment of the steps taken in a method for establishing a multilingual messaging session using multiple messaging protocols. The method includes the step of receiving, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user (step 302). A session data table stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user (step 304). A messaging session is created between the first user and the second user (step 306). A translation is generated of the message in a target language associated with the second user (step 308). Within the messaging session, the message is transmitted to the second user according to the messaging protocol associated with the second user (step 310).
[0089] Still referring to Fig. 3, and in greater detail, a request 210 is received from a first user requesting establishment of a messaging session with a second user, the request 210 including a message in a source language for transmission to the second user, an identification 214 of a target language associated with the second user, and an identification 216 of a messaging protocol associated with the second user (step 302). In one embodiment, the first user transmits the request to a translation server 106. In another embodiment, the translation server 106 receives the request via a messaging gateway 250, which forwards the request from the user to the translation server 106. In still another embodiment, the request 210 includes an identification of the source language in which the first user composed the message.
[0090] A session data table 230 stores an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification 216 of the messaging protocol associated with the second user (step 304). In some embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a language associated with the first user. In another of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In other embodiments, the session data table stores a session identifier associated with the requested session.
[0091] A messaging session is created between the first user and the second user
(step 306). In one embodiment, a translation server 106 creates the messaging session. In another embodiment, a session management component 220 on the translation server 106 creates the messaging session. In still another embodiment, the translation server 106 sends a request to a first messaging gateway 250 to establish a connection between the server 106 and the first user and sends a request to a second messaging gateway 250' to establish a connection between the server 106 and the second user.
[0092] A translation 260 of the message is generated in a target language associated with the second user (step 308). In one embodiment, the translation server 106 transmits the message to a translation engine 240, with an identification of the source language and an identification of the target language. In another embodiment, the translation server 106 retrieves the identification of the target language from the session data table 230. In still another embodiment, the translation engine 240 retrieves the identification of the target language from the session data table 230.
[0093] In one embodiment, a translation engine 240 selects a translation dictionary 245 for use in translating the message from a source language in which the first user composed the message to the target language associated with the second user. In another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for translating between the source language and the target language. For example, the translation engine 240 may select a first translation dictionary 245 when translating a message from English to Spanish and select a second translation dictionary 245' (not shown) when translating a message from Greek to Japanese.
[0094] In one embodiment, the translation engine 240 transmits the translated message to the translation server 106. In another embodiment, the translation engine 240 transmits the translated message 260 to the session management component 220. In still another embodiment, the translation engine 240 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user.
[0095] Within the messaging session, the message is transmitted to the second user according to the messaging protocol associated with the second user (step 310). In some embodiments, the translation server 106 initiates a first session between itself and the first user via a first messaging gateway 250 using a first messaging protocol, and initiates a second session between itself and the second user via a second messaging gateway 250' using a second messaging protocol. In one of these embodiments, the translation server 106 receives messages from the first user, translates the messages, and then forwards them to the second user. In other embodiments, a session management component 220 on the translation server 106 transmits a request to a messaging gateway to transmit the translated message 260 over a connection to the second user.
[0096] In some embodiment, the second user requests transmission of a second message, in the target language associated with the second user, to the first user. In one of these embodiments, a determination is made that the session data table 230 includes an identification of the first user. In another of these embodiments, a translation of the second message is generated in a language associated with the first user. In still another of these embodiments, the second message is transmitted to the first user according to a messaging protocol associated with the first user.
[0097] Referring now to Fig. 4, a block diagram depicts one embodiment of a system for real-time translation of a message in a source language to a plurality of target languages. The system includes a client device 102, a server 106, a session management component 220, a session data table 230, a translation engine 240, and a messaging gateway 250. In brief overview, the server 106 receives, from a user of the client device 102, a request 210 for message translation, the request 210 including a message 212 in a source language for translation and an identification 214 of a target language. The session data table 230 stores an identification of the user and the identification 214 of the target language. The session management component 220 on the server 106 creates a messaging session between the server 106 and the client device 102. The translation engine 240, in communication with the session management component 220, receives the message 212, an identification of the source language, and the identification 214 of the target language, and generates a translation of the message 260 in the target language. The messaging gateway 250 receives the translation 260 of the message and transmits, within the messaging session, the message 260 to the client device 102' according to a messaging protocol associated with the client device 102'.
[0098] In some embodiments, the system allows a first user to send, via a translation server 106, a message in a source language to participants in a group session, the participants using different target languages, the translation server 106 generating messages translated into the appropriate target languages for each participant. In one of these embodiments, embodiment, the first user requests the transmission of a message to a group of users within a shared group messaging session. In another of these embodiments, a server 106 receiving the request identifies an appropriate target language for each participant, translates the message into the appropriate target language for each participant, and transmits the translated message to each participant. In still another of these embodiments, the first user and each of the participants send and receive messages in their respective languages within a group messaging session, although their languages differ. For example, and in one embodiment, an English-speaking user transmits an SMS message written in English to the server 106 and an Italian-speaking user receives an Italian translation 260 of the SMS message while a French-speaking user in the same messaging session receives a French translation 260' of the SMS message.
[0099] Referring still to FIG. 4, and in greater detail, the server 106 receives, from a user of the client device 102, a request 210 for message translation, the request 210 including a message 212 in a source language for translation and an identification 214 of a target language. In some embodiments, the server 106 is referred to as a translation server. In one embodiment, the server 106 receives the request via a messaging gateway 250. In another embodiment, the server 106 receives the request from the client device 102.
[0100] In some embodiments, the client device 102 requests translations of messages sent to the server 106 via an SMS message and the server 106 responds with an SMS message including the translated message 260. In one of these embodiments, a translation session is established between the client device 102 and the server 106. In another of these embodiments, no session is established. In other embodiments, the server 106 and the client device 102 communicate according to a messaging protocol associated with the client device 102. Messaging protocols include, but are not limited to, the protocols for formatting and exchanging electronic mail, instant messages and text or multimedia messages described above. [0101] In one embodiment, the server 106 retrieves information associated with the first user. In another embodiment, the server 106 retrieves an identification of a preferred language associated with the first user. In still another embodiment, the server 106 retrieves authentication information associated with the first user.
[0102] In one embodiment, the identification of the target language is an abbreviation of the name of the target language. In another embodiment, the request 210 includes an identification of the source language in which the message is written. In some embodiments, the first user transmits a request comprising an alphanumeric string to the server. For example, and in one of these embodiments, a request 210 may have the following form: "t es hello." In this example, the command to translate a message is "t", the identification of the source language is "e" for English, the identification of the target language is "s" for Spanish, and the message in the source language is "hello." In another example, the client device 102 establishes a translation session with the server 106 by sending a request 210 having the following form: "ts es hello." In this example, the client device sends a command to establish a translation session, "ts", with an identification of the source language ("e" for English), an identification of the target language ("s" for Spanish), and the message in the source language ("hello").
[0103] In some embodiments, a user in a session with a server 106 sends a command to save session information for future use. In one of these embodiments, the user may later resume the session. In another of these embodiments, the user may later retrieve information exchanged in the session. In still another of these embodiments, the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias]" to resume a saved session. In yet another of these embodiments, contact information for each session participant and language preferences associated with each session participant are also stored.
[0104] In other embodiments, the server 106 includes a parsing component, which parses the request into the request for message translation, the message, the identification of the source language, and the identification 214 of the target language. In one of these embodiments, the parsing component transmits the request for message translation to the session management component. In another of these embodiments, the parsing component transmits the message, the identification 214 of the target language, and the identification of the source language to the translation engine 240. In still another of these embodiments, the parsing component transmits the request for message translation, the message, the identification of the target language, and the identification of the source language to the session management component 220. In yet another of these embodiments, the parsing component transmits the request for establishment of the session, the message, the identification of the target language, and the identification of the source language to the session data table 230.
[0105] In one embodiment, the user transmits the request to the server 106 via an
SMS message. In another embodiment, the user transmits the request in an SMS message addressed to a short code or control number associated with the server. In still another embodiment, the first user transmits the request to the server 106 via an instant message addressed to an instant message user name associated with the server. For example, an instant messaging robot application may execute on the server and receive instant messages addressed to the server 106.
[0106] In some embodiments, the session data table 230 stores information associated with the user. In one of these embodiments, the session data table 230 stores an identification of a language associated with the first user. In another of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In still another of these embodiments, the session data table 230 stores information retrieved from a user profile associated with the user. In other embodiments, the server 106 retrieves information from the session data table to translate messages and transmit translations from one user to another. In still other embodiments, the session data table 230 stores data in data structures as described above.
[0107] In some embodiments, the session data table 230 stores a transcript of messages exchanged within a translation session between the client device 102 and the server 106. In other embodiments, the session data table 230 stores an identification of a default language associated with the user. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session, the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message received in the subsequent session for transmission to the user.
[0108] In one embodiment, the session management component 220 establishes a messaging session between the user and the server 106. In another embodiment, the session management component 220 establishes a messaging session between the user and the server 106 upon authenticating the user. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts. In other embodiments, the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol.
[0109] In some embodiments, the session management component 220 receives the request from the user. In one of these embodiments, the session management component 220 receives the request via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request from the server 106.
[0110] In some embodiments, the session management component 220 forwards the request to a translation engine 240. In other embodiments, the session management component 220 forwards the message in the request to the translation engine 240. In still other embodiments, the session management component 220 forwards the message in the source language, an identification of the source language, and the identification 214 of the target language.
[0111] The translation engine 240, in communication with the session management component 220, receives the message, an identification of the source language, and the identification 214 of the target language associated with the session participant, and generates a translation 260 of the message in the target language. In one embodiment, the translation engine 240 is in communication with at least one translation dictionary 245. In another embodiment, the translation engine 240 comprises at least one translation dictionary 245. In still another embodiment, the translation engine 240 accesses a translation dictionary 245 to generate a translation 260 of the message from the source language to the target language.
[0112] In one embodiment, the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary optimized for generating translations from the identified source language and the identified target language.
[0113] In some embodiments, the translation engine 240 selects a second translation dictionary 245' (not shown) in the plurality of translation dictionaries for translation of a different pairing of source and target languages. In one of these embodiments, the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message in a source language from the user into a target language associated with the second user and select a second translation dictionary 245' (not shown) in the plurality of translation dictionaries for translating a response in a target language from the second user to the user that composed the initial message in the source language. [0114] In some embodiments, the translation engine 240 includes a translation memory that stores an enumeration of phrases, terms, sentences, or other segments of text in the source language with a corresponding translation into the target language for each of the enumerated segments of text. In one of these embodiments, the translation engine 240 accesses the translation memory to retrieve a translation in a target language for a message in a source language.
[0115] In some embodiments, the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In other embodiments, the server provides an interface to collaboration software, such as server-side Wiki software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In still other embodiments, user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
[0116] In one embodiment, the translation engine 240 transmits the generated translation 260 to the session management component 220. In another embodiment, the session management component 220 selects a messaging gateway 250 responsive to receiving an identification of a messaging protocol associated with the second user. In still another embodiment, the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to the second user. In yet another embodiment, the session management component 220 transmits, to the messaging gateway 250, an identification of a messaging protocol to use in transmitting the translated message 260 to the second user.
[0117] The messaging gateway 250 receives the translation 260 of the message and transmits, within the messaging session, the message to the user according to a messaging protocol associated with the user. In one embodiment, a messaging gateway 250 resides on a server 106. In another embodiment, a web server includes a messaging gateway 250. In still another embodiment, a messaging gateway 250 is provided by software executing on a client 102 or a server 106. In still even another embodiment, a messaging gateway 250 is a router. In yet another embodiment, the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
[0118] Referring still to FIG. 4, in one embodiment, the server 106 receives, from a user, a request for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants. The session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants. The session management component 220 on the server creates a short message service session between each session participant in the plurality of session participants and the user. The translation engine 240 generates, for a first session participant in the plurality of session participants, a translation 260 of the message in a first target language associated with the first session participant, and generates, for a second session participant in the plurality of session participants, a translation 260' of the message in a second target language associated with the second session participant. The messaging gateway transmits, within the short message service session, the translation 260 of the message in the first target language to the first session participant and transmits the translation 260' of the message in the second target language to the second session participant in the plurality of session participants.
[0119] The server 106 receives, from a user, a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification 214 of a target language associated with each session participant in the plurality of session participants. In some embodiments, the server 106 is referred to as a translation server. In one embodiment, the server 106 receives the request from the user via a messaging gateway 250. In another embodiment, the server 106 receives the request from a client device 102 operated by the user. In still another embodiment, the server 106 receives a request to transmit a translated version of the message to each of a plurality of session participants, the message translated according to a target language associated with each user in the plurality of session participants. In yet another embodiment, the target language associated with a first user in the plurality of session participants is different from a target language associated with a second user in the plurality of session participants. In some embodiments, messaging protocols used to transmit the translated messages amongst the plurality of session participants include the protocols for email, instant message, SMS, and MMS described above.
[0120] In one embodiment, the server 106 retrieves information associated with the user. In another embodiment, the server 106 retrieves an identification of a preferred language associated with the user. In still another embodiment, the server retrieves authentication information associated with the user.
[0121] In one embodiment, the request 210 includes an identifier for a messaging service account associated with each of the session participants in the plurality of session participants. In some embodiments, the request 210 may include, without limitation, mobile phone numbers associated with the plurality of session participants, electronic mail addresses associated with the plurality of session participants, SMS addresses, which may combine mobile phone numbers and email addresses associated with the plurality of session participants, or instant message user names associated with the plurality of session participants. In one of these embodiments, the server 106 receives a request for establishment of an SMS messaging session amongst a plurality of session participants, the request including SMS addresses for each of the plurality of session participants. In another of these embodiments, the server 106 receives a request for establishment of a multilingual instant messaging session amongst a plurality of session participants, the request including instant messaging user names for each of the plurality of session participants.
[0122] In some embodiments, the request includes a command to terminate a messaging session. In other embodiments, the request includes an identification of the source language in which the message is written. In still other embodiments, the identifier of a session participant identifies the first user. In one of these embodiments, the user requests that the server translate a message and transmit the translation back to the user.
[0123] In some embodiments, the request 210 includes a command to store messages exchanged during a messaging session. In one of these embodiments, the first user sends a command to save session information for future use. For example, the first user may transmit a command having the following form: "gs save [alias]". In this example, a group session (identified by "gs") is stored and associated with the alias provided by the first user. In another example, the command may have the following form: "ts save [alias]." In another of these embodiments, contact information for each session participant and language preferences associated with each session participant are also stored.
[0124] In other embodiments, a user in a session with a server sends a command to save session information for future use. In one of these embodiments, the user may later resume the session. In another of these embodiments, the user may later retrieve information exchanged in the session. In still another of these embodiments, the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias] to resume a saved session.
[0125] In one embodiment, the user transmits the request 210 to the server 106 via an SMS message. In another embodiment, the user transmits the request 210 in an SMS message addressed to a short code or control number associated with the server 106. In still another embodiment, the user transmits the request 210 to the server 106 via an electronic mail message addressed to an email address associated with the server 106. In yet another embodiment, the user transmits the request 210 to the server 106 via an instant message addressed to an instant message user name associated with the server 106. For example, an instant messaging robot application may execute on the server and receive instant messages addressed to the server 106. [0126] In some embodiments, the first user transmits a request 210 comprising an alphanumeric string to the server 106. For example, and in one of these embodiments, a request 210 may have the following form: "ts es 5551234567." In this example, the command to establish a translation session is "ts", the identification of the source language is "e" for English, the identification of the target language is "s" for Spanish, and the identification of a session participant is "5551234567." In another of these embodiments, a request 210 may include an identification of a second source language, an identification of a second target language, and an identification of a second session participant. For example, in this embodiment, the request 210 may have the following form: "ts ji 5553217654; es 5551234567."
[0127] In one embodiment, the request 210 may have the following form: "gs
5559876543 s 5551239876 p 5554440000." In this embodiment, "gs" is the command for establishing a group messaging session, "5559876543 s" identifies a first session participant and a target language (Spanish) associated with the first session participant, "5551239876 p" identifies a second session participant and a target language (Portuguese) associated with the second session participant, and "5554440000" identifies a third session participant using a default language of the user initiating the messaging session.
[0128] In other embodiments, the server 106 includes a parsing component, which parses the request 210 into the message 212, the identification 214 of the target language, the identification of the source language, and the identifications of the plurality of session participants. In one of these embodiments, the parsing component transmits the request 210 for establishment of the session and the identifications of the session participants to the session management component 220. In another of these embodiments, the parsing component transmits the message 212, the identification 214 of the target language, and the identification of the source language to the translation engine 240. In still another of these embodiments, the parsing component transmits the request 210 for establishment of the session, the identifications of the session participants, the message 212, the identification 214 of the target language, and the identification of the source language to the session management component 220. In yet another of these embodiments, the parsing component transmits the request 210 for establishment of the session, the identifications of the session participants, the message 212, the identification 214 of the target language, and the identification of the source language to the session data table 230.
[0129] The session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants. In some embodiments, the session data table 230 stores data as described above.
[0130] In some embodiments, the session data table 230 stores a transcript of messages exchanged within a messaging session. In other embodiments, the session data table 230 stores an identification of a default language associated with a user or session participant. In one of these embodiments, the session management component 220 uses the default language when requesting translations for the user in subsequent messaging sessions. For example, the session data table 230 stores "s 5554443321" in a first session, the session management component 220 retrieves the association between the user at "5554443321" and Spanish in a subsequent session and requests a Spanish translation of a message 212 received in the subsequent session for transmission to the user.
[0131] The session management component 220 on the server 106 creates a short message service session between each session participant in the plurality of session participants and the user. In one embodiment, the session management component 220 resides on the server 106. In another embodiment, the session management component 220 resides on a second server 106' (not shown).
[0132] In one embodiment, the session management component 220 establishes a messaging session between the user and each session participant in the plurality of session participants upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the user and each of the session participants upon authenticating the user and each of the session participants. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts.
[0133] In one embodiment, the session management component 220 establishes a first messaging session between itself and the user and a plurality of messaging sessions between itself and each session participant in the plurality of session participants. In another embodiment, the session management component 220 forwards messages received from the user in the first messaging session to all of the session participants in the plurality of messaging sessions.
[0134] In some embodiments, the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol. In other embodiments, the session management component 220 initiates a session including as participants in the session the user requesting the session and each of the plurality of session participants identified in the request 210. In one of these embodiments, the session management component 220 removes one of the plurality of session participants from the session upon receiving a request 210 from the one of the plurality of session participants to disconnect from the session. In another of these embodiments, the session management component 220 modifies a target language associated with one of the plurality of session participants responsive to receiving a request 210 from one of the plurality of session participants to translate messages for the one of the plurality of session participants into a different target language than the target language identified by the user requesting establishment of the request 210.
[0135] In some embodiments, the session management component 220 adds a session participant to the plurality of session participants responsive to receiving a request 210 to add an additional user to the group messaging session. In still other embodiments, the session management component 220 broadcasts messages to all members of the group messaging session, including the user and the plurality of session participants.
[0136] In some embodiments, the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request 210 via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
[0137] In some embodiments, the session management component 220 forwards the message 212 in the received request 210 to the translation engine 240. In other embodiments, the session management component 220 forwards the message 212 in the source language, an identification of the source language, and the identification 214 of the target language.
[0138] The translation engine 240 generates, for a first session participant in the plurality of session participants, a translation of the message 212 in a first target language associated with the first session participant, and generates, for a second session participant in the plurality of session participants, a translation of the message 260 in a second target language associated with the second session participant. In one embodiment, the translation engine 240 is in communication with at least one translation dictionary 245. In another embodiment, the translation engine 240 comprises at least one translation dictionary 245. In still another embodiment, the translation engine 240 accesses a translation dictionary 245 to generate a translation of the message 212 from the source language to the target language.
[0139] In one embodiment, the translation engine 240 selects a translation dictionary 245 from a plurality of translation dictionaries. In another embodiment, the translation engine 240 selects a translation dictionary 245 based on the identification of the source language and the identification 214 of the target language. In still another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for generating translations from the identified source language and the identified target language.
[0140] In some embodiments, the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country-specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
[0141] In some embodiments, the translation engine 240 selects a second translation dictionary 245 in the plurality of translation dictionaries for translation of a different pairing of source and target languages. In one of these embodiments, the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating the message 212 in the source language into a target language associated with a first session participant in the plurality of session participants and select a second translation dictionary 245' in the plurality of translation dictionaries for translating the message 212 in the source language into a target language associated with a second session participant in the plurality of session participants. In still another of these embodiments, the translation engine 240 may select a first translation dictionary 245 in the plurality of translation dictionaries for translating an initial message 212 in a source language from the user into a target language associated with a session participant in the plurality of session participants and select a second translation dictionary 245' in the plurality of translation dictionaries for translating a response in a target language from the session participant to the user that composed the initial message 212 in the source language.
[0142] In some embodiments, the translation engine 240 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In other embodiments, the server 106 provides an interface to collaboration software, such as server-side Wild software, that enables a user to add or modify information stored in a translation dictionary 245 used by the translation engine 240. In still other embodiments, user modifications to the translations provided by a translation dictionary 245 improve the quality of generated translations.
[0143] In one embodiment, the translation engine 240 transmits the generated translation to the session management component 220. In another embodiment, the session management component 220 transmits the translated message 260 to a messaging gateway 250 for transmission to a session participant in the plurality of session participants.
[0144] The messaging gateway 250 transmits, within the short message service session, the translation of the message 212 in the first target language to the first session participant and transmits the translation of the message 260 in the second target language Io the second session participant in the plurality of session participants. In one embodiment, a messaging gateway 250 resides on a server 106. In another embodiment, a web server includes a messaging gateway 250. In still another embodiment, a messaging gateway 250 is provided by software executing on a client 102 or a server 106. In still even another embodiment, a messaging gateway 250 is a router. In yet another embodiment, the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
[0145] In one embodiment, the messaging gateway 250 includes a routing table.
In another embodiment, the messaging gateway 250 accesses the routing table. In still another embodiment, the session management component 220 accesses a routing table to identify a messaging gateway 250.
[0146] In some embodiments, a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications. In one of these embodiments, the session management component 220 receives a request 210 including an identification of a second user. In another of these embodiments, the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user. In still another of these embodiments, a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user. In yet another of these embodiments, the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user.
[0147] For example, and in some embodiments, a user may transmit the following request 210: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim". In one embodiment, the session management component 220 accesses the routing table to identify a messaging gateway 250 providing functionality for transmitting AOL INSTANT MESSENGER messages to "'usersmith." In another embodiment, the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol. In still another embodiment, the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient. In yet another embodiment, the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request 210.
[0148] In some embodiments, the server 106 receives a second message 212' (not shown) from a first session participant in the plurality of session participants and determines that the session data table 230 includes an identification of the first session participant. In one of these embodiments, the translation engine 240 generates, for each session participant in the plurality of session participants, a translation of the second message 212' in the target language associated with each session participant. In another of these embodiments, the messaging gateway 250 transmits the translation of the second message 212' to the user and to each session participant in the plurality of session participants. [0149] Referring now to Fig. 5, a flow diagram depicts one embodiment of the steps taken in a method for real-time translation within a group short message service session. The method includes the step of receiving, from a user, a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants (step 502). A session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants(step 504). A short message service session is created between each session participant in the plurality of session participants and the user (step 506). A translation of the message 260 is generated for a first session participant in the plurality of session participants in a first target language associated with the first session participant (step 508). Within the short message service session, the translation of the message 212 in the first target language is transmitted to the first session participant (step 510). A translation of the message 260 is generated, for a second session participant in the plurality of session participants, in a second target language associated with the second session participant (step 512). The translation of the message 260' in the second target language is transmitted to the second session participant in the plurality of session participants (step 514).
[0150] Referring now to Fig. 5, and in greater detail, the server 106 receives from a user a request 210 for establishment of a short message service session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants (step 502). In some embodiments, the request 210 is transmitted to the server 106 in a short message service message. In other embodiments, the request 210 is transmitted to the server 106 via a plurality of short message service messages. In one embodiment, the message 212 in the source language is transmitted separately from the request for establishment of the short message service session. In one embodiment, the first user transmits the request 210 to a translation server. In another embodiment, the translation server 106 receives the request 210 via a messaging gateway 250, which forwards the request 210 from the user to the translation server 106. In still another embodiment, the request 210 includes an identification of the source language in which the first user composed the message 212.
[0151] A session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification 214 of the target language associated with each session participant in the plurality of session participants (step 504). In some embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a language associated with the first user. In other embodiments, the session data table 230 stores a session identifier associated with the requested session.
[0152] A short message service session is created between each session participant in the plurality of session participants and the user (step 506). In one embodiment, a translation server 106 creates the messaging session. In another embodiment, a session management component 220 on the translations server 106 creates the messaging session. In still another embodiment, the session management component 220 sends a request to a short message service messaging gateway 250 to initiate a short message session including as participants the user and the plurality of session participants identified by the user.
[0153] A translation of the message 260 is generated for a first session participant in the plurality of session participants in a first target language associated with the first session participant (step 508). In one embodiment, the translation server 106 transmits the message 212 to a translation engine 240, with an identification of the source language and an identification 214 of the target language. In another embodiment, the translation server 106 retrieves the identification 214 of the target language from the session data table 230. In still another embodiment, the translation engine 240 retrieves the identification 214 of the target language from the session data table 230. [0154] In one embodiment, a translation engine 240 selects a translation dictionary 245 for use in translating the message 212 from a source language in which the first user composed the message 212 to the target language associated with the first session participant. In another embodiment, the translation engine 240 selects a translation dictionary 245 optimized for translating between the source language and the target language. For example, the translation engine 240 may select a first translation dictionary 245 when translating a message 212 from English to Spanish for the first session participant and select a second translation dictionary 245' when translating the message 212 from English to Japanese for a second session participant, and select a third translation engine 240 when translating a response in Japanese from the second session participant to the English-speaking user.
[0155] In some embodiments, the translation engine 240 selects a translation dictionary 245 optimized for a particular target language. In one of these embodiments, the translation engine 240 selects a country- specific translation dictionary. In other embodiments, the translation engine 240 selects a topic-specific dictionary. In still other embodiments, the translation engine 240 selects a dictionary 245 optimized to address slang usage issues. In one of these embodiments, the translation engine 240 selects a dictionary 245 optimized to address instant messaging or short messaging slang usage issues.
[0156] A translation of the message 260' is generated, for a second session participant in the plurality of session participants, in a second target language associated with the second session participant (step 512). In one embodiment, the second session participant is associated with a second target language, which differs from the source language in which the message 212 was composed. In another embodiment, the second session participant is associated with a second target language, which differs from the target language associated with the first session participant.
[0157] Within the short message service session, the translation of the message
260 in the first target language is transmitted to the first session participant (step 510). The translation of the message 260' in the second target language is transmitted (step 514) to the second session participant in the plurality of session participants. In one embodiment, the translation engine 240 transmits the translated message 260 to the translation server 106. In another embodiment, the translation engine 240 transmits the translated message 260' to the session management component 220. In still another embodiment, the translation engine 240 transmits the translated message 260' to a messaging gateway 250 for transmission to the session participant.
[0158] In some embodiments, a second message 212' is received from one of the session participants in the plurality of session addressed to the user and the plurality of session participants. In one of these embodiments, the second message 212' responds to a previously-transmitted message. In another of these embodiments, the session management component 220 determines that the session data table 230 includes an identification of the second user. In still another of these embodiments, the translation engine 240 generates, for each session participant in the plurality of session participants, a translation of the second message 260' in the target language associated with each session participant. In yet another of these embodiments, the messaging gateway 250 transmits the translation of the second message 260' to the user and to each session participant in the plurality of session participants.
[0159] Referring now to Fig. 6, a block diagram depicts one embodiment of a system for establishing a messaging session using multiple messaging protocols. In some embodiments, methods and systems for establishing a messaging session using multiple messaging protocols allow a user to send a message 212 to participants in a group session, the participants communicating within a single session while using different messaging protocols. In one of these embodiments, a server 106 receiving a request 210 for establishment of a group messaging session identifies a messaging protocol for each participant in the session and transmits the translated message 260 to each participant. In still another of these embodiments, the user and each of the participants send and receive messages within a single group messaging session, although their messaging protocols differ. For example, and in one embodiment, a first user transmits an SMS message to the server 106 and a second user receives an instant message while a third user receives an electronic mail message. [0160] Referring now to Fig. 6, and in greater detail, a system for establishing a messaging session using multiple messaging protocols includes a server 106, a session data table 230, a session management component 220, a first messaging gateway 250, a second messaging gateway 250' and a third messaging gateway 250". In brief overview, the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants. The session data table 230 stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants. The session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the first user. The first messaging gateway 250 transmits, within the messaging session, the message 260 to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant. The second messaging gateway 250' transmits, within the messaging session, the message 260' to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
[0161] In greater detail, the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
[0162] In some embodiments, the server 106 is referred to as a translation server.
In one embodiment, the server 106 receives the request 210 via a messaging gateway 250. In another embodiment, the server 106 receives the request 210 from the first client device 102. In still another embodiment, the server 106 receives a request 210 to translate the message 212 and transmit the message to the second user according to a messaging protocol associated with the second user. In yet another embodiment, the messaging protocol associated with the second user is a different messaging protocol than a messaging protocol associated with the first user. In some embodiments, messaging protocols used to transmit the translated messages amongst the plurality of session participants include the protocols for email, instant message, SMS, and MMS described above.
[0163] In one embodiment, the server 106 retrieves information associated with the first user. In another embodiment, the server 106 retrieves an identification of a preferred messaging protocol associated with the first user. In still another embodiment, the server 106 retrieves authentication information associated with the first user.
[0164] In one embodiment, the request 210 includes a command to terminate a messaging session. In some embodiments, the identifier of the second user identifies the first user. In one of these embodiments, the first user requests that the server 106 translate a message 212 and transmit the translation to the first user.
[0165] In some embodiments, the request 210 includes a command to store messages exchanged during a messaging session. In one of these embodiments, the first user sends a command to save session information for future use. For example, the first user may transmit a command having the following form: "gs save [alias]". In this example, the group session (identified by "gs") is stored and associated with the alias provided by the first user. In another example, the command may have the following form: "ts save [alias]." In another of these embodiments, contact information for each session participant and messaging protocol preferences associated with each session participant are also stored.
[0166] In other embodiments, a user in a session with a server 106 sends a command to save session information for future use. In one of these embodiments, the user may later resume the session. In another of these embodiments, the user may later retrieve information exchanged in the session. In still another of these embodiments, the user may send a command having the form "ts save [alias]" to store a session and send a command having the form "ts [alias] to resume a saved session. [0167] In one embodiment, the first user transmits the request 210 to the server
106 via an SMS message. In another embodiment, the first user transmits the request 210 in an SMS message addressed to a short code or control number associated with the server 106. In still another embodiment, the first user transmits the request 210 to the server 106 via an electronic mail message addressed to an email address associated with the server 106. In yet another embodiment, the first user transmits the request 210 to the server 106 via an instant message addressed to an instant message user name associated with the server 106. For example, an instant messaging robot application may execute on the server 106 and receive instant messages addressed to the server 106.
[0168] In some embodiments, the first user transmits a request 210 comprising an alphanumeric string to the server 106. For example, and in one of these embodiments, a request 210 may have the following form: "s 5551234567, 5557654321." In this example, the command to establish a session is "s", the identification of a first session participant in the plurality of session participants is 5551234567, and the identification of a second session participant is "5557654321." In another of these embodiments, a request 210 may be sent via a first messaging protocol, identify a first session participant associated with a second messaging protocol and identify a second session participant associated with a third messaging protocol, which may be the same as or different from the first and second messaging protocol. For example, the request 210 may be sent via an SMS text message and have the following form: "s IMUser24; 5551236543." In another embodiment, the request 210 may have the following form: "Gs 5559876543 michael@aim smith@gmail.com." In this embodiment, "Gs" is the command for establishing a group messaging session, "5559876543" identifies a first session participant receiving messages via SMS, "Michael@aim" identifies a second session participant receiving messages via instant messenger services provided by AOL INSTANT MESSENGER, and "smith@gmail.com" identifies a third session participant receiving messages. All three session participants communicate in the default language of the first user.
[0169] In other embodiments, the server 106 includes a parsing component, which parses the request 210 into the message 212, and the identifications of the plurality of session participants. In one of these embodiments, the parsing component transmits the request 210 for establishment of the session and the identifications of the plurality of session participants to the session management component 220. In still another of these embodiments, the parsing component transmits the request 210 for establishment of the session and the identifications of the plurality of session participants to the session data table 230.
[0170] In one embodiment, the request 210 includes an identifier for a messaging service account associated with a session participant. In some embodiments, the request 210 may include, without limitation, mobile phone numbers associated with the plurality of session participants, electronic mail addresses associated with the plurality of session participants, SMS addresses, which may combine mobile phone numbers and email addresses associated with the plurality of session participants, or instant message user names associated with the plurality of session participants. In one of these embodiments, the server 106 receives a request 210 for establishment of an SMS messaging session amongst a plurality of session participants, the request 210 including SMS addresses for each of the plurality of session participants. In another of these embodiments, the server 106 receives a request 210 for establishment of a hybrid messaging session amongst a plurality of session participants, the request 210 identifying a different messaging protocol for each of the plurality of session participants. For example, and in one embodiment, the server 106 may receive a request 210 from a user via an SMS session for establishment of a hybrid messaging session, the request 210 identifying an instant message 212 user name of a first session participant, an email address associated with a second session participant, and an SMS address associated with a third session participant.
[0171] The session data table 230 stores an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants. In some embodiments, the session data table 230 stores data as described above. In other embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In another of these embodiments, the session data table 230 stores information retrieved from a user profile associated with the user. In still other embodiments, the server 106 retrieves information from the session data table 230 to transmit translations from one user to another.
[0172] The session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the first user. In one embodiment, the session management component 220 resides on the server 106. In another embodiment, the session management component 220 resides on a second server 106.
[0173] In one embodiment, the session management component 220 establishes a messaging session between the first user and the plurality of session participants upon authenticating the first user. In another embodiment, the session management component 220 establishes a messaging session between the first user and the plurality of session participants upon authenticating the first user and each session participant in the plurality of session participants. In some embodiments, the session management component 220 authorizes the users. In one of these embodiments, a user has an account that authorizes the user to access one or more services provided by the system. In another of these embodiments, the user does not have an account with the system. In still another of these embodiments, the session management component 220 provides a different level of service to users with accounts than a level of service received by users without accounts.
[0174] In one embodiment, the session management component 220 establishes a first messaging session between itself and the first user and a plurality of messaging sessions between itself and each session participant in the plurality of session participants. In another embodiment, the session management component 220 forwards messages received via a first messaging protocol from the first user in the first messaging session to all of the session participants in the plurality of messaging sessions.
[0175] In some embodiments, the session management component 220 initiates a session with each of the client devices 102 using a protocol such as the Session Initiation Protocol (SIP) or the SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) protocol. In other embodiments, the session management component 220 initiates a session including as participants in the session the user requesting the session and each of the plurality of session participants identified in the request 210. In one of these embodiments, the session management component 220 removes one of the plurality of session participants from the session upon receiving a request 210 from the one of the plurality of session participants to disconnect from the session. In another of these embodiments, the session management component 220 modifies a messaging protocol associated with one of the plurality of session participants responsive to receiving a request 210 from one of the plurality of session participants to associate a different messaging protocol with the session participant than the messaging protocol identified by the user requesting establishment of the request 210.
[0176] In some embodiments, the session management component 220 adds a session participant to the plurality of session participants responsive to receiving a request 210 to add an additional user to the group messaging session. In still other embodiments, the session management component 220 broadcasts messages to all members of the group messaging session, including the user and the plurality of session participants.
[0177] In some embodiments, the session management component 220 receives the request 210 from the user. In one of these embodiments, the session management component 220 receives the request 210 via a messaging gateway 250 in communication with the client device 102 operated by the user. In another of these embodiments, the session management component 220 receives the request 210 directly from the client device 102 operated by the user. In still another of these embodiments, the session management component 220 receives the request 210 from the server 106.
[0178] In some embodiments, the session management component 220 forwards the message 212 to a messaging gateway 250. In other embodiments, the session management component 220 forwards the message 212 to a plurality of messaging gateways. In still other embodiments, the session management component 220 forwards the message 212 to a gateway selected responsive to an identification of the messaging protocol associated with a session participant in the plurality of session participants.
[0179] In some embodiments, the system includes a plurality of messaging gateways through which users may send and receive messages to other users. In one of these embodiments, a first messaging gateway 250' in the plurality of messaging gateways accepts user input via a messaging protocol different from a messaging protocol accepted by a second messaging gateway 250" in the plurality of messaging gateways. In another of these embodiments, each messaging gateway in the plurality of messaging gateways accepts user input via a different messaging protocol. For example, one messaging gateway 250' may receive user input via electronic mail messages while another messaging gateway 250" may receive user input via a short message service. The first messaging gateway 250' transmits, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant. The second messaging gateway 250" transmits, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
[0180] In one embodiment, a messaging gateway 250 resides on a server 106. In another embodiment, a web server includes a messaging gateway 250. In still another embodiment, a messaging gateway 250 is provided by software executing on a client 102 or a server 106. In still even another embodiment, a messaging gateway 250 is a router. In yet another embodiment, the messaging gateway 250 is provided by a CGI script executing in a web page displayed to the user and forwarding user input to a session management component 220.
[0181] In one embodiment, the messaging gateway 250 includes a routing table.
In another embodiment, the messaging gateway 250 accesses the routing table. In still another embodiment, the session management component 220 accesses a routing table to identify a messaging gateway 250. In some embodiments, a routing table maps user addresses across different protocols and services as well as country-specific short codes for international communications. In one of these embodiments, the session management component 220 receives a request 210 including an identification of a second user. In another of these embodiments, the session management component 220 accesses the routing table to identify a messaging protocol associated with the second user. In still another of these embodiments, a user of a client device 102 associated with a first messaging protocol transmits a request 210 including an identification of a second user associated with a second messaging protocol, the identification providing a portion of an address used to transmit a message to the second user. In yet another of these embodiments, the session management component 220 accesses the routing table to retrieve the address required to transmit the message to the second user. For example, and in some embodiments, a user may transmit the following request 210: "ts es usersmith@aim", intending to establish a translation session with a user having an AOL IM user name of "usersmith@aim". In one embodiment, the session management component 220 accesses the routing table to identify a messaging gateway 250 providing functionality for transmitting AOL INSTANT MESSENGER messages to "usersmith." In another embodiment, the session management component 220 accesses the routing table to parse the user name into a user name and a messaging protocol. In still another embodiment, the session management component 220 accesses the routing table to identify an international calling code required for transmitting a message to a recipient. In yet another embodiment, the session management component 220 accesses the routing table to identify a recipient associated with an international short code included in the request 210.
[0182] In some embodiments, the server 106 receives a second message 212' from a first session participant in the plurality of session participants and determines that the session data table 230 includes an identification of the first session participant. In one of these embodiments, the messaging gateway 250 transmits the second message to the user and to each session participant in the plurality of session participants.
[0183] Referring now to Fig. 7, a flow diagram depicts one embodiment of the steps taken in a method for establishing a group messaging session using multiple messaging protocols. The method includes the step of receiving, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 702). A session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 704). A messaging session is created between the session participants in the plurality of session participants and the user (step 706). Within the messaging session, the message is transmitted to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant (step 708). Within the messaging session, the message is transmitted to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant (step 710).
[0184] The server 106 receives from a user a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 702). In one embodiment, the user transmits the request 210 to a server 106. In another embodiment, the server 106 receives the request 210 via a messaging gateway 250, which forwards the request 210 from the user to the server 106.
[0185] A session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 704). In some embodiments, the session data table 230 stores information associated with the first user. In one of these embodiments, the session data table 230 stores an identification of a messaging protocol associated with the first user. In other embodiments, the session data table 230 stores a session identifier associated with the requested session. [0186] A messaging session is created between the session participants in the plurality of session participants and the user. In one embodiment, a server 106 creates the messaging session (step 706). In another embodiment, a session management component 220 on the server 106 creates the messaging session. In still another embodiment, the server 106 sends a request 210 to a first messaging gateway 250 to establish a connection between the server 106 and the user and sends a request 210 to a plurality of messaging gateways to establish a plurality of connections between the server 106 and each session participant in the plurality of session participants.
[0187] Within the messaging session, the message is transmitted to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant (step 708). Within the messaging session, the message is transmitted to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant (step 710). In some embodiments, a session management component 220 on the server 106 transmits a request 210 to a messaging gateway 250 to transmit the translated message 260 over a connection to a session participant in the plurality of session participants. In one of these embodiments, the session management component 220 selects the messaging gateway 250 responsive to the identifications of messaging protocols associated with each of the plurality of session participants.
[0188] Referring now to Fig. 8, a block diagram depicts one embodiment of a system for establishing a messaging session using multiple languages and multiple messaging protocols. In some embodiments, the server 106 receives, from a session participant in the plurality of session participants a second message. In one of these embodiments, the server 106 determines that the session data table 230 includes an identification of the second user. In another of these embodiments, the server 106 transmits the second message to the user and to each session participant in the plurality of session participants according to the messaging protocols associated with the user and with each session participant in the plurality of session participants. [0189] In some embodiments, a translation server 106 initiates a first session between itself and the first client device 102 via a first messaging gateway 250 using a first messaging protocol, and initiates a second session between itself and a first session participant via a second messaging gateway 250' using a second messaging protocol. In one of these embodiments, the translation server 106 receives messages from the first user, translates the messages, and then forwards them to the first session participant. In another of these embodiments, the translation server 106 initiates a third session between itself and a second session participant via a third messaging gateway 250" using a third messaging protocol and forwards messages received from one of the first user and the second user and translated into a third language to the third session participant. In still another of these embodiments, the translation server 106 initiates a third session between itself and a third session participant using one of the first messaging protocol and the second messaging protocol and forwards messages received from one of the first user and the second user and translated into a third language to the third user.
[0190] Referring now to Fig. 9, a flow diagram depicts one embodiment of the steps taken in a method for establishing a group messaging session using multiple languages and multiple messaging protocols. The method includes the step of receiving, by the server 106, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 902). In one of these embodiments, the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, the identification 214 of the target language associated with each session participant in the plurality of session participants, and the identification of a messaging protocol associated with each session participant in the plurality of session participants (step 904). In another of these embodiments, a session management component 220 on the server 106 creates a messaging session between each session participant in the plurality of session participants and the user (step 906). In still another of these embodiments, a translation engine 240 generates (step 908), for a first session participant in the plurality of session participants, a translation of the message 260 in a first target language associated with the first session participant, and generates (step 912), for a second session participant in the plurality of session participants, a translation of the message 260' in a second target language associated with the second session participant. In yet another of these embodiments, a messaging gateway 250 transmits (step 910), within the messaging session, the translation of the message 260 in the first target language to the first session participant, according to a first messaging protocol associated with the first session participant, and transmits (step 914) the translation of the message 260' in the second target language to the second session participant, according to a second messaging protocol associated with the second session participant.
[0191] In some embodiments, the server 106 receives, from a user, a request 210 for establishment of a messaging session among a plurality of session participants, the request 210 including a message 212 in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants (step 902).
[0192] In another embodiment, the request 210 may have the following form: "Gs
5559876543 s michael@aim f smith@gmail.com." In this embodiment, "Gs" is the command for establishing a group messaging session, "5559876543 s" identifies a first session participant receiving messages translated into Spanish via SMS, "Michael@aim P' identifies a second session participant receiving messages translated into French via instant messenger services provided by AOL INSTANT MESSENGER, and "smith@gmail.com" identifies a third session participant receiving messages in the default language of the first user via electronic mail messages.
[0193] In some embodiments, the session data table 230 stores an identification of each of the plurality of session participants, an identification of the user, the identification 214 of the target language associated with each session participant in the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants (step 904). In one of these embodiments, a messaging session is created between the session participants in the plurality of session participants and the user (step 906). In another of these embodiments, a translation of the message 260 is generated (step 908) for a first session participant in the plurality of session participants in a first target language associated with the first session participant and the translation of the message 260 in the first target language is transmitted (step 910) to the first session participant, according to a first messaging protocol associated with the first session participant. In still another of these embodiments, a translation of the message 260' is generated (step 912) for a second session participant in the plurality of session participants in a second target language associated with the second session participant; and transmitted (step 914) within the messaging session to the second session participant, according to a second messaging protocol associated with the second session participant.
[0194] In some embodiments, when a session participant is invited to a group messaging session they receive a message welcoming them, for example, a message stating "You have been invited to a Group Text session. Respond to this message with your initials to join." In one of these embodiments, group messages received from this participant will begin with the users initials, i.e., "MD: Hi, what are you doing today?" In another of these embodiments, each of the participants in a session receive a notification when a new user joins, the notification including the new user's identifier (e.g., SMS, IM or Email address) and the new user's initials. In other embodiments, session participants can send private messages to other session participants in a session by including the target user's initials, i.e., "JS: Let's not talk about that." In still other embodiments, a user initiating a session can invite additional participants by sending a command to add participants and identifier for each user(s). For example, the user may send a command such as "add 5556771 1 1 1" to add a user associated with SMS number 5556771 1 11 or "add 55567711 1 1 g" to translate the user's session into German. In yet other embodiments, users can drop out of a group text session by sending their initials followed by a command to terminate the session. For example, a user may request 210 termination of a session by sending a command to the server 106 such as "JS end." In one of these embodiments, other users are notified that a participant has dropped out of a session. For example, a user may receive a notification that "User JS has dropped from the session". The initiator can end a group messaging session at any time by sending a command to the server 106 to do so, such as "GS stop, quit or end."
[0195] The systems and methods described above may be implemented as a method, apparatus or article of manufacture using programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The systems and methods described above may be provided as one or more computer- readable programs embodied on or in one or more articles of manufacture. The term "article of manufacture" as used herein is intended to encompass code or logic accessible from and embedded in one or more computer-readable devices, firmware, programmable logic, memory devices (e.g., EEPROMs, ROMs, PROMs5 RAMs, SRAMs, etc.), hardware (e.g., integrated circuit chip, Field Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), etc.), electronic devices, a computer readable non-volatile storage unit (e.g., CD-ROM, floppy disk, hard disk drive, etc.), a file server providing access to the programs via a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. The article of manufacture includes hardware logic as well as software or programmable code embedded in a computer readable medium that is executed by a processor. In general, the computer-readable programs may be implemented in any programming language, LISP, PERL, C, C++, C#, PROLOG, or any byte code language, such as JAVA. The software programs may be stored on or in one or more articles of manufacture as object code.
[0196] Having described certain embodiments of methods and systems for translation within messaging environments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the disclosure as defined by the following claims.

Claims

CLAIMS What is claimed is:
1. A method for real-time translation within a group short message service session, the method comprising the steps of:
(a) receiving, from a user, a request for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants;
(b) storing in a session data table, an identification of each of the plurality of session participants, an identification of the user, and the identification of the target language associated with each session participant in the plurality of session participants;
(c) creating a short message service session between each session participant in the plurality of session participants and the user;
(d) generating, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant;
(e) transmitting, within the short message service session, the translation of the message in the first target language to the first session participant; (f) generating, for a second session participant in the plurality of session participants, a translation of the message in a second target language associated with the second session participant; and
(g) transmitting the translation of the message in the second target language to the second session participant in the plurality of session participants.
2. The method of claim 1 further comprising the steps of:
(h) receiving, from a second user, a second message;
(i) determining that the session data table includes an identification of the second user; (j) generating, for each session participant in the plurality of session participants, a translation of the second message in the target language associated with each session participant; and (k) transmitting the translation of the second message to the user and to each session participant in the plurality of session participants.
3. The method of claim 1 , further comprising the step of receiving a request for establishment of a messaging session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
4. The method of claim 3, wherein step (b) further comprises storing, in the session data table, the identification of the messaging protocol associated with each session participant in the plurality of session participants.
5. The method of claim 4 further comprising the steps of: transmitting, within the messaging session, the translation of the message to the first session participant, according to a first messaging protocol associated with the first session participant; and transmitting, within the messaging session, the translation of the message to the second session participant, according to a second messaging protocol associated with the second session participant.
6. A system for real-time translation within a group short message service session comprising: a server receiving, from a user, a request for establishment of a short message service session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants and including an identification of a target language associated with each session participant in the plurality of session participants; a session data table storing an identification of each of the plurality of session participants, an identification of the user, and the identification of the target language associated with each session participant in the plurality of session participants; a session management component on the server creating a short message service session between each session participant in the plurality of session participants and the user; a translation engine generating, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the first session participant, and generating, for a second session participant in the plurality of session participants, a translation of the message in a second target language associated with the second session participant; and a messaging gateway transmitting, within the short message service session, the translation of the message in the first target language to the first session participant and transmitting the translation of the message in the second target language to the second session participant in the plurality of session participants.
7. The system of claim 6, wherein the server receives the request via a messaging gateway.
8. The system of claim 6, wherein the server receives the request from a client device operated by the user.
9. The system of claim 6, wherein the server further comprises means for receiving a second message from a second user and determining that the session data table includes an identification of the second user.
10. The system of claim 9, wherein the translation engine further comprises means for generating, for each session participant in the plurality of session participants, a translation of the second message in the target language associated with each session participant.
11. The system of claim 10, wherein the messaging gateway further comprises means for transmitting the translation of the second message to the user and to each session participant in the plurality of session participants.
12. The system of claim 6, wherein the server further comprises means for receiving a request for establishment of a messaging session among a plurality of session participants, the request including a message in a source language for transmission to each session participant in the plurality of session participants, an identification of a target language associated with each session participant in the plurality of session participants, and an identification of a messaging protocol associated with each session participant in the plurality of session participants.
13. The system of claim 12, wherein the session data table further comprises a stored identification of the messaging protocol associated with each session participant in the plurality of session participants.
14. The system of claim 13, wherein the messaging gateway further comprises means for transmitting, within the messaging session, the translation of the message in the first message to the first session participant, according to a first messaging protocol associated with the first session participant and for transmitting, within the messaging session, the translation of the message in the second language to the second session participant, according to a second messaging protocol associated with the second session participant.
5. A method for establishing a group messaging session using multiple messaging protocols, the method comprising the steps of:
(a) receiving, from a user, a request for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants;
(b) storing in a session data table, an identification of each of the plurality of session participants, an identification of the user, and the identification of the messaging protocol associated with each session participant in the plurality of session participants;
(c) creating a messaging session between the session participants in the plurality of session participants and the user;
(d) transmitting, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant; and
(e) transmitting, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
16. The method of claim 15 further comprising the steps of:
(f) receiving, from a second user, a second message;
(g) determining that the session data table includes an identification of the second user; and (h) transmitting the second message to the user and to each session participant in the plurality of session participants according to the messaging protocol associated with each session participant in the plurality of session participants.
17. The method of claim 16 further comprising the step of transmitting the second message to the user according to a messaging protocol associated with the user.
18. The method of claim 15 wherein step (a) further comprises receiving a request including a message in a source language for transmission to each session participant in the plurality of session participants and an identification of a target language associated with each session participant in the plurality of session participants.
19. The method of claim 18, wherein step (b) further comprises storing, in the session data table, the identification of the target language associated with each session participant in the plurality of session participants.
20. The method of claim 18 further comprising the steps of: generating, for a first session participant in the plurality of session participants, a translation of the message in a first target language associated with the session participant; transmitting, within the messaging session, the translation of the message to the first session participant, according to the first messaging protocol associated with the first session participant; generating, for a second session participant in the plurality of session participants, a translation of the message in a second language associated with the session participant; and transmitting, within the messaging session, the translation of the message to the second session participant, according to the second messaging protocol associated with the second session participant.
21. A system for establishing a messaging session using multiple messaging protocols comprising: a server receiving, from a user, a request for establishment of a messaging session among a plurality of session participants, the request including a message for transmission to each session participant in the plurality of session participants and an identification of a messaging protocol associated with each session participant in the plurality of session participants; a session data table storing an identification of the user, an identification of each of the plurality of session participants, and the identification of the messaging protocol associated with each session participant in the plurality of session participants; a session management component on the server creating a messaging session between each session participant in the plurality of session participants and the user; a first messaging gateway transmitting, within the messaging session, the message to a first session participant in the plurality of session participants according to a first messaging protocol associated with the first session participant; and a second messaging gateway transmitting, within the messaging session, the message to a second session participant in the plurality of session participants according to a second messaging protocol associated with the second session participant.
22. The system of claim 21, wherein the server receives the request via a messaging gateway.
23. The system of claim 21 , wherein the server receives the request from a client device operated by the first user.
24. A method for establishing a multilingual messaging session using multiple messaging protocols, the method comprising the steps of:
(a) receiving, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user;
(b) storing in a session data table, an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user;
(c) creating a messaging session between the first user and the second user; (d) generating a translation of the message in a target language associated with the second user; and
(e) transmitting, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
25. The method of claim 24 further comprising the step of transmitting, to a server, by the first user, in a short messaging service message addressed to the server, the request for establishment of a messaging session with a second user.
26. The method of claim 24 further comprising the step of transmitting, to a server, by the first user, in an electronic mail message addressed to the server, the request for establishment of a messaging session with a second user.
27. The method of claim 24 further comprising the step of transmitting, to a server, by the first user, in an instant message addressed to the server, the request for establishment of a messaging session with a second user.
28. The method of claim 24 further comprising the step of receiving, from a user, a request for establishment of a messaging session between the user and a server, the request including a message in a source language, an identification of a target language associated with the user.
29. The method of claim 28 further comprising the step of establishing a messaging session between the user and the server.
30. The method of claim 29 further comprising the step of transmitting, by the server, to the user, within the messaging session, a translation of the message in the target language associated with the user.
31. The method of claim 24 further comprising the steps of:
(f) receiving, from the second user, a request for transmission of a second message, in the target language associated with the second user, to the first user;
(g) determining that the session data table includes an identification of the first user;
(h) generating a translation of the second message in a language associated with the first user; and (i) transmitting the second message to the first user according to a messaging protocol associated with the first user.
32. A system for establishing a multilingual messaging session using multiple messaging protocols comprising: a server receiving, from a first user, a request for establishment of a messaging session with a second user, the request including a message in a source language for transmission to the second user, an identification of a target language associated with the second user, and an identification of a messaging protocol associated with the second user; a session data table storing an identification of the first user, an identification of the second user, the identification of the target language associated with the second user, and the identification of the messaging protocol associated with the second user; a session management component on the server creating a messaging session between the first user and the second user; a translation engine, in communication with the session management component receiving the message, an identification of the source language, and the identification of the target language associated with the session participant, and generating a translation of the message in the target language; and a messaging gateway receiving the translation of the message and transmitting, within the messaging session, the message to the second user according to the messaging protocol associated with the second user.
33. The system of claim 32, wherein the server receives the request via a messaging gateway.
34. The system of claim 32, wherein the server receives the request from a client device operated by the first user.
PCT/US2008/063170 2007-05-16 2008-05-09 Establishing and translating within multilingual group messaging sessions using multiple messaging protocols WO2008144251A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93834107P 2007-05-16 2007-05-16
US60/938,341 2007-05-16

Publications (1)

Publication Number Publication Date
WO2008144251A1 true WO2008144251A1 (en) 2008-11-27

Family

ID=40122107

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/063170 WO2008144251A1 (en) 2007-05-16 2008-05-09 Establishing and translating within multilingual group messaging sessions using multiple messaging protocols

Country Status (2)

Country Link
CN (1) CN101542462A (en)
WO (1) WO2008144251A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11115355B2 (en) 2017-09-30 2021-09-07 Alibaba Group Holding Limited Information display method, apparatus, and devices

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780335B (en) * 2015-03-26 2021-06-22 中兴通讯股份有限公司 WebRTC P2P audio and video call method and device
CN110209774A (en) * 2018-02-11 2019-09-06 北京三星通信技术研究有限公司 Handle the method, apparatus and terminal device of session information
CN112584078B (en) * 2019-09-27 2022-03-18 深圳市万普拉斯科技有限公司 Video call method, video call device, computer equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568383A (en) * 1992-11-30 1996-10-22 International Business Machines Corporation Natural language translation system and document transmission network with translation loss information and restrictions
US5715466A (en) * 1995-02-14 1998-02-03 Compuserve Incorporated System for parallel foreign language communication over a computer network
US20030144912A1 (en) * 2002-01-29 2003-07-31 Mcgee Todd Multilingual messaging system and method for e-commerce
US20050234702A1 (en) * 2004-04-14 2005-10-20 Shiho Komiya Translation support system, server, translation support method, recording medium and computer data signal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568383A (en) * 1992-11-30 1996-10-22 International Business Machines Corporation Natural language translation system and document transmission network with translation loss information and restrictions
US5715466A (en) * 1995-02-14 1998-02-03 Compuserve Incorporated System for parallel foreign language communication over a computer network
US20030144912A1 (en) * 2002-01-29 2003-07-31 Mcgee Todd Multilingual messaging system and method for e-commerce
US20050234702A1 (en) * 2004-04-14 2005-10-20 Shiho Komiya Translation support system, server, translation support method, recording medium and computer data signal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11115355B2 (en) 2017-09-30 2021-09-07 Alibaba Group Holding Limited Information display method, apparatus, and devices

Also Published As

Publication number Publication date
CN101542462A (en) 2009-09-23

Similar Documents

Publication Publication Date Title
US9619466B2 (en) Message translations
KR101106345B1 (en) User interface for transitioning between chat and email
JP5285779B2 (en) System and method for communication between instant messaging user and short message service user
US8027438B2 (en) Electronic message translations accompanied by indications of translation
KR101344177B1 (en) Machine translation in instant messaging applications
USRE41848E1 (en) System using transport protocol objects located at agent location to generate session ID and to provide translation between different instant messaging protocols
US7035942B2 (en) Server-based message protocol translation
CA2632706C (en) High level network layer system and method
US20030125927A1 (en) Method and system for translating instant messages
US20090181702A1 (en) Multi-mode communication
US20140280652A1 (en) Method and device for posting microblog message
US20160323235A1 (en) Instant Message and Electronic Mail Portability
EP3404875B1 (en) Electronic device providing dialog contents, server and method thereof
US20180046707A1 (en) Providing searching strategy in connection with answering question in message
WO2008144251A1 (en) Establishing and translating within multilingual group messaging sessions using multiple messaging protocols
Lihitkar Establishing a virtual reference service
KR20220037898A (en) Character information processing system using Microsoft Excel
Abraham et al. ALLTALK™-A Windows Phone Messenger With Cross Language Communication For Customer Care Services

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880000021.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08755209

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 26.02.10)

122 Ep: pct application non-entry in european phase

Ref document number: 08755209

Country of ref document: EP

Kind code of ref document: A1