JsSIP

{{Short description|Library for JavaScript}}

{{Use dmy dates|date=December 2017}}

{{Infobox software

| name = JsSIP

| logo = JsSIP JsSIP.png

| released = {{Start date and age|df=yes|2011}}

| latest release version = 3.4.3

| latest release date = {{Start date and age|2020|04|22}}{{cite web

| url = https://github.com/versatica/JsSIP/releases

| title = Releases

| work = versatica/JsSIP

| via = GitHub

| publisher = JsSIP

| access-date = 2 February 2017}}

| repo = {{URL|https://github.com/versatica/JsSIP}}

| programming language = JavaScript

| genre = WebRTC

| license = MIT

| website = {{URL|jssip.net}}

}}

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.{{cite web |url=http://www.frafos.com/wp-content/uploads/2014/11/FRAFOS_WebRTC_Deployment.pdf |title=WebRTC:How and Why? |publisher=FRAFOS |date=2015-01-12 |access-date=27 January 2015 |archive-date=12 June 2016 |archive-url=https://web.archive.org/web/20160612021646/http://www.frafos.com/wp-content/uploads/2014/11/FRAFOS_WebRTC_Deployment.pdf |url-status=dead }}

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:

  • {{IETF RFC|3261|link=no}} — SIP: Session Initiation Protocol
  • {{IETF RFC|3311|link=no}} — SIP Update Method
  • {{IETF RFC|3326|link=no}} — The Reason Header Field for SIP
  • {{IETF RFC|3327|link=no}} — SIP Extension Header Field for Registering Non-Adjacent Contacts (Path header)
  • {{IETF RFC|3428|link=no}} — SIP Extension for Instant Messaging (MESSAGE method)
  • {{IETF RFC|4028|link=no}} — Session Timers in SIP
  • {{IETF RFC|5626|link=no}} — Managing Client-Initiated Connections in SIP (Outbound mechanism)
  • {{IETF RFC|5954|link=no}} — Essential Correction for IPv6 ABNF and URI Comparison in RFC 3261
  • {{IETF RFC|6026|link=no}} — Correct Transaction Handling for 2xx Responses to SIP INVITE Requests
  • {{IETF RFC|7118|link=no}} — The WebSocket Protocol as a Transport for SIP

Interoperability

=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:

  • [http://www.freeswitch.org FreeSWITCH]
  • [http://www.frafos.com/webrtc/ FRAFOS ABC WebRTC Gateway] {{Webarchive|url=https://web.archive.org/web/20160720093356/http://www.frafos.com/webrtc/ |date=20 July 2016 }}
  • [http://www.oversip.net OverSIP]
  • [http://www.kamailio.org/ Kamailio]
  • [http://www.asterisk.org Asterisk]
  • [https://www.resiprocate.org 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 [http://caniuse.com/#feat=websockets WebSocket capable browser].

License

JsSIP is provided as open-source software under the MIT license.{{cite web|url=https://github.com/versatica/JsSIP/blob/master/LICENSE| title= JsSIP License}}

References

{{Reflist}}