Enabling people-to-people interaction across heterogeneous communication end-points enhances user experience and fosters people collaboration. This paper presents the design and implementation of a unified communication system, dubbed Mercury, that allows a user to interact with others using the most convenient device at the time. Mercury supports both two-way conversation and one-way messaging. It leverages the Session Initiation Protocol to manage communication sessions and exploits dynamic user context to proactively route and migrate calls. It allows for subscription to other users’ unified reachability status and provides a soft ring feature via universal notification. Mercury has an extensible architecture that allows new device types to be easily incorporated into the system. Our prototype implementation integrates a variety of devices: telephones, Sametime instant messaging clients, email, and pagers.