This application generally relates to integrated communication services, and more particularly, to resolving status conflicts within unified communications to provide integrated services.
Every day, millions of people log in to their computers using an associated password and username. By logging in and using such personalized information, the status of the person at a computer terminal can be determined. In addition, motion sensor systems, through infrared technology, can determine the presence or absence of a person by detecting movements within a limited range. Global positioning systems (GPS), often provided in many cell phones, can also be used to determine the location of a person. Other mechanisms or triggers for determining information about the person can include, but are not limited to, manual status changes by the person, manual status changes by an administrator, integrated calendar events, location based events, network connection based events, time based events and PC activity events. Unified communication systems can process this information as well as other data and form useable status information.
Current unified communication systems often allow for the creation and management of user statuses or profiles. These statuses can define the user's communication behavior as it relates to such things as call routing, instant messaging availability, email, video, etc. These systems often rely on varying mechanisms presented above to trigger a users status to change. Since these mechanisms are independent of each other and many of them are automated, situations can arise where user statuses continually override each other resulting in a “looping” situation. For example, a user can have a time based setting instructing the unified communication system to put them into status ‘A’ between the hours of 8:00 AM and 5:00 PM as well as a location based setting instructing them to set them to status ‘B’ when the location detection mechanism recognizes them in a specific location that could occur during those same hours. The problem then arises as to what status takes priority and for how long. One can imagine several of these situations based on the above mechanisms.
To overcome this, unified communication systems have used only one type of trigger at a time or put logic into systems allowing them to send one type of status trigger. Nevertheless, this does not prevent multiple systems or devices from overriding each other. A need therefore exists to provide a system for managing incoming triggers and resolving status conflicts generated between the triggers as well as overcoming other limitations present.
The novel features believed to be characteristic of the application are set forth in the appended claims. In the descriptions that follow, like parts are marked throughout the specification and drawings with the same numerals, respectively. The drawing figures are not necessarily drawn to scale and certain figures can be shown in exaggerated or generalized form in the interest of clarity and conciseness. The application itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be best understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:
The description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the application and is not intended to represent the only forms in which the present application can be constructed and/or utilized. The description sets forth the functions and the sequence of steps for constructing and operating the application in connection with the illustrated embodiments. It is to be understood, however, that the same or equivalent functions and sequences can be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of this application.
Generally described, the present application relates to unified communications, and more specifically, to resolving status conflicts within unified communications to provide integrated services. According to one illustrative embodiment, a set of trigger events are managed through a unified communication server. The triggers can be received from client devices such as global positioning systems, computers, presence detectors, calendar applications, etc. When received, the unified communication server can associate each of the trigger events with a priority and a duration. The unified communication server can set a status for the user according to the duration of the trigger event having the highest priority or until another status trigger having a higher priority is received. Based on the determined status of the user, communication services can be provided.
Numerous advantages can be realized through the unified communication server as illustrated above. The server can resolve conflicts received through automatic or manual status updates provided for different reasons that often override each other or get the user into an undesired status setting. Applications or other programs can be further developed using information processed by the unified communication server. Many additional features and elements of the present application will become apparent to those of ordinary skill in the relevant art as provided for in the following description.
Before describing embodiments of the present application, an exemplary environment for receiving and processing trigger events will be described in
Turning now to
The unified communication system 100 can provide real-time communication services. Unified communications can encompass a single product, but typically refers to a set of products that can provide a consistent unified user interface and user experience across multiple clients and media types. For example, a business application can simplify and integrate the trigger events to optimize business processes and reduce response time, manage flows and eliminate device and media dependencies. Services provided by unified communication systems 100 can include, but are not limited to, instant messaging, presence information, telephony, video conferencing and call control.
Continuing with
Trigger events 102 can also be provided when the user reaches their home as shown in the bottom left. Common within today's mobile devices, global positioning systems can be used to track a location of the user. The global positioning system can indicate that the user has returned home. Those skilled in the relevant art will appreciate that other devices can be used to indicate the location of the user and are not limited to global positioning systems. For example, a trigger event 102 can also be provided when the user connects their laptop to their home workstation as shown in the bottom right. This can indicate that they are working from home or at least have their computer docked at home.
For purposes of illustration, when a trigger event 102 is received, the unified communication system 100 can set a time-based status at a high priority so that when the user is at home between 8:00 AM and 5:00 PM, the location and network connection triggers 102 do not override it. Once the time-based source expires, the user can remain in the “At Work” status indicating that they are in the office working late, but the network connectivity or location-based sources now have a higher priority so that when the user arrives at home, the status is set appropriately.
The processes shown above can work until the user decides to connect to WiFi at home on a weekend or at night and does not wish for the status to change. Currently, methods do not incorporate situations having ambiguity that cannot be resolved. The situation where a user chooses to work at home or “telecommute” often leads to the situation described above. In these scenarios, a user typically needs a system and method that can help differentiate “Working At Home” from “Gone For The Day” type statuses. As described below, the unified communication system 100 can solve these issues as well as provide additional related advantages.
While represented as a single server, the unified communication system 100 can include one or more computing systems and is not limited to a single entity. Typically, the processing can be performed on a server having a processing unit, system memory, and system bus that operatively couples various system components. The system memory can include read only memory and random access memory. A hard disk drive, magnetic disk drive, and optical disk drive can be connected to the system bus by a hard disk drive interface, a magnetic disk drive interface, and an optical disk drive interface, respectively. The drives and their associated computer-readable medium provide nonvolatile storage of computer-readable instructions and data structures.
The unified communication system 100 can operate in a networked environment using logical connections to one or more remote computers, for example, over a wireless network. These logical connections can be achieved by a communication device coupled to or integral with the system 100. The trigger events 102 can be provided by a computer, a server, a router, a network personal computer, a client, a peer device, or other common network node, and typically includes many or all of the elements described above. Unified communication system 100 can be logically connected to the Internet.
The technology described herein can be implemented as logical operations and/or modules in one or more systems. The logical operations can be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems. Likewise, the descriptions of various component modules can be provided in terms of operations executed or effected by the modules. The resulting implementation is a matter of choice, dependent on the performance requirements of the underlying system implementing the described technology. Accordingly, the logical operations making up the embodiment of the technology described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations can be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
As depicted in
The source of the trigger event 102 can be sent from the client to the unified communication system 100 so that it can be stored on a database. When the status is set, and the source of the status is saved, typically a priority can be associated with that source. In one embodiment, the priority can be defined and sent from the client. The priority can also be pulled from a table stored on a database of the system 100. The table can store a list of common sources and their defined priorities. The priority provided by the source tagging can be used for creating a hierarchy of trigger events 102 received from the clients. For example, when an attempt comes from a client to set a status of a source with a lower priority, a rejection response can be sent back to the client indicating the error. Users can automate their status settings in such a manner as to not incur undesired status changes.
After the status change occurs and the priority is noted with the trigger event 102, source affinity can be used for determining how long or until what condition the status either is no longer valid or until the priority lowers automatically. The term “affinity” for a source is not necessarily restricted to time. Some affinities can require client connectivity, for example proximity and network connectivity. Time based affinities can include, but are not limited to, calendar events and time based status change. Connectivity based affinities can include network connection based status changes and proximity based affinities can include location based status changes. For connectivity based affinities, the status change can occur after connection is lost while in proximity based affinities, status change can occur after a certain distance is reached. By providing users the capability for specifying an affinity on their status update automation, status source tagging and preferences for overriding, users can automate their needs deterministically.
In one embodiment, when the duration of five hours for Trigger 3102 expires, two hours will remain for Trigger 2102 while the duration for Trigger 1102 will expire within the five hours for Trigger 3102. If there are no other additional triggers 102, Trigger 2102 can be used to determine a user's status as two hours will remain for its duration. Generally, Trigger 1102 can be deleted as the duration for the trigger 102 will have expired. In one embodiment, Trigger 1102 is not deleted and can be used when Trigger 2102 expires. For example, when Trigger 1102 expires, the priority for Trigger 1102 can be lowered. If Trigger 3102 and Trigger 2102 expire, Trigger 1102 can be used to determine the status of the user even though the duration has expired for Trigger 1102.
In one embodiment, the priority and duration of the trigger events 102 can be lowered and raised. For example, the priority for Trigger 1102 can be raised after the duration expires such that the priority for Trigger 1102 would be greater than Trigger 3102 after three hours. While primarily described as working with time durations, those skilled in the relevant art will appreciate that other types of source affinities can be used. Furthermore, these source affinities can be interchanged and used together, for example, a time based affinity with a connectivity based affinity can be used. In addition, more than one type of affinity can be assigned with a trigger event 102. Those processes used for the trigger events 102 can be generally applied and do not necessarily relate to Trigger 1102, Trigger 2102 and Trigger 3102.
Referring to
At block 304, the system 100 can determine a priority for the trigger event 102. The priority can be received by the client sending the trigger event 102. The system 100, in one embodiment, can receive information about the client and from that information, the system 100 can determine a priority for that client. A table stored within a database can be used to associate clients with priorities.
At decision block 306, the system 100 can determine whether the new status of the received trigger event 102 can overwrite the old status currently in place. When the trigger event 102 has a lower priority than the previous trigger events 102, at block 308, the trigger event 102 can be rejected and the new status associated with the trigger event 102 is not used. When the priority for the new trigger event 102 is higher, at block 310, the unified communication system 100 would change the user status and affinity. From there, communication services can be modified or kept. The processes can end at block 312.
Continuing with the previous illustration provided above in
While
Based on the source tagging and source affinity of the trigger events 102, the unified communication system 100 can resolve conflicts.
In one embodiment, the calendar event listener module can specify a status for the unified communication system 100 to change to after the trigger event 102 expires. When no new status parameter is specified, and after the expiration occurs, the priority of the current status can be lowered more than any other source including the calendar event source that originally set it. This has the effect of invalidating the status as soon as any other trigger event 102 occurs.
Continuing with
After a period of time passes by, the affinity for “In A Meeting” ends. In one embodiment, for conference calls, the “In A Meeting” status can end when the phone call ends. The trigger event 102 provided by the location based service can then cause a status change for the user. In this example, the unified communication system 100 can change the user's status to “In The Office.”
In the previous example, the user's status was considered invalid after the calendar trigger event 102 expired. For other types of events 102, the priority can be lowered or raised as the source providing the event 102 requires.
A trigger event 102 can be provided by location services. The user can have a location or network based trigger event 102 for “At Home” that is determined by their home network or global positioning system coordinates. Situations where the time event module and location based services can provide trigger events 102 include “telecommuting.” The user can set the trigger event 102 provided by the time module at a high priority so that when the user is at home between 8:00 AM and 5:00 PM, the location and network connection trigger events 102 do not override it. Once the time-based trigger event 102 expires, the user can remain in the “At Work” status, as the user can be at the office working late, but the network connectivity or location-based sources now have a higher priority so that when the user arrives at home the status is set appropriately. Previously, users would have to disable automated changes or require hardcoded prioritization of manual status override to manage this scenario.
The foregoing description is provided to enable any person skilled in the relevant art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to those skilled in the relevant art, and generic principles defined herein can be applied to other embodiments. Thus, the claims are not intended to be limited to the embodiments shown and described herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” All structural and functional equivalents to the elements of the various embodiments described throughout this disclosure that are known or later come to be known to those of ordinary skill in the relevant art are expressly incorporated herein by reference and intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.