changelogs.md


versatica/jssip

Repository  -  API  -  Source

3.3.11

October 24, 2019
  • RTCSession: don't relay on 'icecandidate' event with null candidate (#598). Thanks @skanizaj.

3.3.10

October 16, 2019
  • RTCSession: honor BYE while in WAITING_FOR_ACK state (#597). Thanks @Egorikhin.

3.3.9

September 24, 2019
  • Added NOTIFY to allowed methods (#593). Credits to @ikq.

3.3.8

September 24, 2019
  • Move connection recovery defaults to Constants (#593). Credits to @KraftyKraft.

3.3.7

August 12, 2019
  • Add referred-by header to refer messages (#572). Credits to @swysor.

3.3.6

April 12, 2019
  • Fix NameAddrHeader display_name handling (#573). Credits to @nicketson.

3.3.5

February 26, 2019
  • Add .babelrc into .npmignore (related to #489).
  • Update deps.

3.3.4

January 15, 2019
  • Add debugging logs in DigestAuthentication.js (related to #561).
  • Update deps.

3.3.3

January 2, 2019
  • Registrator: Don't check Contact header if final response is not 2XX (#558). Thanks @ikq for reporting.
  • Update deps.

3.3.2

December 19, 2018
  • Registrator. Support multiple entries in the same Contact header field (#544).

3.3.1

December 19, 2018
  • RTCSession: fire 'sdp' event on renegotiation (#543).

3.3.0

December 19, 2018
  • UA: new 'sipEvent' event for out of dialog NOTIFY requests.

3.2.17

December 18, 2018
  • InviteClientTransaction: Add full route set to ACK and CANCEL requests. Thanks @nicketson.
  • RTCSession: switch to tracks from deprecated stream API. Thanks @nicketson.

3.2.16

November 28, 2018
  • Fix typos thanks to the LGTM project.
  • Update deps.

3.2.15

October 11, 2018
  • Remove webrtc-adapter dependency. It's up to the application developer whether to include it into his application or not.
  • Update dependencies.

3.2.14

September 27, 2018
  • Revert previous release. Requires a mayor version upgrade for such a cosmetic change.

3.2.13

September 27, 2018
  • Close #521, #534. RTCSession: Fix 'connection' event order on outgoing calls.

3.2.12

September 17, 2018
  • Update deps.
  • Add missing error in 'getusermediafailed' event (thanks @jonastelzio).

3.2.11

June 3, 2018
  • Close #519. Parser: Do not overwrite unknwon header fields. Thanks @rprinz08.

3.2.10

April 24, 2018
  • Include the NPM events dependency for those who don't use browserify but webpack.

3.2.9

April 20, 2018
  • RTCSession: Add Contact header to REFER request. Thanks Julien Royer for reporting.

3.2.8

April 5, 2018
  • Fix #511. Add missing payload on 'UA:disconnected' event.

3.2.7

March 23, 2018
  • Fix regression (#509): ua.call() not working if stream is given.

3.2.6

March 22, 2018
  • RTCSession: custom local description trigger support

3.2.5

March 6, 2018
  • RTCSession: prefer promises over callbacks for readability.

3.2.4

January 19, 2018
  • Config: #494. Switch Socket check order. Thanks 'Igor Kolosov'.

3.2.3

January 15, 2018
  • RTCSession: Fix #492. Add missing log line for RTCPeerConnection error.

3.2.2

January 15, 2018
  • Remove wrong NPM dependencies.

3.2.1

January 15, 2018
  • Fix parsing of NOTIFY bodies during a REFER transaction (fixes #493).

3.2.0

January 15, 2018
  • Config: new configuration parameter 'user_agent'
  • RTCSession/Info: Fix. Call session.sendRequest() with the correct parameters
  • Config: Fix #491. Implement all documented flavours of 'sockets' parameter

3.1.4

December 18, 2017
  • Fix #482 and cleanup Registrator.js

3.1.3

November 28, 2017
  • Produce ES5 tree and expose it as main in package.json (related to #472)
  • Fix #481. ReferSubscriber: properly access RTCSession non-public attributes

3.1.2

November 21, 2017
  • RTCSession: emit 'sdp' event before creating offer/answer

3.1.1

November 11, 2017
  • DigestAuthentication: fix 'auth-int' qop authentication
  • DigestAuthentication: add tests

3.1.0

November 10, 2017
  • New UA configuration parameter 'session_timers_refresh_method'. Thanks @michelepra

3.0.28

November 9, 2017
  • Fix improper call to userMediaSucceeded. Thanks @iclems

3.0.27

November 9, 2017
  • Registrator: add missing getter. Thanks Martin Ekblom.

3.0.26

November 8, 2017
  • Fix #473. Typo. Thanks @ikq.

3.0.25

November 6, 2017
  • Use promise chaining to prevent PeerConnection state race conditions. Thanks @davies147

3.0.24

November 5, 2017
  • Fix #421. Fire RTCSession 'peerconnection' event as soon as its created

3.0.23

October 31, 2017
  • Fix typo. Thanks @michelepra.

3.0.22

October 27, 2017
  • Tests: enable test-UA-no-WebRTC tests.
  • WebSocketInterface: uppercase the via_transport attribute.
  • Fix #469. new method InitialOutgoingInviteRequest::clone().

3.0.21

October 26, 2017
  • WebSocketInterface: Add 'via_transport' setter.

3.0.20

October 24, 2017
  • Fix typo on ES6 transpiling.

3.0.19

October 21, 2017
  • ES6 transpiling. Modernize full JsSIP code.

3.0.18

October 13, 2017
  • Dialog: ACK to initial INVITE could have lower CSeq than current remote_cseq.

3.0.17

October 12, 2017
  • RTCSession: process INFO in early state.

3.0.16

October 12, 2017
  • Fix #457. Properly retrieve ReferSubscriber. Thanks @btaens.

3.0.15

August 31, 2017
  • Fix #457. Support NOTIFY requests to REFER subscriptions without Event id parameter.

3.0.14

August 31, 2017
  • Update dependencies.

3.0.13

June 10, 2017
  • Registrator: Don't send a Register request if another is on progress. Thanks to Paul Grebenc.

3.0.12

May 23, 2017
  • UA: Add registrationExpiring event (#442). Credits to @danjenkins.

3.0.11

May 21, 2017
  • RTCSession: Emit "peerconnection" also for incoming calls.

3.0.10

May 17, 2017
  • Emit SDP before new RTCSessionDescription. Thanks to @StarLeafRob.

3.0.8

May 3, 2017
  • Generic SIP INFO support.

3.0.7

March 24, 2017
  • Fix #431. Fix UA's disconnect event by properly providing an object with all the documente fields (thanks @nicketson for reporting it).

3.0.6

March 22, 2017
  • Fix #428. Don't use pranswer for early media. Instead create an answer and do a workaround when the 200 arrives.

3.0.5

March 21, 2017
  • Update deps.
  • Add more debug logs into RTCSession class.

3.0.4

March 13, 2017
  • Update deps.
  • If ICE fails, terminate the session with status code 408.

3.0.3

February 22, 2017
  • Fix #426. Properly emit DTMF events.

3.0.2

February 17, 2017
  • Fix #418. Incorrect socket status on failure.

3.0.1

January 19, 2017
  • Close #419. Allow sending the DTMF 'R' key. Used to report a hook flash.

3.0.0

November 19, 2016
  • Remove rtcninja dependency. Instead use webrtc-adapter.
  • RTCSession:: Remove RTCPeerConnection event wrappers. The app can access them via session.connection.
  • RTCSession:: Emit WebRTC related events when internal calls to getUserMedia(), createOffer(), etc. fail.
  • Use debug NPM fixed "2.0.0" version (until a pending bug in such a library is fixed).
  • UA: Remove ws_servers option.
  • UA: Allow immediate restart

2.0.6

September 30, 2016
  • Improve library logs.

2.0.5

September 28, 2016
  • Update dependencies.

2.0.4

September 15, 2016
  • Fix #400. Corrupt NPM packege.

2.0.3

August 23, 2016
  • Fix #385. No CANCEL request sent for authenticated requests.

2.0.2

June 17, 2016
  • Fix gulp-header dependency version.

2.0.1

June 9, 2016
  • Export JsSIP.WebSocketInterface.

2.0.0

June 7, 2016
  • New 'contact_uri' configuration parameter.
  • Remove Node websocket dependency.
  • Fix #196. Improve 'hostname' parsing.
  • Fix #370. Outgoing request instance being shared by two transactions.
  • Fix #296. Abrupt transport disconnection on UA.stop().
  • Socket interface. Make JsSIP socket agnostic.

1.0.1

May 17, 2016
  • Update dependencies.

1.0.0

May 11, 2016
  • RTCSession: new event on('sdp') to allow SDP modifications.

0.7.23

April 12, 2016
  • RTCSession: Allow multiple calls to refer() at the same time.

0.7.22

April 6, 2016
  • UA: set() allows changing user's display name.
  • Ignore SDP answer in received ACK retransmissions (fix 367).

0.7.21

April 5, 2016
  • RTCSession: Also emit peerconnection event for incoming INVITE without SDP.

0.7.20

April 5, 2016
  • RTCSession/ReferSubscriber: Fix typo that breaks exposed API.

0.7.19

April 5, 2016
  • RTCSession: Make refer() method to return the corresponding instance of ReferSubscriber so the app can set and manage as many events as desired on it.

0.7.18

March 23, 2016
  • Add INFO method to allowed methods list
  • Add SIP Code 424 RFC 6442

0.7.17

February 25, 2016
  • Apply changes of 0.7.16 also to browserified files under dist/ folder.

0.7.16

February 24, 2016
  • Fix 337. Consistenly indicate registration status through events.

0.7.15

February 24, 2016
  • Emit UA 'connected' event before sending REGISTER on transport connection
  • Fix 355. call to non existent parsed.error function. Thanks Stéphane Alnet @shimaore

0.7.14

February 17, 2016
  • Fix sips URI scheme parsing rule.

0.7.13

February 10, 2016
  • Fix. Don't lowercase URI parameter values. Thanks to Alexandr Dubovikov @adubovikov

0.7.12

February 5, 2016
  • Accept new UA configuration parameters ha1 and realm to avoid plain SIP password handling (issue 353).
  • New UA.set() and UA.get() methods to set and retrieve computed configuration parameters in runtime.

0.7.11

December 17, 2015
  • Fix typo ("iceconnetionstatechange" => "iceconnectionstatechange"). Thanks to Vertika Srivastava.

0.7.10

December 1, 2015
  • Make gulp run on Node 4.0.X and 5.0.X.

0.7.9

October 16, 2015
  • UA: Add set(parameter, value) method to change a configuration setting in runtime (currently just "password" is implemented).

0.7.8

October 13, 2015
  • RTCSession: Add resetLocalMedia() method to reset the session local MediaStream by enabling both its audio and video tracks (unless the remote peer is on hold).

0.7.7

October 5, 2015
  • RTCSession: Add "sending" event to outgoing, a good chance for the app to mangle the INVITE or its SDP offer.

0.7.6

September 29, 2015
  • Update dependencies.
  • Improve gulpfile.js.

0.7.5

September 15, 2015
  • Don't ask for getUserMedia in RTCSession.answer() if no mediaConstraints are provided.

0.7.4

August 10, 2015
  • Allow rejecting an in-dialog INVITE or UPDATE message.

0.7.3

July 29, 2015
  • FIX properly restart UA if start() is called while closing.

0.7.2

July 27, 2015
  • Update dependencies.

0.7.1

July 27, 2015
  • Update dependencies.

0.7.0

July 23, 2015
  • Add REFER support.

0.6.33

June 17, 2015
  • Don't keep URI params&headers in the registrar server URI.
  • RTCSession emits peerconnection for outgoing calls once the RTCPeerConnection is created and before the SDP offer is generated (good chance to create a RTCDataChannel without requiring renegotiation).

0.6.32

June 16, 2015
  • Add callback to update and reinvite events.

0.6.31

June 16, 2015
  • Added a parser for Reason header.

0.6.30

June 9, 2015
  • Fix array iteration in URI#toString() to avoid Array prototype mangling by devil libraries such as Ember.

0.6.29

June 6, 2015
  • Auto-register on transport connection before emitting the event.

0.6.28

June 2, 2015
  • Update "rtcninja" dependencie.

0.6.27

June 2, 2015
  • Don't terminate SIP dialog if processing of 183 with SDP fails.
  • Update dependencies.

0.6.26

April 17, 2015
  • Update "rtcninja" dependency.

0.6.25

April 16, 2015
  • Update "rtcninja" dependency.

0.6.24

April 14, 2015
  • RTCSession: Fix Invite Server transaction destruction.

0.6.23

April 14, 2015
  • RTCSession: Handle session timers before emitting "accepted".
  • Fix issue with latest version of browserify.

0.6.22

April 13, 2015
  • Fix double "disconnected" event in some cases.

0.6.21

March 11, 2015
  • Don't iterate arrays with (for...in) to avoid problems with evil JS libraries that add stuff into the Array prototype.

0.6.20

March 9, 2015
  • Be more flexible receiving DTMF INFO bodies.

0.6.19

March 5, 2015
  • Update dependencies.

0.6.18

February 9, 2015
  • Terminate the call with a proper BYE/CANCEL/408/500 if request timeout, transport error or dialog error happens.
  • Fix "rtcninja" dependency problem.

0.6.17

February 2, 2015
  • RTCSession: Improve isReadyToReOffer().

0.6.16

February 2, 2015
  • RTCSession: Avoid calling hold()/unhold/renegotiate() if an outgoing renegotiation is not yet finished (return false).
  • RTCSession: Add options and done arguments to hold()/unhold/renegotiate().
  • RTCSession: New public method isReadyToReOffer().

0.6.15

January 31, 2015
  • RTCSession: Emit iceconnetionstatechange event.
  • Update "rtcninja" dependency to 0.4.0.

0.6.14

January 29, 2015
  • RTCSession: Include initially given rtcOfferConstraints in sendReinvite() and sendUpdate().

0.6.13

January 29, 2015
  • Properly keep mute local audio/video if remote is on hold, and keep it even if we re-offer. Also fix SDP direction attributes in re-offers according to current local and remote "hold" status.

0.6.12

January 28, 2015
  • Update "rtcninja" dependency to 0.3.3 (fix "RTCOfferOptions").

0.6.11

January 27, 2015
  • Fix "Session-Expires" default value to 90 seconds.

0.6.10

January 27, 2015
  • Update "rtcninja" dependency to 0.3.2 (get the rtcninja.canRenegotiate attribute).

0.6.9

January 27, 2015
  • Don't reply 405 "Method Not Supported" to re-INVITE even if the UA's "newRTCSession" event is not set.
  • RTCSession: Allow extraHeaders in renegotiate().

0.6.8

January 26, 2015
  • RTCSession: Don't ask for getUserMedia() in outgoing calls if mediaConstraints is {audio:false, video:false}. It is user's responsability to, in that case, provide offerToReceiveAudio/Video in rtcOfferConstraints.

0.6.7

January 26, 2015
  • ' UA.call()': Return the RTCSession instance.
  • ' UA.sendMessage()': Return the Message instance.

0.6.6

January 24, 2015
  • RTCSession: Don't process SDPs in retranmissions of 200 OK during reINVITE/UDATE.
  • RTCSession: Emit 'reinvite' when a reINVITE is received.
  • RTCSession: Emit 'update' when an UPDATE is received.

0.6.5

January 20, 2015
  • RTCSession: Don't override this.data on answer() (unless options.data is given).

0.6.4

January 19, 2015
  • RTCSession#connect(): Add rtcAnswerContraints options for later incoming reINVITE or UPDATE with SDP offer.
  • RTCSession#answer(): Add rtcOfferConstraints options for later incoming reINVITE without SDP offer.
  • RTCSession#renegotiate(): Add rtcOfferConstraints options for the UPDATE or reINVITE.
  • RTCSession#answer(): Remove audio or video from the given getUserMedia mediaConstraints if the incoming SDP has no audio/video sections.

0.6.3

January 17, 2015
  • Bug fix. Properly cancel when only '100 trying' has been received.

0.6.2

January 16, 2015
  • Bug fix: Do not set "Content-Type: application/sdp" in body-less UPDATE requests.

0.6.1

January 16, 2015

0.6.0

January 13, 2015
  • debug module.
  • rtcninja module.
  • Can renegotiate an ongoing session by means of a re-INVITE or UPDATE method (useful if the local stream attached to the RTCPeerConnection has been modified).
  • Improved hold/unhold detection.
  • New API options for UA#call() and RTCSession#answer().

0.5.0

November 3, 2014
  • JsSIP runs in Node!
  • The internal design of JsSIP has also been modified, becoming a real Node project in which the "browser version" (jssip-0.5.0.js or jssip-0.5.0.min.js) is generated with browserify. This also means that the browser version can be loaded with AMD or CommonJS loaders.

0.4.3

October 29, 2014

0.4.2

October 24, 2014
  • (ca7702e) Fix #257. RTCMediaHandler: fire onIceCompleted() on next tick to avoid events race conditions in Firefox 33.

0.4.1

October 21, 2014
  • This version is included into the Bower registry which means $ bower install jssip.

0.4.0

October 21, 2014

0.3.0

March 18, 2013
  • (fea1326) Don't validate configuration.password against SIP URI password BNF grammar (fix #74).
  • (3f84b30) Make RTCSession local_identity and remote_identity NameAddrHeader instances
  • (622f46a) remove 'views' argument from UA.call()
  • (940fb34) Refactored Session
  • (71572f7) Rename causes.IN_DIALOG_408_OR_481 to causes.DIALOG_ERROR and add causes.RTP_TIMEOUT.
  • (c79037e) Added 'registrar_server' UA configuration parameter.
  • (2584140) Don't allow SIP URI without username in configuration.uri.
  • (87357de) Digest authentication refactorized.
  • (6867f51) Add 'cseq' and 'call_id' attributes to OutgoingRequest.
  • (cc97fee) Fix. Delete session from UA sessions collection when closing
  • (947b3f5) Remove RTCPeerConnection.onopen event handler
  • (6029e45) Enclose every JsSIP component with an inmediate function
  • (7f523cc) JsSIP.Utils.MD5() renamed to JsSIP.Utils.calculateMD5() (a more proper name for a function).
  • (1b1ab73) Fix. Reply '200' to a CANCEL 'before' replying 487 to the INVITE
  • (88fa9b6) New way to handle Streams
  • (38d4312) Add Travis CI support.
  • (50d7bf1) New grunt grammar task for automatically building customized Grammar.js and Grammar.min.js.
  • (f19842b) Fix #60, #61. Add optional parameters to ua.contact.toString(). Thanks @ibc
  • (8f5acb1) Enhance self contact handling
  • (5e7d815) Fix. ACK was being replied when not pointing to us. Thanks @saghul
  • (1ab6df3) New method JsSIP.NameAddrHeader.parse() which returns a JsSIP.NameAddrHeader instance.
  • (a7b69b8) Use a random user in the UA's contact.
  • (f67872b) Extend the use of the 'options' argument
  • (360c946) Test units for URI and NameAddrHeader classes.
  • (826ce12) Improvements and some bug fixes in URI and NameAddrHeader classes.
  • (e385840) Make JsSIP.URI and JsSIP.NameAddrHeader more robust.
  • (b0603e3) Separate qunitjs tests with and without WebRTC. Make "grunt test" to run "grunt testNoWebRTC".
  • (659c331) New way to handle InvalidTargetErorr and WebRtcNotSupportedError
  • (d3bc91a) Don't run qunit task by default (instead require "grunt test").
  • (e593396) Added qunitjs based test unit (for now a parser test) and integrate it in grunt.js.
  • (da58bff) Enhance URI and NameAddrHeader
  • (df6dd98) Automate qunit tests into grunt process
  • (babc331) Fix. Accept multiple headers with same hader name in SIP URI.
  • (716d164) Pass full multi-header header fields to the grammar
  • (2e18a6b) Fix contact match in 200 response to REGISTER
  • (3f7b02f) Fix stun_host grammar rule.
  • (7867baf) Allow using a JsSIP.URI instance everywhere specting a destination.
  • (a370c78) Fix 'maddr' and 'method' URI parameters handling
  • (537d2f2) Give some love to "console.log|warn|info" messages missing the JsSIP class/module prefix.
  • (8cb6963) In case null, emptry string, undefined or NaN is passed as parameter value then its default value is applied. Also print to console the processed value of all the parameters after validating them.
  • (f306d3c) hack_ip_in_contact now generates a IP in the range of Test-Net as stated in RFC 5735 (192.0.2.0/24).
  • (528d989) Add DTMF feature
  • (777a48f) Change API methods to make use of generic 'options' argument
  • (3a6971d) Fix #26. Fire 'unregistered' event correctly.
  • (5616837) Rename 'outbound_proxy_set' parameter by 'ws_servers'
  • (37fe9f4) Fix #54. Allow configuration.uri username start with 'sip'
  • (a612987) Add 'stun_servers' and 'turn_servers' configuration parameters
  • (9fad09b) Add JsSIP.URI and JsSIP.NameAddrHeader classes
  • (f35376a) Add 'Content-Length' header to every SIP response
  • (3081a21) Enhance 'generic_param' grammar rule
  • (e589002) Fix. Allow case-insentivity in SIP grammar, when corresponds
  • (aec55a2) Enhance transport error handling
  • (d0dbde3) New stun_servers and turn_servers parameters
  • (47cdb66) Add 'extraHeaders' parameter to UA.register() and UA.unregister() methods
  • (69fbdbd) Enhance in-dialog request management
  • (da23790) Fix 'UTF8-NONASCII' grammar rule
  • (3f86b94) Require a single grunt task for packaging
  • (81595be) Add some log lines into sanity check code for clarity
  • (a8a7627) Enhance RTCPeerConnection SDP error handling. Thanks @ibc for reporting.
  • (3acc474) Add turn configuration parameters for RTCPeerConnection
  • (9fccaf5) Enhance 'boolean' comparison
  • (24fcdbb) Make preloaded Route header optional.
  • (defeabe) Automatic connection recovery.
  • (a45293b) Improve reply() method.
  • (f05795b) Fix. Prevent outgoing CANCEL messages from being authenticated
  • (5ed6122) Update credentials with the new authorization upon 401/407 reception
  • (2c9a310) Do not allow reject-ing a Message or Session with an incorrect status code
  • (35e5874) Make optional the reason phrase when reply-ing
  • (85ca354) Implement credential reuse
  • (351ca06) Fix Contact header aggregation for incoming messages
  • (d6428e7) Fire UA 'newMessage' event for incoming MESSAGE requests regardless they are out of dialog or in-dialog.
  • (1ab3423) Intelligent 'Allow' header field value. Do not set a method in the 'Allow' header field if its corresponding event is not defined or has zero listeners.
  • (4e70a25) Allow 'text/plain' and 'text/html' content types for incoming SIP MESSAGE Fixed incoming SIP MESSAGE processing when the Content-Type header contains parameters
  • (d5f3432) Fixed the message header split when a parsing error occurs. Parsing error log enhanced.

0.2.1

November 15, 2012
  • (24e32c0) UA configuration password parameter is now optional.
  • (ffe7af6) Bug fix: UA configuration display_name parameter.
  • (aa51291) Bug fix: Allows multibyte symbols in UA configuration display_name parameter (and require not to write it between double quotes).
  • (aa48201) Bug fix: "cnonce" value value was not being quoted in Digest Authentication (reported by vf1).
  • (1ecabf5) Bug fix: Fixed authentication for in-dialog requests (reported by vf1).
  • (11c6bb6) Allow receiving WebSocket binary messages (code provided by vf1).
  • (0e8c5cf) Bug fix: Fixed Contact and Record-Route header split (reported by Davide Corda).
  • (99243e4) Fixed BYE and ACK error handling.
  • (0c91285) Fixed failure causes in 'registrationFailed' UA event.

0.2.0

November 1, 2012
  • First stable release with full website and documentation.
  • Refactored sessions, message and events API.

0.1.0

September 27, 2012
  • First release. No documentation.