Abstract:
A request to retrieve a message, such as a voice mail message or an email message, may be provided by a user a of an electronic device. The message has one of at least two different presentation modes by which it may be revealed to the user at the electronic device. The message is retrieved using one of at least two different communication networks depending on a presentation mode by which the message may be revealed.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   The present application is a filing under 35 U.S.C. 371 of International Application No. PCT/US03/04143, which was filed on Feb. 10, 2003 and which claims priority to U.S. patent application Ser. No. 10/076,132, which was filed on Feb. 13, 2002. The contents of both PCT/US03/04143 and U.S. patent application Ser. No. 10/076,132 are incorporated herein by reference. 

   BACKGROUND 
   In unified messaging (UM) ( FIG. 1 ), for example, an individual&#39;s different messaging systems—voice  10 , fax  12 , email  14 , text  16 , video  18 , etc.—are consolidated in a single repository  20 . The individual can access the messages through a remote UM messaging server  26  using different modes, for example, through the Internet  31  from a web browser  28  of a computer  22  or by a dial-up call  32  from a telephone  24 . 
   In the case of computer access, text messages are downloaded and displayed to the user. Voice messages are downloaded to the computer and rendered as digitized sound (e.g., .WAV) files or streamed to the computer (using streaming media server software from companies like Real.com and Shoutcast) and performed using real-time media playing software  30 . The user can reply to a message or generate a new message by sending an email. An Internet-enabled computer may also access a UM server using instant messaging (IM) applications or voice-over-IP/Internet telephony. 
   In the case of telephone access, after a user&#39;s validation code is authenticated in response to the user interactively keying or speaking the code, the UM server plays back his messages. Voice messages are played back as originally recorded, and text messages (email, SMS, instant messaging, faxes) are played back by a text-to-speech voice synthesis engine  29 . An individual can reply to a message or generate a new message by placing a voice call. 
   Access to the messages in a repository can also be obtained at a user&#39;s fax machine or networked printer  36 . The user registers the fax machine or networked printer with the UM message server, which then spools his text messages to the machine or printer. Voice messages can either be elided or automatically transcribed to text using a speech recognition system  31 . The fax machine and the networked printer  36  provide only a unidirectional or read-only access mode, unlike the web browser  28  and the telephone  24 . 
   An advantage of using a computer rather than a telephone to access messages is that the user sees his email messages, rather than only hearing them. When viewing a text message, he can scroll backward and forward through the message, re-read parts of the message, skip over uninteresting parts, pause to show the message to someone else, and so on. This flexibility is more difficult to provide when accessing text messages through a voice-only interface. Typical voice interfaces read every word of an email, for example, even a CC list, which could contain many names. 
   The advantages of both computer and phone message accessing are becoming available through integrated devices such as mobile phones equipped with Internet browsers. Such phones can interact with web servers using standard hypertext transfer protocol (HTTP), but their small screens are capable of displaying only a small amount of information. The phones also typically have limited memory capability, limited bandwidth, and cannot render some common types of files in their native formats, for example, HTML, GIF, JPEG, MPEG, WAV, PDF, MSWord, PowerPoint, and Excel. 
   SUMMARY 
   In general, in one aspect, the invention features a method that includes (a) enabling a user of a wireless phone to make successive selections of messages from a list of messages displayed on the phone, the list including both voice messages and text messages, the selections including voice messages and text messages in any arbitrary order, and (b) without requiring any different action by the user, switching back and forth between responding to selections of voice messages by audibly playing back the messages to the user and responding to selections of text messages by displaying at least portions of the messages. 
   In general, in another aspect, the invention features a method that includes, in response to a user selecting a voice message identified on a display of a wireless phone, (a) automatically initiating a call to a voice message system on which the voice message is stored, (b) having the voice message system authenticate the call, and (c) receiving an audibly played back version of the voice message from the voice message system. 
   In general, in another aspect, the invention features a method that includes, at a wireless phone, (a) enabling a user to invoke links associated with voice messages and non-voice messages to be retrieved, the links being displayed to the user, and (b) at the wireless phone, switching automatically between responding to invocation of a voice message link by dialing a telephone number associated with the link, and responding to invocation of a non-voice message link in a manner other than dialing a telephone number. 
   In general, in another aspect, the invention features a method that includes, at a wireless phone, in response to selection by a user of a voice message to be retrieved, dialing a string that includes a phone number of a voice message system and digits that are sufficient to enable the voice message system server to identify the user and the selected message. 
   In general, in another aspect, the invention features a method that includes, at a wireless phone, receiving data that (a) identifies a remotely stored message belonging to a user of the phone and (b) includes information that (i) associates the message with the user and (ii) is encoded to restrict unauthorized access by others, and in response to a request by the user for retrieval of the message, returning the encoded information to a server for use in authentication. 
   Implementations of the invention may include one or more of the following features. The information is generated by a hashing algorithm. The data includes an index identifying the message from among other messages belonging to the user. The encoded information is also stored for use by the server and is automatically deleted from the server based on its aging. 
   In general, in another aspect, the invention features a method that includes (a) receiving from a user at an electronic device a request to retrieve a message directed to the user, the message having one of at least two different presentation modes by which it may be revealed to the user at the electronic device, and (b) retrieving the message using one of at least two different communication networks depending on a presentation mode by which the message may be revealed. 
   Implementations of the invention may include one or more of the following features. The electronic device comprises a wireless device. The wireless device comprises a telephone. One of the modes comprises performance of a multimedia message. The multimedia message comprises a voice message. One of the modes comprises displaying characters. 
   The retrieving comprises requesting the message from a message server. One of the modes comprises performance of a multimedia message, and the retrieving of the multimedia message comprises initiating a dial-up phone call to a message server. The multimedia message comprises a voice message and the retrieving includes receiving a spoken version of the voice message. One of the modes comprises displaying characters, and the retrieving of the message comprises sending a request through a network to a message server. At the electronic device, information is received identifying messages directed to the user, and the information is provided to the user at the electronic device for selection of a message by the user. The information includes uniform resource locator information that enables accessing the messages through at least one of the communication networks. The information includes a phone number at which a message can be retrieved. The identifying information is received through a communication network. The identifying information includes information identifying a user and a message number associated with each of the messages. The information identifying the user and the message number is encoded securely. The encoded information is included in the request to retrieve. The information is stored remotely from the electronic device, the information permitting a server to respond to selection of the message even though communication between the server and the electronic device conforms to a stateless protocol. 
   In general, in another aspect, the invention features a method that includes (a) informing a user of an electronic device of messages that are available for retrieval, each of the messages having one of at least two different presentation modes by which it may be revealed to the user at the electronic device, (b) receiving from the user a selection of one of the messages to be retrieved, the selection being made in a manner that is unrelated to the presentation mode by which it may be revealed, (c) revealing the message to the user in its presentation mode, (d) receiving from the user a selection of another one of the messages to be retrieved, the selection being made in a manner that is unrelated the presentation mode by which the other message may be revealed, and (e) revealing the other message to the user in its presentation mode. 
   Implementations of the invention may include one or more of the following features. The informing includes displaying a list of the messages to the user. The receiving includes enabling the user to indicate a selection through a graphical user interface. The revealing includes displaying a text message or playing a voice message. 
   In general, in another aspect, the invention features a method that includes providing to an electronic device, information that is configured to enable the electronic device: to retrieve messages using at least two different communication networks depending on a presentation mode by which each of the messages may be revealed, the electronic device being enabled to a request for a message, and to enable a user to select messages in a manner that is unrelated to the presentation mode by which the messages may be revealed. 
   Implementations of the invention may include one or more of the following features. The information that is provided to the electronic device is expressed in a mark-up language. The information that is provided to the electronic device is encoded to prevent loss. 
   In general, in another aspect, the invention features a method that includes enabling a user of an electronic device to make a selection of a message to be retrieved from a message server, in response to the selection, issuing a string of characters that includes a phone number that is associated with the message and is capable of causing the electronic device to execute a phone call to the server, and a character string that identifies the user and enables the server to authenticate the user. 
   Other advantages and features will become apparent from the following description and from the claims. 

   
     DESCRIPTION 
     ( FIG. 1  is a block diagram of a messaging system. 
       FIG. 2  is a block diagram of a messaging system. 
       FIG. 3  is a flowchart. 
       FIG. 4  shows a mobile phone. 
       FIG. 5  shows source code of a page. 
       FIG. 6  is a flowchart. 
       FIG. 7  is a block diagram of a messaging system.) 
   

   Unified message access to both voice and text messages can be provided through a simple seamless user interface even for users of a device, such as a mobile phone, which does not have enough communication bandwidth, memory, or processing capacity to effectively handle digitized audio information. The interface can be arranged so that the user is not required to perform two different operations to access voice messages and email messages. 
   In one simple approach, the UM server could give a user access to both voice messages and email messages on his Internet-enabled phone by simply treating the web browser of the phone the same way the UM server treats a web browser running on a standard personal computer. The UM server would send to the phone&#39;s browser both email messages and digitized audio corresponding to voice messages to be played by the audio-playing application resident on the phone, using HTTP or HTTPS as the transport mechanism in both cases. If a user wished to listen to all his messages, including textual ones, or read all his messages, including voice ones, a text-to-speech or speech-to-text component could be applied at the server or the mobile device. 
   Another approach, which does not burden the mobile phone with processing digital voice message data and does not require the mobile phone to support the processing of digitized audio files, uses the support for hyperlinks to phone numbers that is provided by typical wireless application protocol (WAP) web browsers installed on mobile phones. In addition, one can develop a web browser application for emergent phone-based operating systems such as J2ME™(available from Sun Microsystems), and BREW™ (available from Qualcomm Incorporated) which support hyperlinked phone numbers. By a hyperlinked phone number, we mean a link that can be invoked by a user and which has an associated phone number that is automatically dialed when the link is invoked. When the call is disconnected, the phone reverts back to its state (web access mode) that existed prior to the call. This feature enables a seamless transition back and forth between a state in which email messages are accessed through the Internet (using HTTP) and a state in which voice messages are accessed through cellular or land-line telephone communication. 
   As shown in  FIG. 2 , a session in which messages are made available to a mobile phone  62  is managed by a UM messaging server (also called a UM front end)  64 . The UM server is a computer (including a processor, memory, mass storage, communication devices, and input/output devices) running software that enables it operate as a web server in its interaction with the phone  62  and as a client with respect to a repository  66 . The UM messaging server has access to FAX, emails, and other text messages held in one or more repositories  66 . The messaging server also has access to information identifying voice messages that are stored as audio files in the same or a different repository  68 . 
   As shown in  FIG. 7 , the UM server mediates between the repositories of a user&#39;s messages—a voice message server  140  and an email message server  142 , for instance-and the accessing devices for those messages—PCs  144 , phones  146 , and mobile Internet-enabled devices  148 . The UM server stores in a local database  150  information about each user  149 , including 
   (a) information required to access messages from the email server, including the name of the server and its communications protocol (e.g. POP3, IMAP4, HTTP, MAPI) and the user&#39;s password and ID  152 , (b) preferences for that user  154 , including whether he wishes words to be abbreviated (“United States” to “U.S.” for instance) when he is reading email on a small-screen device, and (c) cached messages  156 , including messages the user has accessed recently. The UM server also holds a table  191  that associates each of the devices  193  that are served by the server with the identity of the owner (or authorized user) of the device. 
   In general, the repositories and origin servers of messages, both voice and email, are distinct from the UM server, although in some cases the UM server may also be responsible for storing the messages, in which case the per-user system state would also contain the messages belonging to the user. 
   Because it is capable of transmitting messages to various different devices, the UM server will in some implementations contain a TTS (text to speech) subsystem, in order to deliver textual email messages to a person listening on a traditional phone over a “POTS” (plain old telephone system) line. In some cases, a TTS subsystem is a useful feature even for users who are accessing the UM server from an Internet-enabled mobile phone. For example, the mobile phone may offer only voice but not data service when the phone is out of range for digital data communication. In some cases, even when the handset is capable of digital data communication, the user may be able to listen to the phone but not read the phone&#39;s display, for example when driving or if the user is visually impaired. In these cases, the TTS component within the UM server enables user access to email messages. 
   The messaging server manages the switches between a text message state-in which the user of the mobile phone can view the text of email, text, and FAX messages on his phone&#39;s display  70 —and a voice message state, in which the user can listen to voice messages on the speaker  72  of the phone. In general, the UM messaging server may interface with a wide range of data sources other than those depicted. In some cases the messaging server may not fetch requested email messages from the email repository in direct response to requests, but instead may download the messages, cache them, and manage them locally (in the messaging server). 
   The state of the system (text or voice) is determined by the choices that a user makes with respect to a list of messages that are presented on the display of his phone. As explained later, the entries in the displayed list are presented in essentially the same manner whether they relate to voice messages or text messages. And the user performs the same action to invoke a message on the list whether the message is a voice message or a text message. Transparently to the user, the browser and the server cooperate to cause the state of the system to shift between voice messages and text messages depending on the message selected by the user. Voice messages are delivered in audio through the phone and text (character-based) messages are delivered as characters and displayed to the user on the display of the telephone. 
   As shown in  FIG. 3 , the process of using the system of  FIG. 2  begins with the user starting the web browser on his mobile phone and using ( 80 ) a universal resource locator (URL) to establish a communication with the messaging server, for example, by keying the URL explicitly into the browser or by selecting a predefined bookmark corresponding to the URL. 
   A user authentication process ( 82 ) is performed at the server. The messaging server receives the request to log in from the phone and, in response, transmits to the phone a web page containing an authentication form, prompting for a user ID and password. The user keys in his user ID and password and submits the information to the messaging server. Upon receipt and verification of this information, the messaging server validates the user against an internal database of registered users  65  ( FIG. 2 ) For this purpose, the database includes a list of (userid/password) pairs, to permit validation of a putative user when he submits these two pieces of information. If the submitted information doesn&#39;t match any registered user entry in the database, the messaging server returns a “please try again” web page to the user&#39;s browser, with the same form as before. 
   In some cases, the user authentication process may be abbreviated. For example, most Internet-enabled phones transmit, along with an HTTP GET request for data, information which uniquely identifies the handset to the server. This information is transmitted automatically in the HTTP headers. For a UP-style WAP device, for example, the information appears in the ‘x-up-subno’ (subscriber number) field of the headers. When the handset can be uniquely identified by UM server by automatic inspection of the HTTP request, the UM server can consult its database of devices to see if a user has already registered the device with the server. If this is the case, the UM server already knows the ID of the user, and can elide this query, prompting only for the user&#39;s password. (See  FIG. 7 ). Whether a particular implementation allows users to register their devices with the UM server or not is dependent on the policy enacted by a system administrator. 
   Once a user has been authenticated, the message server delivers ( 84 ) to the user a web page, in a markup language compatible with the requesting device, containing a list of hyperlinked messages, sorted in reverse chronological order.  FIG. 4  shows the list of available messages  120  displayed ( 86 ) to the user. Both email messages  122  and voice messages  124  are listed. The display may be scrolled left and right to display an entire entry in the list. All of the entries in the list are displayed in a similar manner. The display shown in  FIG. 4  is only one example. There are a variety of ways in which the entries can be displayed. In  FIG. 4 , each entry occupies a single line of the display. The line begins with an index  126  identifying the number of the message in the list. The index is followed by a message title  128 . In the case of voice messages the title is simply “voice message”. If the UM server has access to the phone number or other identifying information about the caller, that too can be displayed. For text messages, the title is the name of the sender of the message. After the title, the time  130  when the message was sent appears. 
   The user may then select ( 88 ) any of the messages for review by moving a cursor  132  up and down to reach the message of interest and then pressing the SEND button  134 . A variety of other techniques could be used to enable the user to select a message, including a touchscreen or pointing device, available on some mobile devices. 
   Each of the lines in the list  120  represents a link to the message identified in the line. If ( 90 ) the user selects a link corresponding to an email message (e.g., message  1 ,  2 , or  4 ), the browser  73  in the phone sends a corresponding HTTP request ( 92 ) for that message to the UM server  64 . The UM server software responds by fetching the requested message from the email message repository and delivering ( 94 ) the message (in the form of a web page, using HTTP) to the phone. The browser on the phone then displays the message to the user. 
   To deliver the message to the phone may require that the UM server transform the content of the original message-which may be in a format not compatible with the target device or which may contain attachments in a format not compatible with the target device-so they are compatible with the target device. Delivering the message to the phone also requires that the UM server honors the constraints of the target device, including memory limitations which impose an upper limit on the file size of a document delivered to the device. Performing stateful “repurposing” of an email message is described in U.S. patent application Ser. No. 09/898,134, filed on Jul. 3, 2001, and incorporated by reference. 
   If the user selects a link corresponding to a voice message (e.g., message 3 or 5), the browser or the phone operating system fetches the phone number corresponding to the link, and the phone dials ( 96 ) the phone number of an automatic voice messaging system  68  followed by a pause, followed by a validation code uniquely identifying the user and message to the voice messaging system. Thus the dialing sequence is:
         (phone number) (pause) (validation code—user ID and message #)       

   The call is made through the user&#39;s wireless carrier  69 . The voice messaging system  68  answers the call, processes the validation code, and plays back the identified message as audio through the wireless carrier  69  and the phone&#39;s speaker, and then disconnects. In other schemes, the user can indicate in the displayed more than one voice message that he wishes to receive, and the voice messaging system plays back all of those messages before disconnecting. In other schemes, after playing the required message, the voice messaging system may not terminate the call, but instead offer the user a menu of options, including any features that are otherwise available from the voice messaging system (such as replay, delete, save, forward). 
   When the browser or operating system of the phone determines that the call has disconnected, the display of the pending list of available messages is refreshed. In the case of an email message that has been displayed, when the user indicates that he is finished reviewing the email message, the message list is again displayed. 
   The information that is displayed to the user in the message list and the manner in which it is displayed and in which the user interacts with and controls it can include a wide variety of features not shown in the example of  FIG. 4 . 
   The information displayed to the user can be seen in the source markup language document of  FIG. 5  that is sent from the server to the browser. The code defines the selection that the user can make among five listed messages. Each option includes the text  85  to be displayed to the user and a related URL. In the case of email messages, the URL  81  is directed to the messaging server www.x.com and identifies the message by a hash  87  to be described later. In the case of voice messages, the URL  83  is directed to a telephone number, wp/mc;+18005551212 of the voice message system in which the voice message is stored and identifies the message by a code that identifies the user and the requested message to the messaging server. When the messaging server answers the phone call, it hears the code, validates the user based on the code, and deliver the requested message. 
   When the user requests a message, if the stored hyperlink is of the form http://www.xyz.com/foo, the browser sends the HTTP GET request “foo” to the server www.xyz.com. If the hyperlink is of the form wp/mc;+18005551212 34526, then the phone dials the phone number 1-800-555-1212 followed by the code 34526. 
   Maintaining State 
   Given that HTTP is a stateless protocol, the message server must have a way to “remember”, between transactions with the phone client, (a) which user is using the phone, and (b) which message the user wants to access. 
   One typical way to do this uses a Java servlet mechanism to embed, in the URLs included in the list provided from the server to the browser, the information needed to authenticate the user and identify the desired message. The server knows the user&#39;s ID and the message identifier when it assembles the list to be sent to the browser. 
   When the user selects a particular message, his browser returns an HTTP request that includes the message number and the user ID. For instance, imagine that the URL for the messaging server is http://www.x.com and the user&#39;s ID is 123456. The URL corresponding to a request to ‘view email message #6 for this user’ might be, in this case,
         http://www.x.com/email jsp?u=123456&amp;m=6       

   When the user selects this email from the displayed list, the browser would send an HTTP request for “/email?u=123456&amp;m=6” to the messaging server, assuming the messaging server is assigned to the IP address whose name is http://www.x.com. 
   Because the messaging server would have stored the information about the messages, the messaging server would recognize the return URL as a request for the sixth email message for user 123456&#39;s email, and would generate the appropriate web page to send back to the user. One could think of the http://www.x.com as the address on the outside of the envelope and the /email?u=123456&amp;m=6 as the “payload”, or information inside the envelope. 
   Other approaches could also be used to track sessions with users. 
   Security 
   Scenario 1: Imagine that a user accesses his messages using a mobile phone and then drops or misplaces the phone. Suppose another person picks up the phone. Whether the web browser is still on or is off, it is likely that the page containing the links to the user&#39;s messages still resides in the browser&#39;s cache. It would be unfortunate if this second person could access the user&#39;s messages simply by picking up the phone and clicking on one of the ‘message’ links. In some settings (for instance, HIPAA confidentiality requirements in medicine), a system with such a security gap would not permitted to be used at all. 
   Scenario 2: Equipped with the knowledge of another person&#39;s user ID, a malicious third party could, even without physical access to the user&#39;s phone, access that person&#39;s messages simply by visiting (for example) the URL http://www.x.com/email.jsp?u=123456 m=4 to see the user&#39;s fourth most recent message. 
   These concerns can be reduced using a time-sensitive encryption technique, which we describe for the encoding of URLs first for email messages and then for voice messages. 
   In examples of this technique, rather than using the servlet request “/email.jsp?u=123456&amp;m=6” to convey “the sixth message for user 123456”, the messaging server instead encrypts the (user, message) information of inclusion in the message list that it sends to the browser. 
   As shown in  FIG. 6 , first, the server software prepends ( 102 ) the index number of the message in the list of available messages to the user ID, in this case yielding the string “6123456”, called x in the following table. The user ID is a number assigned by the messaging server uniquely to each user. Then, the server software applies ( 104 ) a (one-way) hashing function h to this string to generate an n-digit sequence, where n is an integer such as 8. The server then stores ( 106 ) the hashed n-digit sequence, along with the original number and the current time, in a lookup table in the server. The contents of the table for a given user might be as follows: 
   
     
       
             
             
             
             
             
           
             
             
             
             
             
           
         
             
                 
             
             
                 
               Original 
                 
               Message 
                 
             
             
               Hash h(x) 
               Number x 
               User 
               Number 
               Timestamp 
             
             
                 
             
           
           
             
                 
             
           
        
         
             
               18573028 
               2948563 
               948563 
               2 
               11.02.01 @ 23:11.03 
             
             
               36465659 
               119223001 
               223001 
               119 
               11.02.01 @ 23.11.09 
             
             
               99550023 
               22140199 
               140199 
               22 
               11.02.01 @ 23.11.11 
             
             
                 
             
           
        
       
     
   
   Thus, rather than encoding the userID and message number explicitly in the URL that is included in the list sent to the phone, the message server instead applies the hashing function to these two values as described, stores an entry in the hash column, and encodes the URL ( 108 ) in the following way:
         http://www.x.com/email.jsp?x=[hash]       

   For example, assume that h(119223001)=36465659. Then instead of using 
   http://www.x.com/email.jsp?u=223001&amp;m=119, 
   the server would use 
   
       
       
         
           http://www.x.com/emailjsp?x=36465659 
         
       
     
  
   When the messaging server receives from the phone, via HTTP, the servlet request “/email jsp?x=36465659”, the server consults the currently active table of hashes, decodes the hash into a (user, message number), and delivers to the phone the desired message number for that user. 
   As an extra security precaution, the server continuously sweeps through the table above, clearing out rows that are older than a preset value (five minutes old, say). If the messaging server receives a request for a hash not found in the table, the messaging server responds by requiring that the user provide his ID and password again. 
   Under this policy, a malicious user in possession of a user&#39;s ID will be unable to access the user&#39;s messages, unless he also has the user&#39;s password (which would enable him to re-register as the user). Even obtaining physical access to the user&#39;s phone would not help the malicious user as long as the authorized user wasn&#39;t actively using the phone to interact with the messaging server in the previous five (say) minutes. 
   An analogous mechanism works for dialing into a messaging server through the telephone. In this case, the http://www.x.com is replaced with the phone number of the automated telephone-based messaging server, say 800-555-1212. The payload, which in the case of HTTP was the servlet request “/emailjsp?x=9234239”, is now a provided as a sequence of digits (the hash discussed above, which validates the user) following the phone number itself. 
   Serving Emails 
   Information about one way to configure emails and attachments for rendering on a device of limited capability, such as the phone discussed above, can be found in U.S. patent application Ser. No. 09/898,134, filed Jul. 3, 2001, and incorporated by reference. 
   As discussed there, a transformation server reconfigures and segments documents so they may effectively be viewed on the mobile phone&#39;s display. The transformation server acts as a proxy for the mobile phone, intercepting requests from the phone for messages, fetching the requested messages from the messaging server, and reconfiguring the messages for transmission to and display on the phone. Honoring the phone&#39;s document-size limits, the transformation server partitions the reconfigured message into segments, each of digestible size for the phone. The server transmits the first of these segments to the phone and caches the rest, delivering them on request. The transformation server acts as a client to the messaging server, communicating via POP or IMAP or HTTP or any other mail communication protocol to fetch messages from the messaging server. After transforming the messages for display on the mobile phone, the transformation server transmits the message to the phone through a gateway server, using HTTPS. 
   Other implementations are also within the scope of the following claims. 
   For example, although the description has discussed the example of receiving messages on a wireless phone, other receiving devices might be used, including non-wireless devices connected by dialup connection or through a local area network or wide area network to the messaging server. The devices need not be phones but could be personal digital assistants, notebook computers, desktop computers, or any other kind of electronic device. The kinds of messages that may be received are not limited to the ones mentioned earlier. Any kind of message could be received. Although we have used the words audio, voice, and video to describe certain kinds of messages received, other kinds of multimedia messages may also be handled in similar ways. 
   The description presented above suggests an example in which the message server and the repositories have particular relationships and configurations. But a wide variety of message server/repository configurations including any number of different units interconnected in a variety of ways would work. For example the repository can be part of the message server, and the message server can be partitioned into a number of different units. There can be multiple messages servers and multiple repositories. 
   Protocols other than WML and HTTP may be used for communication of requests and lists of messages and for other features of the system. Various platforms for embedding of the locators can be used. The examples given earlier are only examples. 
   Implementation of the features and techniques discussed earlier can be done in hardware, firmware, software or any combination of them. The phone or other device can have a variety of underlying operating systems. 
   The communication between the server and the phone or other device need not be through the Internet or other TCP/IP network. WAP and some other handheld Internet-enabled devices do not always use TCP/IP as the communication protocol.