Commit Graph

91 Commits

Author SHA1 Message Date
8750049b0c nodejs: fix binding, update to Node 16 LTS
Change-Id: Id4eaaebee19c9739334b0652e7cdf560d8f8a202
2022-04-27 11:49:19 -04:00
a290a6f7f2 misc: remove shortcuts preferences
Unsed by all the clients, since years.

Change-Id: I47654d25a04b9574ddac8a717adec25ba3efaa90
2022-01-24 13:22:38 -05:00
5018565239 misc: update copyright date to 2022
Change-Id: I795e3f2f69c07349bf84c87dbcafb502dc8490f8
2022-01-05 16:21:58 -05:00
eacbec668d videomanager api: add deviceId to stopCapture
Change-Id: Ie1b88abf5790e2f17251e2c34ed229e34cdc496c
2021-11-18 12:22:37 -05:00
01cb294c44 callmanager: add accountId to identify calls, conferences
This starts the work to move calls and conference per account,
cleaning up the API and start future re-factorization.

Change-Id: I2a3a2c77e9ba78b1a280bdf8dca7eeaabb72f3fd
2021-11-16 15:59:41 -05:00
517f6299e4 api: replace {start/stop}Camera, switchInput with {open/close}VideoInput
Gitlab: #594
Change-Id: Ie9ed60ed9e1ec6f1d7344b2c79544b9cd6f22a91
2021-11-16 14:20:23 -05:00
01594813f5 conference: add handsUp feature
GitLab: jami-project#855
Change-Id: I425a4b0049f1ade8c8eeeb93fc79f8d36bd25585
2021-11-01 10:06:31 -04:00
204b3fbcbf api: remove getDisplayNames
Change-Id: If641609b25cf6dad1a2c91fe534c2fa3a7119ad1
2021-10-07 10:27:23 -04:00
dc514c8cc6 api: remove switchToCamera()
Change-Id: I5e328cc2d0e38aa26bf62cb3a5bd083d499b9a02
2021-10-07 10:26:13 -04:00
e2c5eb02cb api: remove hasCameraStarted
Change-Id: If509355da31d71e9301d463fbbd64c202530cdfc
2021-10-07 10:26:13 -04:00
4bf9d5c0a5 nodejs: fix build
Change-Id: Iedf63f2c4a1cf0c3a4fdc78a5ccb452576c522f6
2021-09-15 12:42:42 -04:00
15738fdf7b conversation: check author in countInteractionsSince
This allow us to only count interactions since last message written
for multi-device.

