iOS SDK release notes
v7.0
[7.0.1] - 2022-12-28
Bug Fixes
[ITX-549] Fix badge on group chat messages
[ROAD-3111] Fix creation of group chats when the socket is not yet authenticated.
[ITX-549] Mark read message when the socket is authenticated
Features
[ROAD-3135] Control logout errors
Tests
[ROAD-3140] Testing of unread chat messages count
[7.0.0] - 2022-12-02
Bug Fixes
[ROAD-2934] Count up to 99 unread messages after come to foreground
[ROAD-3137] Upgraded WebRTC library version to 96.0.0
[ROAD-3162] Remove group chat when room is deleted by owner
Chores
[ROAD-2833] Upgrade minimum version to 12.0
Code Refactors
[ROAD-2855] Initialize chats with unread messages count
BREAKING CHANGES
fetchUnreadMessagesCount of class Chat was removed, now the unreadMessagesCount observable starts with the current value
v6.0
[6.5.1] - 2022-10-25
Chores
[ROAD-2629] Do not change documentation name with the version number
[6.5.0] - 2022-10-25
Bug Fixes
[ITE-457] Send leave, new and update participant actions
[ROAD-2808] Fix SwiftLint rules
Chores
[ROAD-2721] Fix fastlane command on install.sh
[ROAD-2747] Change swiftlint path
[ROAD-2197] Allow to generate sdk xcframework documentation
Code Refactors
[ITX-457] Organize group received XMPP chat messages by type
[ROAD-2808] Delete QuickStart app and refactor gitignore
[ROAD-2808] Refactor SDK structure
[ROAD-2808] Refactor Modules structure
[ROAD-2808] Remove Sippo project
Documentation improvements
[ROAD-2721] Change readme to include Git-Cliff
Features
[ITX-645] Make Ringing Strategy enum equatable
[ROAD-2747] Add ‘Missed calls’ service implementation
[ROAD-2629] Generate release from Jenkins
[6.4.1] - 2022-09-13
Bug Fixes
[ROAD-2406] Authenticate socket once after reconnection
[6.4.0] - 2022-08-31
Features
[ROAD-2401] Allow to change the ringing group strategy
[6.3.2] - 2022-08-24
Bug Fixes
[ROAD-2590] Add missing conference error with unhold error
[ROAD-2361] Fix broken tests
[ROAD-2333] Reconnect after websocket connection errors
Chores
[ROAD-2115] Update Quick, Nimble and execute linter and tests on each PR
[6.3.1] - 2022-07-11
Bug Fixes
[ROAD-2305] Configure chat room after join it
[6.3.0] - 2022-06-21
Chores
[QUOBDEV-1830] Include configuration to use git-cliff as new changelog generation tool
Features
[ROAD-1682] Allow to reorder user group participants
[6.2.5] - 2022-06-07
Bug Fixes
[ROAD-2249] Use RxSwift version 6.2 and compile project with XCode 13.2.1
Reverts
Revert “chore: [ROAD-2197] Allow to generate sdk xcframework documentation”. This reverts commit 855ef0480ea118294b7470eef62610647d69aa19.
[6.2.4] - 2022-05-19
Chores
[ROAD-2119] Add link with commit message format explanation
[ROAD-2197] Allow to generate sdk xcframework documentation
[6.2.3] - 2022-04-26
Chores
[QUOBDEV-1924] Modify the build lane in Fastlane to use xcframeworks
[QUOBDEV-1926] Modify the package lane in order to use xcframeworks
[6.2.2] - 2022-04-22
Bug Fixes
[QA-2283] Send participant active state in group chats
Chores
[QUOBDEV-1335] Update RxSwift to 6.5.0 version
[QUOBDEV-1870] Update Quick to 4.0.0 version
[QUOBDEV-1883] Update deployment target to version 11
[QUOBDEV-1882] Update WebRTC to M94 version
[QUOBDEV-1882] Use xcframeworks instead of fat frameworks
[QUOBDEV-1891] Update Fastlane version in order to be able to use xcframeworks in Carthage actions
[QUOBDEV-1892] Modify install.sh script to use .xcframeworks instead of .frameworks.
[QUOBDEV-1893] Add a lane for create a new version tag in Fastfile
[QUOBDEV-1894] Fix bootstrap lane and make it use xcframeworks
[6.2.1] - 2022-03-23
Bug Fixes
[QA-2967] Add correct reference when adding the room delegate
Documentation Improvements
[QUOBDEV-1803] Update Cartfile to include the explanation about why the SDK uses precompiled WebRTC binaries as dependency
[6.2.0] - 2022-03-15
Bug Fixes
[QA-2899] Prevent concurrent read in Resources dictionary
[QA-2950] Change the URL session used to make http requests to be ephemeral
[QA-2899] Prevent concurrent write in RequestCache class
[ITX-511] Add bookmarks manager with a semaphore to make bookmarks operations secuentially
Chores
[QUOBDEV-1743] Create a git hook for commit messages
Code Refactors
[QUOBDEV-1777] Refactor how group chats are created
Features
[ROAD-2015] Do not expose unnamed group chats
[QUOBDEV-1775] Set XMPP TCP socket with TLS policy as preferred
BREAKING CHANGES
The method joingGroupChat in Chats service is now asynchronous. The method to change the name of a group chat and the events and callbacks that notify when this name is modified have been removed from GroupChatActions class.
[6.1.2] - 2022-01-31
Bug Fixes
[QA-2863] Remove outdated chats before adding new ones
[QA-2848] Ignore unresolved group participants to initialize participants with valid users
[ITX-528] Return chats with the last chat message initialized
Chores
[QUOBDEV-1669] Add script to generate SDK binaries
[QUOBDEV-1668] Update readme
Code Refactors
[QUOBDEV-1529] Remove anonymous login
[QUOBDEV-1717] Add reactive extensions for fetch and publish bookmarks
BREAKING CHANGES
The anonymous login case has been removed from the Authentication options of the SippoServer class and is not possible to do anonymous login from the AuthService anymore. The events newChat and new ConferenceChat do not emit the optional ChatMessage associated to the Chat anymore. This information can be obtained via the lastContentMessage attribute from the Chat itself.
[6.1.1] - 2021-12-21
Bug Fixes
[ITX-571] Revert changes made to identify last message in one chat
[6.1.0] - 2021-12-15
Bug Fixes
[ITX-567] Make request cache dictionaries thread safe
[6.0.0] - 2021-11-26
Chores
[QUOBDEV-1619] Update tuist version to 1.48.1
Features
[FMAX-159] Allow compiling with Xcode 13
[QUOBDEV-1511] Include the new AuthProvider and the former Provider model in the session service.
BREAKING CHANGES
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.
[5.1.4] - 2021-10-08
Bug Fixes
[ITX-550] Disable push notifications for chat correctly
Chores
[ITX-568] Update dependencies to allow compiling with Xcode 12.5.1
Code Refactors
[QUOBDEV-1458] Change the format used in loggers to print the line with the function name
[5.1.3] - 2021-09-28
Bug Fixes
[QA-2618] Consider more error types when transforming to ResourceError
[QA-2626] Delete session info when restore is not possible because the session is no longer valid
[QA-2628] Fix typo in attended transfer permission
[ITX-549] Tab bar’s badge counter of new messages is not working correctly.
[5.1.2] - 2021-08-19
Bug Fixes
[ITX-531] Chat messages are not retrieved in the correct order when loading messages history
[5.1.1] - 2021-08-05
Chores
[QUOBDEV-1298] Remove RX’s debug messages
[QUOBDEV-1309] Add verbose level to SippoServer logger
[5.1.0] - 2021-07-22
Bug Fixes
[ITX-540] Make the access to the Sippo-Server request store sequential
Features
[ROAD-1763] Add code error 409 as an error type
[5.0.7] - 2021-07-16
Bug Fixes
[FMAX-155] Map error when fetching the conference log entries
[5.0.6] - 2021-07-09
Bug Fixes
[FMAX-154] Change semaphore management used when connecting to Janus in order to release it if any scape condition is matched
[5.0.5] - 2021-07-07
Bug Fixes
[FMAX-150] Add existAnyConferenceWithInvitation method as part of public callbacks API
Chores
[QUOBDEV-1275] Add a script to tag a version and generate the related changelog
[5.0.4] - 2021-06-23
Bug Fixes
[ITX-530] Catch the error for the request to get the contact associated to a user when resolving the display name
[5.0.3] - 2021-06-17
Bug Fixes
[QA-2370] Get the to field from the invite carbon message and avoid to create a new chat if it is already in the list
Code Refactors
[QUOBDEV-1249] Remove unused conference errors
[5.0.2] - 2021-06-07
Bug Fixes
[ROOM-286] Manage concurrency problems when fetching chat messages
[5.0.1] - 2021-06-07
Bug Fixes
[QA-2079] Retain AuthService
[QA-2085] Check socket response as String
v5.0
Backward compatibility announcement
Please take into account the announcement stated here: Backward compatibility 5.0
v5.0.0
Released 25th March 2022
New features
Do not show group chats without name in the chat list.
Allow compilation with Xcode 13
Add support for the new provider model.
(Refactor)Change the format used in loggers to print the line with the function name.
Include Keycloak login support.
Set XMPP TCP socket with TLS policy as preferred.
Bug Fixes
Wrong timestamp assigned to chat messages.
Chats are reordered without new updates.
Blank title is shown in the chat list when the user resolution fails.
The app crashes (occasionally) when trying to retrieve the list of chats.
XMPP reconnection fails when the app comes from background.
Disable push notifications for chat correctly.
The chat notifications in the footer are not working correctly.
Users with groups with inexistent participants cannot see any type of contact.
Known Issues
Background task when connecting the session is not being correctly finished if an error occurs (QA-2786)
Sockets remain open when the app goes to background during login process (QA-2599)
The chat that is created from UCIOS doesn’t appear to the creator of the same on the web until he reloads the page (QA-2223)
Instant audios and videos between Web and native app are not received (QA-1662)
Chat messages are not retrieved when they arrived while displaying chat list
Chats are not ordered according the time they where sent when you kill and open again the app
v4.4
Released 17th Sep 2021
v4.4.0
New features and changes
Use WebSocket instead of Socket.io for WAC connection
Expose the groupId for contacts with source group
Add code error 409 as an error type
Bug fixes
Add existAnyConferenceWithInvitation method as part of public callbacks API
Change semaphore management used when connecting to Janus in order to release it if any escape condition is matched
Match MAM messages with element id
Check socket response as String
Retain AuthService
Manage concurrency problems when fetching chat messages
Get the to field from the invite carbon message and avoid to create a new chat if it is already in the list
Catch the error for the request to get the contact associated to a user when resolving the display name
Add existAnyConferenceWithInvitation method as part of public callbacks API
Change semaphore management used when connecting to Janus in order to release it if any scape condition is matched
Map error when fetching the conference log entries
Make the access to the Sippo-Server request store sequential
Breaking changes
The possible sources for a contact have been changed. The agenda service has now its own Source class to specify which contacts have to be fetched.
v4.3
Released 14th May 2021
New features and changes
Add events for expired and cancelled alerts
Add param to filter expired alerts when fetching them
Allow to fetch active alerts and accepted alerts finished in a certain time interval
Resolve “from” field in message to display name
Increase the timeout for invitation request from 60 to 120 sec
Add code “480” as a available response for QSS invites
Bug fixes
Avoid XMPP reconnections if the client state is new (QA-1957)
Return group identifier if it does not exist when resolving a conference log entry (QA-1930)
Technical improvements
Add a new rule for building paths with query params (QA-1956)
v4.2
Released January 2021
New features and changes
Breaking change: the Invitations service for managing invitation request and all related classes as
InvitationsDelegate
,SippoInvitationRequest
,… are not longer available.Breaking change: the property
isAnswerToInvitationRequest
inSippoConference
andRxSippoConference
has been removed.Breaking change: “invite” method does not have a replyOf parameter any more.
Breaking change: the property
inviteRequest
inSippoInvitationInfo
andInvitationInfo
has been removed.Breaking change:
SippoParticipantInfo
andSippoCandidateInfo
do not have a property “user” any more. Instead, a new property “participant” has been added that includes all the information about the participant or the candidate.Breaking change: the method to fetch the conference entries in Conferences does not receive a “since” parameter any more. Now, a time range can be specified using the parameters “before” and “after”. Besides that, it can also be specified whether the entries have to be obtained in ascending or descending order of their creation date.
Removed support for w3c-contacts-api capability
Support to oAuth “confidential client” as described in RFC-6749
Update tuist files
Drop invitation request support
Use a behaviour for
UserExpelled
observableAdded user-select-group capability
Added method to join a group chat with its identifier
Add “archive” method to chat
Expose XMPP port as a client option
Use
createdAtBefore
andcreatedAtSince
to fetch conference entriesExpose candidates and participants as Participant
Add startChat capability
Expose XMPP client state in chats service
Adapt the registration of chat notifications to last changes
Expose current session token
Add method to fetch AddressBooks
Expose the property “to” in SippoTransfer as a participant instead of as a string
Changes group owner when current owner leaves the chat
Notify affiliation changes in group chat
Make
ChatMessage
conform to CodableAdd DTMF support in conference
Fetch leave/join messages from MAM
Update dependencies due to Swift 5.2
Expose 1-1 and groups chats as a Chat class
Expose incoming invitation identifier
Expose method to check active invites
Expose conference state
Fetch participant contains media shared by them
Set last message onces the group is fetched
Expose methods to enable/disable push notifications in chats
Expose “status” field in Presence
Added
isPermissionGranted
to SessionsAdded presence for User method in Presences
Added
isAuthenticated
property to SessionsRemove “optional” from wrapper token field for better performance
Transform messages to
ChatMessages
Added action case to
ChatMessage
Get unread messages
Bug fixes
Fix
CocoaLumberJack
version to 3.6.2 (SIPPOIOS-264)Avoid parsing errors when the transfer state in a ConferenceEntry has not one of the expected valued (SIPPOIOS-262)
Subscribe to room destroyed and invitation canceled events in
JNConferenceState
(SIPPOIOS-262)Use concat instead of merge when resolving the conference log entries fetched (SIPPOIOS-257)
Use a semaphore to synchronize connect method (SIPPOIOS-252)
Parse
groupId
from body instead of param in delete event (SIPPOIOS-253)Expose
JNConferenceState
in Conference (SIPPOIOS-241)Emit destroyed event when leave conference is completed (SIPPOIOS-226)
Configure group chats only when user is the owner (SIPPOIOS-225)
Save token in keychain with
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
(SIPPOIOS-224)Wait until joined event to send invites (SIPPOIOS-220)
Make services lazy on success (SIPPOIOS-219)
Filter OneToOne chats with non-existent user (SIPPOIOS-205)
Return current page from history to future searchs (SIPPOIOS-201)
Send chat invites one by one (SIPPOIOS-200)
Use contact phone as first option for invites (SIPPOIOS-196)
Filter events notifying that a group chat has been deleted if there is no info about the group
Filter conference chats from user’s group chats
Leave room before disconnecting from the SFU
Filter chats conference when fetched
Use sync queue to access history store
Change User from Struct to Class due to mutations
Change value returned in
Publisher.isMuted