You have a few possibilities for this:
Flash based such as
red5phone
-pros: flash is present in almost all desktop browsers
-cons: a costly media server is needed
Java applet such as
jain or
webphone
-pros: no any intermediary media server is needed
-cons: java have to be enabled in the browser
Webrtc based such as
sipml5 or
HTML5WebRTC
-pros: this is the new trend
-cons: still not supported by the majority of the browsers now in 2014
Native such as NPAPI or
ActiveX
-pros: performance (same as a native executable)
-cons: not cross platform, blocked by default by the browsers