Change-Id: I9c46eab672719dbdc2e522bbf208f85adfb730f4
GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282
2021-08-17 13:00:40 -04:00
9b256c6868 conversation: add signal to detect declined requests
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
2021-08-09 10:19:48 -04:00
f457b73fab conversation: store last displayed messages
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
2021-07-28 11:44:55 -04:00
ba3a411ca3 daemon: Rename dring occurrences in code and file names to jamid.
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
2021-07-15 10:57:26 -04:00
e57520d001 nodejs: update for new API
Change-Id: I1db1fc47a7a3164318dcaad6bfd51be006838bc0
2021-06-28 15:21:08 -04:00
030983a5f5 swarm: relink filetransfer
Change-Id: Ia80930bdec6b5e125fd559fcd6b125a45b4eba0c
2021-06-11 15:26:00 -04:00
427e6b3ab3 swarm: relink setMessageDisplayed
Change-Id: Ic1e002a1e8edf79c5c392e707dd857c7e88667ec
GitLab: #319
2021-06-11 15:26:00 -04:00
bac6a6e981 multi-stream: report an incoming call with a media list
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
2021-05-05 14:32:01 -04:00
0a7952c7b4 nodejs: add Conversation API, cleanup
Change-Id: Id95313931dc9d333cb7b3261f91b7ad5ad0751ad
2021-05-03 14:13:40 -04:00
fd944896fa swarm: sync infos such as title/description/avatar
Change-Id: I0b56d6a8583923bfbac350ee497956d8268d11de
GitLab: #381
2021-04-21 15:13:02 -04:00
dcacf40e82 swarm: add onConversationError()
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
2021-04-21 15:13:02 -04:00
cfb7538f1a misc: add monitoring log on sockets
Change-Id: I77388bf9a6274aca2ffc732438bd67c19c4f551a
2021-04-20 09:49:50 -04:00
4268eb2b9e nodejs: add missing method
Change-Id: Id5fd5d03bbc809ce0dfd9e318e4e2534838c1651
2021-04-17 18:27:19 -04:00
048cf25458 api: remove unused importAccounts exportAccounts
Change-Id: I7df89a3a8d6f138c5bc88d164116d395cd9c3e5f
2021-04-14 16:15:55 -04:00
9a7e88327b swarm: add conversation member event signal
Change-Id: I2fb22051230d9a1afc46020f81f1d72bc99d175b
GitLab: #362
2021-04-14 14:47:10 -04:00
668954bd0e nodejs: build for Node v14
Change-Id: Ia4e4bcaab538ddd9a5fd2c256e7f323c87b3108a
2021-04-10 18:18:31 -04:00
03c5b7528f swarm: remove conversation, first version
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
2021-04-09 18:02:39 -04:00
1527828d79 swarm chat: make API visible and bump daemon version
Change-Id: Ice65f7ded98ef5575732334a9d6c61b81aeaf655
2021-04-09 18:02:39 -04:00
b738f0e856 nodejs: update gyp
Change-Id: I514b868d9f95908d65404a0fd17dce1d35b6ab70
2021-04-07 10:41:05 -04:00
51c73e8287 nodejs: add .gitignore
Change-Id: Ia73ac56462f9c36e183fbd76849ff3133b18030d
2021-04-07 10:41:05 -04:00
d049697976 nodejs: update JS wrapper
Change-Id: I127b987aa079b99f37346dad29291f1e2a2867bd
2021-04-07 10:41:05 -04:00
1495e22e22 nodejs: update for Node v12
Change-Id: I54e1cf4dfc9aa95f25f90523bd2ae465cbf098f4
2021-04-07 10:41:05 -04:00
f05ebe11aa nodejs: fix build with Node v12, latest SWIG
Change-Id: Iab028848b637ea8031621d2f5567a1bb01d2bf79
2021-03-31 18:07:03 -04:00
31fa5f12c3 misc: update copyright date
Change-Id: Ib53fa87efdbbbc6b7561e3b37f27d7a8d51af163
2021-01-25 12:14:41 -05:00
3448725d46 conference: add account preference to set local moderators
Change-Id: Ia5ba79e370642738df593493a6d1da52a9b1d9b8
2021-01-15 13:39:06 -05:00
67d85f86cc account: add default moderator preference
Change-Id: I4c30fe6c8c99bdc518c0e81a89eaf5eb3ce2b726
2021-01-15 13:39:06 -05:00
6927411cf4 conference: add kick participant for moderator
Change-Id: Ieb4be786a286ce52501b270e473308ad1fd5ba23
2020-12-10 19:44:50 -05:00
4e5c4c7908 conference: add mute participant for moderator
Change-Id: I371809b140fb1587635131d3a1e6c75ad67d2966
2020-12-10 19:44:50 -05:00
64d5a6708a dring: remove unused getTlsDefaultSettings
Change-Id: I1173c7d3a5cc35dc28f3077404cdade6f08354f0
2020-12-02 14:45:57 -05:00
75ec461623 conference: host can add or remove moderator
Change-Id: Idc4c6db249de7247d02c7cabb897d638c69674f3
2020-11-12 09:51:22 -05:00
569d44b5f6 src: hooks: remove urlhook feature
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
2020-10-13 12:13:23 -04:00
3487a68d23 dring: update profile received signal (breaking change)
Change-Id: Ia13b0ecf0dc66fdcfbd49ead62ab1fac806ba537
2020-08-02 13:25:26 -04:00
365a1169fb conference: add informations about rendered video and share with all peers
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
2020-07-31 16:52:53 -04:00
55db03e8de transfer: fix lastEvent detection to avoid multiple finished
And some clean

Change-Id: I0e7a607b1749e608f0911f37065a0695df2d45b5
2020-07-16 11:02:16 -04:00
6541f8bb60 jamiaccount: improve vCard synchronization
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
2020-07-15 18:01:07 -04:00
8d40c627e3 video_mixer: support multiple video layouts in conference
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
2020-07-14 11:27:04 -04:00
9c0d46b8d7 server account manager: add user search support
Gitlab: #225
Change-Id: I3874ba798ffa56c4f51b99048b9adb83f28bef16
2020-07-07 13:14:04 -04:00
1b0247f52a bin/nodejs: rename to Jami
Change-Id: Ieb7ee800f2b6f50f7ed2605a50b8dbeb32881645
2020-06-16 12:26:40 -04:00
387f6988cd build: add support for meson
Change-Id: I331522a09257d4ae787893ff72c270886c1aa210
Reviewed-by: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
2020-05-21 11:50:30 -04:00