Skip to content

Releases: onsip/SIP.js

0.7.4

15 Apr 17:52
Compare
Choose a tag to compare
  • update several dependencies
  • change Travis testing behaviors
  • Allow overriding mediaHandlerFactory in UA#invite
  • change hold event behavior to be more usable.
  • Include REFER into allowed methods, and update REFER handling to be more in line with RFC 3515
  • remove deprecation warning about iceServers

0.7.3

25 Jan 17:23
Compare
Choose a tag to compare

This release is mainly for changes to the Subscription logic which allow for correct behavior while unsubscribing, resubscribing, and some other edge cases. There are also several fixes to correct the build process. There are no known breaking changes, and we recommend upgrading if you are doing anything involving Subscriptions or plan to build SIP.js.

Full list of changes: 0.7.2...0.7.3

0.7.2

30 Oct 18:47
Compare
Choose a tag to compare

This release is primarily intended to address the removal of MediaStream.stop() from Chrome 47. There are no known breaking changes, and we recommend upgrading to maintain full compatibility with Chrome 47.

Full list of changes: 0.7.1...0.7.2

0.7.1

29 Jul 17:27
Compare
Choose a tag to compare

Bug fixes:

  • Better Chrome Packaged App support: 36c1e30
  • Session 'terminated' event is emitted with multiple args instead of an object: #173
  • Registration options are preserved across re-registration: #179
  • Multiple calls to UA#start before the UA has connected are ignored: #178
  • Better iceCheckingTimeout support: 9e79141, 873c9da

New features:

  • Add closeWithHeaders option to RegisterContext#register: #181, 608407e
  • Try to renegotiate media on re-INVITE: #170
  • Support sending double-CRLF keep-alive pings: #190
  • npm run repl opens a browser with the SIP variable defined: 635c0ac
  • (a handful of changes to allow UDP signaling via a custom Transport.js): 9b6bbff, 9097033, 620773c, 0bce005

Version 0.7.0

08 May 22:32
Compare
Choose a tag to compare

As of 0.7.0, SIP.js no longer runs on browsers which do not support Promises. All WebRTC-capable browsers already support Promises, but this may affect browsers that were only supported at the signaling layer. Specifically, Internet Explorer.

Brief notes:

  • BREAKING CHANGE: The options.media.render argument to UA#invite and Session#accept no longer has audio/video subfields. See MediaHandler#render
  • Dependencies on global objects can now be injected at runtime: #108
  • Our WebSocket dependency is now included using require('ws'). Thanks to Browserify, this shouldn't affect most users. Node.js users will have one less thing to worry about. 16bb9d0
  • We are now using Promises internally. This has been the case on the Master branch for some time. Node.js users will be polyfilled to use promiscuous, or Node.js native Promises if available.
  • The MediaHandler and MediaStreamManager interfaces use Promises instead of callbacks, and support zero/multiple streams. #175
  • We are now using the Node.js native EventEmitter, bundled in Browserify. There are slight changes to the EventEmitter API due to this change, but old methods are supported (though deprecated) for now. b07a368
  • Session has a new terminated method. (Okay, it's not new, but we fixed how it works and document it now.)
  • Session termination events (rejected, failed, cancel, bye, and terminated) have been cleaned up and now behave more consistently, both in terms of internal behavior and RFC specs. 6d8d79b
  • The WebRTC MediaHandler now has many more events for ICE connection states and candidate gathering.
  • Support for REFER with Replaces and INVITE with Replaces. 5170cfd
  • A handful of other bug fixes.

0.6.4

24 Nov 22:39
Compare
Choose a tag to compare

1. Firefox 34 Support

Added a hack to allow Firefox 34 compatibility with some SIP clients. This issue is documented on FreeSWITCH Jira: https://freeswitch.org/jira/browse/FS-6955

2. Syntax sugar for rendering media

Usage:

new SIP.UA().invite('[email protected]', document.getElementsByTagName('audio')[0]);

See d238523

3. Support for Multiple/Zero STUN Servers

See 18ce4d8 (#93) and 28523b6 (#117)

4. Add hackWssInTransport to UA configuration to fix Asterisk problems

See 32bffbe

0.6.2

04 Aug 03:08
Compare
Choose a tag to compare

1. SIP.js can now be used as a Cordova plugin.

Caveats:

  1. iOS support is broken at the time of this commit, see joseph-onsip/sipjs-cordova#6
  2. config.xml doesn't reflect the plugin registry entry. See #83

Usage:

Shell:

  cordova plugin add com.onsip.sipjs # see https://github.com/onsip/SIP.js/issues/83
  # The following lines are needed for media support:
  cordova plugin add https://github.com/alongubkin/phonertc
  cordova plugin add com.sipjs.phonertc # This is already published to the registry

JS:

  var SIP = cordova.require('com.sipjs.sipjs');
  // The following line is needed for media support:
  var PhoneRTCMediaHandler = cordova.require('com.sipjs.phonertc.mediahandler')(SIP);
  var ua = new SIP.UA({
    // The following line is needed for media support:
    mediaHandlerFactory: PhoneRTCMediaHandler
  });

2. REFERs to non-SIP resources are supported.

Usage:
See 469a581 and 1406cba.

0.6.1

23 Jul 03:37
Compare
Choose a tag to compare

0.6.0

09 Jul 03:43
Compare
Choose a tag to compare
  • The syntax for the media property has changed slightly. You now need to put the constraints inside a constraints property. For example:
session.accept({
  media: {
    constraints: {
      audio: true,
      video: false
    }
  }
});
  • UA#invite and Session#accept now allow an option specifying <audio> and <video> elements within which session media will be rendered. For example:
  var session = new SIP.UA().invite('[email protected]', {
    media: {
      render: {
        remote: {
          audio: document.createElement('audio'),
          video: document.createElement('video')
        },
        local: {
          audio: document.createElement('audio'),
          video: document.createElement('video')
        }
      }
    }
  });
  • The Session's referred event has been removed. See the commit message of 3115223 for an alternative.
  • The Session's refer event handler's first argument is now a request, not a uri. The uri can be obtained as follows:
session.on('refer', function handleRefer (request) {
  var uri = request.parseHeader('refer-to').uri;
});