Version 9.5.1 - January 11, 2024
Fixes
- Fix bug on making
networkRequestdata a string
Version 9.5.0 - November 21, 2023
New
- Support pending events (missed
member:invited)
Version 9.4.0 - September 04, 2023
New
- Support
ephemeralevent
Version 9.3.1 - August 30, 2023
Fixes
- Fix
NexmoAPIerror wrapping forv0.3Conversation API endpoints
Release Notes
Version 9.3.1 - June 19, 2023
Fixes
- Fix
NexmoAPIerror wrapping forv0.3Conversation API endpoints
Version 9.3.0 - June 01, 2023
New
- Add
stateto query param forapplication.getConversations()for theConversationsPageobject
Fixes
- Fix type definition for
Conversationtimestamp to object - Default
socket.ioquerysession_versionto0.0.1unlessenableInboundOfferflag set to true, then default to0.0.2
Version 9.2.6 - May 23, 2023
Changes
- Add WS reconnection metrics
Version 9.2.5 - May 23, 2023
Fixes
- Fix type definition for
enableEventsQueueandenableInboundOffer - Add
acknowledgeEventsflag in the configuration to allow tracking of websocket event acknowledgement
Version 9.2.4 - April 19, 2023
Fixes
- Emitting
reconnectingsocket event on reconnection attempt
Version 9.2.3 - March 30, 2023
Changes
- Upgrade
socket.io-clientversion to 4.6.1
Version 9.2.2 - March 13, 2023
Fixes
- Fix
ConversationEventsProcessorbeing initiated multiple times for the same conversation
Version 9.2.0 - December 21, 2022
Changes
- Add
enableInboundOfferflag to config for inbound call setup - Remove
Ice Serversdefault fromwebrtc STUNserver setup - Replace
api.nexmoURLs toapi.vonageURLs
Version 9.1.5 - October 24, 2022
Fixes
- Fix bug on user re invited/joined to a conversation
Version 9.1.4 - September 23, 2022
Changes
- Use
v2of Nexmo Conversation Websocket
Version 9.1.3 - September 07, 2022
Fix
- Fix typescript module definition
Version 9.1.1 - August 19, 2022
Fix
- Fix events ordering for rtc:transfer on named conversations
Version 9.1.0 - August 16, 2022
New
- Use pre-loaded media on inbound calls (start
WebRTC icegathering process as soon as member is invited to a call)
Fix
- Remove
public-iplibrary because of a security vulnerability (updated withis-ip)
Version 9.0.0 - June 30, 2022
Breaking changes
- Rename
login()function tocreateSession()
- Rename
logout()function todeleteSession()
Changes
- Move websocket connection creation to the
createSession()function
Version 8.7.3 - June 14, 2022
Changes
- Added token authentication to
connectivityReport()
- Added token authentication to
checkMediaServers()
Version 8.7.2 - May 27, 2022
Fix
- Removed unused npm dependencies.
Version 8.7.1 - May 11, 2022
New
- Added new
checkMediaServers()method to return a list with the connection health of the media servers for a specific datacenter.
- Added new
checkMediaConnectivity()method to return the connection health of a single media server.
Changes
- Update
connectivityReport()to return connection time in ms for connection to https, wss, and media servers
Version 8.6.0 - April 21, 2022
New
- Added an optional object argument to the
connectivityReport(), with optional fielddcListCallbackwhich accepts a callback function to update data center list
Version 8.5.0 - April 20, 2022
New
- Expose
seen()anddelivered()functions for message events
- Support new message status events
message:seenmessage:deliveredmessage:submittedmessage:rejectedmessage:undeliverable
- Added new state objects for message events supporting the new statuses
seen_bydelivered_tosubmitted_torejected_byundeliverable_to
Changes
- Update
connectivityReport()to use proper endpoints per region
Version 8.4.1 - February 14, 2022
Fix
- Fix events ordering when gap in inbound events
Version 8.4.0 - January 21, 2022
New
- Added new
connectivityReport()function to get a connectivity report for all Vonage data centers and media servers
Version 8.3.1 - December 09, 2021
New
- Set the default sync level for the login process from
litetonone
Version 8.3.0 - November 01, 2021
New
- Added new
uploadImage()function to upload an image to the Vonage Media Service
- Added new
sendMessage()function to send a newmessageto the conversation (supported types aretext,image,audio,videoandfile)
- Added new
MessageEventtype of event
Changes
- Deprecate
sendText()function (usesendMessage()with a type oftextinstead)
- Deprecate
sendImage()function (useuploadImage()andsendMessage()with a type ofimageinstead)
Version 8.2.5 - October 12, 2021
Fix
- Fix error handling for audio permissions
Version 8.2.2 - October 08, 2021
Fix
- Enhance debug logs
Version 8.2.0 - September 28, 2021
New
- Add new
getUserSessions()function to fetch the sessions of the logged in user
Version 8.1.1 - September 08, 2021
New
- Add new optional
mediaParamsparameter inreconnectCallfunction, in order to modify theMediaStreamobject
- Update
media.enable()docs to include audio constraints
Fixes
- Assign the correct
NXMCallstatus when reconnecting to a call (STARTED,RINGINGorANSWERED)
Changes
- Update
npmdependencies
Version 8.1.0 - September 02, 2021
New
- Add
reconnectCallfunction allowing users to reconnect to a call within 20 seconds if browser tab closed
- Add optional parameter
reconnectRtcIdto mediaenable()function to reconnect media to call
- Add
custom_dataobject incallServerfunction
- Add
apiKey,applicationId,conversationIdandconversationNamewhen available inrtcstatsanalytics reports
Fixes
- Fix bug in call transfer where
transferred_fromwas undefined
Version 8.0.5 - July 15, 2021
Fixes
- Fix the
fromfor member events - Update
npmdependencies includingsocket-io
Version 8.0.4 - June 16, 2021
Fixes
- Fix bug on
DTMFdispatch of callback toevent_url
Version 8.0.3 - May 18, 2021
Fixes
- Fix out of order internal events processing in the events queue
- Fix deprecation warning message for
rtcstats:report
Version 8.0.1 - April 29, 2021
Fixes
- Update Typescript definitions
- Fix bug on IP-IP call scenario involving Native SDKs (not populating properly the
Conversation.membersMap)
Version 8.0.0 - April 27, 2021
Breaking changes
- Deprecate
Conversation.membersMap (it will be populated only on a call scenario) - Conversation events will be emitted with a subset information of the Member
Changes
- Add paginated
getMembers()function to retrieve the members of a conversation
- Add
getMyMember()function to retrieve our own member in a conversation
- Add
getMember()function to fetch a conversation member bymember_id
Version 7.1.0 - April 07, 2021
Changes
rtcstats:reportis deprecated. Please usertcstats:analyticsinstead
- Add logs reporter for remote logging
- Add custom
getStatsparser - Remove
callstatslibrary and implementation
Version 7.0.2 - March 30, 2021
Fixes
- Emit 'call:status:update' event when application offline and call disconnected
Version 7.0.1 - February 04, 2021
Fixes
- Remove unnecessary warning message for call status transitions
Version 7.0.0 - February 02, 2021
Breaking changes
legsendpoint should be included inaclpaths onJWTtoken creation
Changes
- Improve
callServersetup time by pre-warming leg - Add the
rtcObjectand remotestreamto theNxmCallobject
Fixes
- Return
ClientDisconnectedreason when client logouts from SDK
Version 6.2.1 - December 24, 2020
Fixes
- Revert back to 6.1.1 from 6.2.0-alpha
Version 6.1.2 - December 24, 2020
Fixes
- Update Typescript definitions
Version 6.1.1 - December 09, 2020
Fixes
- Update Typescript definitions
Version 6.1.0 - December 01, 2020
Changes
- Add
enableEventsQueueflag to client configuration (default to true) - Add internal
eventsQueuemechanism to guarantee order of events received during a session
Version 6.0.19 - November 26, 2020
Changes
- Update
reconnectionDelayto2000insocket.io - Add
randomizationFactorto0.55insocket.io
Version 6.0.18 - November 19, 2020
Changes
- Update documentation
Fixes
- Add
reconnectionDelayto 3000 andreconnectionDelayMaxto 15000 insocket.io
Version 6.0.17 - November 12, 2020
Fixes
- Update Session id after reconnection
Version 6.0.16 - October 12, 2020
Fixes
- Dispatch
system:error:expired-tokenevent in application level
- Handle uncaught exception of
conversation:error:invalid-member-stateevent
Version 6.0.15 - September 21, 2020
Fixes
- Set SDK default to single preset ICE candidate
- Remove
iceGatherOnlyOneCandidateflag from client configuration
Version 6.0.13 - September 14, 2020
Fixes
- Update websocket reconnection logic for token expiry
Version 6.0.12 - September 01, 2020
Fixes
- Update resolved stream on media enabling
Version 6.0.11 - September 01, 2020
Changes
- Update websocket reconnection logic
- Fix delay in establishing media connection with one ice candidate sent
Version 6.0.10 - May 04, 2020
Fixes
- Filter IPv6 Candidates from
iceGatherOnlyOneCandidateSDP offer
Version 6.0.9 - March 24, 2020
Fixes
- Fix handler of
rtc:transferevent to refresh conversation
Version 6.0.8 - February 28, 2020
Fixes
- Fix duplicated webrtc offer sent during IP calling
- Fix Safari
WebRTCdependency
Version 6.0.7 - January 16, 2020
Fixes
- Fix ANSWERED call status in IP - IP calling
- Fix docs issues
Changes
- Improve TypeScript definitions
Version 6.0.6 - November 19, 2019
Fixes
- Add
iceGatherOnlyOneCandidateconfiguration option and use to define path inICE gatheringprocess
Version 6.0.5 - November 19, 2019
Fixes
- Update styling of
JSDocstoDocstraptemplate - Change
RTCPeerConnection ICE candidatesgathering process to send the Session Description Protocol (SDP) offer on firstICEcandidate gathered
Version 6.0.4 - November 14, 2019
Fixes
- Remove remaining audio elements after transferring a call to a new conversation
- Update
conversation.invite()to not include emptyuser_idoruser_namefields within the requests
Version 6.0.3 - October 22, 2019
New
- Added TypeScript definition files
Changes
- Added options for customized logging levels in the console of
debug,info,warn, orerror.
- Moved storage of JWT token from
localStoragetoNexmoClientconfiguration object - Removed unnecessary files from the NPM release package
Fixes
- Fixed call statuses order in case of a transfer
Version 6.0.1 - September 27, 2019
Changes
- Removed
media.record()function - Removed cache option from SDK, used for storing conversations and events
- Removed automatic syncing of all individual
conversationsin login, whensyncisliteorfull
Version 6.0.0 - September 13, 2019
Breaking Changes
- Change return value of
application.getConversations()to newConversationsPageobject
- Change return value of
conversation.getEvents()to newEventsPageobject
- Rename method
application.callPhonetoapplication.callServer - Rename method
application.calltoapplication.inAppCall - Rename method
call.createPhoneCalltocall.createServerCall - Rename class
CalltoNXMCall - Rename class
ConversationClienttoNexmoClient - Rename class
ConversationClientErrortoNexmoClientError - Rename files
conversationClient.jsandconversationClient.min.jstonexmoClient.jsandnexmoClient.min.js - Deprecate
member:call:stateevent (use insteadmember:call:status) - Remove automatic login in case of a websocket reconnection and emit the event
New
- Send and listen for custom event types in a conversation.
- Add new
PageConfigclass for configuring settings for paginated requests - Add new
Pageclass to wrap results of paginated requests - Add setup of default pagination configuration for conversations and events in ConversationClient initialization
- Add wild card supported for filtering by event types using
:*(for exampleevent_type:member:*)
- Add new
ConversationsPageandEventsPagewhich extendPageclass to wrap results of paginated requests for conversations and events - Add
getNext()andgetPrev()methods toConversationsPageandEventsPageobjects to fetch previous and next pages of conversations and events - Add
conversations_page_lastparameter toapplicationobject andevents_page_lastparameter toconversationobject for reference to last page retrieved
- Add the ability to make an IP-IP call through
callServerfunction
Changes
- Update
reasonobject to receivereason.reason_textandreason.reason_codefields
Internal changes
- Rename
Eventclass toNXMEvent - Update CAPI requests to REST calls for these events
event:deliveredtext:deliveredimage:deliveredevent:seentext:seenimage:seenconversation:eventsaudio:playconversation:deleteconversation:invitetexttext:typing:ontext:typing:offnew:conversationconversation:getuser:conversationsuser:getconversation:joinaudio:sayaudio:earmuff:onaudio:earmuff:offaudio:dtmfaudio:recordaudio:playconversation:member:deleteevent:deleteaudio:ringing:startaudio:ringing:stopaudio:mute:onaudio:mute:offimagertc:newrtc:answerrtc:terminateknocking:newknocking:delete
Version 5.3.4 - July 18, 2019
Fixes
- Custom SDK config object does a deep merge with default config object
Version 5.3.3 - June 29, 2019
Fixes
- Change digits to digit in the
sendDTMF()request method payload. - Stream is not being terminated on a call transfer.
member:callis not being emitted ifmedia.audio_settings.enabledis false or doesn't exist.
New
- Set
member.callStatustostartedwhen initializing an IP - IP call. - Set
member.callStatustoringingwhen enabling the ringing withmedia.startRinging().
Internal changes
- Move stream cleanup from
member:lefttortc:hangupin Media module.
Version 5.2.1 - June 12, 2019
New
- Add the new
nexmoGetRequestutility method to make a GET network request directly to CS:
- Support
reasonformember:delete,conversation.leave,member.kick,call.hangupandcall.reject. - Listen for the
member:leftevent withreason:
- Add
callStatusfield in theMemberobject, defining the status of a call. - Emit
member:call:statusevent each time themember.callStatuschanges:
Version 5.2.0 - May 30, 2019
New
Add the
callinstance inapplication.callsmap increateCall()function (IP -IP call)Update caller parameter in call object in a PSTN - IP call from
unknowntochannel.from.numberorchannel.from.uriif existsEmit the new
leg:status:updateevent each time a member leg status change
- Add the
channel.legsfield in member events offered by CS
Version 5.1.0 - May 29, 2019
New
- Send DTMF event to a conversation
- Emit new event
audio:dtmf
- Set customized audio constraints for IP calls when enabling audio
- Update audio constraints for existing audio tracks
Fixes
- Remove 'this' passed to cache worker event handler
Internal breaking changes
- Change the media audio parameter from
media.audiotomedia.audio_settingsininviteWithAudiofunction
Version 5.0.3 - May 23, 2019
Changes
- Change default behavior of
autoPlayAudioinmedia.enable()from false to true - Pass an
autoPlayAudioparameter tocall.createCall()andcall.answer()functions (default is true)
Version 5.0.2 - May 30, 2019
New
- Delete the image files before sending the
image:deleterequest - Attach of audio stream can now be chosen if it will be automatically on or off through
media.enable()
Changes (internally)
- Combine the network GET, POST and DELETE requests in one generic function
Version 5.0.1 - April 30, 2019
Fixes
- Clean up user's media before leaving from an ongoing conversation
Breaking changes
- Change
application.conversationstype fromObjecttoMap
Version 4.1.0 - April 26, 2019
Fixes
- Fixed the bug where the audio stream resolved in media.enable() is causing echo and was not the remote stream
- Resolve the remote stream
pc.ontrack()and not thelocalStreamfrom getUserMedia
Changes
- Rename
localStreamtostreaminmedia.rtcObjectsobject.
Version 4.0.2 - April 17, 2019
Changes
- Removed
media.rtcNewPromises
New
- Internal lib dependencies update
- Added support for Bugsnag error monitoring and reporting tool
- Updated vscode settings to add empty line (if none) at end of every file upon save
- Disable the ice candidates trickling in ice connection
- Wait until most of the candidates to be gathered both for the local and remote side
- Added new private function
editSDPOrder(offer, answer)inrtc_helper.jsto reorder the answer SDP when it's needed - For rtc connection fail state
- Disable leg
- emit new event
media:connection:fail
- Add new LICENCE file
Breaking changes (internally)
- Deprecating ice trickling logic with
onicecandidateevent handler - Change the format of
member:mediaevent to the new one offered by CS
- Change the format of
member:invitedevent to the new offered by CS
Version 4.0.1 - March 4, 2019
New
Select the sync level for the login process
full: trigger full sync to include conversations and eventslite: trigger partial sync, only conversation objects (empty of events)none: don't sync anything
if the Cache module is enabled the manual fetch of a conversation will store them in internal storage
usage:
Fixes
rtcstats:reportwas duplicating instances in each call- remove
screensharehttps restriction
Breaking changes (internally)
- Deprecating
application.activeStream, now it's part ofapplication.activeStreams - Removed the restriction to allow calling
media.enable()while a stream is active
Version 4.0.0 - February 1, 2019
Breaking Changes
- rename SDK
stitchtoclient - listening for
media:stream:*now givesstreamIndexinstead ofindexfor consistency with the internal rtcObjects
New
- Screen Share Source ID can now be specified when invoking
media.enable()