10. A method of operating a server, comprising: providing a call control API for providing a standardized Java interface for call control under SIP and defining a set of class object primitives for call control; providing a media control API, the media control API providing a standardized Java interface for media server control and defining a set of class object primitives for media control; constructing a unified call control and media control API defining a set of unified class objects from the class object primitives of the call control API and the media control API; deploying an application having components built from the set of 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; and executing the application on a Java virtual machine on said server.
10. A method of operating a server, comprising: providing a call control API for providing a standardized Java interface for call control under SIP and defining a set of class object primitives for call control; providing a media control API, the media control API providing a standardized Java interface for media server control and defining a set of class object primitives for media control; constructing a unified call control and media control API defining a set of unified class objects from the class object primitives of the call control API and the media control API; deploying an application having components built from the set of 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; and executing the application on a Java virtual machine on said server. 16. The method as in claim 10 , wherein said observer object specifies a type of event and a state of the application.