Release Notes

4.1.3 - Sept 15, 2022

Fixed

  • Fix NexmoMessage seen and delivered queue processing

4.1.2 - Aug 10, 2022

Fixed

  • Use client config logLevel for http logging

4.1.1 - May 25, 2022

Fixed

  • Fix NexmoMessage serialization
  • Fix error handling within NexmoClient.getConversation() when not a member.

4.1.0 - May 11, 2022

Added

  • Support for call:transfer within NexmoCall
  • Added NexmoLegTransferEvent containing details of previous and current conversation when a call is transferred
  • Added CallEventListener to receive NexmoLegTransferEvent with new members when a call is transferred to a new conversation.
  • Expose pushNotificationTTL at the NexmoClient.Builder() level to set registered device Push TTL
  • New public events NexmoSubmittedEvent, NexmoRejectedEvent and NexmoUndeliverableEvent for messages states.
  • New Message state listeners added to NexmoMessageEventListener interface.

4.0.4 - Apr 14, 2022

Fixed

  • Changed timestamp default from local timezone to UTC

4.0.3 - Apr 4, 2022

Fixed

  • Added check to ensure user logged in during setup of prewarm outbound call.
  • Changed timestamp default to UTC without time zone.

4.0.2 - Mar 9, 2022

Enhancements

  • WebRTC dependency upgraded to version 84.0.22.

4.0.1 - Jan 21, 2022

Fixed

  • Added check to ensure user logged in before SDK tries to process push event.

4.0.0 - Dec 7, 2021

Added

  • NexmoConversation.sendMessage(message, listener) to send NexmoMessage to a conversation.
  • NexmoClient.uploadAttachment(attachment, listener) method to send NexmoAttachmentType.
  • NexmoMessage represents a message of EMessageEventType type to send.
  • EMessageEventType for messages of type text, image, audio, video, file, template, vcard, custom and location.
  • NexmoChannelType added channels of type sms, mms, whatsapp, viber and messenger.
  • NexmoAttachmentType to upload an attachment message to Vonage Media Service.
  • NexmoMessageEvent represents the member message status event dispatched into the NexmoMemberMessageStatusEventListener.

Enhancements

  • WebRTC dependency upgraded to version 84.0.0.

Deprecated

  • NexmoConversation.sendText(text, listener) method. Use NexmoConversation.sendMessage(message, listener) method instead.
  • NexmoConversation.sendAttachment(file, listener) method. Use NexmoClient.uploadAttachment(attachment, listener) and NexmoConversation.sendMessage(message, listener) method instead.

3.3.0 - Nov 22, 2022

Added

  • NexmoClient.Builder's restEnvironmentHostPinning and environmentHostPinning methods added to enable HTTP and web-socket SSL pinning.
  • NexmoPinningConfig.fromPublicKeys(...) method to create a public-key-based pinning configuration.
  • New ConnectionStatusReason case SSL_PINNING_ERROR when Disconnected due to invalid public key found backend connection.

3.2.0 - Oct 19, 2021

Added

  • NexmoClient.Builder.autoMediaReoffer(autoMediaReoffer) to allow to automatically reconnect media when network interfaces changes.
  • EMediaConnectionState enumerate.
  • NexmoMediaStatusListener to receive media connection state changed notification.
  • NexmoConversation.reconnectMedia() to trigger a media reconnection.
  • NexmoClient.reconnectCall(conversationId, legId, listener) to reconnect a call given a conversation id and a leg id.
  • NexmoClient.getUserSessions(userId, pageSize, order, listener) to fetch a paginated list of active user sessions.

Version 3.1.1 - Oct 18, 2021

Added

  • Change socket connectionListeners from HashSet to ArraySet.

Version 3.1.0 - Sep 6, 2021

Added

  • NexmoClient.inAppCall(username, listener) method to perform in-app calls.
  • NexmoClient.serverCall(callee, customData, listener) method to perform server calls, optionally specifying customData.

