Patent ID: 7706785

Claim:
A context-aware communication system for enabling communications between users over a common communications platform or heterogeneous communications platforms, said system comprising: device agent means associated with a respective caller and callee communications device for generating commands for providing call control between caller and callee communications devices; routing engine means for routing call commands between caller and callee via respective device agents to establish a communication session between caller and callee communications devices, and enabling exchange of conversation messages between said caller and callee communications devices including at least heterogeneous devices over said single or heterogeneous communications platforms; means for monitoring dynamic context of a callee and obtaining callee's preferences for receiving communications, said routing engine enabling a call setup between a caller and callee communications devices based on the callee's preferences or dynamic context information; and, means for enabling either caller or callee to migrate, based on a change in location of the caller or callee, a call that is ongoing to another communications device including at least to different modalities of communications without disrupting a flow of a conversation therebetween, the different modalities including at least audio and text, said migrating being performed without affecting other party of the call who is not migrating, whereby said system enables communication of conversation messages between caller and callee devices in accordance with the most appropriate communications device, wherein a callee is able to specify a call routing preference, said routing engine further including a storage means for storing user preferences, and further including means for accessing a preference for determining routing of conversation messages to a preferred callee device, and wherein said routing engine further includes: registration means for enabling a user callee to specify reachability, wherein a call control command indicates what devices that a callee may be reached at; and, subscription means for enabling a user caller to receive notifications of a potential callee's availability to communicate and on what communications device.