Android SDK release notes
[0.85.0] - 19-11-2024
Chores
[ROAD-6344] Update CD configuration
[ROAD-6349] Automate and publish changelog file
Features
[ROAD-6327] Add support for message markers.
Breaking Changes
setStatus is now renamed to setState.
chatStatus observable is now renamed to ChatState
[0.84.0] - 11-11-2024
Features
[ROAD-5596] Add support for quick conferences
[ROAD-6290] Expose qss availability
[ROAD-6209] Implement EncryptedSharedPreferences for secure data storage
Breaking Changes
New methods and variables available at the SessionManager/Rx
[0.83.3] - 05-11-2024
Bug Fixes
[ROAD-6297] Fix how local contact data source is updated
[0.83.2] - 25-10-2024
Bug Fixes
[ROAD-6157] Emit an observable after the conference participant cache is updated
[0.83.1] - 21-10-2024
Bug Fixes
[ROAD-6350] Not show UNKNOWN alias on presence mood
[ROAD-4312] Store the sources of contacts in the Contact Manager cache
[ROAD-6235] Wait for 4401 error on logout
[ROAD-6239] Force hardware audio processing if HardwareEchoCanceler enable
[0.83.0] - 08-10-2024
Bug Fixes
[ROAD-6170] Resolve local contacts without fake domain
[ROAD-6155] Keep the conference participants’ media up to date
Features
[ROAD-6168] Exposed a new value ConferenceType in the Conference Service
[0.82.1] - 23-09-2024
Bug Fixes
[ROAD-6129] Participants are not triggered after a subscription
[ROAD-6131] Update participants cache on hold events
[0.82.0] - 10-09-2024
Bug Fixes
[ROAD-6100] Include Oob messages without body as valid messages
Code Refactors
[ROAD-6082] Reactive support for conference methods
Features
[ROAD-6097] Expose the current participants in the Conference Service
[0.81.2] - 02-09-2024
Bug Fixes
[ROAD-6089] Update Smack library to 4.6.7
[ROAD-6088] Improved management of held participants during a conference
[0.81.1] - 28-08-2024
Bug Fixes
[ROAD-6055] Validate chat capabilities after connection
Chores
[ROAD-6026] Upload binaries to the documentation web server
[0.81.0] - 14-08-2024
Chores
[ROAD-3902] Custom logger that management modules independently
[ROAD-6019] Update repo for automate SDK publishing
Features
[ROAD-5929] Put URL on body in OOB extension messages
[ROAD-4242] Update service for updating the current presence
[ROAD-1666] Use host-meta information to configure the SippoClient
[ROAD-5986] Encapsulated Session and Chat management logic
Tests
[ROAD-5563] Add JanusClient and QssClient unit tests
[0.80.2] - 16-07-2024
Bug Fixes
[ROAD-5876] Flush DNS on unknown host exception
[0.80.1] - 17-06-2024
Bug Fixes
[ROAD-5865] No stanza ID in MAM on Prosody server
[ROAD-5887] Reset renew subscription after the socket state is connected
[ROAD-5874] Remove observableEmitters associated only to a valida request
Chores
[ROAD-5891] Update example App on SDK
[0.80.0] - 11-06-2024
Bug Fixes
[ROAD-5828] Avoid initialising already active SurfaceViewRenderers
Features
[ROAD-5776] Expose the identifier and the stanza identifier of an xmpp message.
[0.79.0] - 06-06-2024
Features
[ROAD-4750] Expose contact info directly to Conference and conference Log services
[0.78.0] - 31-05-2024
Bug Fixes
[ROAD-5722] When a PSTN participant leaves a conference, the event is not triggered
[ROAD-5735] Use shared subscription to avoid redundant side effects from observable
[ROAD-5777] Remove the default value for the chat’s unreadMessage observable
[ROAD-5778] Include the new message observable to trigger the update chat event
[ROAD-5796] Avoid unresolved participant on UserGroup
[ROAD-5780] Validate configuration when create a group chat
[ROAD-5761] Remove the finished requests from the requestStore at the Qss Socket Wrapper.
[ROAD-5783] Load MUC messages
Chores
[ROAD-5747] Update WebRTC version to 125.0.0
[ROAD-5748] Upgrade Gradle and libraries versions
Features
[ITEX-884] Include an ALIAS in basic users
[ROAD-5758] Include a store hint on xmpp messages
[ROAD-3873] Expose QSS session state
[ROAD-5769] Send session context on login/restore
[0.77.2] - 07-05-2024
Bug Fixes
[ROAD-5659] Start the qss socket using the correct URL
[0.77.1] - 24-04-2024
Code Refactors
[ROAD-5634] Enable hardware AEC/NS processing by default
[ROAD-5644] Stop sending logout requests to the QSS Register Service
[0.77.0] - 19-04-2024
Bug Fixes
[ROAD-5623] Handle event FEED on JanusRoom when participant hang up on video call
Features
[ROAD-3602] Add new functions to update presence properties
[0.76.0] - 17-04-2024
Features
[ROAD-5370] Held conference and avoid update cache
Tests
[ROAD-5548] Unit test XMPP module
[0.75.0] - 09-04-2024
Bug Fixes
[ROAD-5159] Enable reconnection after a qss server restart
[ROAD-5592] Avoid enqueue requests before a qss connection is stablished
Chores
[ROAD-2483] Add ci/cd support
[ROAD-2812] Automate SDK publishing
Tests
[ROAD-5565] Unit test Chat Service
[0.74.0] - 27-02-2024
Features
[ROAD-5394] Add support for azure contacts
[0.73.2] - 26-02-2024
Bug Fixes
[ROAD-5478] Avoid listing fake contacts as part of the agenda
[0.73.1] - 26-02-2024
Bug Fixes
[ROAD-5457] Change how the conference observables are exposed
[0.73.0] - 20-02-2024
Bug Fixes
[ROAD-5353] Composing chat status is not dismissing
[ROAD-5382] During the resolution process, ignore the country code of the stored phones
[ROAD-5414] Include the presence state in the local contact
[ROAD-5382] Ignore country code and spaces before resolving a phone against the agenda
[ROAD-5267] Fix how the conference events are triggered
Chores
[ROAD-5350] Update .editorConfig
Code Refactors
[ROAD-5289] Update how each identifier is resolved for all services
Features
[ROAD-5131] Add new meetings service
[ROAD-5152] Add support for joining a confernce
[ROAD-5402] Add support for create, update and delete meetings
[ROAD-5412] Expose new agenda methods
[0.72.1] - 22-01-2024
Bug Fixes
[ROAD-5337] Filter call group chat invitations
[ROAD-5338] Send completable Error if throw apiClient exception
Chores
[ROAD-5319] Jenkinsfile cleanup
Code Refactors
[ROAD-5314] Replace deprecate HostNameVerifier
[0.72.0] - 11-01-2024
Bug Fixes
[ROAD-5180] Use hot observable to avoid double socket connection
[ROAD-5167] Decode Invitation with new Attended Transfer implementation
Chores
[ROAD-5285] Include editorConfig
Code Refactors
[ROAD-4752] Change SocketIO for WebSocket
[ROAD-5143] Remove fetchProviders method from the sessions service
Features
[ROAD-5198] Add presence service as a fallback when resolving a conference participant
[ROAD-5274] Expose a new event for local user video removal
[ROAD-900] Add an archive method for an individual chat
[ROAD-5063] Implement attended transfer without ringing
Breaking Changes
There will no longer be a method for obtaining providers in the Sessions service.
[0.71.2] - 17-11-2023
Bug Fixes
[ROAD-4933] Resolve username from dialpad if it belongs to the agenda
[0.71.1] - 15-11-2023
Bug Fixes
[ROAD-5113] Join to group chats after a reconnection
[0.71.0] - 14-11-2023
Bug Fixes
[ROAD-5106] Include params on the alert query
[ROAD-5102] Check the status of the last message event before marking it as displayed
Code Refactors
[ROAD-5103] Change new message handling from BehaviorSubject to PublishSubject
Features
[ROAD-5038] Add support for delete group chats
[0.70.1] - 25-10-2023
Bug Fixes
[ROAD-4930] Only initiate a session connect/restore request when the current state is Disconnected, New or Error.
[ROAD-5033] Always update the isJoined variable when a user attempts to join a multi-user chat
Features
[ROAD-4987] Avoid registering a duplicate push token
[0.70.0] - 16-10-2023
Bug Fixes
[ROAD-4923] Update caller id when the contact has no associated user
[ROAD-4949] Avoid overriding the group chat list after resolving the bookmarks
Features
[ROAD-919] Expose chat participants as ChatContact
Breaking Changes
The ChatContact model is exposed for the Chats module to resolve the contact and role of a participant in the MUC, replacing the Contact model.
[0.69.0] - 04-10-2023
Features
[ROAD-4809] Add state handling for Chats
Breaking Changes
To observe chat status changes, a new ChatState model is exposed that includes the resolved contact, replacing XMPPChatState model.
[0.68.4] - 04-10-2023
Bug Fixes
[ROAD-4898] Incorrect presence of users when an advanced joins a group
[0.68.3] - 26-09-2023
Bug Fixes
[ROAD-4865] Remove a bookmark when it is not available.
[0.68.2] - 15-09-2023
Bug Fixes
[ROAD-4817] Fix Completable.merge Invocation in joinGroupChats
[ROAD-4820] Stop sending Unavailable presence during the chats suspend method
[0.68.1] - 13-09-2023
Bug Fixes
[ROAD-4753] Add support for setting a chat status for a group chat.
[ROAD-4756] Wait to be joined to a chat group before making any calls to the XMPP server.
Breaking Changes
The chat’s setStatus method has been updated to include a new parameter of type XMPPChatStateQuery to indicate the chat state of the current user.
XMPPChatState now shows the user responsible for the state change.
[0.68.0] - 29-08-2023
Bug Fixes
[ROAD-4719] Ensure that the chat list does not contain duplicates.
Features
[ROAD-4703] Set XMPP reply timeout to 60s
[ROAD-4705] Add a new restore method for the XMPP Session
[0.67.0] - 22-08-2023
Features
[ROAD-1846] Out of connection in calls
[ROAD-4531] Add method to send messages with file, including upload progress
[ROAD-4672] Add method to join a group chat.
[0.66.0] - 19-07-2023
Bug Fixes
[ROAD-4566] Mark as <markable> every outgoing XMPP message
[ROAD-4580] Disable the reconnect process in the XMPP client after calling the suspend method to avoid leaving the chat service in an inconsistent state.
Code Refactors
[ROAD-3618] Remove resolver service
Features
[ROAD-4381] Enable sending files to a multiuser chat
[ROAD-4514] Provide a reason when the session is disconnected and trigger the reconnect mechanism when required.
Breaking Changes
There is a new Reason for the session state Disconnected: CONNECTION_SUSPENDED
[0.65.2] - 29-06-2023
Bug Fixes
[ROAD-4498] Error XmppMessage, need Comparable.
[ROAD-4489] Update group chat participant list with new invitation listener
Code Refactors
[ROAD-4511] Increase xmpp reply timeout
[0.65.1] - 23-06-2023
Bug Fixes
[ROAD-4482] Ignore malformed markers, instead of deleting them.
Features
[ROAD-4490] Message cache variable type changed from mutableSet to ConcurrentSkipListSet
[0.65.0] - 20-06-2023
Bug Fixes
[ROAD-4423] Chat list is empty when group chat error occurs
[ROAD-4425] Fix chat disconnection process
[ROAD-4435] Avoid resolving malformed group chat participants
[ROAD-4434] Update individual and grout chat listeners
Features
[ROAD-4420] Expose Contact by userName
[ROAD-4437] MUC participants reactive events
[ROAD-4368] Group chat management
[ROAD-4457] Add support for creating group chats
Breaking Changes
The GroupChatsListener was updated.
individualChatDeleted parameter in ChatsRx was renamed.
[0.64.0] - 29-05-2023
Bug Fixes
[ROAD-4378] Avoid duplicates on chat events
Features
[ROAD-4238] SDK support to get group chats
[ROAD-905] Add support for group chats
[0.63.1] - 05-05-2023
Bug Fixes
[ROAD-4305] Contact name strategy adding Group source
[0.63.0] - 26-04-2023
Features
[ROAD-4237] Add support for clearing the agenda cache
[ROAD-4244] Add a reconnect mechanism for the Xmpp client
[0.62.0] - 17-04-2023
Code Refactors
[ROAD-3628] Remove user service from Alerts
[ROAD-3745] Include avatarUrl in presence service
Features
[ROAD-3748] Add DTMF support
[ROAD-3684] Add support for sending files via XMPP
[ROAD-4214] Check chat status before sending any message
[ROAD-4211] Add a new Chat listener and unify functionality between reactive and non-reactive versions of the service
[0.61.0] - 10-03-2023
Bug Fixes
[ROAD-3664] Limit resolutions to width and height multiples of 16
[ROAD-3681] Limit video capture above full HD resolution
Features
[ROAD-3651] Add ringing strategies
[0.60.1] - 02-03-2023
Bug Fixes
[ROAD-3632] Update unread message counter after a carbon copy
[0.60.0] - 27-02-2023
Bug Fixes
[ROAD-3565] Remove user service from Conference and Conferences services
[ROAD-3592] Find the last message read correctly
Chores
[ROAD-3593] Improvements in the SDK generation process
Features
[ROAD-3563] Add support to mute the current conference
[0.59.1] - 17-02-2023
Bug Fixes
[ROAD-3500] Include in the agenda repository contacts without associated users.
[ROAD-3501] Avoid re-registering listener in the XmppClient
[ROAD-3502] Create chats only based on valid Jids
[ROAD-3471] Include the client secret when push notifications are enabled in the XMPP client
[ROAD-3545] Unread message handling error
[ROAD-3550] Wait for the xmpp stream to be authenticated before sending any message
[0.59.0] - 07-02-2023
Bug Fixes
[ROAD-3486] Ignore chats from deleted users
Features
[ROAD-3214] Add new error code to revoke session
[0.58.1] - 07-02-2023
Bug Fixes
[ROAD-3481] Handle error during a presence event
[0.58.0] - 06-02-2023
Features
[ROAD-3477] Expose get contact by ID
[0.57.1] - 02-02-2023
Bug Fixes
[ROAD-3469] Use the contact repository to resolve transfer information for the conferenceLog service.
[ROAD-3474] Fix the method that determines when a message is incoming
[0.57.0] - 31-01-2023
Chores
[ROAD-3397] Upgrade Gradle and kotlin version
Features
[ROAD-3451] Avoid obtaining the userName from the user service, in favour of the presence service.
[ROAD-1754] Add support for Message Archive Management
[0.56.0] - 12-01-2023
Code Refactors
[ROAD-3340] Delete PUSH service on XMPP module
Features
[ROAD-3177] Create new ChatService
[ROAD-1758] Expose chat service through SippoClient
[0.55.0] - 28-12-2022
Chores
[ROAD-3272] Run tests on every MR
Code Refactors
[ROAD-3127] Rename user from sippoServer package to WacUser
[ROAD-3157] Create a repository for the presence events
[ROAD-3159] Create a repository for the contact events
[ROAD-3129] Remove gatewayUsername field from WacUser
[ROAD-3291] Validate notification push
Features
[ROAD-3128] New user repository
[ROAD-3130] Apply user repository in the sippo-sdk module
[ROAD-3132] Create contact repository
[ROAD-3133] Apply contact repository to every service on the SDK
Tests
[ROAD-3267] Alert service test
Breaking Changes
The user service now returns instances of type WacUser
The sippo-sdk no longer returns an instance of WacUser n any of its services, It returns User instead.
The Agenda Service now requires a SourceQuery to request the contact list
[0.54.1] - 15-12-2022
Bug Fixes
[ROAD-3256] Move webrtc utils to janus module
[0.54.0] - 15-12-2022
Chores
[ROAD-3233] Upgrade google-webrtc library version to M108
[0.53.0] - 02-12-2022
Code Refactors
[ROAD-3126] Remove id from WacPresence
[ROAD-3148] Move presence implementation from sippoServer module
Features
[ROAD-3213] Send firebase push token to XMPP PushService
[ROAD-2834] Create AudioDeviceModule settings based on blacklisted models
[0.52.1] - 30-11-2022
Bug Fixes
[ROAD-3203] Resolve user acceptedBy process
[0.52.0] - 21-11-2022
Features
[ROAD-2862] Alerts SDK integration with WAC
[0.51.0] - 03-11-2022
Features
[ROAD-2757] Create a missed calls service.
[0.50.0] - 07-10-2022
Features
[QUOBDEV-1588] Create Presence Repository
[QUOBDEV-1772] Use the presence repository to resolve a conferenceEntry
[QUOBDEV-1768] Use the presence repository to resolve a participants in the conference service
[ROAD-2727] Return error when a malformed WacPresence is received
[ROAD-2745] Allow to subscribe to the presence of the current from the presences service
Breaking Changes
A new field has been added to the Callee interface and to all the classes that implement it.
A new field has been added to the Participant class
[0.49.0] - 03-10-2022
Chores
[ROAD-2165] Automate version bumping
[QUOBDEV-1879] Upgrade Dokka version
[ROAD-2646] Fix commit message generated on a new version
Features
[ROAD-2081] Expose Conference MediaTypes
[0.48.0] - 22-07-2022
Chores
[ROAD-2500] Include information about the push commit rule in Readme file
[ROAD-2321] Update git-cliff configuration
[ROAD-2499] Fix the publication configuration for the SDK artefacts
Features
[ROAD-2485] Expose session token and user identifier
[0.47.0] - 29-03-2022
Bug Fixes
[QA-2484] Prevent multiple logins to qss
[QA-2782] Update correctly the state for outgoing invitations
Chores
[QUOBDEV-1373] Include configuration file for the new changelog generation tool
[QUOBDEV-1834] Update jenkins node to native
[QUOBDEV-1831] Add scripts to tag a version and publish the SDK artifacts
[QUOBDEV-1836] Trigger jenkins build only with new version commits
Code Refactors
[QUOBDEV-1528] Remove anonymous login
Features
[QUOBDEV-1704] Sends ack requests every 20 seconds using the XMPP ping protocol
[QUOBDEV-1765] Add group selection capability
Breaking Changes
The anonymous login was removed from the Session Service
[0.46.1] - 04-12-2021
Bug Fixes
[QA-2760] Allow only one thread at a time to update the user service cache
[QA-2761] Wait for the sipposerver socket to authenticate before sending any requests
[0.46.0] - 19-11-2021
Features
[QUOBDEV-1517] Print socket messages in verbose level to facilitate log tracking
[0.45.0] - 09-11-2021
Bug Fixes
[QA-2720] Catch exception when Presences service is instantiated
Chores
[QUOBDEV-1549] Remove unnecessary Smack dependencies
[QUOBDEV-1548] Do not include excluded dependencies in the POM file when publishing the SDK artifacts
Code Refactors
[QUOBDEV-1515] Remove parameter context in disconnect method since it is not used
[QUOBDEV-1518] Refactor example app in order to have different services in different activities
Features
[QUOBDEV-1519] Add FirebaseMessaging Service to the example app
[QUOBDEV-1510] Include the new AuthProvider and the previous Provider model in the session service.
[ROAD-1751] Create a Chat Service
Breaking Changes
Presences is now a SippoService, so when an error occurs during the service instantiation, presences.value() will be null and presences.error() will return the specific error.
The method to fetch the providers has been modified, it now returns a list of the new Provider model. A method to fetch the AuthProvider has been added.
There is a new type of SippoClientError, ActionNotAllowed.
The parameters order for the SDK’s configure method has been changed and a new optional parameter (the XMPP port) has been added.
[0.44.1] - 26-10-2021
Bug Fixes
[QA-2629] Janus client refactor to avoid NPEs. Remove Janus Stack
[0.44.0] - 25-10-2021
Bug Fixes
[QA-2619] Send push token when the session is restored
Documentation Improvements
[QUOBDEV-1401] Improve setPushToken documentation
Breaking Changes
The method to configure the SippoClient now receives the application context as parameter.
[0.43.3] - 25-10-2021
Bug Fixes
[DECA-42] Enable HardwareAcousticEchoCanceler based on user preferences
[0.43.2] - 25-10-2021
Bug Fixes
[DECA-38] Avoid to delete session info if the restore does not fail because the session is invalid
Breaking Changes
Previously, the restore method errors caused that the session state changed to Error (reason = RESTORE_NOT_POSSIBLE), and the session info was always deleted. Now, different errors are exposed as different reasons in the session state and the session info will only be deleted if the server responds that the session is no longer valid (reason = WRONG_CREDENTIALS).
[0.43.1] - 25-10-2021
Bug Fixes
[QA-2516] Apply the new Caller model in the Invitation service
[0.43.0] - 25-10-2021
Documentation Improvements
[QUOBDEV-1193] Review of legacy documentation
[QUOBDEV-1247] Update session documentation
Features
[ROAD-1224] Expose caller information from the QSS invitation
Breaking Changes
The model of the caller information in the QSS invitations has been changed. In this new model the display name, user name, contact name and the user identifier are included.
[0.42.0] - 25-10-2021
Features
[ROAD-1531] Add support for Do-Not-Disturb option
[0.41.0] - 25-10-2021
Bug Fixes
[FERMAX-152] Wait for QSS to connect to expose its session identifier
Breaking Changes
The session ID is now obtained via the method getSessionId (and its Rx version).
[0.40.0] - 25-10-2021
Bug Fixes
[QA-2397] Add an optional name to a PSTN participant
Features
[ROAD-1580] Add a new reason (TemporarilyUnavailable) to Invitation rejected state
Breaking Changes
The constructor for PSTN now requires an identifier and a name instead of only a phone.
There is a new reason for the rejected state in the Invitation model (UserNotAvailable). The InvitationResult enum class (used in the Candidate model for the conference log) includes also a USER_NOT_AVAILABLE option.
[0.39.0] - 25-10-2021
Chores
[QUOBDEV-1225] Improve README file
Features
[QUOBDEV-1217] Allow user to hold and unhold a conference
Breaking Changes
ConferenceListener includes now two more methods (onParticipantHeld and onParticipantUnheld).
[0.38.0] - 25-10-2021
Chores
[QUOBDEV-1278] Use reStructuredText for samples
Features
[QUOBDEV-1191] Expose the whole contact object on deleted contact event instead of the contact identifier
[QUOBDEV-1165] Make User model parcelable
Breaking Changes
The onContactDeleted event now returns a Contact object instead of a String identifier.
The secondary constructor of Contact has been deleted.
[0.37.0] - 25-10-2021
Bug Fixes
[QA-2064] Stop QSS reconnections when the socket is stopped
Chores
[QUOBDEV-802] Publish artifacts and documentation when a new tag is pushed
Features
[QUOBDEV-1183] Expose the group identifier as part of the source when the contact comes from a user group
[QUOBDEV-1176] Move updated group events to Groups service
[QUOBDEV-996] Add support for unattended transfers
Breaking Changes
The Contact model uses a new Source model (different of the Source model used in the Agenda’s API) and classes related to Contact (Email, Phone,…) will have to be re-imported because they have been moved to a different package.
All events related to a group are handled through the Groups service, consequently GroupListener and GroupInfo disappears.
ConferenceListener must implement a new event called onTransferReceived.
[0.36.0] - 12-07-2021
Bug Fixes
[QA-2082] Set context on login via REST
Chores
[QUOBDEV-802] Generate artifacts through Jenkins
Features
[ROAD-1302] Consume info from login and set cookie
[0.35.0] - 12-07-2021
Features
[QUOBDEV-758] Migrate wac socket to websocket
[QUOBDEV-805] Resolve groups for conferenceLog
[QUOBDEV-852] Apply new Invitation model
Breaking Changes
In ConferenceEntry, the Participant list is now modelled as a ParticipantInfo list. Also, in the conference log Invitation model the ‘from’ field is modelled as a Participant and the ‘to’ field is modelled as a Callee.
The new invitation model no longer identifies the caller and callee through a String, but uses the new Callee model.
The method for sending new invitations to a conference has been changed using the new model mentioned above.
[0.34.1] - 12-07-2021
Bug Fixes
[QA-1844] Ensure the order of conferencelog entries
[QA-1845] Filter results from user resolver
Chores
[QUOBDEV-1104] Set git-chglog settings based on gitlab
[0.34.0] - 09-02-2021
Chores
[QUOBDEV-915] Add git-chglog config to automatically generate the changelog using commit messages
Code Refactors
[QUOBDEV-902] Remove the Address model
[QUOBDEV-914] Remove deprecated Contacts service
[QUOBDEV-903] Update User model with the new Email and Phone types
[QUOBDEV-978] Emit the events for the local user’s presence separately
Features
[QUOBDEV-804] Add methods to update and retrieve the local user
Breaking Changes
The Contact model now uses Email and Phone classes instead of the generic Address class. This Address class has been removed.
The deprecated Contacts has been removed in favor of Agenda service. All the related classes have been removed too.
The methods in Presences service that were using the previous Contact model are not longer available.
The User model now uses the Email and Phone classes instead of Strings.
The presence events are not longer emitted by the presenceUpdated observable. Instead, there are two observables (localPresenceUpdated and remotePresenceUpdated) that will emit the proper events. The callbacks of PresencesListener have been updated consequently
There is no longer a public object in the session service to expose the user of the current session. Instead, there is a new method getLocalUser and a new variable with the value of their username.
[0.33.0] - 09-02-2021
Features
[QUOBDEV-826] Add presence subscription support with new contacts
[0.32.0] - 09-02-2021
Features
[SIPPOAND-216] Implement the new contact service using userContact service and addressBook service
[0.31.0] - 09-02-2021
Features
[SIPPOAND-229] Model the possible states of Presence
Breaking Changes
There is a new Presence model. All the fields remain the same except the online attribute, that has been replaced by a state to include more options (online, offline, away or busy).
[0.30.1] - 09-02-2021
Bug Fixes
[SIPPOAND-231] ContactService is initialized with the correct domain
[0.30.0] - 09-02-2021
Features
[SIPPOAND-225] Expose a Users service in order to get the users matching a certain identifier
[SIPPOAND-227] Add method to resolve user by userId
[SIPPOAND-123] Implementation of the group service
[SIPPOAND-207] Implementation of the new address books service
[SIPPOAND-226] Implement address book events
[SIPPOAND-213] Add the Oauth service to fetch the available providers
[0.29.1] - 09-02-2021
Chores
[SIPPO-116] Add pipeline to upload generated doc to the doc repository
[0.29.0] - 09-02-2021
Features
[SIPPOAND-192] Add a method to check if the user has a specific Permission
[0.28.0] - 09-02-2021
Code Refactors
[SIPPOAND-201] Remove updateBitrate method (unused)
Features
[SIPPOAND-43] Expose if the recording is enabled in the Conference
[SIPPOAND-201] Add switch camera method to the conference
[0.27.0] - 09-02-2021
Bug Fixes
[SIPPOAND-203] The matching to find the listener to be deleted is now done with the contents of the saved references
[SIPPOAND-204] Checking the status of the socket and opening it if necessary is now an atomic operation
[SIPPOAND-206] Avoid to renew the sippo server session when this one has been disconnected
[SIPPOAND-210] Adapt the error when getting an access token as ApiClientError
Code Refactors
[SIPPOAND-196] Rename SessionState object as Session and move it to session package
[SIPPOAND-100] Use URL type for the server url instead of String when configuring SippoClient
[SIPPOAND-196] Socket wrapper only needs to be created once and manage the transport logic internally
[SIPPOAND-199] Avoid to hold context references in SippoClient and Conference objects
[SIPPOAND-205] Sippo-Server socket does not need to be registered
Documentation Improvements
[SIPPOAND-197] Update and complete sippo-sdk module documentation
[SIPPOAND-77] Add permissions needed to the documentation
[SIPPOAND-200] Update code examples
Features
[SIPPOAND-196] Expose the reason why session is disconnected
[SIPPOAND-202] Distinguish when the user has logged out in session state
[SIPPOAND-209] Register the push token internally when the session is connected
Breaking Changes
The class SessionState has been renamed as Session and has been moved to session package.
The method configure in SippoClient now receives the server url as a URL instead of as a String.
The session state is now a sealed class. The error state has been replaced by disconnected with the proper reason.
The methods to join the conference, update the media and invite a new participant receive now the context as parameter. The configure method in SippoClient does not require the context as parameter.
The session states have been changed and now, when the session could not be established, the state will be Error (not Disconnected). Besides, the disconnected state includes the information about if the user has logged out or the session is only suspended.
The method registerPushToken has been removed in favour of setPushToken. This new method can be invoked even if the session is not connected and the SDK will register the token in the right moment.
[0.26.0] - 09-02-2021
Bug Fixes
[SIPPOAND-193] Fix documentation issues and API inconsistencies
[SIPPOAND-195] Release videosink when the related stream is closed
Code Refactors
[SIPPOAND-191] Remove support for local contacts synchronization
[SIPPOAND-191] Rename PresenceListener as PresencesListener to be consistent with other services
[SIPPOAND-193] Set the session state listener in Sessions service
[SIPPOAND-193] The methods to manage the session return their results only changing the session state
[SIPPOAND-193] Group the reactive API for Sessions in SessionsRx class
[SIPPOAND-193] Rename SessionStateListener as SessionsListener
[SIPPOAND-171] Create a ConferenceLog service
[SIPPOAND-171] Group reactive methods and variables in a ConferencesRx class
[SIPPOAND-171] Remove JanusConferencesBuilder
[SIPPOAND-171] Unify public API
[SIPPOAND-194] Remove data class for Contact in sippo-client module
[SIPPOAND-120] Delete method to add a list of contacts
[SIPPOAND-120] Fix lint problems
Features
[SIPPOAND-189] Add a method to check if a conference related to an invitation id is still pending
[SIPPOAND-193] Expose the current session state and notify it when a listener is added
Breaking Changes
The reasons for a rejected invitation state have been renamed.
Contacts service does not include methods to synchronize local contacts or delete them from server any more. The source type device has been removed.
PresenceListener is called PresencesListener now.
The session state listener is added in Sessions service instead of SippoClient and is allowed to have more than one listener. Session related classes has been moved to session package.
The methods connect, disconnect and restore don’t return any async result. The session state will change accordingly instead.
SessionState has been rename as State. The callback onSessionStateChanged has been replaced with onSessionStateReceived and it is invoked when the listener is set (besides when the session state changes).
The reactive methods and variables in sessions will be accessible through sessions.rx field.
SessionStateListener has been renamed to be consistent with other listeners
All methods, data classes, events and listeners related to conference log have been moved to its own package and service. The reactive methods and variables are included now in the ConferenceLogRx class. The public data class have been renamed in order to remove the prefix “Sippo-“.
The reactive methods and variables in Conferences will be accesible through conferences.rx. The method setListener has been replacer by addListener in order to allow having more than one listener. The callback onConferenceReceived receives now the conferences service as parameter and onConferenceStateChanged has been renamed as onConferenceStateReceived (also, it is invoked whenever a listener is added too). ConferenceError class has been moved to the model sub-package in conference.
Multiple callbacks and rx variables has been renamed in order to make the public API consistent.
All public methods in contacts service are using now the Contact class in sipposerver-client module.
The method to add a list of contacts is not available any more.
[0.25.1] - 09-02-2021
Bug Fixes
[SIPPOAND-190] Make Invitation data model inmutable
[0.25.0] - 09-02-2021
Bug Fixes
[SIPPOAND-187] Remove blank spaces from parameter “to” in invite method
Code Refactors
[SIPPOAND-60] Remove contacts cache
[SIPPOAND-60] Delete SippoContactBuilder class
[SIPPOAND-60] Encapsulate rx methods in ContactsRx class
[SIPPOAND-60] Rename contactIdFromWac as id
[SIPPOAND-186] Rename all delegates as listeners
Features
[SIPPOAND-60] Allow to add more than one listener for contact events
Breaking Changes
The methods to add contacts receive a contact instance directly instead of a contact builder. The public model for contacts is called Contact instead of SippoContact, and the ContactsDelegate is now ContactsListener.
The methods using RX will be accessible through the rx property in Contacts service.
The contactIdFromWac property in Contact model is called id now.
The method setListener has been replaced by addListener and removeListener
SessionStateDelegate, ConferencesDelegate and ConferenceLogDelegate has been renamed. Also, setDelegate methods has beed renamed as setListener. All listener classes have been moved to a listener package inside their previous package.
[0.24.0] - 09-02-2021
Bug Fixes
[SIPPOAND-183] Increase the read timeout for QSS requests
[SIPPOAND-183] Avoid to subscribe twice to conference state
Code Refactors
[SIPPOAND-182] Use single instead of observable when required in QSS services
[SIPPOAND-182] Combine QssEvent attributes in a single one attribute “action”
[SIPPOAND-184] Remove invitation request
[SIPPOAND-183] Move logic to ConferenceRx
[SIPPOAND-183] Rename Invitation model in QSS module as QssInvitation
[SIPPOAND-183] Room property is not optional in QssInvitation any more
[SIPPOAND-183] Join method notifies its result changing the conference state
[SIPPOAND-183] Preview method notifies its result changing the conference state
Features
[SIPPOAND-182] Add a method to create the conference using Rx
[SIPPOAND-183] Allow to recover all the invitations related to the conference
[SIPPOAND-183] Expose changes in conference invitations as events
[SIPPOAND-183] Add joinOnAnswer parameter to invite method
Breaking Changes
The method create in Conferences does not require to pass the listener for the conference any more.
The service Invitations who managed invitations request no longer exists. The attribute isAnswerToInvitationRequest in Conference has been removed and the method invite does not receive a replyOf parameter any more. The attribute invitationRequest in SippoInvitationInfo has been also deleted.
Cancel invitation method does not return any result.
Remove isInvited attribute in the conference. Invite method return the result as an invitation event. Added onInvitationChanged callback in ConferenceListener.
Join method does not return any async result.
Preview method does not return any async result.
[0.23.0] - 09-02-2021
Features
[SIPPOAND-181] Specify a date range when fetching conference log entries
Breaking Changes
getConferenceEntries receives now a before and after parameters to specify in which date range the fetched entries should be.
[0.22.0] - 09-02-2021
Bug Fixes
[SIPPOAND-188] Listen session state change when sessions service is created
[SIPPOAND-177] Include DEL method as possibility for wac events
[SIPPOAND-177] Obtain params from pathname event correctly
[SIPPOAND-177] Manage error when trying to access to contacts service if session is not connected
[SIPPOAND-131] Set conference state to finished if join action goes wrong
[SIPPOAND-179] Update media types when the stream is actually available
Code Refactors
[SIPPOAND-177] Remove thumbnailUri in SippoContact
[SIPPOAND-177] Add a builder to create a SippoContact
[SIPPOAND-131] Avoid to pass application context to conference methods
[SIPPOAND-118] Unify leave and hangup methods in public API and review conference state conditions
[SIPPOAND-15] Expose a Participant object
[SIPPOAND-15] Removed unnecessary attributes in QSS room
[SIPPOAND-15] Fix lint problems
[SIPPOAND-25] Migrate to androidX
[SIPPOAND-25] Allow specifying where the conference video should be rendered and include methods to swap videos
[SIPPOAND-179] Unify swap methods in one only method
Features
[SIPPOAND-174] Expose QSS session id
[SIPPOAND-176] Allow to specify the contacts sources when fetching them
[SIPPOAND-96] Expose conference id in canceled and finished conference events
[SIPPOAND-131] Expose the caller and the current state in Conference class
[SIPPOAND-178] Notify the current conference state when user sets the conference listener
[SIPPOAND-29] Expose if the user mediatypes are enabled
[SIPPOAND-179] Add method to get all conference participants
[SIPPOAND-180] Add rx methods to Contacts service
Breaking Changes
Added a sources parameter in getContacts method.
Several changes in SippoContact model:
No longer includes the thumbnailUri field. The method getThumbnail in Contacts has been deleted in consequence.
The field isFavourite has been renamed as favorite.
The field contactIdFromDevice visibility is not public any more.
The field emails are now a list of strings because Email model has been removed.
Also, source contact types are using now the Source model imported from sippo-server so the one in Contacts has been removed.
SippoService can now return different error types, not only CapabilityError.
The method add in Contacts receives now a new SippoContactBuilder as parameter instead of a SippoContact.
The field roomId has been renamed as id. Callbacks onConferenceFinished and onConferenceCanceled receive the conference id as parameter and the related events are now exposed as a Single with the conference id instead of as a Completable.
Conference has now a callback and an observable to notify when the state changes. The specific callbacks/observables for notifying when the conference finishes or when the invitation is canceled have been removed.
Since the conference includes now the information about the caller, the callback onConferenceReceived does not have the caller as a separated parameter any more and the observable newConferenceEvents only emits the conference.
Conference methods no longer receive the application context as a parameter.
There is only a hangup method to end the conference (instead of decline/leave methods). The cancelInvite method has been renamed as cancelInvitation.
The methods expel, getRemoteParticipants and enableRemoteVideo use Participant objects instead of String. The observable participantAdded also uses this class. The parameter participant in getRemote video has been renamed as username to help remarking that it does not use the Participant class. The callbacks in ConferenceListener now receive the conference as parameter too.
The methods to get the view rendering the video no longer exists. It should be used the methods displayLocalVideo and displayRemoteVideo instead.
The list of localMediaTypes now is a list with pairs indicating the media type and whether it is enable or not.
getRemoteParticipants has changed to getParticipants and now returns all participants in the conference including the user with their mediaTypes (the method getRemoteMediaTypes does not exist any more). The localMediaTypes in the Conference has been replaced by two boolean properties: is LocalAudioEnabled and isLocalVideoEnabled.
The method swap(usernameA, usernameB) has been renamed as swapVideos. The method swap(username) has been removed. In order to swap the local video with a remote one, the first method could be used specifying the current user as one of the those received by the method.
[0.21.1] - 02-02-2021
Bug Fixes
[SIPPOAND-175] Close PeerConnection when logging out from Janus
[0.21.0] - 02-02-2021
Code Refactors
[SIPPOAND-162] Remove prepareAudio parameter
[SIPPOAND-173] Use custom Either class instead of Kotlin Result class
[SIPPOAND-163] Remove SippoConference interface
[SIPPOAND-164] Replace SippoConferenceDelegate by ConferenceListener
[SIPPOAND-165] Rename SippoConferenceError as ConferenceError
[SIPPOAND-166] Return an error in case update publishers action can’t be done
[SIPPOAND-167] Avoid to duplicate ParticipantStatus class in janus and sippo-sdk module
[SIPPOAND-168] Use MediaType class instead of FeedConstraint and ConferenceConstraint models
[SIPPOAND-169] Separate reactive conference methods to another class
[SIPPOAND-170] Add extension to deliver Maybe result in a callback function
Breaking Changes
The method previewMedia has been renamed to preview and no longer receives the prepareAudio and context parameters.
All public API methods that were using Result now use Either instead. Also, the Optional class has been moved from client.common to common package.
All public API methods that were using SippoConference now use Conference instead. Also, the parameter order for join, update and getConferenceEntries methods has been changed.
The interface SippoConferenceDelegate has been replaced by ConferenceListener. Also, the methods create and acceptInvitationRequest in Conferences have been changed.
All public API methods that were using SippoConferenceError now use ConferenceError instead.
The method getRemoteParticipants in Conference now uses the ParticipantStatus class from Janus module.
The models FeedConstraint and ConferenceConstraint have been replaced by one only model, MediaType. Public API methods will now use MediaType class instead of the old ones. The userConstraints property and getRemoteParticipantsConstraints method have been renamed as localMediaTypes and getRemoteMediaTypes respectively to be consistent.
The reactive methods in Conference have been moved to a specific class, ConferenceRx. This class is accessible as a property in Conference class, so the methods should now be invoked as conference.rx.methodName. Also, some methods and/or parameters have been renamed.