# Patent

## Title
System and methods for enhanced multimedia in VoIP networks

## Abstract

Calls placed to a call recipient bypass the terminating messaging system, creating an enhanced message in the call originator's messaging system and delivering the enhanced message using alternate routing information. A caller creates enhanced messages for a call recipient even when the call recipient's messaging system does not support such functionality. The caller also embeds stored content and/or use links in the enhanced messages to allow the message to be modified and/or deleted before it is accessed by the call recipient.

## Background
This application is a continuation of U.S. patent application Ser. No. 12/489,567, filed on Jun. 23, 2009, which is incorporated by reference herein in its entirety.


BACKGROUND OF THE INVENTION
The present invention relates generally to message handling and more particularly to message handling in a unified messaging platform environment.
Traditional messaging systems that rely on call forwarding (e.g., voicemail, etc.) must create messages at the terminating (e.g., destination) message system. It is not possible for the originating caller to influence message handling at the terminating message system. For example, it is not possible for a caller to request that a call should not be forwarded to a voicemail system. Thus, the originating caller is at the mercy of the functionality provided by the terminating message system.
Accordingly, improved systems and methods for message handling in a unified messaging platform environment are required.
BRIEF SUMMARY OF THE INVENTION
The present invention relates generally to message handling and more particularly to message handling in a unified messaging platform environment.
These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a messaging system according to an embodiment of the present invention;
FIG. 2 is a schematic drawing of a controller;
FIG. 3 depicts a flowchart of a method of call forwarding according to an embodiment of the present invention.



