daily-js 0.95.0
Features
- Added the ability to choose what a SIP video participant sees with
videoSettings.layout(active speaker, grid, a single participant, or portrait with pinned main and inset tiles) on dial-out, dial-in rooms and SIP trunks; participants can be referenced byuser_id. See docs - Implemented the
discardTrackforsetLocalVideo(). This is the equivalent tosetLocalAudio()'sforceDiscardTrackoption, allowing clients to override the setting on a per-call basis. See docs - [Prebuilt only]: Introduced new events for when a breakout session starts/ends. See docs
Deprecation Notice
- The call machine has been emitting the dial-in endpoint under the misspelled key
sipEndPointondialin-ready,dialin-connected,dialin-stopped,dialin-warningand insidedetailsondialin-error, whileindex.d.tsand the docs saysipEndpoint. These events now emitsipEndpoint, the documented spelling, and keepsipEndPointas a deprecated alias so apps that adapted to the misspelling keep working. The alias will be removed in a later release; see below.
Bugfixes
- recording and live-streaming participants filters that list 'owners' after another entry now include both selections; 'owners' used to replace what the earlier entries selected
- Fixed an issue where call object bundle loading could hang indefinitely if the download stalled after the response headers arrived. This issue only occurred on React Native and on web when
avoidEvalis not set. - Fixed a rare timing issue where if the websocket closed before the sfu connection was created, the sfu connection would fail and error our the call.
Other improvements
- The
dialout-stoppedevent (and thedialout.stoppedwebhook) now reportsipStatusCode/sipReasonPhrase(sip_status_code/sip_reason_phrase) when a SignalWire dial-out ends before the callee answers, e.g. 486 Busy Here or 603 Decline; provider "daily" keeps reporting them on dialout-error. See docs startDialOut():provider: 'signalwire'is accepted withphoneNumber;'daily'with a phone number throws. The pre-beta console warning forprovider: 'daily'is gone.startDialIn()resolves with{ session: { sessionId, sipEndpoint } }and rejects instead of resolving without a session. Calling it again for an endpoint that is already listening returns that session.displayNamemay be exactly 200 characters onstartDialOut()andstartDialIn().- Telephony events:
provideris now typedDailySipServiceProvider;dialin-errorsessionIdis now optional and absent whentypeis'start-failed'. - Dial-in events (
dialin-ready,dialin-connected,dialin-stopped,dialin-warning, anddetailsondialin-error) now emitsipEndpoint, the documented spelling. The misspelledsipEndPointis still sent as a deprecated alias and will be removed in a later release. dialout-answeredalways carriessipCallIdon SignalWire dial-outs.