iOS SDK release notes
[8.6.0] - 2024-10-07
### Bug Fixes
[ROAD-6192] Reorder group with deleted users
### Chores
[ROAD-5970] Upload only documentation files
### Features
[ROAD-6024] Upload documentation
[8.5.0] - 2024-07-01
### Bug Fixes
[ROAD-5770] Improve one to one chats with eJabberd
[ROAD-5771] Improve group chats with eJabberd
[ROAD-5946] Fix trimming chat messages
### Features
[ROAD-5929] Put URL on body in OOB extension messages
[8.4.1] - 2024-06-06
### Bug Fixes
[ROAD-5829] Remove meetings from conference log
[8.4.0] - 2024-05-29
### Bug Fixes
[ROAD-5762] Fix Socket state & fix Single functions
### Chores
[ROAD-5756] Update webRTC
[ROAD-2824] Add session info
### Features
[ROAD-5593] Add deeplinks on Quick & Personal conferences
[8.3.1] - 2024-05-13
### Bug Fixes
[ROAD-5718] Fix socket connections
[8.3.0] - 2024-05-06
### Bug Fixes
[ROAD-5541] Personal contact display name to conference participants
[ROAD-5541] Improve conference utils
### Chores
[ITEX-883] Export “mood” property
[ROAD-5584] Add Apple privacy info & upgrade library versions
### Features
[ROAD-3436] Add host-meta file to retrieve URLs
[8.2.1] - 2024-04-01
### Bug Fixes - [ROAD-5575] Fix current active conferences array
[8.2.0] - 2024-03-06
### Features - [ROAD-5393] Get azure contacts from addressBooks
[8.1.1] - 2024-02-15
### Bug Fixes - [ROAD-5291] Fix wrong presence request - [ROAD-5373] Improve sockets reconnection
### Chores - [ROAD-5286] Export “note” property
[8.1.0] - 2023-12-21
### Bug Fixes
[ROAD-5004] Fix reconnecting QSS when backend restarts QSS sockets
[ROAD-5109] Fix cancelled alerts
[ROAD-5183] Increment maximumMessageSize
[ROAD-5073] Fix updating cache when creates a personal contact
[ROAD-5077] Fix personal contact appears blank
### Chores
[ROAD-5070] Update dependencies and Xcode 15
[ROAD-5144] Remove old login provider
[ROAD-5228] Update XMPPFramework dependency
### Features
[ROAD-5037] Add “delete” & “leave” feature from chat groups
[ROAD-5062] Implement attended transfer without ringing
[8.0.0] - 2023-10-24
### Bug Fixes
[ROAD-4888] Fix DisplayName when calling from the dialpad
[ROAD-4890] Fix add personal contact to meeting
[ROAD-4957] Fix chat file messages when comes with “body” too
[ROAD-4990] Fix inviting participants when creates a chat group
[ROAD-4993] Improve own user in meetings participants
### Code Refactors
[ROAD-4967] Refactor response of “invite participants” on QNGroupChatActions
### Features
[ROAD-4762] Add newChat and deleteChat socket events on OneToOne chats
### BREAKING CHANGES
invite(…) by invite(…) -> Single<[QNChatParticipant]>
[7.5.1] - 2023-09-26
### Bug Fixes
[ROAD-4792] Fix unhold on attended transfer
[ROAD-4799] Meetings chat
[ROAD-4833] Attended transfer flow
[7.5.0] - 2023-09-11
### Bug Fixes
[ROAD-4751] Fix QSS socket reconnection & Fix memory leak when logged user is expelled by Single Session on background
[ROAD-2744] Text format when publish sdk
[ROAD-4554] Skip call when one is in progress
[ROAD-4630] Fix restoreSession called 2 consecutive times
[ROAD-4195] Fix wrong thumbnail
[ROAD-3079] Fix ending “login” background task when Backend returns error
[ITEX-799] Fix disabling push notification if user has been ejected by Single Session
[VODA-204] Fix contact name matching when it comes with a numeric prefix
[ROAD-4639] Add video to personal url calls
[ROAD-4782] Fix attended transfer
[ROAD-4789] Fix infinite loading
[ROAD-4554] Skip call when there is another call
### Features
[ROAD-834] Add participants to QNMeetingRepository
[ROAD-4586] Change invite service timeout to show correct error
[ROAD-835] Edit a meeting
[ROAD-4625] Create new meeting
[VODA-201] PSTN attended transfer
[7.4.0] - 2023-07-14
### Bug Fixes
[ROAD-3335] Fix memory leaks
[ROAD-4429] Change disco-info timeout and skip if bookmark has name
[ROAD-4393] Temporarily removed join message
### Code Refactors
[ROAD-1338] Refactor Settings screen
### Features
[ROAD-970] Improve get meetings service
[ROAD-4426] Add events to meetings and refactor
[ITEX-778] Show logs
[ROAD-2744] Publish SDK in doc web
[ROAD-2744] List SDK in doc web
[7.3.0] - 2023-05-25
### Bug Fixes
[ROAD-4170] Fix resolving group users with PresencesService
[ROAD-4186] Fix chat images url
[ROAD-4223] Fix caller ID from Phonebook contacts
[ROAD-4268] Change timeout on a conference invitation
[ITEX-729] Fix firebase crashes
[ITEX-737] Improve transfer with callkit and socket lifecycle
[ITEX-750] Fix reconnection XMPP
[ROAD-4364] Fix Adding new OneToOne chat to WAC list when user writes first message
### Chores
[ROAD-2826] Update release scripts
### Code Refactors
[ROAD-4241] Refactor “Presence” mandatory fields
### Features
[ROAD-3534] Add control error on UserContacts Services
[ROAD-822] Attended transfer
[ROAD-4257] New file sharing
[ROAD-4343] Set limit counter on 50+ chat messages
[7.2.2] - 2023-04-28
### Bug Fixes
[ROAD-4277] Fix addressbooks cache with wrong key
[7.2.1] - 2023-04-14
### Bug Fixes
[ITEX-716] Conference error message
[ITEX-714] Fix addressbooks contacts when re-logging
[7.2.0] - 2023-03-21
### Bug Fixes
[ROAD-3650] Fix loading AddressBooks when user has not presence
[ROAD-3630] Fix caller ID from Phonebook calls
[ROAD-3739] Improve documentation
### Chores
[ROAD-3746] Change info.plist version by Marketing_Version
### Code Refactors
[ROAD-3325] Add avatarUrl property from WebService
### Features
[ROAD-3601] Add new functions to update presence properties
[ROAD-3581] Add mute conference functionality
[ROAD-3445] Add simultaneous reduced strategy
[ROAD-3660] Improve retrieving ConferenceLog entries
[ROAD-1899] Add conference chat
[7.1.1] - 2023-03-01
### Bug Fixes
[ROAD-3539] Set “busy” state when user is on a call
[ITX-691] Change logic to order group participants
[ROAD-3609] Fix DisplayName on Incoming calls
### Code Refactors
[ROAD-3302] Improve presence request when retrieving addressbook
[ROAD-2413] Replace UserResolver by PresencesRepository
[ROAD-3478] Create socket connection manager
[ROAD-2988] Added PresencesServices to resolve DisplayName
[ROAD-3494] Replace starcream to new webSocket manager in QSS
[ROAD-3505] Replace socketIO to new webSocket manager in Janus
[ROAD-3526] Replace starscream to new manager in Wac module
[7.1.0] - 2023-02-08
### Bug Fixes
[ITX-660] Fix call error when device is suspended
[ROAD-3332] No progress call after network loss & reconnection
[ROAD-3334] Show error on call when the device has no connection
[ROAD-3347] Update chatsListView when send message from contactView
[ROAD-3390] Check if the user is a member or owner of the group
[ROAD-2106] Fix message status when user reads from another device
[ROAD-3458] Trim white spaces to displayName
### Code Refactors
[ROAD-3313] Create presence cache repository
[ROAD-3355] Create addressBooks cache repository
[ROAD-3400] Improve chat history retrieving process
[ROAD-3410] Refactor Chats name classes by QN prefix
[ROAD-3410] Resolve Bookmark name when fetching for groupChats
### Features
[ROAD-3311] Improve chats performance removing UserResolver
[ROAD-3212] Add new error code to revoke session
[ROAD-3440] Add chatId to userGroups
[ITX-685] Upgrade WebRTC version to 109.0.1
### BREAKING CHANGES
Presence object replaced by QNPresence`<br>`PresenceDelegate delegate replaced by QNPresenceDelegate`<br>`Presences repository replaced by QNPresencesRepository`<br>`presence(…) function replaced by getPresence(…)`<br>`updateMyPresence(…) function replaced by updateOwnPresence(…)
User object replaced by QNUser`<br>`Contact object replaced by QNContact`<br>`AgendaDelegate delegate replaced by QNAddressBooksDelegate`<br>`Agenda repository replaced by QNAddressBooksRepository`<br>`contacts(…) function replaced by getContacts(…)
fetchMessagesFromStore function returns a [ChatMessage]
Chats repository replaced by QNChatsRepository`<br>`Chat repository replaced by QNChatRepository`<br>`Chat…Class objects replaced by QNChat…Class
[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
[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
Backward compatibility announcement
Please take into account the announcement stated here: Backward compatibility 5.0
[5.0.0] - 2021-03-25
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
[4.4.0] - 2021-09-17
Released 17th Sep 2021
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.
[4.3.0] - 2021-05-14
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)
[4.2.0] - 2021-01-25
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