1. Field of the Invention
The present invention is directed generally to telecommunications systems and, particularly, to improvements in providing presence information.
2. Description of the Related Art
Presence-based communications applications are entering the mainstream telecommunications environment. In such applications, a user maintains one or more “contact lists” of other parties whose presence status is to be monitored and displayed to the user. If the other party is determined to be “present,” the user's contact list will display the available status. The user can then contact the other party.
However, while contact lists are typically used to provide the user a current status of other parties, it is often the case that a user will wish to plan a call or conference at a certain future date. Current presence systems, however, do not provide such prospective presence information.
As such, there is a need for an improved system and method for contact list management. There is a still further need for a system and method for using presence information to determine a future schedule.
These and other drawbacks in the prior art are overcome in large part by a system and method according to embodiments of the present invention.
A telecommunications system according to an embodiment of the present invention includes a network; a plurality of client devices operably coupled to said network, said plurality of client devices adapted to select one or more of others of said plurality as contacts on a contact list; a presence server coupled to said network and adapted to monitor presence status of selected ones of said others; wherein said presence server maintains one or more records of past presence data for said selected ones and is configured to provide said one or more records to a requesting one of said plurality.
A telecommunications system according to an embodiment of the present invention includes a network; a plurality of client devices operably coupled to said network, said plurality of client devices adapted to select one or more of others of said plurality as contacts on a contact list; a presence server coupled to said network and adapted to monitor presence status of selected ones of said others, wherein said presence server maintains one or more records of past presence data for said selected ones; a calendar server adapted to maintain a calendar for selected ones of said plurality; and a scheduler adapted to receive said one or more records and said calendar and determine a likely presence status at a predetermined time.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
Turning now to the drawings and, with particular attention to
In addition, a multi-modal presence feature 102 according to embodiments of the present invention can provide presence services, including history, and scheduling information, aggregated across the various media 104, 106, 108, 110. More particularly, as will be explained in greater detail below, the presence system 102 can monitor one or more user contact lists for specified presence or availability and provide a historical presence feature wherein the presence server will record a presence status history of registered parties (i.e., will provide a record of past presence data). The histories are accessible by selected users to determine an optimal contact time and/or medium. Still other embodiments of the present invention provide a scheduler that can access the presence status histories of other parties and the requesting user. The scheduler can then determine a projected optimal contact time based on minimizing conflicts in the schedules and projected schedules.
It is noted that while illustrated as a multi-modal presence system, the teachings of the present invention are equally applicable to system employing only single presence-based media. Thus, the figures are exemplary only.
The server 204 may include one or more controllers (not shown), such as one or more microprocessors, and memory for storing application programs and data. As will be explained in greater detail below, the server 204 may provide a variety of services to various associated client devices, including computers, telephones, personal digital assistants, text messaging units, and the like. Thus, as will be explained in greater detail below, the server 204 may implement suite of applications 213 as well as, or including, a master presence control unit 211, according to embodiments of the present invention.
Also coupled to the LAN 202 is a gateway 206 which may be implemented as a gateway to a private branch exchange (PBX), the public switched telephone network (PSTN) 208, or any of a variety of other networks, such as a wireless, PCS, a cellular network, or the Internet. In addition, one or more client endpoints such as LAN or IP telephones 210a-210n or one or more computers 212a-212n may be operably coupled to the LAN 202.
The computers 212a-212n may be personal computers implementing the Windows XP operating system and thus, running Windows Messenger client (It is noted, however, that other Instant Messaging Programs could be implemented.). In addition, the computers 212a-212n may include telephony and other multimedia messaging capabilities using, for example, peripheral cameras, microphones and speakers (not shown) or peripheral telephony handsets. In other embodiments, one or more of the computers may be implemented as wireless telephones, digital telephones, or personal digital assistants (PDAs). Thus, the figures are exemplary only. The computers 212a-212n may include one or more processors, such as Pentium-type microprocessors, and storage for applications and other programs. The computers 212a-212n may implement network application programs 220 including one or more presence control units 222 in accordance with embodiments of the present invention. In operation, as will be explained in greater detail below, the presence control units 222 allow the client endpoints to interact with the presence service(s) provided by the presence server 204, including, for example, historical, and predictive services.
Turning now to
As will be explained in greater detail below, the master presence control unit 211 collectively includes one or more presence history units, also referred to as historical presence control units (HPCU) 301, presence applications 316c, and a context manager 320a. In certain embodiments, personal profiles 316a interface to the master presence control unit 211, as well, and may be considered part of it. Thus, the master presence control unit 211 interfaces to productivity applications to provide presence services according to embodiments of the present invention.
In the embodiment illustrated, the application suite 213 includes a personal productivity application 316, a workgroup application 318, and a communication broker 320. The personal productivity application 316 implements various application modules: priority profiles 316a, word web 316b, presence 316c, voice portal 316d, self-service portal 316e, and personal portal 316f. The workgroup collaboration application 318 implements audio conferencing 318a, multimedia conferencing 318b, touch conferencing 318c, instant conferencing 318d, media advance 318e, and a workgroup portal 318f. The communications broker 320 implements a context manager 320a, configuration unit 320b, telephony features 320c, reports/data storage 320d, as well as interworking services.
The personal productivity portal 318f and workgroup portal 318f allow a user to access features using a standard Web browser, or via network application plugins.
The priority profiles 316a provide for handling of a user's communications and initiating specified actions, such as voice calls, e-mails and instant messages. It allows the user to configure personal rules for each status such as “In the Office”, “On Business Trip”, or “On Vacation;” and allows use of information such as who is calling and the media type to determine an action. The action may include routing to a specific device, routing to the preferred device at the time, sending a notification, and/or logging the transaction.
The presence application 316d functions as a contact list control unit and allows, through the use of the contact lists, monitoring the status of contacts (e.g., “In the Office,” “On Vacation,” “Working Remote,” etc.); and monitoring the “aggregated presence by media type” for each contact (i.e., whether the contact is accessible by phone, IM, or email).
The Word web 316b provides a Microsoft Word-based scripting for development of telephony applications. The self service portal 316c provides guest access to messaging, calendaring, and document retrieval features, such as Voicemail Functions—leave a message, transfer from voicemail; Calendar Functions—schedule/cancel/modify appointments with a subscriber, get email confirmation; and Document Access Functions—authenticate user based on PIN and allow reading, email or fax-back of documents stored in Exchange folders. The voice portal 316e provides user access to groupware features via the telephone. These can include, for example, Calendar Access functions—accept/decline/modify appointments, block out time; voicemail, email access functions—Inbox access with message sorting options (List total, retrieve (listen), skip, forward, reply, etc.).
In general, default user rules and actions are provided by the system users to specify custom rules and actions using the Personal Productivity Portal 316f, e.g., an interface to a client browser. During runtime, users can set their Presence State or specify a Preferred Device using either the Personal Productivity Portal 316f or the Voice Portal 316d.
The Workgroup Collaboration Portal 318f, which may be implemented as a browser interface, allows users to initiate audio or multi-media conferencing sessions and view documents that have been checked in to the Workgroup Repository (not shown). The audio conferencing module 318a and the multimedia conferencing module 318b allow the user to set up audio or multimedia conference sessions. The Instant Conference module 318d launches an audio or WebEx multimedia conferencing session, based on contact lists or address book(s). The Touch Conference module 318c allows the user to see the participant list and their presence status. The Media Advance module 318e offers users the point and click option to advance an existing audio conference to a multimedia collaborative session.
The communications broker 320 provides various communication services. The Context Manager 320a provides user presence/availability states for users, such as “In the Office”, “On Vacation”, “Working Remote”, etc.; and provides device presence and device context for both SIP registered devices and User defined non-SIP devices. In addition, the context manager 320a provides, across the set of devices for a user, aggregated presence by media type, e.g., voice, IM, and email. For example, if a user is accessible by any phone device such as an office phone, a home phone, or a mobile phone; the aggregated presence for the user would indicate accessibility via the media type “telephone.” Based on the aggregated presence information for each media type (e.g. available via telephone, not available via IM, available via email), others can choose the best medium of making contact with this user.
The telephony features 320c gives applications access to connection management features via CSTA (e.g. make a call, transfer call, set-up conference, etc.); provides address translation from dialing digits to SIP URL to broker connectivity between telephony devices and soft clients. The Interworking Services provide SIP gateway interworking (e.g., interworking with PSTN and PBX networks). Reports Data Storage 320d provides a repository for system and data reports.
The Context Manager 320a is a service that ties together a view of all users. This view may include the presence and availability of users, the state of users (e.g. in a voice call), each user's collaboration session associations, etc. The result is a detailed view of what the user and their devices are doing at any point in time. This information is used by other network users and system components to make decisions about how to contact the user, as will be described in greater detail below.
Collectively, the presence application 318c and context manager 320a operate in conjunction with the presence history unit 301 and priority profiles 316a to provide presence service according to embodiments of the present invention. In particular, as will be explained in greater detail below, the presence service operates to determine the history of predetermined contacts and undertake actions responsive thereto.
It is noted that, while a presence server in a unified messaging system is shown, the teachings of the present invention are equally applicable to a presence system associated with a single medium, such as Instant Messaging. Thus, the figures are exemplary only.
Turning now to
As shown in
The Collaboration Groups window 406 similarly allows the user to display collaboration groups and status. The calendar window 408 allows the user to set times and dates, e.g., for making calls or setting meetings times. The Inbox window 410 permits receiving of e-mail or other multimedia messages. The user status window 412 allows the user to set current presence status.
In particular,
In operation, users also can use their status portals 412 (
More particularly, as shown in
In operation, the historical presence control unit 301 operates in conjunction with the calendar 1304 to record the actual time and date of changes in party status. That is, the historical presence control unit 301 maintains one or more parties' presence histories in associated memory (not shown). This information record can then be provided to other users, i.e., be made available in a presence map or calendar format to other users. For example, the server can provide the data to be displayed or generated locally in a web type browser as a presence map or calendar.
Other users can access another party's presence history by clicking on one or more menu buttons, for example, when a particular party is highlighted in the user's contact list 404 (
If, for example, the user clicks on Month 1406, a month display 1502 such as shown in
A particular day can be selected, e.g., by using the GUI of
Turning now to
At step 1710, the master presence control unit 211 can receive a user request for a party's historical presence information. For example, as discussed above, such a request can be received using a suitably programmed web interface and can be customized to media or state. Once the request has been received, the master presence control unit 211's historical presence control unit 301 checks to determine if the requested party has chosen to allow his presence history to be accessed, as shown at step 1712. Such permission may be associated with all users or only particular users. If permission is not allowed, the master presence control unit 211 will continue monitoring, as shown at 1706. If permission is given, then at step 1714, 1716, 1718, the historical presence control unit 301 will access past day, week, or month (or user-specified day, week, or month, or combinations thereof. Finally, at step 1720, the presence information is provided to the requesting user as a calendar map. The map can be customized to display presence media or states in different colors, etc.
If branch 1601 is implemented, then in step 1606, the historical presence control unit 301 accesses a system clock and/or calendar 301 and, at step 1608, records the time and date of the change in presence state. Then monitoring continues at step 1610 until the next change in presence state is detected.
If branch 1603 is implemented, then in step 1612, after a change in presence state is detected at step 1604, a timer is started at step 1612. A next change in presence state is detected at step 1614. In a step 1616, the timer entry is stored, the timer itself is cleared, and begins timing again until the next change in presence status for the party is determined. In this embodiment, the amount of time at a given presence state can thus be directly determined. Alternatively, of course, the amount of time could be calculated from the exact hour, minute data determined using branch 1601. As will be explained in greater detail below, such information may be useful in predicting whether a party will be available on a particular date.
In operation, as shown in
As noted above, one aspect of embodiments of the present invention is determining an availability of a party and scheduling a communication, such as an audio or multimedia teleconference. As will be explained in greater detail below, in operation, a scheduler 1306 (
A graphical user interface that allows the user to select various scheduling parameters is shown in
One example of this predictive scheduling is shown with reference to
As will be discussed below, “availability” on a particular day can include an actual hour-by-hour analysis of the days of the week. In other embodiments, however, the system may determine that the user is not available at a given day if he has been unavailable for more than, for example, four hours during the day in the past. Similarly, the party may be deemed unavailable during half days if the user has in past not been available more than an hour in each half day. Such a determination may be made, for example, using the timer as described above.
Thus, the scheduler 1306 determines that the party is available at 11 AM, 1 PM, and from 3 to 5 PM. The scheduler 1306 can then request a call with the other party, or simply indicate to the user when that party is available. In addition, in certain embodiments, the scheduler 1306 can also access the user's own calendar and history to constrain the availability determination.
The foregoing description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The drawings and description were chosen in order to explain the principles of the invention and its practical application. The drawings are not necessarily to scale and illustrate the device in schematic block format. It is intended that the scope of the invention be defined by the claims appended hereto, and their equivalents.
The present invention is related to co-pending, commonly assigned U.S. patent application Ser. No. ______, titled SYSTEM AND METHOD FOR HISTORICAL PRESENCE MAP, filed concurrently herewith.