JsSIP

JsSIP is a library for the programming language JavaScript. It takes advantage of SIP and WebRTC to provide a fully featured SIP endpoint in any website. JsSIP allows any website to get real-time communication features using audio and video. It makes it possible to build SIP user agents that send and receive audio and video calls as well as and text messages.

General features

 * SIP over WebSocket transport
 * Audio-video calls, instant messaging and presence
 * Pure JavaScript built from the ground up
 * Easy to use and powerful user API
 * Works with OverSIP, Kamailio, and Asterisk servers
 * SIP standards

Standards
JsSIP implements the following SIP specifications:


 * — SIP: Session Initiation Protocol
 * — SIP Update Method
 * — The Reason Header Field for SIP
 * — SIP Extension Header Field for Registering Non-Adjacent Contacts (Path header)
 * — SIP Extension for Instant Messaging (MESSAGE method)
 * — Session Timers in SIP
 * — Managing Client-Initiated Connections in SIP (Outbound mechanism)
 * — Essential Correction for IPv6 ABNF and URI Comparison in RFC 3261
 * — Correct Transaction Handling for 2xx Responses to SIP INVITE Requests
 * — The WebSocket Protocol as a Transport for SIP

SIP proxies, servers
JsSIP uses the SIP over WebSocket transport for sending and receiving SIP requests and responses, and thus, it requires a SIP proxy/server with WebSocket support. Currently the following SIP servers have been tested and are using JsSIP as the basis for their WebRTC Gateway functionality:
 * FreeSWITCH
 * FRAFOS ABC WebRTC Gateway
 * OverSIP
 * Kamailio
 * Asterisk
 * reSIProcate and repro

WebRTC web browsers
At the media plane (audio calls), JsSIP version 0.2.0 works with Chrome browser from version 24. At the signaling plane (SIP protocol), JsSIP runs in any WebSocket capable browser.

License
JsSIP is provided as open-source software under the MIT license.