Patent ID: 8321506

Claim:
A method performed by a computing system for providing real-time collaboration services in an application, comprising: instantiating a first activity object, stored at a computing device, that employs a first endpoint object and a first media stack object to provide a first collaboration service, the first activity object comprising at least one of a collaboration session activity object, an application session activity object, a messaging activity object, and a videoconferencing activity object, wherein the first endpoint object supports a first signaling protocol for providing management services, and wherein the first media stack object supports a first media protocol for providing content communication services, the first activity object providing a first unified application program interface for coordinating the first signaling protocol and the first media protocol; instantiating a second activity object, stored at the computing device, that employs a second endpoint object and a second media stack object to provide a second collaboration service, the second activity object being different from the first activity object and comprising at least one of a collaboration session activity object, an application session activity object, a messaging activity object, and a videoconferencing activity object, wherein the second endpoint object supports a second signaling protocol for providing management services, and wherein the second media stack object supports a second media protocol for providing content communication services, the second activity object providing a second unified application program interface for coordinating the second signaling protocol and the second media protocol; invoking methods of the first unified application program interface of the first activity object at the computing device, the first unified application program interface comprising a first high-level interface of consolidated programming logic of the first signaling protocol and the first media protocol, wherein the invoked methods provide the underlying functionality of the first endpoint object and the first media stack object between applications that communicate information using the first collaboration service; invoking methods of the second unified application program interface comprising a second high-level interface of consolidated programming logic of the second signaling protocol and the second media protocol, wherein the invoked methods provide the underlying functionality of the second endpoint object and the second media stack object between applications that communicate using the second collaboration service; wherein the first and second signaling protocols provide negotiation for bandwidth parameters; wherein the collaboration session activity object enables a plurality of users at different computing devices to collaborate on a shared document; and wherein the shared document is simultaneously open for editing by the plurality of collaborating users.