Version 0.7.0

@wakamoleguy wakamoleguy released this May 8, 2015 · 473 commits to master since this release

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.