Releases: onsip/SIP.js
0.15.2
Changes
- Inviter Fixes
0.15.1
Changes
- A few beta API changes, notably one to make the timing of session establishment match up better with the legacy API, and the addition of a logConfiguration UserAgent Configuration variable
- stricter check for window.addEventListener
0.15.0
The 0.15.x release is a backwards compatible drop-in replacement for 0.14.x.
The 0.15.x release introduces a "new" API and deprecates the "legacy" API in 0.14.x.
The 0.15.x release is intended to facilitate migration from the legacy API to the new API.
The 0.15.x release contains both the new API and the legacy API, but the two are not compatible. That is, you may use one or the other but cannot "mix" the usage of the two. For example, a Session created with the legacy API is not compatible with a Session in the new API.
The legacy API will be removed in 0.16.x in favor of the new API.
It's important to note that we are considering the new API to be in the beta state for 0.15.x. While the heavy majority of breaking changes are covered, we are not ruling out making breaking changes in patch versions for the new API, until the 0.16.0 release. This will be covered in the release notes, as always.
To begin moving to the new API, please see our migration document. The largest use cases are covered, and as 0.15.x continues we plan to complete all sections. We've also updated our documentation to be auto-generated from the code, the new docs folder will now be home to the most up to date documentation. Our website will be updated to reflect this over the lifetime of 0.15.x. We also have some more changes planned before 0.16.0, you can see them in our roadmap. The biggest planned changes:
-
The Simple API will be transitioned to be backed by the new API. Simple will be a bit more flexible at that point, likely being enough for more users than before.
-
With 0.16.0, we will stop distributing our webpack bundles with the npm release. Taking its place will be an es6-module capable build, next to the currently default typescript build, which targets
es5
. -
a new demo phone
0.14.6
Fixes
- Small fix to
0.14.5
, check for window must betypeof window !== "undefined"
- move
@types/nodes
to devDependency
0.14.5
Fixes
- Since we began using
importHelpers
to dedupe code,tslib
was a required dependency. If that was not in your own project,sip.js
would break your build. This has been rectified, andtslib
is now a dependency ofsip.js
. PublishContext
now cleans up its event listeners- The default web
Transport
now rejects if it fails immediately - We are no longer reliant on node (
global
was used in a handful of places)
0.14.4
Fixes
- There was an issue with 183s being sent in the Invite with SDP case that has been resolved.
- a type in that case (for on("progress")) was also fixed
0.14.3
Fixes
- There was a lingering set of underscore_variables that should have been converted to camelCase. They involved anonymous User Agents.
usePreloadedRoute
was partially removed in version 0.11.0, and didn't work prior to that, it was re-added as an option and fixed.- passing
fromUri
to invite as a string (as it was typed) would not work, this was fixed and it can now be passed as aURI
as well.
0.14.2
This release is primarily refactoring in preparation for the upcoming new public facing API, and is planned to be the last before the new API is introduced. There are no breaking changes.
Fixes
- React SessionDescriptionHandler constructor is now fixed
ts-pegjs
updated to work withoptimize:size
, so reduce bundle size by 10%
0.14.1
Fixes
- #689: re-add stopping subscriptions and transport connect on
UA.stop()
- #690: fix log-level integers
- #692: fix issue calling peerConnection in standard sessiondescriptionhandler (introduced by noImplicitAny introduction
- size reductions: add importHelpers to tsConfig and reduce what is brought in crypto-js
0.14.0
In this release significant and substantial portions of the “core library code”
have been replaced, however an attempt was made to alter little to none of the
existing public facing API. The rewrite changes the internal architecture of the
library and is a precursor to addressing long standing issues which will entail
introducing a new public API in the near future.
Breaking Changes: Nothing public API-facing
In short, the new core code replaces all the dialog, UAC core, and UAS core
related implementation in the library as well has the internal implementations
of all the Context classes as well as Session, Subscription, and UA classes.
If you are utilizing properties or methods not documented as part of the
public API, there have been significant “internal changes” as follows...
Removed completely
- Dialogs.ts
- RequestSender.ts
- SanityCheck.ts
Modified significantly
- ClientContext.ts
- InviteClientContext.ts
- InviteServerContext.ts
- PublisherContext.ts
- ReferContext.ts
- RegisterContext.ts
- ServerContext.ts
- Session.ts
- SIPMessage.ts
- Subscription.ts
Benefits
- New library “core” with consistent internal interface
- To spec invite and non-invite transaction implementations
- To spec method specific user agent client/server implementations
- To spec session and subscription dialog usage implementations
- Errors completely and reliably passed through internal stack
- Fixed retransmission behavior during hold and un-hold
- Fixed in dialog NOTIFY sequence number issue on REFER
- Fixed invalid RSeq in some PRACK scenarios
- Fixed subscription refresh interval issue
- Fixed incorrect ACK event emission
- Doubled number of integration/unit tests
- Additional TypeScript typing