jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-01-19T17:31:12Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/330Video-conference: (needs design) how to select moderators2021-01-19T17:31:12ZSébastien BlinVideo-conference: (needs design) how to select moderatorsActually moderators are all other accounts on the same device of the host. This needs to change. We need to determine a better way to give the ability to change layouts or hang up calls for other participantsActually moderators are all other accounts on the same device of the host. This needs to change. We need to determine a better way to give the ability to change layouts or hang up calls for other participantsIteration 26Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/40Records are cut off too soon2022-11-14T21:52:32ZPhilippe GorleyRecords are cut off too soonRecords drop the frames left in the queue once its stopped.
Steps:
1. Start recording
2. Wait (queue needs to be filled for it to be noticeable)
3. Stop recording
Expected result: last action/sound when stopping is included in the resu...Records drop the frames left in the queue once its stopped.
Steps:
1. Start recording
2. Wait (queue needs to be filled for it to be noticeable)
3. Stop recording
Expected result: last action/sound when stopping is included in the resulting file
Actual result: last action/sound when stopping is not in the resulting fileIteration 26Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/405Swarm: add displayName/size/hash to application/data-transfer+json2021-01-27T16:04:32ZSébastien BlinSwarm: add displayName/size/hash to application/data-transfer+json+ add displayName/size/hash to application/data-transfer+json
+ update doc+ add displayName/size/hash to application/data-transfer+json
+ update docIteration 27Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/394Plugin System: add "always"preference2021-02-01T19:51:38ZAline Gondim SantosPlugin System: add "always"preferenceAdd a preference that will automatically toggle a plug-in at call/conversation startAdd a preference that will automatically toggle a plug-in at call/conversation startIteration 27Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/393Swarm: replay_conversation. Some block at end + during join2021-01-27T16:04:22ZSébastien BlinSwarm: replay_conversation. Some block at end + during joinIteration 27Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/390audio: use Opus PLC and FEC2021-02-03T16:29:41ZAdrien Béraudaudio: use Opus PLC and FECAudio glitches are noticed in case of packet drop. Use Opus PLC and FEC to improve audio qualityAudio glitches are noticed in case of packet drop. Use Opus PLC and FEC to improve audio qualityIteration 27Pierre LespagnolPierre Lespagnol2021-04-01https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/388conference: occasional flicker of black frames / artifacts2021-01-30T01:53:41ZAdrien Béraudconference: occasional flicker of black frames / artifactsIteration 27Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/366Crash with H264_VAAPI2021-01-21T14:20:59ZPierre LespagnolCrash with H264_VAAPIThe crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/65888eb2ff40cf3d20665befcf72a4b2/bt.log)The crash occurs sometimes 30 seconds after the start of the call in the decoding part when H264_VAAPI codec is used.
[bt.log](/uploads/65888eb2ff40cf3d20665befcf72a4b2/bt.log)Iteration 27Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/342Recording issues2021-02-03T20:42:51ZPierre LespagnolRecording issues* [x] Audio or video cut off too soon #40
* [ ] Client crashes #1218
* [ ] Recording stop after change of input #236
* [ ] Use acceleration for recording #237
* [ ] Jami daemon crash when streaming a recorded file #270* [x] Audio or video cut off too soon #40
* [ ] Client crashes #1218
* [ ] Recording stop after change of input #236
* [ ] Use acceleration for recording #237
* [ ] Jami daemon crash when streaming a recorded file #270Iteration 27Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/653SIPCall - trigger a re-invite on media source change2021-10-27T21:14:14ZMohamed ChibaniSIPCall - trigger a re-invite on media source changeJami for educationMohamed ChibaniAline Gondim SantosMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/771ut_conference, sporadic crashes in testParticipantAddRmSecondVideo2023-03-31T15:55:27ZSébastien Blinut_conference, sporadic crashes in testParticipantAddRmSecondVideoOn current master (b7dd425660c420466d951f09e3c67e9d5f9eec90), sometimes:
# Stack
```
[1665072641.413|34936|sdp.cpp :606 ] Processing received offer for [Call ID 4153440945198650] with 2 media
malloc_consolidate(): unali...On current master (b7dd425660c420466d951f09e3c67e9d5f9eec90), sometimes:
# Stack
```
[1665072641.413|34936|sdp.cpp :606 ] Processing received offer for [Call ID 4153440945198650] with 2 media
malloc_consolidate(): unaligned fastbin chunk detected
Thread 1 "ut_conference" received signal SIGABRT, Aborted.
0x00007ffff668ec4c in __pthread_kill_implementation () from /lib64/libc.so.6
Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.2.7.2-1.fc36.x86_64 bzip2-libs-1.0.8-11.fc36.x86_64 cppunit-1.15.1-6.fc36.x86_64 dbus-libs-1.14.0-1.fc36.x86_64 expat-2.4.7-1.fc36.x86_64 flac-libs-1.3.4-1.fc36.x86_64 glibc-2.35-17.fc36.x86_64 gmp-6.2.1-2.fc36.x86_64 gnutls-3.7.7-1.fc36.x86_64 gsm-1.0.19-7.fc36.x86_64 jsoncpp-1.9.5-2.fc36.x86_64 lame-libs-3.100-12.fc36.x86_64 libX11-1.7.3.1-2.fc36.x86_64 libXau-1.0.9-8.fc36.x86_64 libXext-1.3.4-8.fc36.x86_64 libXfixes-6.0.0-3.fc36.x86_64 libargon2-20171227-9.fc36.x86_64 libasyncns-0.8-22.fc36.x86_64 libcap-2.48-4.fc36.x86_64 libdrm-2.4.110-1.fc36.x86_64 libgcc-12.2.1-2.fc36.x86_64 libgcrypt-1.10.1-3.fc36.x86_64 libgpg-error-1.45-1.fc36.x86_64 libidn2-2.3.3-1.fc36.x86_64 libogg-1.3.5-3.fc36.x86_64 libsndfile-1.1.0-4.fc36.x86_64 libstdc++-12.2.1-2.fc36.x86_64 libtasn1-4.18.0-2.fc36.x86_64 libunistring-1.0-1.fc36.x86_64 libuuid-2.38-1.fc36.x86_64 libva-2.14.0-1.fc36.x86_64 libvdpau-1.5-10.fc36.x86_64 libvorbis-1.3.7-5.fc36.x86_64 libxcb-1.13.1-9.fc36.x86_64 libzstd-1.5.2-2.fc36.x86_64 lz4-libs-1.9.3-4.fc36.x86_64 mpg123-libs-1.30.1-1.fc36.x86_64 nettle-3.8-1.fc36.x86_64 nss-mdns-0.15.1-5.fc36.x86_64 nvidia-driver-cuda-libs-515.76-1.fc36.x86_64 openssl-libs-3.0.5-1.fc36.x86_64 opus-1.3.1-10.fc36.x86_64 p11-kit-0.24.1-2.fc36.x86_64 pulseaudio-libs-15.0-5.fc36.x86_64 speex-1.2.0-10.fc36.x86_64 speexdsp-1.2.1-1.fc36.x86_64 systemd-libs-250.8-1.fc36.x86_64 x264-libs-0.163-6.20210613git5db6aa6.fc36.x86_64 xz-libs-5.2.5-9.fc36.x86_64 yaml-cpp-0.6.3-6.fc36.x86_64 zlib-1.2.11-33.fc36.x86_64
(gdb) bt
#0 0x00007ffff668ec4c in __pthread_kill_implementation () from /lib64/libc.so.6
#1 0x00007ffff663e9c6 in raise () from /lib64/libc.so.6
#2 0x00007ffff66287f4 in abort () from /lib64/libc.so.6
#3 0x00007ffff6682d9e in __libc_message () from /lib64/libc.so.6
#4 0x00007ffff669895c in malloc_printerr () from /lib64/libc.so.6
#5 0x00007ffff669aa8c in _int_free () from /lib64/libc.so.6
#6 0x00007ffff669d103 in free () from /lib64/libc.so.6
#7 0x000000000063b90c in jami::MediaDescription::~MediaDescription (this=0x7fff300212f8, __in_chrg=<optimized out>)
at /home/amarok/Projects/jami/daemon/src/media/media_codec.h:274
#8 0x0000000000906636 in jami::RtpSession::~RtpSession (this=0x7fff300210c0, __in_chrg=<optimized out>)
at ./media/rtp_session.h:51
#9 0x0000000000910ce3 in jami::video::VideoRtpSession::~VideoRtpSession (this=0x7fff300210c0,
__in_chrg=<optimized out>) at ./media/video/video_rtp_session.cpp:79
#10 0x00000000006a8c3a in std::_Destroy<jami::video::VideoRtpSession> (__pointer=0x7fff300210c0)
at /usr/include/c++/12/bits/stl_construct.h:151
#11 0x00000000006a8bde in std::allocator_traits<std::allocator<void> >::destroy<jami::video::VideoRtpSession> (
__p=0x7fff300210c0) at /usr/include/c++/12/bits/alloc_traits.h:648
#12 0x00000000006a8941 in std::_Sp_counted_ptr_inplace<jami::video::VideoRtpSession, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:613
#13 0x000000000049f957 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use (
this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:175
#14 0x000000000049d212 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold (
this=0x7fff300210b0) at /usr/include/c++/12/bits/shared_ptr_base.h:199
#15 0x000000000049a9db in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x7fff300210b0)
at /usr/include/c++/12/bits/shared_ptr_base.h:353
#16 0x000000000049d269 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x1eb9b38,
__in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1071
#17 0x00000000004cf40a in std::__shared_ptr<jami::RtpSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (
this=0x1eb9b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1524
#18 0x00000000004e3ef6 in std::shared_ptr<jami::RtpSession>::~shared_ptr (this=0x1eb9b30, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/shared_ptr.h:175
#19 0x00000000004e3f11 in std::_Destroy<std::shared_ptr<jami::RtpSession> > (__pointer=0x1eb9b30)
at /usr/include/c++/12/bits/stl_construct.h:151
#20 0x00000000004e17a1 in std::_Destroy_aux<false>::__destroy<std::shared_ptr<jami::RtpSession>*> (
__first=0x1eb9b30, __last=0x1eb9b40) at /usr/include/c++/12/bits/stl_construct.h:163
#21 0x00000000004ddade in std::_Destroy<std::shared_ptr<jami::RtpSession>*> (__first=0x1eb9b20, __last=0x1eb9b40)
at /usr/include/c++/12/bits/stl_construct.h:196
#22 0x00000000004d8169 in std::_Destroy<std::shared_ptr<jami::RtpSession>*, std::shared_ptr<jami::RtpSession> > (
__first=0x1eb9b20, __last=0x1eb9b40) at /usr/include/c++/12/bits/alloc_traits.h:850
#23 0x00000000004d2823 in std::vector<std::shared_ptr<jami::RtpSession>, std::allocator<std::shared_ptr<jami::RtpSession> > >::~vector (this=0x7fffffffc3b0, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_vector.h:730
#24 0x000000000068fa7f in jami::SIPCall::exitConference (this=0x1cb4670) at ./sip/sipcall.cpp:3061
#25 0x00000000004be2bb in jami::Conference::removeParticipant (this=0x1d2f140, participant_id="6158319920365303")
at conference.cpp:884
#26 0x00000000004fa526 in jami::Manager::removeParticipant (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
call=...) at manager.cpp:1545
#27 0x00000000004f7c22 in jami::Manager::hangupCall (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
callId="6158319920365303") at manager.cpp:1105
#28 0x00000000004f9424 in jami::Manager::ManagerPimpl::hangupConference (this=0x1cb7760, conference=...)
at manager.cpp:1370
#29 0x00000000004f7dc4 in jami::Manager::hangupConference (this=0x1a6d6e0 <jami::Manager::instance()::instance>,
accountId="15d9d069807f7c0d", confId="") at manager.cpp:1127
#30 0x00000000004849ff in jami::test::ConferenceTest::hangupConference (this=0x1cb37b0) at call/conference.cpp:311
#31 0x00000000004939b9 in jami::test::ConferenceTest::testParticipantAddRmSecondVideo (this=0x1cb37b0)
at call/conference.cpp:881
--Type <RET> for more, q to quit, c to continue without paging--
#32 0x00000000004ab82d in std::__invoke_impl<void, void (jami::test::ConferenceTest::*&)(), jami::test::ConferenceTest*&> (
__f=@0x1cd08e0: (void (jami::test::ConferenceTest::*)(jami::test::ConferenceTest * const)) 0x4930d6 <jami::test::ConferenceTest::testParticipantAddRmSecondVideo()>, __t=@0x1cd08f0: 0x1cb37b0) at /usr/include/c++/12/bits/invoke.h:74
#33 0x00000000004aad83 in std::__invoke<void (jami::test::ConferenceTest::*&)(), jami::test::ConferenceTest*&> (
__fn=@0x1cd08e0: (void (jami::test::ConferenceTest::*)(jami::test::ConferenceTest * const)) 0x4930d6 <jami::test::ConferenceTest::testParticipantAddRmSecondVideo()>) at /usr/include/c++/12/bits/invoke.h:96
#34 0x00000000004a9f4e in std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x1cd08e0, __args=...) at /usr/include/c++/12/functional:484
#35 0x00000000004a8942 in std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>::operator()<, void>() (this=0x1cd08e0) at /usr/include/c++/12/functional:567
#36 0x00000000004a7218 in std::__invoke_impl<void, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&>(std::__invoke_other, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&)
(__f=...) at /usr/include/c++/12/bits/invoke.h:61
#37 0x00000000004a563e in std::__invoke_r<void, std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&>(std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()>&) (__fn=...)
at /usr/include/c++/12/bits/invoke.h:111
#38 0x00000000004a3127 in std::_Function_handler<void (), std::_Bind<void (jami::test::ConferenceTest::*(jami::test::ConferenceTest*))()> >::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/12/bits/std_function.h:290
#39 0x000000000049dbb4 in std::function<void ()>::operator()() const (this=0x1cb0990)
at /usr/include/c++/12/bits/std_function.h:591
#40 0x00000000004acc14 in CppUnit::TestCaller<jami::test::ConferenceTest>::runTest (this=0x1cb0950)
at /usr/include/cppunit/TestCaller.h:175
#41 0x00007ffff7f7ea66 in CppUnit::TestCaseMethodFunctor::operator()() const () from /lib64/libcppunit-1.15.so.1
#42 0x00007ffff7f7e9b3 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) () from /lib64/libcppunit-1.15.so.1
#43 0x00007ffff7f77a23 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&)
() from /lib64/libcppunit-1.15.so.1
#44 0x00007ffff7f8041a in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib64/libcppunit-1.15.so.1
#45 0x00007ffff7f88dba in CppUnit::TestCase::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#46 0x00007ffff7f7edad in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
from /lib64/libcppunit-1.15.so.1
#47 0x00007ffff7f7ebdb in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#48 0x00007ffff7f7edad in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) ()
from /lib64/libcppunit-1.15.so.1
#49 0x00007ffff7f7ebdb in CppUnit::TestComposite::run(CppUnit::TestResult*) () from /lib64/libcppunit-1.15.so.1
#50 0x00007ffff7f7f716 in CppUnit::TestResult::runTest(CppUnit::Test*) () from /lib64/libcppunit-1.15.so.1
#51 0x00007ffff7f86143 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib64/libcppunit-1.15.so.1
#52 0x00007ffff7f912c4 in CppUnit::TextTestRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) () from /lib64/libcppunit-1.15.so.1
#53 0x0000000000493e9b in main () at call/conference.cpp:889
```Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/722ICE/TURN - assertion failure in PJNATH2022-07-22T15:25:27ZMohamed ChibaniICE/TURN - assertion failure in PJNATHAssertion failure in pjnath (pj_assert) when calling pj_ice_strans_init_ice. See back trace in the comments. The error seems to be caused by a failure of TURN allocation. \
Note that the assertion is only enabled in debug mode. In releas...Assertion failure in pjnath (pj_assert) when calling pj_ice_strans_init_ice. See back trace in the comments. The error seems to be caused by a failure of TURN allocation. \
Note that the assertion is only enabled in debug mode. In release mode, the error might not be noticeable, ICE session will succeed/fail depending on the other candidates of the impacted component. \
Might be related to https://github.com/pjsip/pjproject/pull/2525Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/721UPNP - Change port allocation/mapping policy for media (RTP/RTCP ports)2024-02-14T14:07:55ZMohamed ChibaniUPNP - Change port allocation/mapping policy for media (RTP/RTCP ports)RTP and RTCP port numbers are determined using port ranges from user configuration. The ranges are configured per media type (audio and video). The current behavior has few issues such:
- The configuration is limited to 2 streams: one au...RTP and RTCP port numbers are determined using port ranges from user configuration. The ranges are configured per media type (audio and video). The current behavior has few issues such:
- The configuration is limited to 2 streams: one audio stream and one video stream.
- Pre-defined port numbers will conflict with UPNP port mappings.
The required changes are as follows:
- Remove the restriction of media stream count to 2 streams.
- Do not use pre-defined port when requesting UPNP ports.
- Configuration of media port ranges should not be necessary anymore.Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/720Support DTMF2023-06-16T18:56:18ZSébastien BlinSupport DTMFTo be definedTo be definedBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/713Conference layout seems broken after 25+ participants2024-02-14T14:07:15ZSébastien BlinConference layout seems broken after 25+ participants# Scenario
+ Start a conference with 25 participants
+ Another participant join
# Expected
+ The layout should be updated
# Current result
Seems blocked to the previous view# Scenario
+ Start a conference with 25 participants
+ Another participant join
# Expected
+ The layout should be updated
# Current result
Seems blocked to the previous viewBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/711video rotation - handle multi-stream2022-07-05T18:02:18ZMohamed Chibanivideo rotation - handle multi-streamBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/706pjnath/turn_session: Bad TURN session state2024-02-14T14:06:29ZOlivier Dionpjnath/turn_session: Bad TURN session stateIn pjnath/turn_session.c:
```c
1192 PJ_ASSERT_RETURN(sess->state == PJ_TURN_STATE_READY, PJ_EINVALIDOP);
```
w...In pjnath/turn_session.c:
```c
1192 PJ_ASSERT_RETURN(sess->state == PJ_TURN_STATE_READY, PJ_EINVALIDOP);
```
where `sess->state` has the value `PJ_TURN_STATE_DESTROYING`.
Discovered by: agent's scenario `make-call`
Passive agent log: [passive.log.gz](/uploads/a6476e40a8be86c7059f9e22674d1b67/passive.log.gz)
Active agent log: [make-call.log.gz](/uploads/fc06004cdc28de838667332216a08c3a/make-call.log.gz)
Backtrace trace, see Thread 51: [gdb.txt](/uploads/7f47530f51acdd00aee0e527cf0e570f/gdb.txt)
Tested on jami-daemon@07804eb312350a1ec896c7f271464ca2b3475869Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/702UPNP-NATPMP - Add a unit test with minimal validation2022-11-26T22:41:53ZMohamed ChibaniUPNP-NATPMP - Add a unit test with minimal validationBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/698UPNP/ICE/TCP - ICE/TCP connection using relay should be reset if a UPNP/NAT-P...2024-02-14T14:07:50ZMohamed ChibaniUPNP/ICE/TCP - ICE/TCP connection using relay should be reset if a UPNP/NAT-PMP is availableBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/697macOs/Daemon - Account can not re-register to DHT using the same port2023-03-03T21:09:21ZSébastien BlinmacOs/Daemon - Account can not re-register to DHT using the same portOn macOs, registering the account to the DHT sometimes fail with "Address already in use".
The client/system seems to fail to close the DHT socket, or does not close it fast enough.On macOs, registering the account to the DHT sometimes fail with "Address already in use".
The client/system seems to fail to close the DHT socket, or does not close it fast enough.Backlog