All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- STREAM-315 - Changed the details emitted by an error to be more aligned with other SDK errors and provide more information to the consuming app
- STREAM-331 - Updated headset library to fix a Plantronics issue and issue with Teams and Yealink
- Lru-cache was upgraded from v6 to v11 in a dependency (genesys-cloud-streaming-client), which uses newer language features. Depending on your language target version, you may need to configure a transpiler accordingly. For example, we added
plugin-transform-private-methods
to our Babel config for the SDK.
- STREAM-314 - On streaming-client disconnected events, emit the value of autoReconnect so that consumers can determine if they should tear down their SDK or wait for streaming-client to reconnect. Updated docs to reflect this.
- PCM-2081 - Add ability to join a video conference using a meeting id
- The
initialize
method will now throw SdkErrors related to authentication with aninvalid_token
type (previously all errors frominitialize
would have aninitialization
type).
- STREAM-162 - Authentication errors during
initialize
will now throw an SdkError of type.invalid_token
.
- STREAM-287 - Fixed late arriving reinvites from terminating themselves.
- STREAM-241 - propagate mediaHelperRequired errors for eager persistent connections
- STREAM-259 - updated softphone-vendor-headsets which added in guard for EPOS reject call to only bubble up events in the case of a "Notification" type message to avoid issues with "Acknowledgements"
- [no-jira] updated softphone-vendor-headsets which included a refactor for the VBeT implementation to better accommodate more devices; moved code out in favor of VBeT SDK
- [no-jira] - deployment schedule change
- STREAM-253 - Allow emission of non-solicited agent-video proposes
- STREAM-245 - Don't hold other active sessions if we're establishing an eager persistent connection (privAnswerMode === 'Auto').
- STREAM-218 - bump streaming for priv-auto-answer on session object; dont create a conversation object for priv-auto-answer sessions.
- STREAM-222 - Created new SDK demo app using React/Vite.
- [NO_JIRA] - Bump client-logger to pick up fixes
- STREAM-178 - Dont try and hold session with dead peerConnections; bump streaming-client
- STREAM-174 - Add a null check for conversation state lookup for held.
- STREAM-172 - Update axios to address Snyk vulnerability
- STREAM-191 - Fix for slow performance of
pruneConversationUpdateForLogging
- STREAM-146 - Updated logging for new JSON-RPC commands.
- STREAM-168 - resetHeadsetState should not attempt if headset is not connected - softphone vendor headsets version bump.
- STREAM-71 - Support priv-answer-mode auto and add eagerPersistentConnectionEstablishment to config
- STREAM-15 - Move to modern modern Jest timers by telling Jest to not fake
nextTick
- STREAM-22 - fix for unhandled exception thrown from RXJS
first
operator when there are no elements from the Observable - STREAM-108 - Update ws to address Snyk vulnerability
- STREAM-97 - fix for pruning conversation events for logging when a session doesn't exist
- STREAM-73 - fix for issue where Sennheiser/EPOS devices maintained a mute state when starting a new call
- STREAM-74 - fix for issue where the WebHID permission modal popped up constantly for Jabra
- [no-jira] Use default of
false
foruseServerSidePings
- WEBRTCS-1106 - bump streaming client for reinvite functionality
- STREAM-82 - Updated lots of dependencies. For full list, see attached ticket.
- PCM-2360 - removed session object from certain logs to reduce size
- PCM-2352 - Add option to control whether to use server-side pinging
- [no-jira] Use default of
true
foruseServerSidePings
- [no-jira] Update uuid to v9.0.1
- PCM-2345 - Added ability to pass in custom headers for telemetry purposes (internal use only). Bumped streaming-client and client-logger.
- [no-jira] Bump to
Softphone Vendor Headsets
to support two new vendors: VBeT and CyberAcoustics
- [no-jira] Removed check for persistent connection to allow orchestration rejection for active calls and idle persistent connection
- PCM-2319 - move typescript to a dev dependency
- PCM-1826 - Fixed screen sharing in safari
- PCM-2312 bump logger version
- PCM-2302 Added queue for headset events to prevent issues brought on by race conditions between events
- PCM-2297 Update genesys-cloud-client-logger and genesys-cloud-streaming-client to fix Snyk vulnerabilities.
- PCM-2293 - Fixed issue where multiple instances of the sdk caused conflict with poly/plantronics headsets
- fix snyk vulnerabilities: axios and follow-redirects
- PCM-2276 - update streaming client for nrproxy changes
- Only one sdk instance will be allowed to have headset controls at any given time. Headset functionality is now orchestrated and negotiated between other instances of the sdk based on various factors. As such, we have changed the DeviceConnectionStatus type in order to union those states with orchestration states.
- PCM-2224 - Added headset orchestration flow. Opt out with
config.disableHeadsetControlsOrchestration
, but this will be temporary and will be removed without notice. - PCM-2250 - Emit
sessionInterrupted
event when a session'sconnectionState
becomesinterrupted
. - PCM-2276 - Added nr events for media actions and first alerting conversation update
- PCM-2238 - Bumped client logger to help with a fix for media helper
- PCM-2232 - Fixed unholding a call and the sdk tries to hold ended session on persistent connection
- PCM-2229 - Fixed an error that happened occasionally during a session-accept which would cause the session to not be accepted. Issue if there was a softphone session which had not yet received a conversation update.
- PCM-2220 - Automatically accept a pendingSession that comes in after the "fake" pendingSession was answered
- PCM-2213 - Allow dynamic adding and removing of supported session types
- PCM-2209 - fixed issue where we incorrectly answer pending sessions which had their sessionIds updated due to a late propose (only affects persistent connection)
- PCM-2192 - removed session object from certain logs to reduce size
- PCM-2206 - fixed bug preventing users from unholding a session on a multi-call, after ending a call while LA=100 with persistent connection.
- PCM-2203 - fixed issue when trying to place or receive calls after cpu wake when persistent connection was active before sleep
- PCM-2192 - removed session object from certain logs to reduce size
- PCM-2190 - add a hack to workaround the windows 11 "first call after reboot" issue
- PCM-2187 - hold other active sessions if line appearance is > 1.
- PCM-2196 - Send screen recording metadatas when session connects instead at session-accept
- PCM-2145 - Able to leave screenshare if unable to spin up previously selected media
- PCM-2184 - bump softphone-vendor-headsets to fix snyk vuln
- PCM-2108 - fix
sdk.acceptSession
so it doesn't send the request to the backend more than once. - PCM-2162 - fix
sessionStarted
events so they only get emitted once. (only affected softphone)
- PCM-2114 - Allow sessions to be reestablished through a reinvite process.
- PCM-2159 - bump headsets dep; fix demo app.
- PCM-2156 - Export headset library types
- PCM-2140 - Fixed issue where the SDK was not finding a pendingSession to update with LA100 and persistent connection on.
- PCM-2116 - Fixed issue where users were not able to answer incoming calls on LA=100 and persistent connection on - caused by not updating sessionId on pendingSession. If we already have a pendingSession for a given conversationId, we will update the session to match the incoming propose's sessionId. Updated to ES2020 from ES6.
- PCM-2118 - Fix format of data channel message types
- PCM-2093 - Bump streaming client
- PCM-2089 - Bump streaming client
- PCM-2042 - Updated streaming client to pull in the sdp over xmpp handling. This change should be backward compatible even though a lot of the tests changed to use the
id
property on the session instead of thesid
property.
- PCM-2060 - Fixed issue allowing a user to have multiple video tracks. Fixed some minor issues in demo app.
- PCM-2058 - bump streaming client in order to get fixed stats-gatherer
- PCM-2053 - added a function to the sdk that allows changing
useHeadset
on demand.
- SERVOPS-33064 - Fixed issue where Jabra Native overwrites CEF registration, preventing the use of external links to place call
-
We have set the
useHeadsets
flag to default to false rather than true. This way if a consumer of the SDK omits the headsets flag, it will default to using the original implementation rather than the new. This has the user to opt in rather than opt out -
We have removed the
sdk.reconnect()
function. We updated the streaming client which includes a better approach to connection management. Thesdk.reconnect()
function made very little sense as it was and was little used. If you are usingsdk.reconnect()
, you'll instead need to doawait sdk.disconnect()
thenawait sdk.connect()
.
- PCM-2024 - bump streaming client (major) to pull in all the connect/reconnect changes
- PCM-2020 - Bump streaming-client and removed data-channel logs.
- PCM-2004 - handle webrtc line appearance migration
- PCM-1998 - added in line to properly remove inactive calls from the list of current calls for consuming apps
- PCM-2007 - fixed issue with switching device during active call putting Jabra devices in bad state
- PCM-1968 - Bump streaming client for more verbose logging around interrupted connection states
- PCM-1972 - Connect WebRTC data channel for video.
- PCM-1789 - Listen and emit
memberStatusMessage
when receiving a data channel message indicating someone is actively speaking.
- PCM-1983 - Fixed an issue where the SDK throws an error when a new station is associated
- PCM-1977 - Add a trace on beforeclose stating the window was closed and list the active conversations
- PCM-1992 - Update client logger so unsent logs get saved and sent in the future
- PCM-1974 - Added in logic to properly handle auto answer scenarios
- PCM-1975 - Added in logic to properly handle auto answer scenarios
- PCM-1965 bump softphone vendor headsets
- PCM-1944 pulled in the new streaming-client so requestApiWithRetry will actually retry
- PCM-1966 fix a race condition when joining video and unmuting audio at the same time. We will now wait for the session to be stable before swapping the track on the sender.
- PCM-1856 touched up and improved function for handling resolution changes
- PCM-1948 moved rxjs to be a full dependency rather than a dev dep.
- PCM-1856 added function to the SDK that allows users to update the default video resolution
- PCM-1912 fixed rejecting non-acd softphone calls. They now go to voicemail.
- PCM-1945 fixed the logging url to use the backgroundassistant suffix for jwt auth
- PCM-1938 made small change so softphone session handling checks start with the most recent participant rather than the first
- PCM-1819 added jwt support for background assistant which will use separate endpoints for logging and screen recording metadata
- PCM-1911 Added in logic to help with the ACD flow that checks for terminated/disconnected users if the user shows up twice in the participant update
- PCM-1909 – force terminate sessions so sdk.destroy doesn't hang in the case of persistent connection or LA==1
- PCM-1913 – Fixed the screen recording metadata request to use mids in place of trackIds.
- PCM-1885 – on
deviceschange
event from the window, SdkMedia should only validate all sessions if thesessionManager
has already been initialized. - PCM-1922 - update streaming client to 14
- PCM-1993 – added build, deploy, and publish notifications to the Jenkinsfile
- PCM-1893 – added
useHeadsets: boolean
config option to allow "opting out" of the headset functionality. See docs on constructing the SDK for more details.
- PCM-1887 – Fixed how we create fake pending sessions for when line appearance == 1. Missed reference during refactor.
- Worked on issue found in Volt when there wasn't a proper device found after changing default devices
- PCM-1878 – cleaned up logging for
sdk.acceptSession()
which was logging the HTML elements and media stream causing an infinite loop with the client-logger. - Ran
npm audit fix
to update deps and resolve security vulnerabilities
- PCM-1668 - Installed newer version of headset library that will help with some issues that were found as well as offer a better approach to rejecting calls.
- PCM-1668 - Integrate the new headset library into the SDK to allow device call controls for three headset vendors at the moment: Plantronics/Poly, Sennheiser/EPOS, Jabra
- PCM-1836 - Remove circular ref issue when logging the session when updating default devices.
- PCM-1387 - Made screenRecordingMetadata a required param for acceptSession for screen recording sessions; Those metadatas get sent to the server automatically.
- PCM-1279 – calling
sdk.setAccessToken()
will now also pass that token down to the streaming-client and the client-logger.
- PCM-1802 - Fix screen recording sessions being characterized as collaborate video sessions.
- PCM-1795 – Do not request media when
sdk.updateDefaultDevices({ updateActiveSessions: true, ... })
is called and the session is already using the requested deviceId. - PCM-1798 – Added logic to video session to check to make sure we received an initial conversation event from hawk. This fixes the issue where sometimes joining a video session happens before we subscribe and receive the initial conversation event from hawk – which leaves an empty list of participants in the session.
- PCM-1812 – Switched station lookup to use the
effectiveStation
and not theassociatedStation
.effectiveStation
is the station in use for the user. It is computed based on some of the other fields. * Tuned up some logging around accepting softphone sessions with LA == 1. - PCM-1821 – Fixed the way we add screen recording tracks so the tranceivers are not
recvonly
- PCM-1794 – added
sdk.media.on('gumRequest' evt)
to notify consumers when the SDK makes a request to thewidow.navigator.mediaDevices.getUserMedia()
API. This helps consumers to react appropriately to handle browsers that will only fulfilgUM()
requests if the window is in focus. - PCM-1797 – added
sdk.setDefaultAudioStream(stream)
andsdk.media.setDefaultAudioStream(stream)
(same function) to allow changing the sdk default audio stream.
- PCM-1790 – switched over to use new pipeline.
- If you are providing a logger:
- the
ILogger
interface has changed. The last param forlog
,debug
,info
,warn
, anderror
functions is no longer a simple boolean, it is an object. Please refer to the ILogger type for https://github.com/purecloudlabs/genesys-cloud-client-logger.
- the
- PCM-1742 - Throws error and prevents session from starting if Streaming Client is not connected
- PCM-1708 – CDN now exports all SDK exports and not just the client.
- Must use
conversationId
s when interacting with a conversation and/or webrtc-session. Most notable functions include (but are not limited to):sdk.acceptPendingSession({ conversationId: string })
sdk.rejectPendingSession({ conversationId: string })
sdk.acceptSession({ conversationId: string, ...otherOptions })
sdk.endSession({ conversationId: string, ...otherOptions })
sdk.setVideoMute({ conversationId: string, ...otherOptions })
sdk.setAudioMute({ conversationId: string, ...otherOptions })
sdk.on('cancelPendingSession')
&sdk.on('handledPendingSession')
will be called with:({ sessionId: string, conversationId: string }) => void
.conversationId
is not guaranteed to be present.- PCM-1769 – Removed
address
from thependingSession
object emitted onsdk.on('pendingSession', ...)
. UseroomJid
now.
- PCM-1387 - Add the ability to do screen recordings
- PCM-1784 – Add a function to be able to forcibly terminate sessions by sessionId
- PCM-1753 – Add an option for log formatters
- PCM-1755 – Added call error handling for softphone which will be emitted as a sdkError event with a type of
call
- Added a static
VERSION
property - Added top level SDK events of
'station'
,'concurrentSoftphoneSessionsEnabled'
,'conversationUpdate'
(see docs for more details on these events). - Loads station on initialization if
SesstionTypes.softphone
is in allowed list. Sets response tosdk.station
and emits onstation
event. - Added
sdk.setConversationHeld(options)
that makes an API request to place a softphone conversation on hold. - Added functions
sdk.isPersistentConnectionEnabled()
andsdk.isConcurrentSoftphoneSessionsEnabled()
- PCM-1653 – ensure that all HTTP request errors emit on
sdk.on('sdkError', ...)
- Updated Demo App to use new events
- PCM-1764 – updated webpack config to skip
amd
build which was polluting the global namespace with dependencies, namely lodash (window._
). - PCM-1773 – add an
esModules
bundle for consumers to choose to use in builds. (Initial bug report)
- PCM-1787 – CDN exports to MAJOR and EXACT versions. There will be no more "latest" version to use. Examples:
{rootUrl}/webrtc-sdk/v6/genesys-cloud-webrtc-sdk.js
<- this URL will always load the latest for that major version.{rootUrl}/webrtc-sdk/v6.1.7/genesys-cloud-webrtc-sdk.js
<- this will only ever load the specified version.
Note: the current version (v6.1.6) deployed at
{rootUrl}/webrtc-sdk/genesys-cloud-webrtc-sdk.js
will remain at this location. But this will no longer update to newer versions.
- Errors are now logged remotely
- Bumped streaming client to 13.3.7
- Removed build examples for gulp and browserify and their dependencies
- A static
VERSION
accessed atGenesysCloudWebrtcSdk.VERSION
- PCM-1738 – Pulled in GenesysCloudClientLogger v3.0.0 which changes how the SDK logs:
- The logger will now send logs to the server if a logger is passed into the SDK on construction. The way to turn this off is to use the
optOutOfWebTelemtry
config option.
- The logger will now send logs to the server if a logger is passed into the SDK on construction. The way to turn this off is to use the
- PCM-1754 – Removed several webrtc related logs as they will be logged by streaming-client ^13.3.4. Bumped to streaming-client v13.3.4
- PCM-1738 – Pulled in streaming-client v13.3.3 (which also using gc-client-logger v3) and is now passing app name/version/id to the streaming-client's logger.
- PCM-1745 – Adding
process-fast
to webpack build to ensure the bundled CDN build does not get throttled in Chrome.
- PCM-1729 – Added
sessionType
to log messages (mainlypropose
andsession-init
events). - PCM-1715/PCM-1726 -
Bumped streaming-client to v13.3.1 which includes
stanza
override for ending sessions via the client. Now the client will manually close the peer connection if it is not closed automatically after sendingsession-terminate
.
- PCM-1726/PCM-1722 – Changed:
- Renamed package.json
"browser" -> "web"
to prevent build tools from bundling the already web-bundled/built version of the SDK. - Pointed
"main": "dist/cjs/index.js"
(it wasdist/genesys-cloud-webrtc-sdk.js
which was a hodge-podge webpack build with minimal deps bundled but target was still web). Most build tools should still be able to pick the commonJS built files when building. Note: the commonJS build does not bundle deps. The sdk is not intended to run in a node environment. If using the sdk cjs build in a node env, you must provide your own polyfills for certain browser specific APIs (suchas thefetch
API). dist/genesys-cloud-webrtc-sdk.js
is now the same file asdist/genesys-cloud-webrtc-sdk.bundle.js
which is built for the CDN (meaning all deps are bundled into the file). This is also true for the.min
files as well.- Streaming-client bump also fixes a dependency file path issue.
- Renamed package.json
- PCM-1711 - Changed default behavior for softphone
sdk.acceptSession
to create and use uniqueHTMLAudioElement
s for each session. It will then remove the audio element from the DOM once the session ends. Note: it will only create the unique audio element (and remove it from the DOM onsessionEnded
) ifsdk.acceptSession
is not passed an audioElement and there is not a SDKdefaults.audioElement
. - PCM-1587 - Ensure video-sessions pass up the
reason
to stanza for ending a session.
- PCM-1706 - Allow certain actions that affect the default to work before the sdk has been formally initialized.
- PCM-1696 & Issue #618 - Ensure all modules are exported from barrel file.
- Correctly clean up mediaDevices
devicechange
event listeners inside SdkMedia class. - Update
sdk.startSoftphoneSession
to not require aSessionType
.
- Merged dependabot PRs
- PCM-1669 - Added functionality to start softphone calls from SDK.
- PCM-1624 - Added logging for failed HTTP requests to console, consuming formatRequestError from streaming-client to remove potential PII from errors.
- Exposed the
sdk.media.isPermissionsError(error)
function for consumers to be able to utilize. See the docs for isPermissionsError(). - Added a
'both'
option tosdk.media.requestMediaPermissions()
. See the docs for requestMediaPermissions(). - Added
preserveMediaIfOneTypeFails
&retryOnFailure
toIMediaRequestOptions
. See the docs for IMediaRequestOptions.
- PCM-1679 and Issue #576– Fixed package.json
browser
andmodule
fields, as well as added acjs
field. Addedcore-util-is
(a dep ofstanza
) to compiled webpack build used undermain
andbrowser
fields. - PCM-1693 - Fixed event listeners for media tracks by adding in a check for the amount of
audioTracks
; if noaudioTracks
are present, the default media stream is cleaned up. Also passed in value that represents the tracks to be removed which were not present previously. - PCM-1647 – Fixed issue where
requestedMicPermissions
would betrue
before we knew ifhasMicPermissions
was alsotrue
(same forcamera
permissions). This bug was causing it to be impossible for consumers to know for certain by looking at theSdkMediaState
as to whether permissions were actually granted (due to the bad timing of setting the state).
- Deprecting
retryOnFailure
function param forsdk.media.startMedia(options, retryOnFailure)
. Moved to be an option inIMediaRequestOptions
. See the Added section for this release for more info.
- PCM-1628 – Fixed issue where debounce time was causing
users.{id}.conversations
subscription to fail.
- Added internal option
reason
to theIEndSessionRequest
interface - Added
sdk.media
class to handle and emit media related tasks. See media documentation for more detailssdk.media.on(...)
event emitter.- permissions and device management housed in
sdk.media
- PCM-1510 – Be able to specify jidResource for clients (streaming client)
- PCM-1538 – add
sdk.setAccessToken(token)
function to allow for updating the auth token on an already initialized sdk instance. - PCM-1576 - Be able to control audio volume on video and audio elements. see
sdk.updateAudioVolume
.
- Updated documentation.
- extra audio constraints which were google only, now apply to all browsers
- A few audio constraints are configurable as sdk defaults
- PCM-1514 – Guest acd screen share no longer cares about
config.autoConnectSessions
. Sessions were already auto accepted. That check was only throwing an error ifautoConnectSessions
wasfalse
.
- PCM-1602 – fix errors when changing devices and there's no track on the sender
- PCM-1509 – fixed sdk's
defaults.audioStream
to not be destroy when ending a session. Has Firefox limitations. See documentation. - PCM-1512 – fixed softphone and video
acceptSession
to respect media options ofnull
as beingsystem default
requests. - PCM-1522 – fixed
sdk.updateOutgoingMedia()
to respect media options ofnull
-
Updated configuration options for constructing an SDK instance (see docs for new config)
- Removed configuration option
iceServers: IceServerConfiguration[]
andiceTransportPolicy
- Moved defaults into a nested
config.default = {}
object
- Removed configuration option
-
Changed
IAcceptSessionRequest
,IEndSessionRequest
, andISessionMuteRequest
interfaces to require asessionId
in place of the non-descriptiveid
field. This contract change will impact calls to:sdk.acceptSession({sessionId: string;})
sdk.endSession({sessionId: string;})
sdk.setVideoMute({sessionId: string;})
sdk.setAudioMute({sessionId: string;})
- See docs for method parameters
-
Removed
sdk._refreshIceServers()
function which was not an advertised function. Refreshing ice servers is now handled in streaming-client directly -
Moved & renamed
sdk.createMedia(opts)
tosdk.media.startMedia(opts)
-
Moved
sdk.getDisplayMedia(opts)
tosdk.media.startDisplayMedia(opts)
-
sdk.updateOutputDevice()
will now log a warning and do nothing if called in an unsupported browser. Old behavior was to throw an error. -
Updated
sdk.on('handledIncomingRtcSession', evt => {})
typing to be asessionId: string
and not anIExtendedMediaSession
. Event already emitted thesessionId
. This fixes the typing.
- PCM-1547 - bump streaming client to fix jingle retract and jingle reject message handling
- PCM-1588 - fix locating the participant on softphone calls with multiple participants for the same user
- PCM-1584 - dont spin up a camera stream when updating outgoing media for softphone even if videoDeviceId is provided
- PCM-1572 – bump streaming-client to v13.2.3 not retry subscription requests
- PCM-1505 – fix changing camera while muted breaks device selector.
- PCM-1552 – bump streaming-client to v13.2.2 to fix timer throttling in chrome v88
- PCM-1559 – remove PII from logging (streaming-client v13.2.2 bump removes PII from its logs too)
- PCM-1540 – bump streaming-client (v13.2.1) and use its http-client to make http requests. This adds better error logging and retry logic
- PCM-1525 bump streaming client version to fix acd screen share attr.
- PCM-1501 fix streaming client unsubscribe; fixes a bug where rejoining a video in ff fails.
- PCM-1498 bump streaming-client to fix ice transport policy issue
- PCM-1474 bump streaming-client
- PCM-1471 clean up screenShareStream if session ends while sharing screen
- The SDK no longer supports legacy stream-based actions. Minimum required versions can be found here: https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addTransceiver
SDK.on('error' ...)
has been changed toSDK.on('sdkError' ...)
- Remove stats-gatherer so it can be moved up the dependency tree
- Updated to latest streaming-client
- PCM-1454 – fix talker change events in Firefox. Root cause, the trackIds on FF RTCReceivers did not match the conversation tracks[].sinks for participants. Solution is to parse the remote SDP offer to attain the trackId from the msid.
- PCM-1440 – changed
getUserMedia
constraints with a deviceId to beideal
rather thanexact
to avoidNotFound
errors if called with a bad deviceId. Example:
constraints = {
video: {
deviceId: { ideal: 'device-id-hash' }
}
};
- PCM-1462 – Firefox does not switch camera when deviceId uses
ideal
. Switched toexact
if the browser is Firefox
- Merged dependabot PRs
- PCM-1442 – added
audioElement.setSinkId
tobase-session-handler.ts#acceptSession()
so the sdk default output deviceId is used when accepting a video or softphone session.
- Merged dependabot PRs
- PCM-1408 – moved
getDisplayMedia
request tostartScreenShare
for acd-screenshare. Firefox needs auserGesture
in order to request the screen. The Request is now handled onsession-init
, but requested at the beginning (before the propose). - WC-801 – added
@babel/plugin-transform-property-mutators
to webpack/babel plugins to properly polyfill cdn bundle for IE11. - PCM-1428 – in chrome, if you were using the system default audio device and then changed the default on the system level, the sdk would not start a audio with the new system default.
- PCM-1426 – better logging around devices. It will log devices in use we a session starts and when the devices change.
- Merged dependabot PRs
- added client logger to spigot tests for test debugability
- bumped streaming-client to v12.0.2
- README to show the correct cdn url
- Issue #235 which threw
Uncaught TypeError: Cannot assign to read only property 'exports' of object '#<Object>'
- Bumped to streaming-client v12.0.1
- Merged dependabot PRs
- Renamed app / repo to
GenesysCloudWebrtcSdk
/genesys-cloud-webrtc-sdk
- cdn url also changed to: https://sdk-cdn.mypurecloud.com/webrtc-sdk/genesys-cloud-webrtc-sdk.bundle.min.js
- Changed the build output and
package.json#main
to point at compiled src rather than bundling for node. There is still a.bundle.js
version for the cdn. - Upgraded to typescript v3.9.x which can potentially break projects using older versions of ts (ie. 3.6.x)
- Bumped
webrtc-stats-gatherer
to v8 - Bumped
purecloud-platform-client-v2
to v86 - Bumped
typescript
to v3.9.x
- Merged dependabot PRs
- Removed semistandard and ts-loader
- updateOutgoingMedia now cleans up existing media correctly (async issue)
- #165 where cdn build does not export as default
- Adjusted
create-manifest.js
to dynamically add all files starting withgenesys-cloud-webrtc-sdk
- orignalRoomJid now showing up on IJingleSession
- fromUserId added to session for 1:1 video calls
- Media for screen share is no longer spun up prior to `sessionInit
- Bumped streaming client version
- Added enum for Jingle Reasons
- Fix signature for retract handler
- make sure output device(s) is available when devices change
- added session ids to logging around devices
- Added ideal frameRate constraint to screenShare and video
- Apply track constraints based on the media automatically
- When possible, replace sender tracks directly instead of removing the track, then adding the new one
- Fixed the context for the logging handlers
startVideoConference
now takes an optionalinviteeJid
param for sending a propose to theinviteeJid
- pending sessions can now be rejected with the
rejectPendingSession
function
- When
mediaDevices
fires adevicechange
event, the sdk will check to make sure all sessions have media from devices that are still available. It will attempt to update if the media is no longer available or it will set the session mute if there are no devices available to switch to.
- Merged PR#138 bumping
minimist
- Merged dependabot PRs
- Updated the logger to a version that doesn't cause an infinite loop
- Replaced sdk logger with genesys-cloud-client-logger
- allow device switching in FireFox by stopping existing media before requesting new media
- Be able to specific a desired video resolution with
createMedia
- Default video resolution to highest possible (up to 4k)
- Be able to only handle specified conversation types (allowedSessionTypes in the config)
- Support for input and output devices
- Screen pinning for video
- Better handling of the log buffer size to mitigate 413's received from the logging endpoint
- sdk.startVideoConference and sdk.startScreenShare now return Promise<{ conversationId: string }>
- sdk.initialize will no longer resolve before ice servers are fetched
- Only log the parts of conversation updates we care about instead of the whole event
- SDK config option
iceTransportPolicy
- Listeners to the video screen sharing stream to update the session when a user clicks the browser "Stop Sharing Screen" button
- Do not request ice servers if there is no connection
- Set iceTransportPolicy to
relay
if only turn servers are received - Update some typings
- Stop video conference screen share stream when the session ends
- Calling
session.accept()
manually which was the normal workflow after receiving thesessionStarted
event is no longer supported and may have unpredictable outcomes. Usesdk.acceptSession(options)
now.
sdk.acceptSession
to be used in lieu ofsession.accept()
in order to do some things beforesession.accept()
- Moved code base to a typescript implementation