DETAILED DESCRIPTION
In at least one embodiment of the present invention calls placed to a call recipient bypass the terminating messaging system, creating an enhanced message in the call originator's messaging system and delivering the enhanced message using alternate routing information. This allows a caller to create enhanced messages for a call recipient even when the call recipient's messaging system does not support such functionality. The caller may also embed stored content and/or use links in the enhanced messages to allow the message to be modified and/or deleted before it is accessed by the call recipient.
FIG. 1 depicts a messaging system 100 according to an embodiment of the present invention. Messaging system 100 includes one or more calling parties 102a, 102b, . . . , 102N in communication with a caller application server 104 through a network 106. Caller application server 104, in turn, has access to and/or is in communication with one or more routing databases 108, which has access to and/or is in communication with Unified Messaging (UM) platform 110. Caller application server 104 and UM platform 110 are also in communication with one or more called parties 112a, 112b, . . . , 112N through network 114. Called parties 112a-N are also in communication with messaging server 116 through network 114.
As described herein, “in communication with” describes connection between components (e.g., calling parties 102a-N, caller application server 104, routing database 108, UM platform 110, called parties 112a-N, messaging server 116, etc.) that can transmit signals and/or information to each other using any appropriate protocol and combination of wired and/or wireless communication techniques (e.g., VOIP, wired, IP, etc.).
Calling parties 102a-N are users of call origination equipment such as wired telephones, wireless telephones, and the like. Similarly, called parties 112a-N are users of call reception equipment such as wired telephones, wireless telephones, and the like. Herein, the terms calling parties 102a-N and called parties 112a-N are used to describe both the human users of the call origination/reception equipment and the physical equipment that is enabled to perform the functions described below. Though described separately as call originators and call receptors or terminators, it is understood that calling parties 102a-N could be receivers of calls and called parties 112a-N could be originators of calls, as in a conventional telephony network.
Application server 104 is any appropriate server or combination of servers particularly configured to host an application programming interface (API) that performs the functions described below.
Networks 106 and 114 are any appropriate calling network, such as a circuit switched network (e.g., PSTN) or packet switched network (e.g., Internet). Network 106 is associated at least with calling parties 102a-N, which originate calls, and may thus be referred to as an origination network. Similarly, network 114 is associated with called parties 112a-N and may thus be referred to as a terminating network.
For diagrammatical simplicity, networks 106 and 114 have been shown as separate entities. It is understood that networks 106 and 114 may, in some embodiments, be the same network. Similarly, network 106 and/or network 114 may include one or more of calling parties 102a-N, caller application server 104, routing database 108, UM platform 110, called parties 112a-N, and/or messaging server 116. Thus, the various components of messaging system 100 may, in some embodiments, be used interchangeably and/or substitutionally to perform the method steps described below with respect to FIG. 3.
Routing database 108 may be any appropriate database storing routing information. Routing information includes telephone number mapping (ENUM) routing information, domain name system (DNS) routing information, name authority pointer (NAPTR) records, uniform resource identifiers (URIs), and the like.
UM platform 110 is any appropriate unified messaging system that integrates different streams of communications (e.g., email, SMS, facsimile, voice, video, etc.) into a single interface, accessible from a variety of different devices. UM platform 110 receives, stores, and/or forwards such streams to calling parties 102a-N and/or called parties 112a-N regardless of network.
Messaging server 116 is a server or similar platform capable of receiving, storing, and/or forwarding messages. In at least one embodiment, messaging server 116 is a UM platform. In the same or alternative embodiments, messaging server 116 is associated with network 114 and is a message recipient server for called parties 112a-N. That is, messaging server 116 is a voicemail server for called parties on a particular network or service provider.
FIG. 2 is a schematic drawing of a controller 200 according to an embodiment of the present invention. Controller 200 and/or its constituent components may be used as or in conjunction with one or more of caller application server 104, routing database 108, UM platform 110, and/or messaging server 116.
Controller 200 contains devices that form a controller including a processor 202 that controls the overall operation of the controller 200 by executing computer program instructions, which define such operation. The computer program instructions may be stored in a storage device 204 (e.g., magnetic disk, database, etc.) and loaded into memory 206 when execution of the computer program instructions is desired. Thus, applications for performing the herein-described method steps, such as those described below with respect to method 300 are defined by the computer program instructions stored in the memory 206 and/or storage 204 and controlled by the processor 202 executing the computer program instructions. The controller 200 may also include one or more network interfaces 208 for communicating with other devices via a network (e.g., messaging system 100). The controller 200 also includes input/output devices 210 that enable operator interaction with the controller 200. Controller 200 and/or processor 202 may include one or more central processing units, read only memory (ROM) devices and/or random access memory (RAM) devices. One skilled in the art will recognize that an implementation of an actual computer for use in a portable communication device could contain other components as well, and that the controller of FIG. 2 is a high level representation of some of the components of such a portable communication device for illustrative purposes.
According to some embodiments of the present invention, instructions of a program (e.g., controller software) may be read into memory 206, such as from a ROM device to a RAM device or from a LAN adapter to a RAM device. Execution of sequences of the instructions in the program may cause the controller 200 to perform one or more of the method steps described herein. In alternative embodiments, hard-wired circuitry or integrated circuits may be used in place of, or in combination with, software instructions for implementation of the processes of the present invention. Thus, embodiments of the present invention are not limited to any specific combination of hardware, firmware, and/or software. The memory 206 may store the software for the controller 200, which may be adapted to execute the software program and thereby operate in accordance with the present invention and particularly in accordance with the methods described in detail below. However, it would be understood by one of ordinary skill in the art that the invention as described herein could be implemented in many different ways using a wide range of programming techniques as well as general purpose hardware sub-systems or dedicated controllers.
Such programs may be stored in a compressed, uncompiled, and/or encrypted format. The programs furthermore may include program elements that may be generally useful, such as an operating system, a database management system, and device drivers for allowing the portable communication device to interface with peripheral devices and other equipment/components. Appropriate general purpose program elements are known to those skilled in the art, and need not be described in detail herein.
FIG. 3 is a flowchart of a method 300 of call forwarding according to an embodiment of the present invention. The method 300 may be performed by components of messaging system 100 as will be described below. The method 300 starts at step 302.
In step 304, a caller (e.g., calling party 102a) places a call to a called party (e.g., called party 112a). Such a call may be placed over one or more networks 106 and/or 114.
In step 306, a determination is made as to whether the caller has enabled an enhanced messaging feature. If the enhanced messaging feature is enabled (e.g., at the application server 104), the method proceeds to step 308. If not, the method ends at step 324. The enhanced messaging feature is enabled for the subscriber via a separate provisioning mechanism. For example, the provisioning mechanism may take the form of a web portal that allows the subscriber to control their settings.
In step 308, application server 104 performs a routing query. In at least one embodiment, application server 104 performs an ENUM query (e.g., via routing database 108) to determine one or more alternate contacts (e.g., email address, etc.). That is, application server 104 leverages the original routing information (e.g., a telephone number) about the called party 112a to determine if additional routing information is stored at routing database 108 and/or another location. In at least one embodiment, the application server 104 performs the query to locate an acceptable URI for the called party 112a. 
In step 310, a determination is made as with whether viable alternate routing information has been found. If acceptable alternate routing information is found, the method passes control to step 312. If no acceptable alternate routing information is found, the method ends at step 324.
If acceptable alternate routing information is found, the call is forwarded to called party 112a via network 114 and is tagged with an indication that the call should not be forwarded to the voicemail application and server of called party 112a should the call not be answered. In at least one embodiment, the call is tagged in the session initiation protocol (SIP). The “msg-taker” service is indicated as an unacceptable contact with Internet Engineering Task Force (IETF) request for comments (RFC) 3841 “Caller Preferences for SIP,” for example. Generally, the indication that the call should not be forwarded may be specified by indicating that the call must not fork (e.g., by utilizing the “no-fork” directive of IETF RFD 3841).
In step 314, a determination is made as to whether the call has been answered by the called party 112a. If the call has been answered, the method ends at step 324. Otherwise, the method proceeds to step 316 and the application server 104 transfers the call to a local messaging platform. In at least one embodiment, the call is transferred to a unified messaging platform 110 that is associated with network 114. In an alternative embodiment, the call is transferred to another local messaging server, such as messaging server 116. As the call is transferred to the messaging platform, an indication is provided that the enhanced messaging feature has been enabled, as in step 306, along with an indication of the originally dialed telephone number (e.g., the telephone number of called party 112a). In at least one embodiment, the indication is provided via a custom header or header parameter in a session initiation protocol (SIP). The call may be moved to the local messaging system via “Call Forwarding” on the Application Server/Feature Server. In at least one embodiment, this may occur for several reasons including “ring no answer”, “busy”, etc.
In the local messaging platform (e.g., UM platform 110, etc.), the call is connected from the calling party 102a to the called party 112a and a new message is created in step 318. That is, calling party 102a creates a message with content that has been previously stored or may provide links to such content. The calling party 102a creates the content by recording a message (e.g., at messaging server 116, etc.) and optionally associating additional stored information with the message. The calling party 102a may also interact with the messaging platform via dual-tone multi-frequency (DTMF) or via voice commands.
In step 320, the local messaging platform determines alternate contact information for the called party 112a. In at least one embodiment, UM platform 110 performs an ENUM query (e.g., at routing database 108) to determine any existing contact preference (e.g., email, MMS, etc.) established by the calling party 102a and/or the called party 112a. In some embodiments, the calling party 102a is prompted for contact handling preference. Contact handling preferences allow the calling party 102a to indicate what content is forwarded to the called party 112a and whether links to such content is forwarded to the called party 112a. This content may be stored at any appropriate location in messaging system until retrieved by the called party 112a and/or altered by the calling party 102a. 
In step 322, the local messaging platform delivers the enhanced message to the called party 112a using the preferred contact information determined in step 320. The method ends at step 324.
Such an enhanced messaging system may augment an existing messaging system, such as a unified messaging system. It may be integrated with VoIP networks allowing a caller to create advanced multimedia messages. The caller may then incorporate their own stored content into such messages. Callers can add links to messages. This allows a caller to update and/or delete the stored content prior to access by the call recipient. The embodiments described above are incorporated seamlessly into existing networks because the terminating network need only understand the “do not forward call” directive and the ENUM functionality in IMS architecture can be leveraged to provide the enhanced messaging.
The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.