Deprecated

  • NexmoClient.call(callee, callType, listener) method.
  • NexmoCallHandler enumerate.

Version 3.0.1 - Jun 16, 2021

Enhancements

  • Fixed a bug on DTMF dispatch of a callback to event_url
  • Fixed a bug of not receiving typing events from Web to Android

Version 3.0.0 - Jun 1, 2021

Added

  • Added NexmoMemberSummary returned by conversation.getMembers(pageSize, order, listener) (paginated), representing a subset member information.
  • Added memberEvent.getInvitedBy() that represents the inviter name, if exists.
  • Added NexmoEventEmbeddedInfo to all events returned by event.getEmbeddedInfo() and containing the NexmoUser linked to the event.
  • Added conversation.getMember(memberId, listener) returning the member given its identifier.

Enhancements

  • Improve the javadoc documentation.
  • Improve callServer setup time by pre-warming leg.
  • Disable media after RTC hangup event.

Breaking changes

  • Removed NexmoCallMember, replaced with NexmoMember.
  • Removed callMember.getCallStatus(), moved to call.getMemberCallStatus(member).
  • Removed callMember.mute(boolean, listener) moved to member.enableMute(listener) and member.disableMute(listener).
  • Removed callMember.earmuff(boolean, listener) moved to member.enableEarmuff(listener) and member.enableEarmuff(listener).
  • Removed conversation.getAllMembers() moved to conversation.getMembers() (paginated).
  • Removed NexmoConversationListener.onMemberUpdated, replaced with NexmoMemberEventListener that provide onMemberInvited, onMemberAdded, onMemberRemoved subscribing by conversation.addMemberEventListener().
  • Renamed call.getCallMembers() to call.getAllMembers().
  • Renamed call.getMyCallMember() to call.getMyMember().
  • The legs endpoint should be included in acl paths on JWT token creation.

Version 2.8.1 - Dec 14, 2020

Enhancements

  • Fixed value inconsistency on attributes displayName and imageUrl for NexmoUser object.
  • Improved outbound call and conversation stability.

Version 2.8.0 - Nov 19, 2020

Changed

  • Renamed NexmoCallMemberStatus.CANCELED to NexmoCallMemberStatus.CANCELLED.

Enhancements

  • Notified with NexmoCallMemberStatus.CANCELLED on listener onMemberStatusUpdated(NexmoCallMemberStatus memberStatus, NexmoCallMember callMember) for call hang up.

Version 2.7.1 - Oct 27, 2020

Enhancements

  • Improved outbound call stability.

Version 2.7.0 - Sep 24, 2020

Added

  • Expose the reason NETWORK_ERROR on connection status DISCONNECTED for the listener onConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason).

Version 2.6.5 - Aug 24, 2020

Enhancements

  • Improved SDK logs implementation and socket connection stability.

Version 2.6.4 - May 19, 2020

New

  • We have split our artifacts from this version, so custom maven repository has to be added to the project:

Enhancements

  • Improved user-agent SDK version reporting.

Version 2.6.3 - May 4, 2020

Fixed

  • Changed visibility of Nexmo.page.isPrevPageExist() to public.

Version 2.6.2 - April 29, 2020

Fixed

  • Potential NullPointerException when processing push notifications during client login.

Version 2.6.1 - April 22, 2020

Added

  • Expose the interface NexmoDTMFEventListener to subscribe for DTMF events on NexmoConversation.

Version 2.6.0 - April 20, 2020

Added

  • Expose connection status isConnected in NexmoClient.

Fixed

  • Avoid invoking login multiple times when the user is already connected.

Version 2.5.1 - April 20, 2020

Enhancements

  • Improved single ICE candidate gathering implementation.

Version 2.5.0 - March 25, 2020

Added

  • Add useFirstIceCandidate parameters to NexmoClient.Builder

Version 2.4.0 - March 3 , 2020

