1. A method of controlling a media session, the method comprising: establishing with an application executing on a web application server a call with at least one endpoint device via a signaling protocol; maintaining control of the call with the application, wherein maintaining control of the call with the application comprises performing call processing and call control functions other than signaling and initiating the call; passing control of aspects of the call other than call control from the application to a separate first media processing module without passing control of the call from the application to the first media processing module, wherein the first media processing module collects information from an endpoint participating in the call and updates a state of the media based on the information from the endpoint; and performing by the application additional call control based on the updated state of the media and the information collected from the endpoint participating in the call.