## Claims

1. A method of call forwarding comprising:
determining alternate routing information for a call placed from a caller to a call recipient;
forwarding the call to the call recipient with an indication that the call is not to be forwarded to a voicemail application based on the alternate routing information and that the call is to be handled according to the alternate routing information;
upon determining the call has not been answered by the call recipient, receiving a message recorded by the caller;
receiving an indication from the caller to include a link to previously stored additional content with the message recorded by the caller for the call recipient; and
creating an enhanced message comprising the message recorded by the caller and the link to the previously stored additional content.

2. The method of claim 1, wherein the previously stored additional content can be modified prior to access of the previously stored additional content by the call recipient.

3. The method of claim 1, wherein the previously stored additional content can be deleted prior to access of the previously stored additional content by the call recipient.

4. The method of claim 1, wherein the previously stored additional content comprises a second recorded message.

5. The method of claim 1, wherein determining the alternate routing information comprises:
performing a telephone number mapping query to determine alternate contact information for the call recipient.

6. The method of claim 5, wherein the alternate contact information is an email address.

7. The method of claim 1, further comprising:
delivering the enhanced message comprising the message recorded by the caller and the link to the previously stored additional content to the call recipient according to the alternate routing information.

8. A tangible computer readable storage device storing computer program instructions for associating previously stored additional content with a message for a call recipient, which, when executed on a processor, cause the processor to perform operations comprising:
determining alternate routing information for a call placed from a caller to a call recipient;
forwarding the call to the call recipient with an indication that the call is not to be forwarded to a voicemail application based on the alternate routing information and that the call is to be handled according to the alternate routing information;
upon determining the call has not been answered by the call recipient, receiving a message recorded by the caller;
receiving an indication from the caller to include a link to the previously stored additional content with the message recorded by the caller for the call recipient; and
creating an enhanced message comprising the message recorded by the caller and the link to the previously stored additional content.