Added

  • Add filter by state to getConversationsPage in NexmoClient.

Version 2.3.0 - February 11, 2020

Added

  • Add updateAsDelivered and UpdateAsSeen to NexmoAttachmentEvent and NexmoTextEvent as helper method to update event locally after markAsSeen or markAsDelivered has been successful.

Fixed

  • Fix markAsSeen and markAsDelivered for NexmoTextEvent and NexmoAttachmentEvent

Changed

  • Upgrade dependency libraries please add to your build Gradle

Version 2.2.0 - January 31, 2020

Added

  • Add support for Custom Push Notifications, using processNexmoPush() ,processPushNotification() is deprecated
  • Add markAsDelivered() method to NexmoTextEvent and NexmoAttachmentEvent
  • Add markAsSeen() method to NexmoTextEvent and NexmoAttachmentEvent

Version 2.1.2 - January 12, 2020

Added

  • Add annotation of PermissionRequired for function that start media: NexmoClient.call , NexmoCall.answer , NexmoConvesation.enableMedia

Removed

  • Remove require for permission PROCESS_OUTGOING_CALLS
  • Remove require for permission READ_PHONE_STATE

Version 2.1.0 - January 01, 2020

Added

  • Add clearNexmoEventsListeners method in NexmoConversation to clear all listeners
  • Add clearMemberEventListeners method in NexmoConversation to clear all NexmoMemberEventListener listeners
  • Add clearCustomEventListeners method in NexmoConversation to clear all NexmoCustomEventListener listeners
  • Add clearLegStatusEventListeners method in NexmoConversation to clear all NexmoLegStatusEventListener listeners
  • Add clearDTMFEventListeners method in NexmoConversation to clear all NexmoDTMFEventListener listeners
  • Add clearMessageEventListeners method in NexmoConversation to clear all NexmoMessageEventListener listeners
  • Add clearNexmoConversationListeners method in NexmoConversation to clear all NexmoConversationListener listeners
  • Add clearTypingEventListeners method in NexmoConversation to clear all NexmoTypingEventListener listeners
  • Add NexmoMember parameter to NexmoMemberEvent with respect to the NexmoMember acted on by:

Fixed

  • dispatch NexmoAttachmentEvent with respect to NexmoConversation
  • dispatch NexmoMediaEvent with respect to NexmoConveration
  • dispatch NexmoMediaActionEvent with respect to NexmoConveration
  • make NexmoDTMFEvent inheritance NexmoEvent
  • NexmoTextEvent.equals to use super.equals
  • NexmoConversation.getCreationDate to return Date java object
  • NexmoEvent.getCreationDate fix IllegalArgumentException

2.0.0 - 2019-12-22

Added

  • Add filter by EventType in NexmoConversation.getEvents

Changed

  • NexmoDeliveredEvent remove InitialEvent parameter and add InitialEventId
  • NexmoSeenEvent remove InitialEvent parameter and add InitialEventId

Fixed

  • Support for DTLS in WebRTC
  • NexmoConversationsPage.getPrev() return the conversations from the right cursor

2.0.0 - 2019-12-22

Added

  • Add filter by EventType in NexmoConversation.getEvents

Changed

  • NexmoDeliveredEvent remove InitialEvent parameter and add InitialEventId
  • NexmoSeenEvent remove InitialEvent parameter and add InitialEventId

Fixed

  • Support for DTLS in WebRTC
  • NexmoConversationsPage.getPrev() return the conversations from the right cursor

1.2.0 - 2019-12-16

Added

  • Add filter by EventType in NexmoConversation.getEvents

Fixed

  • Support for DTLS in WebRTC

Version 1.1.0 - 2019-12-04

Changes

  • Add iceServerUrls parameters to NexmoClient.Builder

Fixed

  • fix Push Notification incoming call issue

Version 1.0.3 - 2019-11-20

