Abstract:
A communications system that supports multimedia components is easily adapted to existing network elements. Voice components arriving at or coming from a user having multimedia capabilities are referred from a telephony server serving the user to a multimedia server. A determination is made as to whether the other party supports multimedia capabilities. If that determination is negative, the component is passed back to the telephony server with an indication that the session is coming from the multimedia server to avoid an infinite loop. If the determination is positive, a parallel multimedia component is established between the parties while the multimedia server remains aware of the bearer path.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to multimedia communications, and, in particular, relates to a particular technique for handling multimedia calls with clients having legacy phones and services.  
         BACKGROUND OF THE INVENTION  
         [0002]    The world of telecommunications is evolving at a rapid pace. Consumers are perceived to demand new features, especially in the area of multimedia services. Sharing files, video conferencing, sharing a virtual white board, and similar activities are helpful in the business context as geographically dispersed personnel try to coordinate efforts on projects. While the business world may be the driving force behind the need for such multimedia services, the residential consumer may also desire to take advantage of these services.  
           [0003]    A few approaches have been proposed to provide integrated multimedia services. The first approach is to replace the customer premises equipment and network equipment with equipment that supports this functionality seamlessly. This approach is less than optimal for a number of reasons. First, it forces a large cost on the network providers and the consumers who have to replace costly, functioning equipment that, in many cases, is still well within its nominal life expectancy. Second, the older equipment has evolved over time until approximately three hundred different services are offered on this legacy equipment. After transitioning to the newer equipment, there will be a lag between deployment and reintegration of these services as new software must be written to implement the services on the new equipment. Many consumers of these services would not be happy with the loss of these services in the interim. Other drawbacks such as determining a standard or protocol and retraining users in the new hardware and software are also present.  
           [0004]    A second approach has been proposed by the assignee of the present invention and embodied in U.S. patent application Ser. No. 09/960,554, filed Sep. 21, 2001, which is hereby incorporated by reference in its entirety. That application provides a way to integrate multimedia capabilities with circuit switched calls. In the circuit based domain, this solution is functional. However, there remains a need for integrating multimedia capabilities in packet switched calls while preserving presently deployed network hardware.  
         SUMMARY OF THE INVENTION  
         [0005]    The present invention provides a solution in the packet domain for integrating voice calls with multimedia sessions as a blended call. A blended call is a call which blends voice and multimedia functions into a single communication session. In an exemplary embodiment, a multimedia server is associated with a telephony server. The multimedia server has software incorporated therein that manages blended calls, using the functions of the multimedia server where appropriate and the telephony server where appropriate. To the multimedia server, there is a single session, but the session may have a voice component and a multimedia component. This software is sometimes referred to herein as a blender. In an alternate embodiment, the blender may be a function of sequential logic devices or other hardware that performs the same functions.  
           [0006]    Specifically, the present invention takes an incoming call from a remote caller that is received at a telephony server and accesses a database to determine if the intended recipient of the phone call has blended capabilities. If the answer is negative, the call is handled according to conventional protocols. If the answer is affirmative, the intended recipient supports blended calling, then the telephony server directs the call to a multimedia server, and particularly to a multimedia server with blender software associated therewith. The blender software receives the call request and initiates a single session with two call components: 1) a voice call component and 2) a multimedia call component. The voice call component is handled through the telephony server, and the multimedia call component is handled through the multimedia server. As used herein, the multimedia component includes all the non-voice parts of the call. As part of the two call components, two signaling paths are routed to the blender software, which may integrate the signaling paths into a single signal path as part of the single session, which is used by the multimedia server to control the bearer paths associated with the call. Further, when passing the voice call component back to the telephony server, the blender may include an indication that the component is being passed from the blender and that the telephony server is not to redirect or “loop” the signal back to avoid infinite loops between the blender and the telephony server. The indication to prevent the redirection or looping back may be a “loopback signal” such as a flag, information in a header, or other signaling technique. Additionally, the indication may not be a signal per se, but could be a persistent attribute such as call delivery via a specific trunk on the telephony server reserved for signals that have been processed by the blender. As used herein, the terms “loopback signal” and “loopback indication” cover such signals and indications. It should be appreciated that a loopback signal falls within the definition of a loopback indication as used herein.  
           [0007]    An outgoing call from a user that has blended capabilities may be processed at the telephony server and a destination address extracted to verify that the user is making a call. The telephony server, upon reference to a database to determine that the caller in this instance has blended capabilities, refers the call to a blender function on the multimedia server. The blender then initiates two call components: 1) a voice call component and 2) a multimedia call component. The multimedia server may handle both components as a single session, or may redirect or loop the voice call component back to the telephony server with an indication that the voice call component has been redirected back from blender processing. As noted above, the indication may be a loopback signal or loopback indication.  
           [0008]    While many systems may be used, the present invention is well suited for use with a Session Initiation Protocol for Telephones (SIP-T) configuration as the information included in the SIP-T messages contains the information helpful in setting up and tearing down the parallel call components.  
           [0009]    In another aspect of the present invention, an Intelligent Network (IN) signal may be used to determine if a blended call is being handled. If the call is a blended call, then the call is referred to the blender. If the call is not blended, the telephony server handles the call as normal. This embodiment effectively integrates the circuit based system described in the previously incorporated &#39;554 application with the packet based approach of the present invention.  
           [0010]    Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]    The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.  
         [0012]    [0012]FIG. 1 illustrates a communication environment according to one embodiment of the present invention;  
         [0013]    [0013]FIG. 2 illustrates the methodology of an exemplary embodiment of an incoming voice call used in the present invention;  
         [0014]    [0014]FIG. 3 illustrates the methodology of an exemplary embodiment of an incoming multimedia call used in the present invention;  
         [0015]    [0015]FIG. 4 illustrates the methodology of an exemplary embodiment of an outgoing voice call used in the present invention; and  
         [0016]    [0016]FIG. 5 illustrates the methodology of an exemplary embodiment of an outgoing multimedia call used in the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0017]    The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.  
         [0018]    The present invention is designed to prolong the viability of existing network devices by allowing existing customer premises equipment and existing network elements to be used to support multimedia capabilities. As used herein, a blended call is a call that supports voice and multimedia exchanges of information. To create the blended call, a telephony server or a multimedia server sends calls to blender software. The blender software initiates parallel voice and multimedia components with the customer premises equipment. The voice session may pass through the telephony server with an indication that blended processing has occurred. The blender further keeps control of the signaling paths of the parallel components so that the bearer path may be controlled to accommodate multimedia requests at any stage during the call.  
         [0019]    Because of the desire to be backwards compatible, the present invention may be used on any number of network systems using a number of different protocols. An exhaustive list of suitable networks and protocols is beyond the scope of the present discussion, but those of ordinary skill in the art will appreciate variations on the subject matter herein disclosed after a review of an exemplary embodiment, which is based on a session initiation protocol (SIP) environment.  
         [0020]    A communication environment  10  capable of carrying out the concepts of the present invention is illustrated in FIG. 1. The communication environment  10  depicted includes a communication network  12 , which may preferably include a packet switched network with SIP enabled devices. Thus, the network may include any type of packet switched network having devices using SIP to facilitate communications between two or more devices, also referred to herein as a SIP enabled network.  
         [0021]    Two clients  14 ,  16  are connected to the communication network  12 . Each client  14 ,  16  may have customer premises equipment (CPE)  18  associated therewith, denoted  18 A for client  14  and  18 B for client  16 . Specifically, client  14  may have a telephone type device  20  and a computer type device  22 . Client  16  may have a telephone type device  24  and a computer type device  26 .  
         [0022]    In general, the telephone type devices  20 ,  24  are directed to voice communications with limited data options such as displaying a number called, a calling number, time elapsed and other common telephony functions. In contrast, the computer type devices  22 ,  26  may have a monitor, a keyboard, user input devices, and other conventional computer features such that a user may provide inputs and receive outputs and particularly generate and view multimedia content on the computer type device  22 ,  26 . It is possible that a telephone type device  20 ,  24  could be integrated with its corresponding computer type device  22 ,  26  into a single piece of customer premises equipment  18  with the functionalities of both devices.  
         [0023]    Telephone type devices  20 ,  24  and computer type devices  22 ,  26  may contain data processing devices such as microprocessors which implement software that may be stored on any appropriate computer readable medium such as memory, floppy disks, and compact discs. Alternatively, the functionality of the present invention may be stored in sequential logic as is well understood. The telephone type devices  20 ,  24  may, if desired, be “dumb” SIP terminals, H.323 terminals, or other devices delivering primarily voice based service. Each piece of customer premises equipment  18  may be a user agent within the SIP enabled network. As the telephone type devices  20 ,  24  and the computer type devices  22 ,  26  do not have a full range of features, they may be referred to as feature limited user agents.  
         [0024]    Clients  14 ,  16  are connected to the communication network  12  by one or more connections  28 . These connections  28  may be wireless or wirebased. In the event that they are wirebased, copper line, fiber optic line, or other comparable communication medium may be used. It is preferred that the connection  28  be a wideband connection, suitable for exchanging large amounts of information quickly. Note further that while multiple connections are shown, a single connection may in fact provide all the communication links to the customer premises equipment  18 .  
         [0025]    At some point in the communication network  12 , the connection  28  from the telephone type device  20 ,  24  terminates on a telephony server, such as telephony servers  30 ,  32 . The telephony servers  30 ,  32  may be the CS2000 or DMS100 sold by Nortel Networks Limited of 2351 Boulevard Alfred-Nobel, St. Laurent, Quebec, Canada, H4S 2A9. Other class five telecommunication switches or comparable devices including a PBX or a KEY system could also be used as needed or desired and may support both circuit switched voice calls and voice over packet calls. The telephony servers  30 ,  32  may communicate with one another and other components in the communication network  12  via a Session Initiation Protocol for Telephones (SIP-T). SIP-T is fully compatible with other SIP enabled devices. Still other communication protocols could be used if needed or desired.  
         [0026]    Each telephony server  30 ,  32  may be connected to or integrated with a database (DB) server  34 ,  36 . The database servers  34 ,  36  may track which clients support which services. For example, a client  14  may support blended services, call forwarding, and the like, each of which is noted in the database server  34 . The database server  34  may index the entries by a trunk line, a directory number, or other unique identifier as is well understood.  
         [0027]    Other components of the present invention are multimedia servers (MS)  38 ,  40  which may be positioned throughout the communication network  12  as needed to provide the appropriate quality of service for the present invention. Multimedia servers  38 ,  40  are sometimes referred to in the industry as media portals and may be the Interactive Multimedia Server (IMS) sold by Nortel Networks Limited. The IMS is based on JAVA technology and is a SIP enabled device capable of serving SIP clients by providing call conferencing, call transfers, call handling, web access, whiteboarding, video, unified messaging, distributed call centers with integrated web access and other multimedia services. Other media portals or multimedia servers may also be used if needed or desired.  
         [0028]    Operating off of the data processing devices of the multimedia servers  38 ,  40  is software that embodies blenders  42 ,  44  respectively. An exemplary blender  42 ,  44  is further explicated in commonly owned U.S. patent application Ser. No. 10/028,510, filed Dec. 20, 2001, which is hereby incorporated by reference in its entirety. The &#39;510 application refers to the blender as a combined user agent. The present invention builds on the functionality described in the &#39;510 application by showing how the telephony server and the multimedia server interact in response to commands from the blender. As an alternative to software, the blenders  42 ,  44  may be instructions embedded in sequential logic or other hardware as is well understood.  
         [0029]    The present invention takes incoming and outgoing calls associated with a client, such as client  14 , and routes the call to the blender  42  associated with the telephony server  30 . The routing to the blender  42  may be done by standard telephony interfaces such as an ISUP trunk, a Primary Rate Interface (PRI) link, a Public Telephone Service (PTS) trunk, or more preferably a SIP or SIP-T connection. The blender  42  then initiates two parallel components for the call. The first component is a voice component and the second component is a multimedia component. Each component may be established with the corresponding piece of customer premises equipment  18 A, and the signaling paths pass through and are controlled by the blender  42 . A more detailed exploration of this is presented below.  
         [0030]    It should be appreciated that the various components within the communication network  12  may communicate with one another even though specific connections are not illustrated. This reflects that in a packet network, the connections are frequently virtual and may change over time or between packets depending on load, router availability, and similar network traffic conditions. Further, the SIP enabled network may have gateways to the Public Switched Telephone Network (PSTN), the Public Land Mobile Network (PLMN), and the like. As the particular network and protocol are not central to the present invention, a further discussion of these well known elements is foregone. Also, the particular connections to the client  14  may be varied. For example, a single Digital Subscriber Line (DSL) into a location may serve both the telephone type device  20  and the computer type device  22 . Alternatively, the telephone type device  20  may be served by a phone line and the computer type device  22  served by a cable modem or the like as is well understood.  
         [0031]    Before turning to the details of the present invention, an overview of SIP may be helpful, as the following discussion is couched in terms of the commands used by SIP. The specification for SIP is provided in the Internet Engineering Task Force&#39;s Request for Comments (RFC) 3261: Session Initiation Protocol Internet Draft, which is hereby incorporated by reference in its entirety. A SIP endpoint is generally capable of running an application, which is generally referred to as a user agent (UA), and is capable of facilitating media sessions using SIP. User agents register their ability to establish sessions with a SIP proxy by sending “REGISTER” messages to the SIP proxy. The REGISTER message informs the SIP proxy of the SIP universal resource locator (URL) that identifies the user agent to the SIP network. The REGISTER message also contains information about how to reach specific user agents over the SIP network by providing the Internet Protocol (IP) address and port that the user agent will use for SIP sessions.  
         [0032]    A “SUBSCRIBE” message may be used to subscribe to an application or service provided by a SIP endpoint. Further, “NOTIFY” messages may be used to provide information between SIP endpoints in response to various actions or messages, including REGISTER and SUBSCRIBE messages.  
         [0033]    When a user agent wants to establish a session with another user agent, the user agent initiating the session will send an “INVITE” message to the SIP proxy and specify the targeted user agent in the “TO:” header of the INVITE message. Identification of the user agent takes the form of a SIP URL. In its simplest form, the URL is represented by a number of “&lt;username&gt;@&lt;domain&gt;”, such as “janedoe@nortelnetworks.com.” The SIP proxy will use the SIP URL in the TO: header of the message to determine if the targeted user agent is registered with the SIP proxy. Generally, the user name is unique within the name space of the specified domain.  
         [0034]    If the targeted user agent has registered with the SIP proxy, the SIP proxy will forward the INVITE message directly to the targeted user agent. The targeted user agent will respond with a “200 OK” message, and a session between the respective user agents will be established as per the message exchange required in the SIP specification. Media capabilities are passed between the two user agents of the respective endpoints as parameters embedded within the session setup messages, such as the INVITE, 200 OK, and acknowledgment (ACK) messages. The media capabilities are typically described using the Session Description Protocol (SDP). Once respective endpoints are in an active session with each other and have determined each other&#39;s capabilities, the specified media content may be exchanged during an appropriate media session.  
         [0035]    Against this protocol backdrop, FIG. 2 illustrates a flow chart of the methodology of an incoming call to a blended client  14 . In particular, a client  16  dials a number for the client  14  on the telephone type device  24  (block  100 ). The telephony server  32  receives the dialed number (block  102 ) as is conventional. The telephony server  32  references the database server  36  to learn that telephony server  30  serves the dialed number (block  104 ). The telephony server  32  contacts the telephony server  30  with the call request (block  106 ). So far, the call processing is performed according to any conventional protocol and over any conventional network hardware.  
         [0036]    When the telephony server  30  receives the call request, the telephony server  30  references the database server  34  about the number dialed (block  108 ) to determine if the number dialed supports blended services (block  110 ). If the answer to block  110  is “no”, blended services are not supported, the telephony server  30  rings the client  14  conventionally (block  112 ).  
         [0037]    If, however, the answer to block  110  is “yes”, the dialed number does support blended services, then the telephony server  30  passes the call request to the blender  42  in the multimedia server  38  (block  114 ). The blender  42  issues an INVITE message (hereinafter “invite”) to the multimedia server  38  (block  116 ). The multimedia server  38  performs call disposition handling including offering the call to client  14  (block  118 ). Call disposition handling may include for example a “find-me, follow-me” function, call blocking, routing to voice mail based on call screening criteria, updating a user&#39;s presence-state information, and the like.  
         [0038]    The multimedia server  38  sends an “invite” to the client  14  via the blender  42  (block  120 ). The blender  42  separates the “invite” into a call request and a multimedia request (block  122 ). The requests may be INVITE messages according to the SIP standard. The blender  42  sends the call request back to the telephony server  30  which rings the telephone type device  20  (block  124 ). The blender  42  may, as part of sending the call request back to the telephony server  30 , include indicia or otherwise provide an indication that designates that the call request is coming from the blender such that the telephony server  30  does not redirect or otherwise loop the call request back to the blender  42  as would be normal for an incoming call. These indicia may take any appropriate form such as a flag, information in the header, a persistent condition, or other technique, and prevent an infinite loop from forming between the telephony server  30  and the blender  42 .  
         [0039]    The blender  42  sends the multimedia request to the computer type device  22  (block  126 ). The multimedia server  38  maintains control over the signaling paths associated with the blended session. In an exemplary embodiment, the blender  42  merges the signaling paths of the voice component and the multimedia component into a single signaling path and passes the merged signaling path to the multimedia server  38  as a single session. By having access to the signaling path of the session, the multimedia server  38  may control the bearer paths of the components without having to parse the information in the bearer path.  
         [0040]    Note that because SIP is being used, the multimedia server  38  has access to the Uniform Resource Locators (URLs) of the endpoints of the call (the respective clients  14 ,  16 ), the capabilities of the clients  14 ,  16 , and other information relevant to the call disposition handling. Other protocols may provide the same information, but SIP is particularly well suited for this task.  
         [0041]    [0041]FIG. 3 illustrates an incoming multimedia call methodology. The client  16  desires to instant message (IM) the client  14 . To achieve this, the client  16  IM&#39;s the client  14  with computer type device  26  (block  150 ). The IM request may include an address for the client  14 , an indication that the client  16  supports blended capabilities and other SIP information. The multimedia server  40  receives the IM request (block  152 ) and references a database (not shown explicitly) to learn that multimedia server  38  serves the address (block  154 ).  
         [0042]    The multimedia server  40  contacts the multimedia server  38  with the IM request (block  156 ). The multimedia server  38  sends an “invite” to client  14  via the blender  42  (block  158 ). The blender  42  separates the “invite” into a call request and a multimedia request (block  160 ). The call request is passed to the telephony server  30  with indicia that the call request is coming from the blender  42  (block  162 ) to prevent the creation of an infinite loop. The telephony server  30  sends an “invite” to the telephone type device  20  (block  164 ). At this point the telephone type device  20  may not ring, but it may answer the “invite” to set up the signaling path associated with the provision of call services. The blender  42  also sends an “invite” to the computer type device  22  (block  166 ). The answers from the telephone type device  20  and the computer type device  22  arrive at the blender  42  (block  168 ), which merges them into a single signaling path and delivers the signaling path to the multimedia server  38 . The multimedia server  38  then manages the call (block  170 ) by maintaining control over the signaling path and allowing the bearer path to be routed through the communication network  12  as needed. If at any point one of the clients  14 ,  16  wishes to establish a voice connection, the signaling path for the voice session is already in existence through the blender  42  and may be activated. Alternatively, the invitation for the voice component may only be generated upon request by the users. Thus, the IM session may continue as normal until a user decides to speak with the other party. Upon issuing the appropriate command to the computer type device  22 , the blender  42  receives the request to activate the voice component.  
         [0043]    [0043]FIG. 4 illustrates the methodology of an outgoing voice call from a client  14 . The client  14  dials a number with the telephone type device  20  (block  200 ). The telephony server  30  receives the dialed number (block  202 ). The destination address is extracted by the telephony server  30  (block  204 ) to determine that the client  14  is actually making a call rather than activating a call handling feature such as call forwarding, programming a speed call number, or similar features. The call can be a speed call activation, a normally dialed number, or other technique such that an indication is made that there is a call and not a call handling feature. The telephony server  30  references the database  34  (block  206 ) and determines if the client  14  supports blended services (block  208 ).  
         [0044]    If the answer to block  208  is “no”, the client  14  does not support blended services, the call is processed conventionally (block  210 ). If however, the answer to block  208  is “yes”, the client  14  does support blended services, the telephony server  30  passes the call to the blender  42  (block  212 ). The blender  42  sends an “invite” to the computer type device  22  (block  214 ). The computer type device  22  accepts (block  216 ). Note that a bearer path may not exist yet to the computer type device  22 , but the signaling path associated with the provision of the multimedia session may be created such that if the client  14  desires to begin using multimedia services, they are readily available. The blender  42  passes the combined signal to the multimedia server  38  (block  218 ). The multimedia server  38  performs call disposition handling and sends an “invite” to client  16  (block  220 ). The multimedia server  38  may route the voice portion of the call back through the telephony server  30  if needed or desired, or may handle that portion itself. Other arrangements could also be made. Note also that the invitation to the computer type device  22  may not be issued until a function is invoked that necessitates the provision of multimedia services.  
         [0045]    [0045]FIG. 5 illustrates an exemplary method of an outgoing multimedia call from the client  14 . The client  14  desires to instant message the client  16  and sends an IM to client  16  with the computer type device  22  (block  250 ). The multimedia server  38  receives the multimedia request (block  252 ). The multimedia server  38  may reference a database (not shown explicitly) to determine which multimedia server serves the destination address of the IM request (block  254 ). The multimedia server  38  sends an invitation to the client  14  via the blender  42  (block  256 ).  
         [0046]    Concurrently with the invitation to the client  14 , the multimedia server  38  sends an “invite” to the multimedia server  40  (block  258 ). The multimedia server  40  then invites the client  16  to join the call (block  260 ). The blender  42  is meanwhile separating the “invite” to the client  14  into a call request and a multimedia request (block  262 ). The blender  42  invites the telephone type device  20  and the computer type device  22  (block  264 ) to join the call. Note that the original request from the computer type device  22  may cause the multimedia request to subsume into the original request. Further, the “invite” to the telephone type device  20  may be routed through the telephony server  30  and have a loopback signal or a loopback indication that prevents the formation of an infinite loop between the telephony server  30  and the blender  42 .  
         [0047]    The blender  42  passes the combined signaling path from the telephone type device  20  and the computer type device  22  to the multimedia server  38  (block  266 ) and the multimedia server  38  connects the signal from the blender  42  with the signal from the multimedia server  40  and performs call disposition handling (block  268 ). Again, it is possible that the telephony server  30  may not pass the invitation to the telephone type device  20  until that function is invoked by the participants.  
         [0048]    As another embodiment, instead of relying on SIP for all of the trigger commands, the present invention may be integrated with an Intelligent Network (IN) such that for basic call disposition handling, the IN triggers and commands are used. For mid-call activation of multimedia features, the fact that the multimedia server  38  has access to the signaling path allows the multimedia server  38  to provide the requested multimedia services. For more information on the use of the IN as a trigger point, see the previously incorporated &#39;554 application.  
         [0049]    Note that while the processes above have been described in a generally linear fashion, it is within the scope of the present invention to rearrange the order of some of the steps such that they occur concurrently or in different orders where needed or desired.  
         [0050]    Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.