78 Commits

Author SHA1 Message Date
86d3bb6644 ArchiveAccountManager: add support for p2p account import
Gitlab: #930
Change-Id: I76f07a81c4887d0dc127d74bc6c4de2e9f4f2ee8
2025-03-06 12:19:47 -05:00
b85165ae1a copyright: happy new year!
Change-Id: I2753c58c12d167ee5f7454e5a2ed893991c90e24
2025-01-08 11:02:33 -05:00
e2503d3a4f update license
Change-Id: I8b9e25f99da5945684e265d3923b74065c8ef8eb
2024-11-11 22:42:19 -05:00
ad5b6cbaf6 misc: unify terminology
8+3 filename → 8.3 filename
be ware → beware
{cannot, can not, cant, can't, could not, couldn't} → unable to
conpleted → completed
file name → filename
imcomplete → incomplete
informations → information
trying to → attempting to
wrong password → incorrect password

GitLab: https://git.jami.net/savoirfairelinux/jami-client-qt/issues/1730

Change-Id: Ia7757efafd2c06af978db02c65b40b1b77c393f8
2024-09-16 16:12:55 -04:00
a404577a9e call-swarm: avoid dummy call to create a conference
Now a conference can start without any call (this avoid to attach
a call without peer to create a conference).

Path is now clearer for a call creation:
+ If we receive a call, we attach it to the conference
+ Else we do not create any call and just attach the host.

Next step is to be able to attach a host in audio only without weird
tricks and group addParticipant/bindParticipant

GitLab: #953
Change-Id: I13785a5525e041c37fb62c0c9f355e9371f1e4ad
2024-05-17 12:14:16 -04:00
16b77dd10c remove mutex template
Change-Id: I0aacf47c70a0de4fcd1a68f6688cf0ee0c551934
2024-03-04 10:38:00 -05:00
6addbbc160 misc: remove <std::mutex> template
Not needed in c++17

Change-Id: Icf3c7b7781dbf829db2770a750cf10ec8fbeef45
2024-01-03 08:37:46 -05:00
40dddee226 misc: update copyright to 2024
Change-Id: I829473d42b2b90f26ed2d93bbde063a21ce0952c
2024-01-02 17:26:29 -05:00
ad3be1650c misc: windows: remove UWP/store files and code
Change-Id: I4875e4d76f5da442eace0204052d536c65545d3f
2023-10-18 15:20:37 -04:00
3bbac87283 fix: ut and agents
Change-Id: I3b9fd9da90d153b2b4ce8254fa14216ea87eb7bd
2023-09-22 08:31:52 -03:00
4166137736 misc: Update copyright years to 2023
Change-Id: Ia80fc12ba65b1abd516af205e6664261ae2e33fe
2023-02-06 01:46:45 -05:00
d54a84ec0b Replace DRing for libjami
It's not possible to replace the DRing namespace for jami because of conflicts
with namespaces and classes defined under the jami namespace.  Thus, use libjami
as the namespace.

Script to reproduce:

 rg -l DRing | sort | uniq | awk '$0 !~ /NEWS/' | xargs sed -i -e 's|DRing|libjami|g'
 rg -l DRING_ | sort | uniq | xargs sed -i -e 's|DRING_|LIBJAMI_|g'
 sed -i -e 's|dring|jami|g' src/jami/CMakeLists.txt
 sed -i -e 's|dring|jami|g' src/jami/def.h

Change-Id: I80e8c8b58a7586527a016bbef850bab07869c473
2022-10-29 16:49:27 -04:00
224152f7a4 libguile-jami: Expect user to call jami:init and jami:fini
Exit hooks are only called when in a REPL.  Thus, provide the user with bindings
for initialization and finalization of the daemon.  The syntax `with-jami' can be
used to ensure that finalization happens if initialization succeed.

Change-Id: I2f84a76844866a1de06300cde26618c8576045e5
2022-10-07 12:20:59 -04:00
a4ff4abe70 swarm: add method to save user's preferences
This store user's preferences per conversation into
conversation_data/<convId>/preferences
In this way, the daemon is able to sync this file across devices
and remove preferences at the same time we remove the conversation.

For now, only support "color" and "ignoreNotifications"

The preferences are synced via partial SyncMsg sent across devices.

Change-Id: I8fe74cc06733ad61d45d721e0264b1941d4cf122
2022-10-06 14:47:30 -04:00
ea327ff28e Rename libring to libjami
Change-Id: Id123f733759d6147f0f8fb9975b21fd8b0f1e558
2022-09-22 10:08:36 -04:00
02ac61d4d7 agent: Bundle bindings as a shared library
Instead of creating an agent executable, bundle the bindinds into a shared
library.  That way, we're adding an extension that Guile can load at runtime.
This shared library can be installed along with libjami so that users can use
the full power of Scheme to control their Jami accounts.

Also create a `guile-wraper' that compiles against the configuration flags.
This is necessary when building libjami with ASAN because then the executable
either has to LD_PRELOAD ASAN or compile against it.  This minimal wrapper
really just boot guile and start a REPL.

