1. A server including a processor, the server comprising: a communication application being executed on a Java virtual machine on said server; a unified application framework for call control and media control for building application components of the communication application a call control API for providing a standardized Java interface for call control, said call control API defining a set of class object primitives for call control; a media control API for providing a standardized Java interface for media server control, said media control API defining a set of class object primitives for media control; a unified call control and media control API defining a set of unified class objects constructed from the class object primitives of the call control API and the media control API; and wherein the application components are built from the unified class objects including: a Call object for connecting a leg of communication between an endpoint and the communication application; a Participant object representing an abstract party involved in a conversation; a Join object for effecting an asynchronous join operation on the Participant object; a MediaService object for media control available to a call; an Eventsource object for representing an event source that serializes events from call control and events from media control such that the application component listening said event source only has to deal with one event at a time; and an Observer object for a listener that listen to events from the event source.