RELAY JS SDK 3.29 Release
We are happy to announce JavaScript SDK 3.29.
Upgrading is straightforward with our release process, which adheres to Semantic Versioning. Minor versions are guaranteed to not have breaking changes, so you can upgrade with confidence.
Summaryโ
This release improves the websocket connection and stability significantly.
It also focuses on microphone controls, participant management, and Call Fabric SDK enhancements.
Key additions include new microphone control features (auto gain, echo cancellation, noise suppression),
the ability to mute/unmute all participants simultaneously, and improved Call Fabric SDK functionality with
fromFabricAddressId
parameter support and configurable default media parameters. Additionally, this release
fixes critical issues with push notifications, improves WebSocket reconnection handling, and resolves
various type interface inconsistencies for a more stable development experience.
Addedโ
1. Microphone controls for self and other membersโ
Added support for microphone control features including auto gain, echo cancellation, and noise suppression.
New FabricMemberContract controls:
member.auto_gain
member.echo_cancellation
member.noise_suppression
New function support:
await FabricRoomSession.setAudioFlags({
autoGain: false,
echoCancellation: false,
noiseSuppression: false,
});
2. Mute/unmute controls for all participantsโ
Added support for muting and unmuting audio and video for all participants in both audio-only and video calls.
// Mute all members' audio
await FabricRoomSession.audioMute({ memberId: "all" });
// Unmute all members' audio
await FabricRoomSession.audioUnmute({ memberId: "all" });
// Mute all members' video
await FabricRoomSession.videoMute({ memberId: "all" });
// Unmute all members' video
await FabricRoomSession.videoUnmute({ memberId: "all" });
3. CF SDK: Support for fromFabricAddressId
parameterโ
Added the ability to pass fromFabricAddressId
when dialing.
const call = await SignalWireClient.dial({
// ... other parameters
to: "...",
fromFabricAddressId: "valid_subscriber_id", // Optional
// ... other parameters
});
4. CF SDK: Default media parametersโ
Added support for configuring default media parameters during call setup.
await call.dial({
applyLocalVideoOverlay: false, // Should the SDK apply local video overlay? Default: true
applyMemberOverlay: true, // Should the SDK apply member video overlays? Default: true
stopCameraWhileMuted: true, // Should the SDK stop the camera when muted? Default: true
stopMicrophoneWhileMuted: true, // Should the SDK stop the mic when muted? Default: true
mirrorLocalVideoOverlay: false, // Should the SDK mirror the local video overlay? Default: true
});
Fixedโ
1. Handle push notifications without enabling websocket connectionโ
Added an optional handlePushNotification
method to allow developers to receive push notifications without being online via websocket.
SignalWireContract.handlePushNotification(params: HandlePushNotificationParams)
Previously, receiving push notifications required calling SignalWireContract.online()
which automatically made you online on websocket as well.
If user is online from both websocket and push notification simultaneously, the call would hang up because the server couldn't
distinguish that both notification endpoints belonged to the same device.
2. CF SDK: Raise hand functionalityโ
Fixed raise hand call and member capability issues.
3. Pagination interfacesโ
Exposed pagination interfaces for better type safety:
PaginatedResponse
PaginatedResult
4. WebSocket reconnection improvementsโ
Improved WebSocket reconnections and re-subscription to voice call topics after socket reconnects.
5. Type interface fixesโ
Fixed type interfaces for getMessages
and getMembers
methods.