SIP.js

A simple, intuitive, and powerful JavaScript signaling library

MIT License

Downloads
62.5K
Stars
1.9K
Committers
80

Bot releases are visible (Hide)

SIP.js - 0.21.2 Latest Release

Published by john-e-riordan almost 2 years ago

Features

  • added option to SessionManager to send SIP OPTIONS pings

Fixes

  • fixed an option in SessionManager which was not setting registration expires correctly
SIP.js - 0.21.1

Published by john-e-riordan almost 2 years ago

Features

  • added SimpleUser and SessionManager option to send DTMF using RFC 2833 (#1013)

Fixes

  • fix a bug with SimpleUser options not getting passed to SessionManager correctly
SIP.js - 0.21.0

Published by john-e-riordan almost 2 years ago

Updates

  • Exposed iceGatheringComplete method to support strategies other than the built in timeout
  • Project was updated for ECMAScript module (ESM) support
  • Introduced new SessionManager class
  • Minor bug fixes

Breaking Changes

  1. SimpleUser: The call signature for the register method has changed. It is now register(registererRegisterOptions?: RegistererRegisterOptions): Promise<void>;. Any RegistererOptions which were being passed as the first parameter to the register must now be provided to the constructor of SimpleUser along with any other options.

  2. UserAgentOptions: The options autoStart and autoStop have been removed.

See the Migration Guide from 0.20 to 0.21 for details.

SIP.js - 0.20.1

Published by john-e-riordan about 2 years ago

Updates

  • Updated development dependencies
  • Fixed tests which broke due to updated tools
  • Regenerated all documentation with latest tools
  • Node.js 16 is now minimum for doing future development
  • Moved to from master to main as default development branch
SIP.js - 0.20.0

Published by james-criscuolo over 3 years ago

Features

  • Add support for extraHeaders on Invitation.accept (#910)
  • Make the interval at which re-REGISTER requests are sent configurable (UserAgentOptions.refreshFrequency) (#902)
  • Add onAck delegation for Session (#911)

Fixes

  • add gruu check to registerer to restore previous behavior
  • publisher: add check so that it does not attempt to enter published state when already there
  • fix a typo in extra headers for an uncommon failure case
SIP.js - 0.19.0

Published by james-criscuolo over 3 years ago

Features

  • Add configuration parameter for automatically sending an initial response (sendInitialProvisionalResponse) (#892)

Breaking Changes

  • Update Web SDH and SimpleUser hold implementation. Our built-in implementations are now RFC compliant with the latest relevant transceivers RFC (RFC 8829). Previously, there were some situations where the previous implementation didn't work (see #898). Users who extend our Web SessionDescriptionHandler may have worked around these broken situations in the past, so should be sure to review their code and test while updating.
SIP.js - 0.18.1

Published by james-criscuolo almost 4 years ago

Fixes

  • Adding host and port checks may break people not using the contactName UserAgent parameter, so this fix changes the checks to only check those if the parameter is set. The server mucking with host and port is entirely legal, so in cases where that occurs usage of contactName is currently broken.
SIP.js - 0.18.0

Published by james-criscuolo almost 4 years ago

Breaking Changes

  • Removed hackWssInTransport UserAgent parameter. If you were using this, it is now replaced with contactParams: { transport: "wss" }

Features

  • Add contactName UserAgent parameter
  • Add contactParams UserAgent parameter. It defaults to { transport: "ws" }
  • Add the possibility to change log level in logger

Fixes

  • Fix hold bug in SimpleUser
  • Fix bug in parser with error reporting
  • Improve some internal types
SIP.js - 0.17.1

Published by james-criscuolo over 4 years ago

Fixed a hold issue with 0.17.0 (see #835)

SIP.js - 0.17.0

Published by james-criscuolo over 4 years ago

The Session Description Handler has been reworked with tests and documentation added. For users without custom session description handlers, no change will be needed, it is not a breaking change. Existing custom Session Description Handlers will continue to work, unless the old default Session Description Handler was extended (as it's no longer in the same location). For those cases, the old one should be fully copied to your source if you'd like it to continue to work as it did. Extending the old default was not easy, but the new one attempts to rectify this, so in many situations there may be some potential for code cleanup.

Additionally, we will no longer be distributing the webpack-bundled source with our npm package. Importing sip.js has not been using the webpack bundle for several versions, so we anticipate no issue for most users. For those who imported from sip.js/dist/<one of the bundles> or used sip.js/dist in some other fashion, the bundles are still attached to the release notes here, and will continue to be.

Also related to distribution, we now ship with no dependencies and are entirely tree shakeable, so we hope this eliminates a subset of potential issues with bundling and transpiling.

Fixes

  • Guard contact missing on dialog response (#793)
  • Fix reliable response handling bug (#805)

Features

  • Add ha1 authentication option to digest authentication (#820)
  • Session Description Handler rework (#815)
SIP.js - 0.16.1

Published by james-criscuolo over 4 years ago

Fixes

  • Fix ACK re-INVITE race when offer in 200 Ok (see #798)
  • Prevent invalid state transition in Registerer (see #800)
  • Add documentation of WebSocket Transport (see #801)
  • Fix subscription bugs related to timer N (see #802)

Features

  • Add support for Retry-After on REGISTER reject (see #799)

Other

  • tslint is deprecated, so replace with eslint and prettier
  • Remove tslib (unnecessary after update from es5 build target)
  • Remove crypto-js (new update broke some environments)
  • Update target to es2017
  • Update module to es2015, with package.json changes to make SIP.js a proper ES module
SIP.js - 0.16.0

Published by james-criscuolo over 4 years ago

This is the first release without the legacy API. If you have not migrated, 0.15.x contains both the legacy and new APIs. The new API on 0.15.11 is the same as the only API on this version. If you need help migrating, please see our migration document.

Other changes:

  • remove old API
  • remove old tests
  • update documentation
  • update dependencies
  • new API available importing from root
  • if you are using typescript, you must now use typescript >= 3.6.5.
  • node 8 has been EOL'ed, so node must now be >= 10.
  • we no longer build with es5 as the target, so es5 browser support has been dropped (mainly IE11).
  • new README.md
SIP.js - 0.15.11

Published by james-criscuolo over 4 years ago

Both APIs

  • in dialog MESSAGE support
  • fixed handling of received binary WebSocket messages

New API

  • removed Byer, Infoer, and Referer in favor of Session methods
  • added auth support for re-INVITE
  • added incoming DTMF handling to SimpleUser
  • updates to docs and demo

Legacy API:

  • DTMF now checks for array on tones as a safety check
SIP.js - 0.15.10

Published by james-criscuolo almost 5 years ago

Reverted updated to typescript 3.7.x, as it forces all applications using the types to also be >= 3.7.x. For more information see https://github.com/microsoft/TypeScript/issues/33939.

SIP.js - 0.15.9

Published by james-criscuolo almost 5 years ago

This release only contains New API changes

  • Transport auto reconnect logic has been removed from UserAgent and is now only present while using the SimpleUser interface. API Users should use reconnect and the UserAgentDelegate's onConnect and onDisconnect functions.
  • RegisterOptions are now run past stripIfUndefined due to https://github.com/Microsoft/TypeScript/issues/13195
  • more documentation, testing, and cleanup in preparation for 0.16.0
SIP.js - 0.15.8

Published by james-criscuolo almost 5 years ago

This release only contains New API changes

The default Web Transport has been reworked entirely, and while it is backwards compatible for most new API users, it is technically a breaking change, as the interface has been updated:

  • UserAgent has been re-integrated with transport with new state
  • UserAgent now handles reconnection logic; new UserAgent.reconnect
  • new UserAgentOptions reconnectionAttempts & reconnectionDelay
  • UserAgentDelegate has new callbacks; onConnect/onDisconnect
  • unit tests with complete coverage of new transport FSM
  • handles state change loop detection
  • updated SimpleUser
  • updated demos
  • updated docs

A handful of existing bugs were discovered and fixed in this refactor, so there are some seemingly unrelated fixes in here as well:

  • UserAgent.stop() now works reliably
  • Attempting to terminate a session while it is waiting for a PRACK which never arrives would cause a hung promise prior to this release.
SIP.js - 0.15.7

Published by james-criscuolo almost 5 years ago

Legacy API:

  • Fix: DTMF now accepts 0 as an integer
  • Fix: Record Route Parsing now works when using an array.

New API

  • Remove legacy dependencies, so we can cleanly delete the legacy API when 0.16.0 is ready.
  • Fix: Record Route Parsing now works when using an array.
  • Simple has been ported to the new API, as SimpleUser.
  • A demo for the new API is now available on top of SimpleUser. You can try it by reading the demo README in the demo folder.
  • Undocumented public methods for internal library use are now prefixed with an underscore. More work is necessary here, but this is what the documentation generator expects.
  • Registerer: terminated final state added.
  • Registerer: Now rejects with RequestPendingError if you try to register or unregister while a request is pending.
SIP.js - 0.15.6

Published by james-criscuolo about 5 years ago

As with all 0.15.x releases, the old API is effectively frozen. Changes listed are for the beta API unless explicitly labelled

Changes to old and new API

  • the default Web Transport can now catch and handle errors appropriately

New API changes

  • ES 7+ features were removed and replaced with ES6 features. For more information please see the docs README: https://github.com/onsip/SIP.js/tree/master/docs#compatibility
  • Registerer: fully flesh out delegate
  • fixed race between reinvite and BYE that could typically occur in transfer scenarios with Music on Hold
  • Session: tie close to state machine
  • Session: fix ACK error handling
  • Session Description Handler: make error handling more robust
SIP.js - 0.15.5

Published by james-criscuolo about 5 years ago

Changes are to new beta API only:

  • ReINVITE handling updated
  • autostart is now deprecated to make connection handling more straightforward
  • Session Description Handler is now closed on calls closed before the connected state.
  • register/unregister now resolve message sent
  • updated options fo register/unregister
  • fixed state transition bug on request timeout
  • added proper destructor
  • hooked up to UA so unregister occurs on UA.stop
  • added intergation tests for Registerer
SIP.js - 0.15.3

Published by egreenmachine about 5 years ago

I messed up publishing to npm with our new release process, so I had to do a version bump.

Package Rankings
Top 1.03% on Npmjs.org
Top 3.5% on Bower.io
Top 23.64% on Repo1.maven.org
Badges
Extracted from project README
npm version