This starts the work to move calls and conference per account,
cleaning up the API and start future re-factorization.
Change-Id: I2a3a2c77e9ba78b1a280bdf8dca7eeaabb72f3fd
The API doesn't provide any signal to detect when a device
discards a conversation's request. So, there is no way to correctly
update the UI when needed. This patch introduces a signal for this.
Change-Id: I78e39c65ff1ed037ff38b92368c770f73f3e5006
GitLab: #600
With this patch, the daemon is now storing informations based
on setMessageDisplayed/onMessageDisplayed to follow the read
status per participant.
This avoid to creates a logic in all clients and allow the client
to have a correct read status even if the daemon was launched
separately.
Clients can now:
+ Retrieve last displayed interactions by retrieving members infos
(via getConversationMembers() and the key "lastDisplayed")
+ Know how many messages there between the head and a commit. This
is useful to count unread messages for a peer.
GitLab: #592
Change-Id: I0b5bc7adb5cda48754f33a362a40ce10ee345e3c
Automated using the following commands:
$ mv src/{dring,jami}
$ git grep -l src/dring | xargs sed -i 's,src/dring,src/jami,g'
$ git grep -l '#include "dring/' | \
xargs sed -i 's,#include "dring/,#include "jami/,g'
$ git grep -l 'dring.h' | xargs sed -i 's,dring.h,jami.h,g'
And finally,
$ git grep -l 'dring' | xargs sed -i 's,dring,jami,g'
$ files=$(find -name '*dring*' | sort)
$ for f in $files; do mkdir -p "$(dirname "$f")"; \
mv "$f" "$(echo $f | sed 's/dring/jami/g')"; done
To resolve a bad renaming favorably:
$ git grep -l -i AlsaCarjami | \
xargs sed -i -E 's/([Aa])lsaCarjami/\1lsaCardRingtone/g'
The above renaming command is not perfect, so some hand-tuning was
required to complete it.
* src/manager.cpp (Manager::ManagerPimpl::retrieveConfigPath):
Preserve the dring.yml configuration file name, until we add something
to migrate (rename) it to jami.yml.
* man/dring.pod: Delete.
* bin/dbus/jamid.pod: Move to ...
* man/jamid.pod: here.
* bin/dbus/meson.build (jamid_targets): Normalize man section to the
pre-existing 1 and adjust accordingly.
* src/jami/def.h (dring_EXPORTS): Rename to ...
(jami_EXPORTS): ... this.
change-Id: I9828be6da9c711ab2f22c4d1b9539fea89d7b6fb
Currently, an incoming call is always assumed to have either audio
and video media or only audio media.
This assumption was removed and the incoming call are reported with
the list of included media with some of their attributes as found in
the call invite (SDP). This will allow to process calls with an
arbitrary number of media.
It will also allow to add new media to a call by requesting a media
change using a SIP re-invite (with new SDP). For instance, add video
to an audio-only call. The peer will receive the new offer and may
choose to accept or not the new media.
Not all media change requests require validation from the user/client.
Meaning that for instance, if a new SDP (media change request) is
received to notify that the peer muted it's audio, the media change
request can be processed without requiring validation from the
user/client.
Gitlab: #445
Change-Id: Ibc2b2501a3ec7e2c22f4e9d47cec3eda3dd43fef
This new API gives a feedback to clients to know when an error
occurs while interacting with conversations or retrieving new
messages. For now, it's more for debugging purpose, but can
be used for admins to know if somebody is trying to do bad commits
Change-Id: I1ec797a51bdc5880d0d116b53faf5c7e13af1e8b
GitLab: #373
Link removeConversation. For this feature there is two possibilities:
+ If we are the last member, remove all the files.
+ If not, wait for another user to sync.
Change-Id: I387a20fe93a72524ae701e7e98d66633d91a9ede
GitLab: #305
This feature is mostly a relicate from SFLPhone and introduced a remote
attack vector abusing the system() function weaknesses.
Provided that "sipEnabled" parameter is on in the remote target's
configuration, a malicious peer calling that remote target could
send SIP messages with a crafted "X-ring-url" string in order to
execute arbitrary shell commands on the target.
Header entry "X-ring-url" content is actually consumed by UrlHook
as arguments for the "x-www-browser" command executed using system().
By adding a shell escape sequence to circumvent existing arguments
sanitizing attempts, the malicious peer could execute any shell command
under remote peer user's identity and access sensitive information
available using its privileges.
Remove that feature altogether and enforce users that are relying on
that feature to migrate to Jami "plugins", which are more suitable
for introducing custom Jami behaviors.
Change-Id: I1d6d07771e2b5a7c7f2cb8fc838821106c0a6708
These informations contains the participants in a conference and their
position in the rendered frame. The description of the conference is
sent via a SIP message with "application/confInfo+json" for mimetype.
Gitlab: #241
Change-Id: I5a3ad81d1d1b8ba9c9ce84e57745a59a747b8e6c
Because of the ConnectionManager, the daemon is now able to send
direct messages such as typing indications and read status. This
can be also used to move current features and improve it.
This patch is a first step to improve vCard syncing. The idea is
to send the vCard directly when a peer is connected. To avoid to
send the vCard everytime, a state is written in the cache directory.
In the future, a method to update the vCard as soon as the client
updates its profile will be possible.
Change-Id: I3801cbe04b3441f67ea6685aa2047e5a545958e5
This patch aims to improve the conference management for the host.
Now, the host is able to switch between 3 conferences layout:
1. The grid view (actual one) where all participants are shown
at the same height/width
2. The One big/Other in small which show one participant bigger than
the others
3. One participant in big
The daemon's API got two new methods:
+ setConferenceLayout() to switch between these layouts
+ setActiveParticipant() used in the 2 last layouts.
Change-Id: I3c16569e24d1b63331ffe9d79e35790a6ac47a0c