- Fixed a bug where switching media devices did not replace the stream with a new one.
- Fixed the bug that local stream become disabled when a user hold other direct call.
- Added start_ts and end_ts to the DirectCallLogListQueryParams.
- Fixed the crash of the previous version
- Updated the WebRTC version
- Improved WebRTC internal logging
- Added
webhookproperty inDialParams.
- Added
DirectCallEndResult.NOT_CONNECTED. When a direct call is ended before connecting, the call will have an end result ofDirectCallEndResult.NOT_CONNECTED.
- Fixed a bug in the local recording that the output file contains a black screen in the bad network sometimes.
- Fixed a bug in the local recording that the previous larger frame lasts when the resolution has been lowered in the bad network.
- Fixed an issue where call will not be properly reconnected after network connection has been lost.
- Fixed an issue where CSP(Content Security Policy) error occurs if
script-srcisself.
- Fix an issue where Direct Call's Connection Quality would report
UNAVAILABLEfor a few seconds after connecting the call.
- Added support for Direct Call quality monitoring in Sendbird Dashboard.
- Added
DirectCall.onCalleeDialReceivedevent listener to notify the caller when the callee has received the call. This listener will be called when the callee has received theSendBirdCallListener.onRingingevent.
- Fixed the type error in the declaration file.
- Added the missing export of
RoomStateenum. - Fixed the type error in the declaration file.
- Changed the return type of
RoomListQuery.next(),RoomListQuery.prev()to the actualRoominstance, rather than the data object.
- Improved connection quality listener in
DirectCall.
- Added a feature to detect connection qualities in ongoing
DirectCall.- Added
ConnectionQualityState. - Added
ConnectionQualityMonitoringMode. - Added
ConnectionMetrics. - Added
setConnectionQualityListener(mode: ConnectionQualityMonitoringMode, listener: (metrics: ConnectionMetrics) => void): void,removeConnectionQualityListener(): voidinDirectCall;
- Added
- Fixed the bug that User.metaData is always undefined.
- Fixed
self is not definederror in node environment.
- Added a feature to kick other participants in a room with the same user id as the current user.
- Added
kickSiblingsinEnterParams.
- Added
- Fixed an error in
SendbirdCall.connectWebSocket(). - Removed the unexpected console logs.
- Added room event listeners to detect local user’s connection with the server.
- Added
localParticipantDisconnected,localParticipantReconnectedinRoomEventMap.
- Added
- Improved the reconnection logic for short-term disconnection in
Room.
- Fixed the bug that the client with only one of audio/video permission can't use the allowed device in video call/room.
- Now, the client can use the microphone in video call/room regardless of camera permission.
- Likewise, the client can use the camera in video call/room regardless of microphone permission.
- Improved stability.
- Added a feature to invite users to enter a room.
- Added
Room.sendInvitation(invitee: string): Promise<RoomInvitation>. - Added
RoomInvitationclass to manage invitation. - Added
RoomInvitation.accept(): Promise<void>,RoomInvitation.decline(): Promise<void>,RoomInvitation.cancel(): Promise<void>. - Added
invitationAccepted,invitationDeclined,invitationCanceledinRoomEventMap.
- Added
- Added a new interface to delete a room.
- Added
Room.delete().
- Added
- Bug fix
- Fixed the unexpected error when joining the room that the user exited before.
- Bug fix
- Fixed the bug that group call breaks in chrome v100.
- Bug fix
- Fixed the bug that
selectAudioOutputDevice(mediaDeviceInfo: MediaDeviceInfo): voiddoens't work in group call.
- Fixed the bug that
For 1.9.0, a feature to delete a room in Group call is released.
- Added
deletedinRoomEventMapwhich is invoked when the room has been deleted by the Platform API.
- Bug fix
- Fixed the unexpected error when joining room in which there are more than two participants.
- Bug fix
- Fixed the bug that the permission dosen't be revoked after
Room.exit().
- Fixed the bug that the permission dosen't be revoked after
- Added missing type declarations.
For 1.8.0, a new feature is released for both Group call and Direct call features respectively.
For the Group call feature, you can now add and manage custom items to store additional information for a room.
- Added custom items feature in Group Call
- Added
customItemsinRoom. - Added
customItemsinRoomParams. - Added
updateCustomItems(customItems: CustomItems): Promise<CustomItemsResult>anddeleteCustomItems(customItemKeys: string[]): Promise<CustomItemsResult>inRoom. - Added
customItemsUpdatedandcustomItemsDeletedinRoomEventMap.
- Added
For the Direct call feature, you can now hold and resume calls which allows you to accept an incoming call or switch between calls.
- Added hold and resume feature in Direct Call
- Added
hold(): Promise<void>andunhold(force: boolean): Promise<void>inDirectCall. - Added
isOnHoldinDirectCall. - Added
holdActiveCallinDialParamsandAcceptParams. - Added
onUserHoldStatusChangedinDirectCall.
- Added
- Added
getOngoingCalls()inSendBirdCallto retrieve a list of ongoing Direct Calls in the Calls SDK. - Added missing return type of push token registration APIs.
- Improved stability.
- Added push token registration APIs
- Below methods are added in
SendBirdCallregisterPushToken(pushToken: string, tokenType: TokenType): Promise<void>unregisterPushToken(pushToken: string, tokenType: TokenType): Promise<void>unregisterAllPushTokens(tokenType: TokenType): Promise<void>
- Below enum is added in
SendBirdCallTokenType
- Below methods are added in
- Bug fix
- Fixed the bug that
audioEnabledandvideoEnabledinDirectCallOptiondoesn't work.
- Fixed the bug that
- Added capability to query rooms.
- Below interfaces are added in
SendBirdCallRoomListQueryRoomListQueryParams
- Below methods are added in
SendBirdCallcreateRoomListQuery(params: RoomListQueryParams): RoomListQuery
- Below interfaces are added in
- Added support for customized host URL
- Now, you can customize API/WebSocket host URL when
init(). - Below method is changed in
SendBirdCallinit(appId: string, apiHost?: string, websocketHost?: string): void
- Now, you can customize API/WebSocket host URL when
- Improved security.
- Improved stability.
- Bug fix
- Fixed the error and undefined behavior in recording feature.
- Now,
DirectCall.startRecording()produces.webmfile in Chrome and Firefox,.mp4file in Safari.
- Now,
- Fixed the noise when calling
addDirectCallSound(). - Fixed the bug that sometimes the error message of
authenticate()is blank.
- Fixed the error and undefined behavior in recording feature.
- Added support for group call.
- Below class is added in
SendBirdCallRoom
- Below methods are added in
SendBirdCallcreateRoom(params: RoomParams): Promise<Room>getCachedRoomById(roomId: string): RoomfetchRoomById(roomId: string): Promise<Room>
- Below interfaces are added in
SendBirdCallRoomParamsEnterParamsParticipantLocalParticipantRemoteParticipant
- Below enums are added in
SendBirdCallRoomTypeParticipantState
- Below class is added in
- Bug fix
- Fixed an unexpected exception.
- Improved stability.
- Added suuport for screen share in
DirectCall.- Below methods are added in
DirectCall:startScreenShare(): Promise<void>stopScreenShare(): void
- Below property is added in
DirectCall:readonly isLocalScreenShareEnabled: boolean
- Below methods are added in
Sendbird Calls SDK version 1.6.0 supports the early access program for group calling. New concepts introduced in this version center around rooms and participants.
- Added group call feature.
- Below methods are added in
SendBirdCallcreateRoom(): Promise<Room>getCachedRoomById(roomId: string): RoomfetchRoomById(roomId: string): Promise<Room>
- Below class is added in
SendBirdCallRoom
- Below interfaces are added in
SendBirdCallEnterParamsParticipantLocalParticipantRemoteParticipant
- Below enum is added in
SendBirdCallParticipantState
- Below methods are added in
- Bug fix
- Fixed doubling bug in recording.
- Bug fix
- Fixed an unexpected exception.
- Bug fix
- Fixed an unexpected exception.
- Added support for integration with Sendbird Chat
- Added
sendBirdChatOptionstoDialParams
- Added
- Added support for
Call summaryon the dashboard. - Improved backend scalability
- Enhanced security for compliance
- Improved stability
- Added remote recording progress event.
- Below properties are added in
DirectCall:onRemoteRecordingStatusChanged: ((call: DirectCall) => void) | nulllocalRecordingStatus: RecordingStatusremoteRecordingStatus: RecordingStatus
- Below enum is added in
SendBirdCall:RecordingStatus
- Below properties are added in
- Improved stability
- Added snapshot feature
- Below methods are added in
DirectCallcaptureLocalVideoView(callback?: CaptureVideoViewHandler): Promise<CaptureVideoViewResult>captureRemoteVideoView(callback?: CaptureVideoViewHandler): Promise<CaptureVideoViewResult>
- Below methods are added in
- Added recording feature
- Below methods are added in
SendBirdCalladdRecordingListener(id: string, listener: SendBirdCallRecordingListener): voidremoveRecordingListener(id: string): voidremoveAllRecordingListeners(): void
- Below methods are added in
DirectCallstartRecording(options: DirectCallRecordOption): stringstopRecording(recordingId: string): boolean
- Below constructor is added in
SendBirdCallDirectCallRecordOption
- Below methods are added in
- Added sound effect feature
- Below property is added in
SendBirdCallSoundType
- Below methods are added in
SendBirdCalladdDirectCallSound(type: SoundType, url: string): Promise<boolean>removeDirectCallSound(type: SoundType): boolean
- Below property is added in
- Improved validation of
customItemsinterfaces. Only string keys/values are available forcustomItemsorcustomItemsKeysarguments of,updateCustomItems(callId: string, customItems: CustomItems, callback?: CustomItemsHandler): Promise<CustomItemsResult>inSendBirdCalldeleteCustomItems(callId: string, customItemKeys: string[], callback?: CustomItemsHandler): Promise<CustomItemsResult>inSendBirdCallupdateCustomItems(customItems: CustomItems, callback?: CustomItemsHandler): Promise<CustomItemsResult>inDirectCalldeleteCustomItems(customItemsKeys: string[], callback?: CustomItemsHandler): Promise<CustomItemsResult>inDirectCall
- Enhanced prerequisite check in
init(). - Improved stability.
- Bug fix
- Fixed the connection problem with Android SDK.
- Bug fix
- Fixed the unexpected exceptions.
- Improved stability
- Replaced MediaDeviceInfo with InputDeviceInfo in following
SendBirdCallmethodsgetCurrentAudioInputDevice(): InputDeviceInfogetAvailableAudioInputDevices(): InputDeviceInfo[]selectAudioInputDevice(mediaDeviceInfo: InputDeviceInfo): voidgetCurrentVideoInputDevice(): InputDeviceInfogetAvailableVideoInputDevices(): InputDeviceInfo[]selectVideoInputDevice(mediaDeviceInfo: InputDeviceInfo): void
- Added missing type information
SendbirdCall'suseMedia()method can returnundefinedDirectCall'ssetLocalMediaView(mediaView: HTMLMediaElement)DirectCall'ssetRemoteMediaView(mediaView: HTMLMediaElement)
- Added webhook support
- Add
handleWebhookData(data: WebhookData): voidto SendBirdCall - Add
WebhookDatainterface
- Add
- Buf fix
- Fixed the unexpected exceptions in safari.
- Added support for Peer-to-peer call.
- The Peer-to-peer option can be configured on the dashboard.
- Added getting ongoing call count and ongoing status of
DirectCall.- Added
getOngoingCallCount(): numbertoSendBirdCall. - Added
readonly isOngoing: booleantoDirectCall.
- Added
- Added
setCallConnectionTimeout(timeout: number): voidtoSendBirdCall.- The call connection timer starts when the callee accepts the call. The timer will end the call after the specified timeout interval.
- Improved stability.
- Bug fix
- Fixed typo in
d.ts. - Fixed import error in Node environment.
- Fixed typo in
- Improved stability.
- Improved stability.
- Bug fix
- Fixed the bug that some console logging ignored
LoggerLevel.
- Fixed the bug that some console logging ignored
- Below property is added in
SendBirdCallErrorCode
- Below keys are added in
SendBirdCall.LoggerLevelWARNINGINFO
- Below property is added in
DirectCallreadonly callLog
- Below property is added in
DirectCallLogreadonly isFromServer
- Below methods are added in
SendBirdCallsetRingingTimeout(timeout: int): void
- Optimized video call frame rate.
- Improved stability.
- Bug fix
- Fixed the bug that
onRemoteVideoSettingsChangeddoesn't fire.
- Fixed the bug that
- The default value of
callOption.videoEnabledis changed toture.
-
README has been updated. Refer to readme to learn how to configure media devices.
-
Interfaces for media devices are added / changed.
- Below methods are added in
SendBirdCallgetCurrentVideoInputDevice(): MediaDeviceInfogetAvailableVideoInputDevices(): MediaDeviceInfo[]selectVideoInputDevice(mediaDeviceInfo: MediaDeviceInfo): voidupdateMediaDevices(constraints: { audio: boolean; video: boolean }): voiduseMedia(constraints: { audio: boolean; video: boolean }): MediaAccess
- Below event listener is added in
SendBirdCallListeneronVideoInputDeviceChanged: ((currentVideoInputDevice: MediaDeviceInfo, availableVideoInputDevices: MediaDeviceInfo[]) => void) | null
- Below methods are changed in
SendBirdCallgetCurrentVideoInputDevice(): MediaDeviceInfogetAvailableAudioInputDevices()is now synchronousselectAudioInputDevice(mediaDeviceInfo: MediaDeviceInfo)is now synchronousgetAvailableAudioOutputDevices()is now synchronousselectAudioOutputDevice(mediaDeviceInfo: MediaDeviceInfo)is now synchronous
- Below methods are added in
-
Deprecated methods are removed
- In
SendBirdCall,dial(userId: string, isVideoCall: boolean, callOption: DirectCallOption, callback?: DialHandler): DirectCallis removed. Usedial(params: DialParams, callback?: DialHandler): DirectCallinstead.
- In
DirectCall,onRemoteAudioEnabledevent listener is removed. UseonRemoteAudioSettingsChangedinstead.accept(callOption: DirectCallOption)is removed. Useaccept(params: AcceptParams): voidinstead.mute()is removed. UsemuteMicrophone()instead.unmute()is removed. UseunmuteMicrophone()instead.
- In
DirectCallOptionlocalVideoViewis removed. UselocalMediaViewinstead.remoteVideoViewis removed. UseremoteMediaViewinstead.
- In
- Internal improvement
- Bug fix
- Fixed error when user accepted call without specifying localMediaView
- Below properties are added in
DirectCallreadonly callId: stringreadonly isEnded: boolean
-
Interface for video call has been implemented
-
Below properties are added in
DirectCallreadonly isLocalVideoEnabled: booleanreadonly isRemoteVideoEnabled: booleanreadonly localMediaView: HTMLMediaElementreadonly remoteMediaView: HTMLMediaElement
-
Below methods are added in
DirectCallsetLocalMediaView(): Promise<void>setRemoteMediaView(): Promise<void>stopVideo(): voidstartVideo(): void
-
Below implementable event listeners are added in
DirectCallonRemoteVideoSettingsChanged: ((call: DirectCall) => void) | null
-
Below property is added in
DirectCallOptionvideoEnabled?: boolean
-
-
Wrong type definitions have been fixed
- Type definitions for below methods in class
SendBirdCallhas been fixed.getAvailableAudioInputDevices(): MediaDeviceInfo[]->getAvailableAudioInputDevices(): Promise<MediaDeviceInfo[]>selectAudioInputDevice(mediaDeviceInfo: MediaDeviceInfo): void->selectAudioInputDevice(mediaDeviceInfo: MediaDeviceInfo): Promise<void>getAvailableAudioOutputDevices(): MediaDeviceInfo[]->getAvailableAudioOutputDevices(): Promise<MediaDeviceInfo[]>selectAudioOutputDevice(mediaDeviceInfo: MediaDeviceInfo): void->selectAudioOutputDevice(mediaDeviceInfo: MediaDeviceInfo): Promise<void>
- Type definitions for below methods in class
-
Selecting an audio input / output device is implemented.
- Below methods are added in
SendBirdCallgetCurrentAudioInputDevice(): MediaDeviceInfogetAvailableAudioInputDevices(): MediaDeviceInfo[]selectAudioInputDevice(mediaDeviceInfo: MediaDeviceInfo): voidgetCurrentAudioOutputDevice(): MediaDeviceInfogetAvailableAudioOutputDevices(): MediaDeviceInfo[]selectAudioOutputDevice(mediaDeviceInfo: MediaDeviceInfo): void
- Below implementable event listeners are added in
SendBirdCallListeneronAudioInputDeviceChanged: ((currentAudioInputDevice: MediaDeviceInfo, availableAudioInputDevices: MediaDeviceInfo[]) => void) | nullonAudioOutputDeviceChanged: ((currentAudioOutputDevice: MediaDeviceInfo, availableAudioOutputDevices: MediaDeviceInfo[]) => void) | null
- Below methods are added in
-
Setting / retrieving custom items is implemented.
- Below methods are added in
SendBirdCallupdateCustomItems(callId: string, customItems: CustomItems, callback?: CustomItemsHandler): Promise<CustomItemsResult>deleteCustomItems(callId: string, customItemKeys: string[], callback?: CustomItemsHandler): Promise<CustomItemsResult>deleteAllCustomItems(callId: string, callback?: CustomItemsHandler): Promise<CustomItemsResult>
- Below property is added in
DirectCallreadonly customItems: CustomItems
- Below methods are added in
DirectCallupdateCustomItems(customItems: CustomItems, callback?: CustomItemsHandler): Promise<CustomItemsResult>deleteCustomItems(customItemsKeys: string[], callback?: CustomItemsHandler): Promise<CustomItemsResult>deleteAllCustomItems(callback?: CustomItemsHandler): Promise<CustomItemsResult>
- Below implementable event listeners are added in
DirectCallonCustomItemsUpdated: ((call: DirectCall, updatedKeys: string[]) => void) | nullonCustomItemsDeleted: ((call: DirectCall, deletedKeys: string[]) => void) | null
- Below property is added in
DirectCallLogreadonly customItems: CustomItems
- Below methods are added in
-
Reconnection is implemented in
DirectCall- Below implementable event listeners are added in
DirectCallonReconnected: ((call: DirectCall) => void) | nullonReconnecting: ((call: DirectCall) => void) | null
- Below implementable event listeners are added in
-
Signature of the
SendBirdCall.dial()has been changed.dial(userId: string, isVideoCall: boolean, callOption: DirectCallOption, callback?: DialHandler): DirectCallis now deprecateddial(params: DialParams, callback?: DialHandler): DirectCallis now recommended.
-
Signature of the
DirectCall.accept()has been changed.accept(callOption: DirectCallOption): voidis now deprecatedaccept(params: AcceptParams): voidis now recommended.
- Added Typescript Definition.
- Polished error description.
- Properties / Method deprecated. Deprecated interfaces might be removed in future releases.
DirectCall.onRemoteAudioEnabledis deprecated. UseonRemoteAudioSettingsChangedInstead.DirectCall.muteis deprecated. UsemuteMicrophoneInstead.DirectCall.unmuteis deprecated. UseunmuteMicrophoneInstead.
- Min / max of the
limitfield forSendBirdCall.createDirectCallLogListQueryparameter has been adjusted to 10 / 100 each. DirectCall.onRemoteAudioSettingsChanged / onRemoteAudioEnabledis not fired anymore when actual setting is not changed.
- Call is automatically disconnected after certain time (currently 1 min) when one peer leaves call session without explicitly hanging up.
- Removed redundant deprecation warning in
callOption.
- Changed some parameters names of
callOption.callOption.localVideoViewandcallOption.remoteVideoViewis now deprecated.localVideoView->localMediaViewremoteVideoView->remoteMediaView
- Fixed call.getDuration()
- Fixed connection for FireFox, exported LoggerLevel enum
- Fixed logger, polyfill
- Removed core-js dependency