Abstract:
An apparatus and methods are disclosed for enabling certain types of communications to occur, even when presence information might indicate that a particular user is unavailable. In the illustrative embodiment, a first user submits a request to communicate with a second user, where the request specifies a maximum time duration for the communication, and optionally: a minimum time duration, an expected time duration, a priority, a subject, and a type of communication. A presence server receives the request and decides whether the request should be granted based on the information specified in the request, and one or both of: presence information for the second user, and the contents of a calendar. The illustrative embodiment is also capable of detecting inconsistencies between calendars and presence information, as well as events that might affect a user&#39;s presence or indicate a departure from scheduled activities.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to telecommunications in general, and, more particularly, to presence-based communications systems. 
       BACKGROUND OF THE INVENTION 
       [0002]    In telecommunications networks, presence information (or presence state) conveys the ability and willingness of a potential communication partner (e.g., a user, etc.) to communicate. Presence information for a user is typically provided to a presence service by a user client that resides and executes on a telecommunications terminal (e.g., a cell phone, a notebook computer, a “netbook” computer, a smartphone, etc.). The presence service typically stores this information in a personal availability record called a presentity that can be made available for distribution to other users (called watchers). 
         [0003]    Presence information has wide application in many communication and computing services and is one of the innovations driving the popularity of instant messaging (IM) and Voice over Internet Protocol (VoIP) telephony. Some telecommunications systems employ presence information across a plurality of telecommunications channels and terminals, creating an aggregated view of user presence known as Multiple Points of Presence (MPOP). 
         [0004]    In some situations presence information might be automatically inferred from passive observation of a user&#39;s actions. For example, a user who is engaged in an instant messaging (IM) session and is inactive for a given time interval might be inferred to be “away” or “unavailable”. Similarly, presence information might be inferred in other ways, such as, for example, based on: whether a user&#39;s telecommunications terminal is powered on or off; whether a user is logged into his or her computer; the contents of a calendar (or schedule) for one or more users; and so forth. 
       SUMMARY OF THE INVENTION 
       [0005]    The present invention enables certain types of communications to occur even when presence information might indicate that a particular user is not available to communicate. In particular, in accordance with the illustrative embodiment, a first user submits a request to communicate with a second user, where the request specifies a maximum time duration for the communication, and optionally, one or more of the following:
       a minimum time duration,   an expected time duration,   a priority,   a subject, and   a type of communication (e.g., voice call, email, short message service [SMS] message, etc.).       
 
         [0011]    A presence server receives the request, and then decides whether the request should be granted based on the information specified in the request, and one or both of:
       presence information for the second user, and   the contents of a calendar.
 
For example, in accordance with the illustrative embodiment, if a first user indicates that a particular communication will take a maximum of twenty seconds, has a high priority, and will occur as an instant messaging (IM) session, then a presence server might determine that the request should be granted even if the second user is technically considered unavailable because:
   the second user is currently engaged in a voice telephone call, or   a calendar indicates that the second user is at a meeting.
 
