Patent ID: 7653191

Claim:
A method of routing a telephone call dynamically to a user comprising: initiating a voice call session on a data communication network in response to an incoming telephone call directed to the user, said data communication network having one or more computing devices coupled thereto; dynamically determining whether the user is online via the selected computing device associated with the user and coupled to the data communication network, said dynamically determining comprising dynamically determining whether the user is online based on a user context corresponding to a log-in sub-state presence of the user and indicating that the user is currently online via selected computing devices connected to the data communications network or whether the user is online based on a binary presence indicating that the selected computing device is connected to the data communications network while the user is not logged in, said log-in sub-state presence comprising: an online state, a busy state, an away state, and an offline state; in response to the determination of log in sub-state presence, executing a set of routing rules for routing the incoming telephone call associated with the user, the execution of the routing rules including: in response to a determination that the log in sub-state corresponds to an online state: selecting a computing device associated with the online state, generating an alert message by an alert service, the alert service configured to receive Hypertext Transfer Protocol (HTTP) requests from a Session Initiation Protocol (SIP) server, routing an alert message by a messaging service, the messaging service configured to receive requests from the alerts service, displaying the alert at the selected computing device, wherein the alert displays an indication of a timeout and information about the caller based on data within an address book; in response to a determination that the log-in sub-state does not correspond to an online state: determining a schedule associated with the user, determining a location associated with the schedule and a current time and a day of week, and selecting a computing device based on the location of the user; and completing the voice call session to the selected computing device.