A context aware call handling system comprising: a shared database; a communication network; a user interface for setting a plurality of caller relationships to said user and a plurality of user preference call handling rules based on a plurality of user contexts and caller relationships, in which possible user contexts include location, time within the user's schedule and user's activity; and an application level configured to make assertions to said shared database relating to current user context and incoming call information from a caller over said communication network, and in response handle said incoming call by applying a selected one of said user preference call handling rules based on said user context and said call information; wherein in the event of a conflict between call handling rules a single rule is selected as: one of said user preference call handling rules having more conditions than other ones of said rules, in the event that said rules have different numbers of conditions; one of said user preference call handling rules having more specific conditions than other ones of said rules, in the event that said rules have identical numbers of conditions, wherein a condition is more specific when the depth of an item associated with the condition is lower in a hierarchy; and in the event that the rules have identical numbers of conditions that are equally specific either a most recently created one of said rules or a randomly selected one of said rules. a shared database; a communication network; a user interface for setting a plurality of caller relationships to said user and a plurality of user preference call handling rules based on a plurality of user contexts and caller relationships, in which possible user contexts include location, time within the user's schedule and user's activity; and an application level configured to make assertions to said shared database relating to current user context and incoming call information from a caller over said communication network, and in response handle said incoming call by applying a selected one of said user preference call handling rules based on said user context and said call information; wherein in the event of a conflict between call handling rules a single rule is selected as: one of said user preference call handling rules having more conditions than other ones of said rules, in the event that said rules have different numbers of conditions; one of said user preference call handling rules having more specific conditions than other ones of said rules, in the event that said rules have identical numbers of conditions, wherein a condition is more specific when the depth of an item associated with the condition is lower in a hierarchy; and in the event that the rules have identical numbers of conditions that are equally specific either a most recently created one of said rules or a randomly selected one of said rules. one of said user preference call handling rules having more conditions than other ones of said rules, in the event that said rules have different numbers of conditions; one of said user preference call handling rules having more specific conditions than other ones of said rules, in the event that said rules have identical numbers of conditions, wherein a condition is more specific when the depth of an item associated with the condition is lower in a hierarchy; and in the event that the rules have identical numbers of conditions that are equally specific either a most recently created one of said rules or a randomly selected one of said rules.