The present invention thus enables short, “impromptu” communications when it is determined that such communications will not be overly disruptive.
       
 
         [0016]    The illustrative embodiment of the present invention is also capable of detecting and exploiting inconsistencies between a calendar and presence information. For example, in accordance with the illustrative embodiment, if a calendar indicates that a user is participating in a conference call, but presence information indicates that the user is not actually on the conference call (e.g., the conference call might be starting a few minutes late, etc.), then a request to communicate with that user for a maximum of thirty seconds might be granted (the reasoning being that the communication will likely be finished before the late-starting conference call commences). 
         [0017]    Moreover, the illustrative embodiment is capable of detecting the initiation and completion of activities that might affect a user&#39;s presence, or might indicate a departure from a user&#39;s calendar (e.g., launching or terminating an application that executes on the user&#39;s telecommunications terminal, initiating or terminating a communications session, opening or closing a file, etc.). Such events are considered in addition to maximum duration and any other optionally-specified information when determining whether to grant communication requests. 
         [0018]    The illustrative embodiment comprises: receiving a request by a first user to communicate with a second user, wherein the request specifies a maximum time duration; and determining whether to grant the request based on the maximum time duration and on presence information for the second user. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]      FIG. 1  depicts the salient elements of a telecommunications system, in accordance with the illustrative embodiment of the present invention. 
           [0020]      FIG. 2  depicts a flowchart of a first method for allowing or refusing communication requests, in accordance with the illustrative embodiment of the present invention. 
           [0021]      FIG. 3  depicts a flowchart of a second method for allowing or refusing communication requests, in accordance with the illustrative embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]      FIG. 1  depicts the salient elements of telecommunications system  100 , in accordance with the illustrative embodiment of the present invention. As shown in  FIG. 1 , telecommunications system  100  comprises telecommunications terminals  102 - 1  and  102 - 2 , presence server  103 , and telecommunications network  105 , interconnected as shown. 
         [0023]    Telecommunications terminal  102 - 1  is a cell phone, a wireline phone, a smartphone, a notebook computer, etc. that is used by user  101 - 1 . Telecommunications terminal  102 - 1  is capable of communicating via telecommunications network  105  (e.g., the Public Switched Telephone Network [PSTN], the Internet, a private wide-area network, some combination of such networks, etc.) with telecommunications terminal  102 - 2  and presence server  103 , and of transmitting presence information to presence server  103  via telecommunications network  105 , in well-known fashion. 
         [0024]    Similarly, telecommunications terminal  102 - 2  is used by user  101 - 2  and is capable of communicating via telecommunications network  105  with telecommunications terminal  102 - 1  and presence server  103 , and of transmitting presence information to presence server  103  via telecommunications network  105 , in well-known fashion. As will be appreciated by those skilled in the art, in some embodiments of the present invention telecommunications terminal  102 - 2  might also be capable of executing one or more software applications (e.g., a calendar application for storing a schedule for user  101 - 2 , a spreadsheet application, a game, etc.), while in some other embodiments of the present invention, telecommunications terminal  102 - 2  might not be capable of such functionality (e.g., if telecommunications terminal  102 - 2  is a basic wireline telephone, if terminal  102 - 1  does not have any such applications resident on the device, etc.). In any case, it will be clear to those skilled in the art, after reading this disclosure, how to implement the methods described below and with respect to  FIGS. 2 and 3 . 
         [0025]    Presence server  103  is a data-processing system that is capable of receiving presence information from telecommunications terminals  102 - 1  and  102 - 2  via telecommunications network  105 , of receiving communication requests from telecommunications terminals  102 - 1  and  102 - 2  via telecommunications network  105 , of transmitting responses to such communication requests to telecommunications terminals  102 - 1  and  102 - 2  via telecommunications network  105 , and of executing the salient tasks described below and with respect to  FIG. 2 . 
         [0026]    As will be appreciated by those skilled in the art, in some embodiments of the present invention, including the illustrative embodiment, telecommunications system  100  might comprise other elements not depicted in  FIG. 2  (e.g., a Session Initiation Protocol [SIP] server, a router, a switch, etc.), and it will be clear to those skilled in the art, after reading this disclosure, how to make and use embodiments of the present invention comprising such elements. 
         [0027]      FIG. 2  depicts a flowchart of a first method for allowing or refusing communication requests, in accordance with the illustrative embodiment of the present invention. It will be clear to those skilled in the art, after reading this disclosure, which tasks depicted in  FIG. 2  can be performed simultaneously or in a different order than that depicted. 
         [0028]    At task  210 , user  101 - 1  submits a request via telecommunications terminal  102 - 1  to communicate with user  101 - 2 , where the request specifies a maximum time duration, and optionally, one or more of:
       a minimum time duration,   an expected time duration,   a priority,   a subject, and   a type of communication (e.g., voice call, email, short message service [SMS] message, etc.).       
 
         [0034]    At task  220 , telecommunications terminal  102 - 1  transmits the request to presence server  103  via telecommunications network  105 , in well-known fashion. 
         [0035]    At task  230 , the request is received by presence server  103 , in well-known fashion. 
         [0036]    At task  240 , presence server  103  determines whether to grant the communication request based on:
       the maximum time duration;   one or both of:
           presence information for user  101 - 2 , and   the contents of a calendar;   
           and optionally, one or more of:
           the minimum time duration,   the expected time duration,   the priority,   the subject, and   the type of communication.   
               
 
         [0047]    As will be appreciated by those skilled in the art, in some embodiments of the present invention, presence server  103  might store a calendar with information concerning one or more users (e.g., user  101 - 2 , etc), while in some other embodiments of the present invention, presence server  103  might store a plurality of calendars, each associated with a respective user, while in still some other embodiments, presence server  103  might instead obtain calendar information by transmitting a request to another entity (e.g., telecommunications terminal  102 - 2 ; another element of telecommunications system  100  not depicted in  FIG. 1 , such as a Microsoft Exchange® server; etc.). As will further be appreciated by those skilled in the art, in some other embodiments of the present invention presence server  103  might also transmit an interrupt request to user  101 - 2  and determine whether to grant the communication request at task  240  based on user  101 - 2 &#39;s response to the interrupt request. In any case, it will be clear to those skilled in the art, after reading this disclosure, how to make and use embodiments of the present invention that are capable of performing task  240 . 
         [0048]    At task  250 , presence server  103  transmits a response to terminal  102 - 1  indicating whether or not the communication request has been granted, in well-known fashion. After task  250 , the method of  FIG. 2  terminates. 
         [0049]    As will be appreciated by those skilled in the art, in some other embodiments of the present invention, one or more tasks of the method of  FIG. 2  might be performed by a different entity than that of the illustrative embodiment, and it will be clear to those skilled in the art, after reading this disclosure, how to make and use such embodiments of the present invention. For example, in some other embodiments of the present invention, task  240  might be performed by telecommunications terminal  102 - 1  (in which case, tasks  220 ,  230 , and  250  might be unnecessary), or by some other element of telecommunications system  100  not depicted in  FIG. 1 , instead of by presence server  103 . 
         [0050]      FIG. 3  depicts a flowchart of a second method for allowing or refusing communication requests, in accordance with the illustrative embodiment of the present invention. It will be clear to those skilled in the art, after reading this disclosure, which tasks depicted in  FIG. 3  can be performed simultaneously or in a different order than that depicted. 
         [0051]    At task  310 , presence server  103  receives a signal that indicates that user  101 - 2  has initiated or completed an activity involving telecommunications terminal  102 - 1  (e.g., user  101 - 2  launches or terminates an application that executes on the user&#39;s telecommunications terminal, user  101 - 2  initiates or terminates a communications session, user  101 - 2  opens or closes a file, etc.). In accordance with the illustrative embodiment, telecommunications terminal  102 - 1  is programmed to transmit the signal to presence server  103  when such activity initiation or completion occurs. As will be appreciated by those skilled in the art, however, in some other embodiments of the present invention the detection of such events, and/or the transmission of the signal, might be performed by some other entity of telecommunications system  100  instead of terminal  102 - 1  (e.g., an applications server not depicted in  FIG. 1 , etc.), and it will be clear to those skilled in the art, after reading this disclosure, how to make and use such embodiments of the present invention. 
         [0052]    At task  320 , presence server  103  updates the contents of a calendar accordingly in response to the received signal. For example, if the received signal indicates that user  101 - 2  has initiated a web-conferencing application at 12:25 pm, and a calendar comprises an entry for a videoconference lasting from 12:30 pm to 1:30 pm, the calendar entry is modified to indicate that the videoconference starts at 12:25 pm. Similarly, if the received signal indicates that user  101 - 2  has terminated a videoconference communication session at 1:20 pm, the calendar entry is modified so that the ending time of the videoconference is 1:20 pm. 
         [0053]    At task  330 , user  101 - 1  submits a request via telecommunications terminal  102 - 1  to communicate with user  101 - 2 , where the request specifies a maximum time duration, and optionally, one or more of:
       a minimum time duration,   an expected time duration,   a priority,   a subject, and   a type of communication (e.g., voice call, email, short message service [SMS] message, etc.).       
 
         [0059]    At task  340 , telecommunications terminal  102 - 1  transmits the request to presence server  103  via telecommunications network  105 , in well-known fashion. 
         [0060]    At task  350 , the request is received by presence server  103 , in well-known fashion. 
         [0061]    At task  360 , presence server  103  determines whether to grant the communication request based on:
       the maximum time duration;   one or both of:
           presence information for user  101 - 2 , and   the updated contents of the calendar;   
           and optionally, one or more of:
           the minimum time duration,   the expected time duration,   the priority,   the subject, and   the type of communication.   
               
 
         [0072]    As will be appreciated by those skilled in the art, as in the case of the method of  FIG. 2 , in some embodiments of the present invention, presence server  103  might store a calendar with information concerning one or more users (e.g., user  101 - 2 , etc), while in some other embodiments of the present invention, presence server  103  might store a plurality of calendars, each associated with a respective user, while in still some other embodiments, presence server  103  might instead obtain calendar information by transmitting a request to another entity (e.g., telecommunications terminal  102 - 2 ; another element of telecommunications system  100  not depicted in  FIG. 1 , such as a Microsoft Exchange® server; etc.). As will further be appreciated by those skilled in the art, in some other embodiments of the present invention presence server  103  might also transmit an interrupt request to user  101 - 2  and determine whether to grant the communication request at task  340  based on user  101 - 2 &#39;s response to the interrupt request. In any case, it will be clear to those skilled in the art, after reading this disclosure, how to make and use embodiments of the present invention that are capable of performing task  360 . 
         [0073]    At task  370 , presence server  103  transmits a response to terminal  102 - 1  indicating whether or not the communication request has been granted, in well-known fashion. After task  370 , the method of  FIG. 3  terminates. 
         [0074]    As will be appreciated by those skilled in the art, in some other embodiments of the present invention, one or more tasks of the method of  FIG. 3  might be performed by a different entity than that of the illustrative embodiment, and it will be clear to those skilled in the art, after reading this disclosure, how to make and use such embodiments of the present invention. For example, in some other embodiments of the present invention, task  360  might be performed by telecommunications terminal  102 - 1  (in which case, tasks  340 ,  350 , and  370  be unnecessary), or by some other element of telecommunications system  100  not depicted in  FIG. 1 , instead of by presence server  103 . 
         [0075]    It is to be understood that the disclosure teaches just one example of the illustrative embodiment and that many variations of the invention can easily be devised by those skilled in the art after reading this disclosure and that the scope of the present invention is to be determined by the following claims.