Releases: onsip/SIP.js
0.7.4
- 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
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
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
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 theUA
has connected are ignored: #178 - Better
iceCheckingTimeout
support: 9e79141, 873c9da
New features:
- Add
closeWithHeaders
option toRegisterContext#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
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 toUA#invite
andSession#accept
no longer hasaudio
/video
subfields. SeeMediaHandler#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
, andterminated
) 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
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('welcome@onsip.com', 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
1. SIP.js can now be used as a Cordova plugin.
Caveats:
- iOS support is broken at the time of this commit, see joseph-onsip/sipjs-cordova#6
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.
0.6.1
- browserify is now used to build SIP.js: #62 Notably, this means that applications using RequireJS should load SIP.js as an AMD module, instead of assuming
SIP
will be defined globally. See the Google Group thread for more detail.
0.6.0
- The syntax for the
media
property has changed slightly. You now need to put the constraints inside aconstraints
property. For example:
session.accept({
media: {
constraints: {
audio: true,
video: false
}
}
});
UA#invite
andSession#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('welcome@onsip.com', {
media: {
render: {
remote: {
audio: document.createElement('audio'),
video: document.createElement('video')
},
local: {
audio: document.createElement('audio'),
video: document.createElement('video')
}
}
}
});
- The
Session
'sreferred
event has been removed. See the commit message of 3115223 for an alternative. - The
Session
'srefer
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;
});
- If your application calls SIP.WebRTC.* functions directly, it should first call SIP.WebRTC.isSupported to ensure they are available.
- Using string constants for the
rel100
UA Configuration Parameter has been deprecated (but still works for now). Applications should useSIP.C.supported
constants instead. See http://sipjs.com/api/0.6.0/ua_configuration_parameters/#rel100