###Changes

  • change signature of NexmoClient.login(), remove NexmoRequestListener<NexmoUser> parameter:
  • change signature of NexmoPushEventListener.onIncomingCall(), remove MemberEvent parameter:

Fixed

  • fix NexmoConversation.sendAttachment bug
  • fix NexmoAttachmentEvent received from backend
  • fix race condition bug cause drop calls
  • fix bug in push notification

Version 1.0.2 - 2019-11-11

Changes

  • Rename GetConversationsPage to GetConversations
  • Rename GetEventsPage to GetEvents
  • NexmoClient.GetConversations default pageSize is 10
  • NexmoConversation.GetEvents default pageSize is 10

Version 1.0.1

New

  • Add getConversationsPage in NexmoClient
  • Add getEventsPage in NexmoConversation

Removed

  • remove conversation.getEvents()

Fixed

  • NexmoConversation Parcelable fixed

Version 1.0.0 - 2019-09-05

Changed

  • NexmoClient is a singleton and get only the Context as a mandatory parameter. To initialize NexmoClient:
  • In order to set NexmoConnectionListener:
  • NexmoClient call function receives a single username or phone number:
  • Removed NexmoCallMember.getMember(), and added getters:

New

  • Android minSDK is now 23.
  • CustomEvents support in NexmoConversation:
  • NexmoMedia added to NexmoConversation, for audio features support within a NexmoConversation context:
  • getNemxoEventType() in NexmoEvent is public

Fixed

  • NexmoCallMember.status reflects the current leg status.
  • Added guard to NexmoClient function to prevent calls while user is not connected.
  • Updated NexmoUser missing values after login.

Removed

  • Removed conversation.getUser(). The current user can be accessed with: NexmoClient.getUser().

Added

  • NexmoConversation send and receive CustomEvents
  • NexmoCustomEvent:NexmoEvent: String getCustomType() HashMap<String, Object> getData()
  • NexmoChannel Object to NexmoMember.

Version 0.3.0 - June 4, 2019

This version contains many small bug fixes and stability improvements. The major changes are:

Added

  • NexmoChannel was added to NexmoMember, to exposes the Channel data when exists. The NexmoChannel object includes to and from fields with the data of the Channel destination and origin.

Breaking Changes

Removed

  • NexmoMember.ChannelType - should be replaced with NexmoMember.Channel.from.type

  • NexmoMember.ChannelData - should be replaced with NexmoMember.Channel.from.data

Changed

  • NexmoLoginListener was improved and updated its interface:

  • onLoginStateChange() and onAvailabilityChange() were removed

  • onConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason) was added, as an aggregated and improved version of the above methods

Added

  • Support for parsing the MemberId who initiated a call.

Fixed

  • Improvements for cross platform in app calls

  • Crash on processing push notifications without SDK initialization

  • Crash on sending markAsDelivered event



Version 0.3.0 - June 4, 2019

This version contains many small bug fixes and stability improvements. The major changes are:

Added

  • NexmoChannel was added to NexmoMember, to exposes the Channel data when exists. The NexmoChannel object includes to and from fields with the data of the Channel destination and origin.

Breaking Changes

Removed

  • NexmoMember.ChannelType - should be replaced with NexmoMember.Channel.from.type

  • NexmoMember.ChannelData - should be replaced with NexmoMember.Channel.from.data

Changed

  • NexmoLoginListener was improved and updated its interface:

  • onLoginStateChange() and onAvailabilityChange() were removed

  • onConnectionStatusChange(ConnectionStatus status, ConnectionStatusReason reason) was added, as an aggregated and improved version of the above methods

Added

  • Support for parsing the MemberId who initiated a call.

Fixed

  • Improvements for cross platform in app calls

  • Crash on processing push notifications without SDK initialization

  • Crash on sending markAsDelivered event


Version 0.2.67 - April 17, 2019

Added

Fixed

  • Bugs on updating CallMember statuses