Difference between revisions of "WebRTC and SIP Over WebSockets"

From reSIProcate
Jump to navigation Jump to search
(Created page with "== Background == '''WebSockets''' is a mechanism for creating sockets from a web browser (typically running Javascript) to a server. [https://datatracker.ietf.org/doc/draft-iet...")
 
Line 9: Line 9:
 
== reSIProcate and WebRTC ==
 
== reSIProcate and WebRTC ==
  
* WebRTC specifies that ICE/STUN/TURN support is mandatory in user agents/end-points.  The '''reTurn server''' project and the '''reTurn client libraries''' from reSIProcate can fulfil this requirement.
+
* WebRTC specifies that ICE/STUN/TURN support is mandatory in user agents/end-points.  The '''reTurn server''' project and the '''reTurn client libraries''' from reSIProcate can fulfil this requirement.
* WebRTC requires some mechanism for finding peers and initiating calls.  SIP over WebSockets, interacting with a '''repro''' proxy server can fulfill this task.
+
* WebRTC requires some mechanism for finding peers and initiating calls.  SIP over WebSockets, interacting with a '''repro''' proxy server can fulfill this task.
  
 
== Related links ==
 
== Related links ==
Line 16: Line 16:
 
=== Javascript SIP clients for WebRTC capable browsers ===
 
=== Javascript SIP clients for WebRTC capable browsers ===
  
* [http://sipml5.org/ sipML5]
+
* [http://sipml5.org/ sipML5]
* [http://www.jssip.net/ JsSIP]
+
* [http://www.jssip.net/ JsSIP]
  
 
=== WebRTC capable browsers ===
 
=== WebRTC capable browsers ===
  
* [https://www.google.com/intl/en/chrome/browser/beta.html Chrome 25 beta]
+
* [https://www.google.com/intl/en/chrome/browser/beta.html Chrome 25 beta]
* [http://nightly.mozilla.org/ Firefox nightly build]
+
* [http://nightly.mozilla.org/ Firefox nightly build]
  
 
=== Other components ===
 
=== Other components ===
  
* The SIP client must be hosted on a web server such as Apache
+
* The SIP client must be hosted on a web server such as Apache

Revision as of 18:03, 15 February 2013

Background

WebSockets is a mechanism for creating sockets from a web browser (typically running Javascript) to a server.

draft-ietf-sipcore-sip-websocket defines a way to use WebSockets formally as a transport for SIP. It is not possible to simply view the WebSocket as a tunnel and pass SIP messages through them. Specfically, SIP user agents and proxies must behave slightly differently when WebSockets is used instead of UDP or TCP, and the draft specifies what this means in practice. There is a branch in reSIProcate attempting to implement this behavior.

WebRTC is related to WebSockets, but it is not the same thing. WebRTC specifies a way for a browser to act as an RTC endpoint, but not specifically as a SIP endpoint. There are SIP implementations written in Javascript that use the WebSocket transport to create WebRTC sessions, and a correctly adapted repro proxy server should be able to interact with such clients.

reSIProcate and WebRTC

  • WebRTC specifies that ICE/STUN/TURN support is mandatory in user agents/end-points. The reTurn server project and the reTurn client libraries from reSIProcate can fulfil this requirement.
  • WebRTC requires some mechanism for finding peers and initiating calls. SIP over WebSockets, interacting with a repro proxy server can fulfill this task.

Related links

Javascript SIP clients for WebRTC capable browsers

WebRTC capable browsers

Other components

  • The SIP client must be hosted on a web server such as Apache