9. The tangible computer readable storage device of claim 8, wherein the previously stored additional content can be modified prior to access of the previously stored additional content by the call recipient.

10. The tangible computer readable storage device of claim 8, wherein the previously stored additional content can be deleted prior to access of the previously stored additional content by the call recipient.

11. The tangible computer readable storage device of claim 8, wherein the previously stored additional content comprises a second recorded message.

12. The tangible computer readable storage device of claim 8, wherein determining the alternate routing information comprises:
performing a telephone number mapping query to determine alternate contact information for the call recipient.

13. The tangible computer readable storage device of claim 8, wherein the operations further comprise:
delivering the enhanced message comprising the message recorded by the caller and the link to the previously stored additional content to the call recipient according to the alternate routing information.

14. An apparatus comprising:
a memory storing computer program instructions;
a processor communicatively coupled to the memory, the processor configured to execute the computer program instructions, which, when executed on the processor, cause the processor to perform operations comprising:
determining alternate routing information for a call placed from a caller to a call recipient;
forwarding the call to the call recipient with an indication that the call is not to be forwarded to a voicemail application based on the alternate routing information and that the call is to be handled according to the alternate routing information;
upon determining the call has not been answered by the call recipient, receiving a message recorded by the caller;
receiving an indication from the caller to include a link to previously stored additional content with the message recorded by the caller for the call recipient; and
creating an enhanced message comprising the message recorded by the caller and the link to the previously stored additional content.

15. The apparatus of claim 14, wherein the previously stored additional content that can be modified prior to access of the previously stored additional content by the call recipient.

16. The apparatus of claim 14, wherein the previously stored additional content that can be deleted prior to access of the previously stored additional content by the call recipient.

17. The apparatus of claim 14, wherein determining the alternate routing information comprises:
performing a telephone number mapping query to determine alternate contact information for the call recipient.