Change-Id: I984d211ff03322b102ebe8650950ac8487711e9d
2022-09-16 16:39:48 -04:00
44f4b0037f agent/utils: Add more integer types and remove ensure_type
Guile already checks for the type of its objects before converting to C.  Thus
we don't have to do the check ourself.

The check is still made in `apply_to_guile' to avoid packing values unnecessary
if the procedure is not really a procedure.  The check is also made when
registering callbacks because of their delayed nature.

Change-Id: Id879c04d119884ad1226ed2495b880681125bccc
2022-09-16 16:39:48 -04:00
a6148e7420 agent: Remove AGENT_ASSERT in favor of Guile exception
Instead of crashing the agent every time there's an error, just throw an
exception that can be handled by the user.

Change-Id: I18ac929e54b9cda6485754ccd52325db7dff66d9
2022-09-16 16:39:48 -04:00
206112b579 agent/main: Remove atexit(Dring::fini)
DRing::fini is currently unsafe for atexit.

Change-Id: If4643a5f5455190351c45eebad816cba5b8c642f
2022-09-09 07:48:45 -04:00
5af1041bf8 proposal: swarm: use log to search messages in conversations
This gives to clients the ability to perform search for messages
with several parameters (account's id, conversation's id, author,
period, max number).
(To discuss) This patch introduces the search API, and a signal
(MessagesFound) to return a result.

GitLab: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1382
Change-Id: Ibc4665449fa0da71a015d1d18d6d0d3209331d43
2022-09-06 09:32:08 -04:00
0d066a2e9f test/agent/scenarios/gitignore: Ignore run-scenario
Change-Id: Icad35be50347b26fdb9470b3878c09a403cdbf93
2022-06-17 14:59:18 -04:00
3e6d2a391d test/agent/Makefile: Fix compilation of Guile modules
Since we're not building Jami statically anymore, agent.exe is
generated under test/agent/.libs and the script `agent' is a wrapper
around it.  Thus, change agent.exe for `agent' for compilation of
scheme.

Change-Id: I8766ca6470ba1a9136d8eb6cb2d45b278fd85456
2022-06-17 14:59:18 -04:00
fb7d9b4db6 agent/scenarios/bulk-calls: Setup scenario for CI
Change-Id: I06a7f8da672946b20c353e4b5d3a3aaa499203fb
2022-06-17 14:59:18 -04:00
15460298ab agent: Add pre-inst-env script
The agent requires Jami's bindings to correctly run scenario.  This
can only be done if Guile can find the correct scripts.  Thus, the
pre-inst-env script can be used to setup the correct environment for
running the agent before its installation.

Change-Id: I474ef204bb33fd2098eee44b5b99c00f120c4536
2022-06-17 14:59:18 -04:00
e215d54a7d test/agent/scenarios: Add bulk calls
Gitlab: #687

Change-Id: Ib21093ab520165f02631aab483c1a86efc31aae7
2022-01-28 17:47:06 -05:00
945c4ce971 test/agent/jami/signal: Add syntax rules for signal handlers
Small helpers for signal handling.

`with-signal-handler` is useful for scoping signal handler and
`with-signal-handler-sync` for signal synchronization.

Change-Id: Idc7696fb273003d526f3a4658e7fb5623c2c5827
2022-01-28 17:47:06 -05:00
5018565239 misc: update copyright date to 2022
Change-Id: I795e3f2f69c07349bf84c87dbcafb502dc8490f8
2022-01-05 16:21:58 -05:00
e14868e43b doc/agent: Add agent documentation
Change-Id: I028985ac90d07199cfa30d33e21f55ebef228ff3
2021-12-30 11:30:29 -05:00
8bab18aad4 agent: Add compilation of Scheme file
Change-Id: Ic25a41cb28ae1e8b8dc51a149c304edc7f04ef50
2021-12-30 11:30:29 -05:00
aadc86900d agent: Add commentaries to examples and peer-monitor scenario
Change-Id: I3aae03770f302bfe043f7bf6070a99a0d56fcebc
2021-12-30 11:30:29 -05:00
ce1995d172 agent: Use GOOPS
GOOPS is Guile Object Oriented Programming System.

It's easier to extend and break less the scenarios using GOOPS.  e.g., a
scenario published on Gitlab should work two weeks later.  This is not the case
right now and the goal of using GOOPS is to offer a stable API for the agent,
while keeping it flexible.

Change-Id: If6a038b6d8c371f8e74849749770f1dec8559b91
2021-12-30 11:30:29 -05:00
02c5cecd36 agent/active-agent: Fix calling problems
Change-Id: I3f7b3fd9e5bea986f5b600273ae4ddb07bdd787a
2021-12-23 09:52:48 -05:00
a5aed459a0 agent/bindings/conversation: Add swarm bindings
Change-Id: I8a02ae82cb2cf1494a13b263aca0555ab84ed98f
2021-12-10 09:21:18 -05:00
b65146fed3 agent/bindings/account: Add add-contact, remove-contact bindings
Change-Id: I2fca281e9144d06243ca09879a1d86551ccd1996
2021-12-10 09:21:18 -05:00
66ab51817f agent/bindings/signal: Protect from GC callbacks
Change-Id: If91bed7badd8229aee216a91445b758e8901e573
2021-12-10 09:21:18 -05:00
df9dba9bba multi-stream - remove legacy code
Remove obsolete code kept for backward compatibility.
Add call transfer test case

Gitlab: #470

Change-Id: I81472b8308ec402911670e8658308a184b97206c
2021-11-22 15:37:14 -05:00
5e6b8823fb agent/bindings: Bump bindings to new API for calls, conferences
Change-Id: I759ebe5f1827c27468f0d60e91098c70257c7b30
2021-11-19 10:55:15 -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
d66edafb7d agent/agent: Use parameter instead of fluid
Change-Id: I365b4346d123b0cc8c71a17e62e25bae37e5fc49
2021-11-12 11:20:19 -05:00
562f8c8a56 agent/examples: Fix examples
Change-Id: Idf54e78391eb77c7964c6650b6f70df71b8eac3a
2021-11-12 11:19:23 -05:00
914a8ec516 agent/peer-monitor: Fix typo and add pause in sighandler
Change-Id: I298a8bdca4a9263a5afa332b8501b1fefc3929de
2021-11-12 09:42:17 -05:00
c7a48b2421 agent/scenarios: Add peer-monitor scenario
Change-Id: Idba6d4b23add47382d64afd06808ccce61b90bc8
2021-11-01 17:32:13 -04:00
f6a48f89e9 agent/bindings/account: Add bindings
Change-Id: Ifc363fee36bd10fba9211cddaa03d6fbd8e99d49
2021-11-01 09:35:43 -04:00
d182919763 agent/utils: Add from_guile()::operator uint8_t()
Change-Id: I00df0524c8b00ad55fffe1ab17e82ba8a8ee9c0a
2021-11-01 09:35:43 -04:00
d3cfb5bff2 agent/Makefile.am: Rename agent binary
Guile is confused by agent.scm and agent.  It will try to load the ELF file
instead of the Scheme script when `(use-modules (agent))`.

Change-Id: Ieead4c384f10df9ead351a6ae66b21f708e97424
2021-10-25 17:21:05 -04:00
ddecafc724 agent/utils: Add ensure_type() method to from_guile caster
With the help of a macro, we also get the context where the casting failed.

Change-Id: I7be3d63de9dd07994fb5c8cad39d5a93eedb7e8f
2021-10-25 17:21:05 -04:00
8806899a52 agent/bindings/signal: Add all Jami's signal bindings
Change-Id: I373ddb0efdeca41bf54e80aec4b9d1db69f77300
2021-10-25 09:59:11 -04:00
522e4c325a agent/bindings: Add LOG_BINDING() macro
Change-Id: I95edfc348e9ef431e4ad26827bdfdadbba0fc746
2021-10-25 09:48:54 -04:00
490384875e agent: Add logging to (agent) and examples
Change-Id: I39c2bca72f8b6feb1578aecf32f97738eadfd235
2021-10-25 09:48:54 -04:00
39626f45d9 agent/bindings/logger: Add Jami's logger foreign function bindings
Change-Id: Ib70fdc0739a0ab7216be851b35f55a1ecb72a9a2
2021-10-23 12:43:27 -04:00