All Notable changes to apiRTC are documented in this file.
Latest version : apiRTC Latest
4.2.16 - 2019-05-16
- Added streaming management on ConversationCall.
- Added idPersistenceTimeout parameter for UserAgent#register.
- UserAgent#setOverallIncomingVideoBandwidth accepts illegal value (0 or less) to disable the limit.
- UserAgent#setOverallOutgoingVideoBandwidth accepts illegal value (0 or less) to disable the limit.
- UserAgent#setPerCallIncomingVideoBandwidth accepts illegal value (0 or less) to disable the limit.
- UserAgent#setPerCallOutgoingVideoBandwidth accepts illegal value (0 or less) to disable the limit.
- Fixed getStats for Firefox 63 and newer.
- Fixed selected candidate for Chrome based browsers.
4.2.15 - 2019-05-07
- Added metadata param on cloudApi#saveGroupChatMessage
- Added metadata to group chat message.
- Added tags management.
4.2.14 - 2019-04-26
- Added bandwidth reservation process.
- Added overwrite option for Conversation#pushData.
- Added ttl (time to live) option for Conversation#pushData.
- Added videoStartQuality for conference publish.
- Added transfer start timeout for Conversation#pushData.
- Added better pc_config management and add mp2.apizee.com
- Added possibility to configure width and height on stream#takeSnapshot()
- Added Conversation#getContactsNumber()
- Change screen sharing stream type to STREAM_TYPE_VIDEO.
- Change conference waiting room implementation.
- Removed H.264 restriction for Safari 12.1 and higher.
- Added delay before joining waiting room.
- Added room ID check upon session update.
- Reject promise on addMedia()
- ReplacePublishedStream promise take addMedia() result into account
- Fixed roomJoined parameter value to enable whiteboard restart
- Fixed subscription to an unmuted (initially muted) feed.
- Fixed Manage case when mediaDevice are detected on userAgent and mediaDeviceChanged handler is not yet setted
- Fixed takeSnapshot modif and documentation
4.2.13 - 2019-04-11
- Fixed issue on UserAgent#getUserMediaDevices() on Safari 12.1
- Fixed issue on call renegotiation on Safari 12.1
4.2.12 - 2019-04-10
- Added Conference#eject.
- Added ReceivedConversationJoinRequest export.
- Added (Conversation/Conference) messageNotDelivered event.
- Fixed call restart.
- Fixed destCallType value : add checking on setRemoteCallProfile to process on publish or shareScreen message
- Fixed update adapter.js - issue with publish on Safari
- Fixed mediaConstraints for createOffer on old chrome version (< 55)
4.2.11 - 2019-04-04
- Added userAcceptOnIncomingScreenSharingCall parameter on UserAgent#register() to enable invitation management on screenSharing incoming calls
- Added for screenSharing on acceptCall() : forcing unidirectionnal call
- Added Contact#incomingScreenSharingCallInvitation
- Added Session#incomingScreenSharingCallInvitation
- Added filtering if a second 200OK is received for a call (call forking)
- Added recordingStopped event in Conversation/Conference.
- Added Conversation#isRecorded
- Added Conversation#getRecordingInfo
- Added ConversationCall#isRecorded
- Added ConversationCall#getRecordingInfo
- Added Session#joinConversationSpace()
- Added Session#leaveConversationSpace()
- Added SIP info in StreamInfo (Conversation)
- Made CloudApi#setCloudURL static.
- Added additional info in recording related events.
- Fixed (Conversation) transferEnded event.
- Fixed CloudApi for headers.
- Added apiCCId forgetting on authenticated session disconnection.
4.2.10 - 2019-03-21
- Fixed blurLevel issue on takesnapshot()
4.2.9 - 2019-03-20
- Fixed conversationSpace initialisation in case of apiRTC re-init
- Remove unuseful "call not found" warning
4.2.8 - 2019-03-18
- Added checkMutingStateForUserMedia to control muting state in P2P conference.
- Added support of conversationSpace
- Added screenSharing with getDisplayMedia API for Chrome > 72
- Added Promise return on stopNewWhiteboardSession()
- Added control on apiCCId (128 characters maximum)
- Adding static code analysis
4.2.7 - 2019-02-21
- Added apiKey format control.
- Added Conversation#getStreamInfo
- Added videoOnly parameter on Conversation#PublishOptions and Conversation#SubscribeOptions
- Added chatbot messaging.
- Added strip of rtcp-fb parameters on updateSDPcodecs
- Fixed waiting room.
- Fixed browser detection in checkCandidateTypes
4.2.6 - 2019-02-15
- Added osName osVersion into joinSession message.
- Added new configuration of composite recording.
- Added control to avoid Datachannel activation on Edge as it is not supported.
4.2.5 - 2019-02-12
- Fixed bug on video-only and screen sharing.
4.2.4 - 2019-02-11
- Added Conversation#cancelPushData.
- Fixed mute/unmute for remote stream.
- Fixed checking on Whiteboard join
4.2.3 - 2019-01-30
- Added facingMode option on UserAgent#createStream
- fix PreCall test
- fix on takeSnapshot to use the size of live video
- Fixed issue : only one instance of babel-polyfill is allowed
4.2.2 - 2019-01-15
- Changed peer connection configuration for Firefox 53 and newer.
- Fixed CallType on events when using a screenSharing stream
- Call getMediaDevices() in userMediaSuccess on all browsers (was only done for Safari and Edge)
- Setting video Bandwidth default values to 3Mo for overallIncoming and overallOutgoing (used for conference)
4.2.1 - 2019-01-14
- Replaced renegotiation by unpublish/publish to avoid audio-video desync during switch camera.
4.2.0 - 2018-12-19
- Added support for multiple conversations.
- Added setting videoBandWidth after publish (on live).
- Added pointer sharing on Session.
- Added possibility to upload logs to Cloud
4.1.34 - 2019-01-15
- Changed peer connection configuration for Firefox 53 and newer (TURNS).
4.1.33 - 2019-01-11
- Force sdpSemantics to 'plan-b' for Chrome >= 72
- Deactivate user id conversion to numeric by default
- Add registerInformation#idConversionActivated parameter to keep the possibility to convert user id
4.1.32 - 2018-12-21
- Fixed callConfiguration setting management on meshPublish
4.1.31 - 2018-12-10
- Fixed moderation on guest side (access-ack).
- Fixed callType for screenSharing call.
- Fixed page unload detection on Mobile Safari for correct disconnection and apiCCId preservation
4.1.30 - 2018-12-04
- Fixed support for audio-only and video-only user media grab.
- Fixed call restart after screenSharing extension installation on Chrome
- Fixed screenSharing extension installation management for Chrome 71
4.1.29 - 2018-11-28
- Added "Muted" and "NoStream" values to QoS quality scores.
- Fixed resolution parameter for videoQuality model.
- Fixed Stream recording. Issue when playing recorded files on Windows.
4.1.28 - 2018-11-23
- Fixed camera checking and selection on Safari iOS (2).
- Added check on startCallStatsMonitoring for Safari : only supported on Chrome and Firefox for now.
4.1.27 - 2018-11-22
- Added check on WebRTCClient#enableQos() : only supported on Chrome and Firefox for now.
- Added check on WebRTCClient#enableCallStatsMonitoring() : only supported on Chrome and Firefox for now.
- Added check on WebRTCClient#enableQualityEvaluating() : only supported on Chrome and Firefox for now.
- Fixed WebRTCClient#getMediaDevices() to update UserAgent#getUserMediaDevices().
- Fixed micro selection on Safari iOS.
- Fixed camera checking and selection on Safari iOS.
4.1.26 - 2018-11-20
- Fixed call restart and stream protection.
- Fixed deactivation of active speaker on iOS-Cordova.
4.1.25 - 2018-11-20
- Added check on CallStatsMonitoring : only supported on Chrome and Firefox for now.
- Added Conversation#audioAmplitudeUpdate event.
4.1.24 - 2018-11-15
- Added Stream#addInDiv() Stream#removeFromDiv() helpers to manage adding video in DOM. These methods includes support of Safari autoplay policies constraints to avoid WebRTC audio/video plays issues.
- Added Conversation#hangup event.
- Switch Camera on iOS.
- Fixed auto subscribe restart after failure. Use Conversation#streamAdded and Conversation#streamRemoved to update DOM.
4.1.23 - 2018-11-12
- Added UserAgent#enableCallStatsMonitoring
- Added UserAgent#enableActiveSpeakerDetecting
- addStream() and removeStream() to use addTrack / replaceTrack API by default
- enhancedAudioActivated : add checking to activate only on Chrome
- Compatibility with Vivaldi Browser v1 and v2
- Removed entry from userMediaStreamTable after failure
4.1.22 - 2018-10-30
- Added call auto restart when no candidate is found (Safari 12 without getUserMedia).
- Added active speaker detecting
- Modified PeerConnection event for Safari 12 (ontrack instead of onaddstream).
- Fixed renegotiation for subscriber in mesh conference.
4.1.21 - 2018-10-18
- Added descriptor for ICE error.
- Added event for distant ICE error.
4.1.20 - 2018-10-12
- Added Conference#cancelJoin.
- Added enabling video quality events on Session
- Added frame resolution statistics for sent stream
- Enabled dataChannel on Safari version 11 and later
4.1.19 - 2018-10-09
- Added recording (userStream/composite) in Conversation.
- Added Conference#cancelJoin.
- Enabled dataChannel on Safari version 11 and later
- Fixed firing MediaDeviceChanged Event on UserAgent's instantiation
- Fixed bug of wrong subscribe to replay.
4.1.18 - 2018-10-02
- checking call state on updateSubscribedStream() to avoid SDP negotiations error
- fire "CallEstablished" event on set remoteDescription success
- add control on userData value
- add error value on createScreensharingStream() promise reject
4.1.17 - 2018-09-26
- Fix for Hangup on iOS Cordova
4.1.16 - 2018-09-25
- add screenSharing support on Edge (only available on Windows 10 Pro or Enterprise)
- Fixed issue on call establishment with Edge (call peer to peer and publish to conference)
- Fixed issue with Chrome 55
4.1.15 - 2018-09-20
- Remove subscribeToMedia and unsubscribeToMedia from API Doc. These methods are not useful.
- Improve mediaDevice change detection for Safari and Edge. Add posibility to activate apiRTCMediaDeviceDetectionEnabled on Safari
4.1.14 - 2018-09-12
- mediaDeviceChanged event support by apiRTC on Chrome/Android as not supported by browser (parameters apiRTCMediaDeviceDetectionEnabled, apiRTCMediaDeviceDetectionDelay)
- add enhancedAudioActivated parameters on CreateStreamOptions
4.1.13 - 2018-09-10
- Fixed on userData update when user already in contact list
- Get active session if no session is passed as options parameter for Conversation#checkAccess
4.1.12 - 2018-09-04
- Added conference waiting room messages for exchange with izeeconf.
- Added 'statusChange' event in Invitation (Available for all kinds of invitation)
- Added Invitation status : Constants.INVITATION_STATUS_CANCELLED
- Added Invitation status : Constants.INVITATION_STATUS_ENDED
- Added cancel() on SendInvitation for FileTransferInvitation - sendFile()
- type parameter on Invitation
- Correction for fileInfo value on Invitation
- Correction of remoteId on 'hangup' event
- Correction of callId value on 'userMediaStop' event
- Added convId parameter for fetchEnterpriseInformations
- Added sessionId parameter as value returned by fetchEnterpriseInformations
- 'expired' event on ReceivedCallInvitation : check 'statusChange' event
- 'expired' event on ReceivedDataChannelInvitation : check 'statusChange' event
- 'response' event on SentInvitation : check 'statusChange' event
4.1.11 - 2018-08-22
- Fixed IE11 console issue
- Fixed subscribe audio only and video only in P2P conference.
- Added ApiCCWebRTCClient#updateMediaTypeOnCall
- Added videoOnly option for Conversation#subscribeToStream
- Added Conversation#updateSubscribedStream
4.1.10 - 2018-08-21
- avoid exception on loadJs if file is requested twice
- Fixed IE8 / IE11 support (avoid devices detection, update call management)
- Added audio/video mute support for P2P conference.
4.1.9 - 2018-08-20
- Cleaning whiteboard elements on start() and stop()
- Whiteboard drawingId on annotation
- Fixed issue on contact creation when userAgent is not completely instantiated
- Fixed issue on contactListUpdate when session is not completely instantiated
4.1.8 - 2018-08-11
- Added UserAgent#fetchGeolocationInformation in DTS file
- Added Conversation#getStatus
- Added Stream#getOwner
- Added the possibility to initialize some userData parameters at register
- Added streamId in localStreamUpdated event fired by Conversation
- Removed Stream#isLocal in DTS file
- Added missing return in UserAgent#getUsername and UserAgent#getPhotoUrl
- Added missing Stream#callId property in DTS file
- Fixed Stream#streamId property type in DTS file
- Fixed remoteStreamUpdated event firing order
- Removed _contactCache on Conversation
- Modification of Contacts management on users presence :
- Optimisation of connectedUsersListUpdate event management
- Remove updatePresence event process
- Remove throttle on Contacts list update
- Avoid creation of Contact for own user
- removed Conversation#contactListUpdate as not filtered by conversation and events contactJoined / contactLeft are more precise
- add filtering of incomingCall event for conference calls
4.1.7 - 2018-08-07
- Added (transfer) id for transferBegun, transferProgress and transferEnded events (Conversation)
- Added Conversation#isPublishedStream
- Added audio/video update from audio-only and video-only calls in Conversation
- Added MCUAvailableStreamUpdate event (Core)
- Added Conversation#checkAccess
- Added access-ack on moderation granted
- Added Session#getOrCreateConference
- Added check for electron application
- Added possibility to get a blob instead of dataURI from takeSnapshot
- Added isRemote property on Stream
- Speed up data channel transfer to cloud
- Added wait for CCS ack before closing data channel after transfer
- Removed call auto-accept when no audio and video present
- Added convId optional parameter to Enterprise#fetchSiteAgents
- Added moderator info in Conversation#checkAccess result
- Modified special receiveData listener in Conference
- Fixed missing return after reject in CloudApi#cloudRequest
- Fixed missing values in Conversation#checkAccess result
- Added UserAgent#getDefaultDevices in DTS file
- Set stream parameter as optional for Conversation#publish in DTS file
- Added UserAgent#getUserMediaDevices in DTS file
4.1.6 - 2018-07-20
- Added UserAgent#fetchGeolocationInformation
- Added CloudApi (public)
- Fixed fileTransfer for file of type string
4.1.5 - 2018-07-17
- Fixed error during data call when audio/video is globally muted.
- Added clean up of mesh published stream on leaveSession.
- Fixed Conversation#destroy and Conference#destroy.
- Fixed error when publishing audio-only stream in P2P conference.
4.1.4 - 2018-07-11
- Added class UserData to represent user data of user agent and contact.
- Fixed dataChannel transfer (onclose not supported on firefox).
- Modified total hang up order.
- Added clean up of MCU session on leave.
4.1.3 - 2018-07-06
- Generation of lib version min.debug
- apiDBActivated is now activated by default (case of connection/deconnection)
4.1.2 - 2018-07-05
- Added tests for mute/unmute during calls.
- Added remoteStreamUpdated event in Call.
- Added listeners clean up in Call.
- Added remoteId in userMediaSuccess event.
4.1.1 - 2018-07-05
- PreCallTest() function
- apiDBActivated is now activated by default
- createStream with videoInputId false was creating a video stream
4.1.0 - 2018-06-29
- Events Contact#incomingCall
- Events Contact#incomingScreenSharingCall
- Events Session#incomingScreenSharingCall
- Events Call#userMediaError
- Events Call#desktopCapture
- Call creation when invitation is received
- Possibility to configure captureSourceType on Stream#createScreensharingStream
- Fixed call.callConfiguration merge on acceptCall
- Checking if audioReceived present for QoS statistics.
- Fixed mute/unmute (state variable duplication)
- Fixed tryAudioCallAfterUserMediaError
- Fixed mute state for muted call establishment.
- Removed use of MediaStream#clone.
- Added check for roomId on ApiCCWebRTCClient#joinMCUSession
- Deprecation of Session#getContact() replaced by Session#getOrCreateContact()
- Cleaning of Stream#createScreensharingStream
- Modified localStreamUpdated and remoteStreamUpdated event firing.
4.0.14 - 2018-06-29
- Remove typeof control on inviteInRoom
- Fixed when a video stream is used to establish call and call is audioOnly : call was using video
- Fixed SDPManager#setSendOnlyForAudio
- Fixed SDPManager#setSendOnlyForVideo
- Fixed SDPManager#setSendOnly
- Fixed SDPManager#setRecvOnlyForAudio
- Fixed SDPManager#setRecvOnlyForVideo
- Fixed SDPManager#setRecvOnly
- Modified Call#replacePublishedStreams: resolve the returned promise only when the action is done.
- Added Call#stopPublishedStreams
4.0.13 - 2018-06-26
- Added ConversationCall, created by Conversation/Conference on publish.
- Added ConversationCall#replacePublishedStream.
- Added Conversation#destroy to release conversation resources.
- Added Conference#destroy to release conference resources.
- Added callbacks parameters for Call#replacePublishedStream.
- Removed remaining reference of previous UserMediaStream in WebRTC_Client#addMedia.
4.0.12 - 2018-06-25
- Added pointer sharing roomType.
- Added nickname in options for anonymous UserAgent#register.
- Whiteboard optimisation :
- History is now managed by CCS in case of disconnection / reconnection
- Whiteboard cursor is deactivated by default (invisible))
- Added capabilities detection on userAgent to deactivate cursor on iOS
- Not sending cursor information when cursor is set to invisible
- Avoid redraw when not necessary
4.0.11 - 2018-06-20
- Added possibility to set userAccept on incoming dataCall on User Agent (RegisterInformation).
- Removed 'Conversation.' prefix from Conversation.
- Added timeout for webRTCClientCreated event firing.
- Fixed undefined address for turn server.
- Fixed issue on webRTC library usage when using Safari and cordova is defined
4.0.10 - 2018-06-14
- Added QoS preferences for Conversation#publish
- Added uuid from CCS on groupChatMessage sending
- Fixed Call#replacePublishedStreams for mute/unmute
- Fixed updatePresence request to cloud for conference
4.0.9 - 2018-06-07
- Added Events Conversation#disconnectionWarning
- Added Events Conversation#error
- Added UserAgent#enableMeshRoomMode()
- Added UserAgent#fetchProfileInformation()
- Added UserAgent#getPhotoUrl()
- Added events on Stream
- Added Stream#activeStateChange
- Added events on Conversation
- Added possibility to set turn server address on User Agent (RegisterInformation). This parameter is a global parameter : all established calls will use this turn server.
- Added possibility to set turn server address on Conversation#publish() (PublishOptions) . This parameter is only set for the published call.
- Added possibility to set turn server address on Conversation#subscribeToStream() (SubscribeOptions) . This parameter is only set for the subscribed call.
- Added possibility to set turn server address on Conversation#pushData() (PushDataOptions) . This parameter is only set for the data call.
- Fixed parameter token update on deconnection/reconnection
4.0.8 - 2018-05-30
- Added control to avoid Stream constructor usage, please use a static method of class Stream such as : createStreamFromUserMedia, createStreamFromMediaStream, createScreensharingStream
- Cleaning code on deprecated usage of selectedUserMediaStreamId
- Added Events Session#reconnecting
- Added possibility to configure contactDisconnectionDelay (RegisterInformation)
- Fixed Session events list checking to add : 'disconnect' and 'error'
4.0.7 - 2018-05-28
- Added possibility to configure ccs connection retries number and delay (RegisterInformation)
- Fixed issue on removeGroupDataFromConnectedUsersList when user leave conference
4.0.6 - 2018-05-24
- Added UserAgent#externalJsLoadingStatus event to be informed on external Js status : loaded, error or retry. This can be an insteresting information to detect network failure.
- Added UserAgent#ccsConnectionStatus event to be informed on CCS connection status : connected, disconnected, error, retry
- Added possibility to configure external Js loading retries number and delay (RegisterInformation)
- Added result to joinMCUSessionAnswer event
- Optimize bandwidth test duration
- Fixed issue on stream cleaning when replacePublishedStream is used
4.0.5 - 2018-05-17
- MediaDevice Manager to improve getting media devices and update when a device is added or removed
- Fixed UserAgent#RegisterInformation : remove presence group subscription when joining : this is done using parameter subscribeTo
- Fixed issue on presenceGroupManagement when disconnect/reconnect
- Fixed issue on UserAgent#fetchNetworkInformation
- Fixed issue to use requirejs : conflict with webpack
- update bandwidthRatingThresholds
- Change asynchronous js loader in order to have retries and error management
- Removed Presence group subscription to visitor - agent when connecting with apiKey : presence & subscribe group must be unset by default
4.0.4 - 2018-04-26
- Stream#startRecord now return a promise
- Stream#stopRecord now return a promise with Blob of recorded stream
- Stream#pauseRecord now return a promise
- Stream#resumeRecord now return a promise
- Constants.ERROR_STREAM_RECORD : used to identify error on stream recording
4.0.3 - 2018-04-24
- Stream release when a stream is provided on call and conversation
- Stream muting/unmuting (audio & video) when a stream is provided on call and conversation
- Fixed screensharing for Firefox : default captureSourceType is now "screen"
- Fixed parameter restarted on deconnection/reconnection on UserMediaSuccess Event
- Fixed call restarting with MCU when disconnection
- restart on bye "disconnect" reason
- userMediaStream presence and active state checking on restart
- Fixed usage of plugin functions for iOS/cordova
- Check apiKey modification on apiCCId checking when reloading page
- Update events handlers on CCS connection
- Modified ApiCCWebRTCClient#updateMediaDeviceOnCall: replaced stream parameter (deprecated) by userMediaStreamId.
- Added warning when no candidate are retrieved from ice agent on call
- Added support for WebRTC evolution API on Firefox-59 and Chrome-65 on addStream() and removeStream()
- Added checking of media device presence before using it on getUserMedia when a deviceId is set
- Added detection of media device update:
- Added UserAgent#mediaDeviceChanged event
- Added management of connection error on register :
- Cloud CCS connection error and retries
- Added retries on cloud request
- Added cloudFetchRetries, cloudFetchRetryDelay configuration parameters on registerInformation
- CCS connection : authentication error
- Events on Session
- Added Session#disconnect
- Added Session#error
- Cloud CCS connection error and retries
- Added support for media update (renegotiation).
- Added UserAgent#createStreamFromMediaStream in order to create a Stream from a mediaStream
- Removed Session#disconnectionWarning event
- Removed UserAgent#getDefaultDevices
4.0.2 - 2018-04-06
- typo : Hangup reason 'User_Refuse_Call' replaced by 'User_Refused_Call'
- Added mimeType in blob return by stopRecord()
4.0.1 - 2018-04-06
- Optimization : Stream#startRecord() : change default recording mimeType to 'video/webm;codecs=vp8' instead of 'video/webm;codecs=vp9'
- Added posibility to configure mimeType on Stream#startRecord()
- Added Stream#pauseRecord
- Added Stream#resumeRecord
- Added checking of apiKey when getting apiCCId from cookie
- Support presenceGroup and subscribeToPresenceGroup modifications on disconnect / reconnect
- Fixed tryAudioCall after userMediaError
4.0.0 - 2018-03-23
This version is the merge of ApiRTC and ApiRTC2 : Project name is apiRTC and version is v4.0.0 (former apiRTC version is 3.18.9)
Compatibility with apiRTC2 projects is maintained :
- ApiRTC2 keyword is preserved even if ApiRTC is preferred
- Only the library path change : https://cloud.apizee.com/apiRTC/vX.X
API of ApiRTC v3 is also maintained in order to keep compatibility with existing applications.
- Major change with apiRTC2/ApiRTC merging
- apiRTCManager and Session event cleaning on disconnect()
- clean Conversation event cleaning on leave()
- Typo : persistantDataUpdated event by persistentDataUpdated