calls issueshttps://source.puri.sm/Librem5/calls/-/issues2021-07-10T04:18:46Zhttps://source.puri.sm/Librem5/calls/-/issues/304Sofa 1.13.3 does not include the contact header2021-07-10T04:18:46ZEvangelos Ribeiro TzarasSofa 1.13.3 does not include the contact headerWhich can lead to calls not being successfully placed:
```
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.879: The call state has changed: 000 INVITE sent
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.880: response to outgoi...Which can lead to calls not being successfully placed:
```
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.879: The call state has changed: 000 INVITE sent
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.880: response to outgoing INVITE: 400 Missing Contact header
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.880: The call state has changed: 400 Missing Contact header
(sm.puri.Calls:4839): CallsSipOrigin-DEBUG: 19:18:09.881: Call terminated. Deactivating media pipeline
```
See https://github.com/freeswitch/sofia-sip/issues/25 and https://github.com/freeswitch/sofia-sip/issues/52https://source.puri.sm/Librem5/calls/-/issues/302Please consider switching to libcall-ui2021-07-02T17:58:29ZGuido GuntherPlease consider switching to libcall-uiI've split the call-ui into [libcall-ui](https://gitlab.gnome.org/guidog/libcall-ui/) so it can be shared between calls and shell without forcing both to use the same versions.
Example usage is in the repos demo and in https://source.p...I've split the call-ui into [libcall-ui](https://gitlab.gnome.org/guidog/libcall-ui/) so it can be shared between calls and shell without forcing both to use the same versions.
Example usage is in the repos demo and in https://source.puri.sm/Librem5/phosh/-/merge_requests/780 's PhoshCall class. Usage in calls should be similar (just that the interface is backed by CallsCall and CallsBestMatch instead of the DBus interface).https://source.puri.sm/Librem5/calls/-/issues/301Don't close call window right away2021-07-04T13:00:35ZGuido GuntherDon't close call window right awayWhen one hangs up or the other side ends the call the call window is closed right away without any animation or status message so one sometimes thinks that the call just crashed. I think it would be better to keep the call window around ...When one hangs up or the other side ends the call the call window is closed right away without any animation or status message so one sometimes thinks that the call just crashed. I think it would be better to keep the call window around for a second and display "Call ended" or something similar for a split second.
/cc @tobias.bernardhttps://source.puri.sm/Librem5/calls/-/issues/299Update metainfo.xml on release2021-07-05T13:04:07ZEvangelos Ribeiro TzarasUpdate metainfo.xml on releaseSee https://source.puri.sm/Librem5/calls/-/blob/master/data/sm.puri.Calls.metainfo.xml#L67
and the spec: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-releases
I'm wondering if I could come up with something...See https://source.puri.sm/Librem5/calls/-/blob/master/data/sm.puri.Calls.metainfo.xml#L67
and the spec: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-releases
I'm wondering if I could come up with something similar to https://source.puri.sm/Librem5/calls/-/blob/master/debian/gbp.conf#L10 to make my life easier.https://source.puri.sm/Librem5/calls/-/issues/297calls_call_get_number () should never return empty string2021-06-21T09:41:50ZEvangelos Ribeiro Tzarascalls_call_get_number () should never return empty stringThe following discussion from !351 should be addressed:
- [ ] @guido.gunther started a [discussion](https://source.puri.sm/Librem5/calls/-/merge_requests/351#note_161111):
> Looking at this: is it any useful t have `calls_call_get...The following discussion from !351 should be addressed:
- [ ] @guido.gunther started a [discussion](https://source.puri.sm/Librem5/calls/-/merge_requests/351#note_161111):
> Looking at this: is it any useful t have `calls_call_get_number ()` ever to return the empty string `""`. I think the root cause is that this didn't happen in earlier versions (when i wrote that code) hence this regression. I can imagine more UI situations where it would be easier to just be sure this is an unknown caller if `calls_call_get_get_number ()` would reutrn NULL in that case.
I don't quite know when that changed, but I agree with your assesment that `calls_call_get_number()` should not return an empty string.https://source.puri.sm/Librem5/calls/-/issues/296Test suite failure when running with address sanitization2021-06-21T07:14:42ZEvangelos Ribeiro TzarasTest suite failure when running with address sanitization```
ninja: Entering directory `_build'
[1/21] Generating version.h with a custom command
[1/2] Running all tests.
1/12 Validate desktop file OK 0.01s
2/12 Validate daemon desktop file OK 0.01s
3/12 Valid...```
ninja: Entering directory `_build'
[1/21] Generating version.h with a custom command
[1/2] Running all tests.
1/12 Validate desktop file OK 0.01s
2/12 Validate daemon desktop file OK 0.01s
3/12 Validate appstream file OK 0.04s
4/12 Validate schema file OK 0.01s
5/12 provider OK 0.13s
7/12 call OK 0.13s
9/12 plugins OK 0.12s
12/12 util OK 0.12s
The output from the failed tests:
6/12 origin FAIL 0.27s (exit status 1)
--- command ---
07:13:09 G_TEST_BUILDDIR='/home/fortysixandtwo/git/calls/_build/tests' PYTHONDONTWRITEBYTECODE='yes' MALLOC_CHECK_='2' G_TEST_SRCDIR='/home/fortysixandtwo/git/calls/tests' NO_AT_BRIDGE='1' CALLS_AUDIOSINK='fakesink' CALLS_AUDIOSRC='audiotestsrc' GSETTINGS_BACKEND='memory' G_DEBUG='gc-friendly,fatal-warnings' /home/fortysixandtwo/git/calls/_build/tests/origin
--- stdout ---
# random seed: R02Sd2dffecdc3dc14ad22335b0e37ae864b
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ?gsettings-backend?
# GLib-DEBUG: unsetenv() is not thread-safe and should not be used after threads are created
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ?gio-vfs?
1..3
# Start of Calls tests
# Start of Origin tests
ok 1 /Calls/Origin/object
ok 2 /Calls/Origin/get_name
ok 3 /Calls/Origin/calls
# End of Origin tests
# End of Calls tests
--- stderr ---
=================================================================
==1015912==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 13 byte(s) in 1 object(s) allocated from:
#0 0x7f8ba1fa8e8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7f8ba1dcdd48 in g_malloc ../../../glib/gmem.c:106
SUMMARY: AddressSanitizer: 13 byte(s) leaked in 1 allocation(s).
-------
8/12 manager FAIL 0.32s (exit status 1)
--- command ---
07:13:09 G_TEST_BUILDDIR='/home/fortysixandtwo/git/calls/_build/tests' PYTHONDONTWRITEBYTECODE='yes' MALLOC_CHECK_='2' G_TEST_SRCDIR='/home/fortysixandtwo/git/calls/tests' NO_AT_BRIDGE='1' CALLS_AUDIOSINK='fakesink' CALLS_AUDIOSRC='audiotestsrc' GSETTINGS_BACKEND='memory' G_DEBUG='gc-friendly,fatal-warnings' /home/fortysixandtwo/git/calls/_build/tests/manager
--- stdout ---
# random seed: R02S456f2bb777b108103df184bce560d2ba
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ?gsettings-backend?
# GLib-DEBUG: unsetenv() is not thread-safe and should not be used after threads are created
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ?gio-vfs?
1..4
# Start of Calls tests
# Start of Manager tests
# CallsManager-DEBUG: Scanning for plugins in `/home/fortysixandtwo/install/lib/x86_64-linux-gnu/calls/plugins'
ok 1 /Calls/Manager/without_provider
# CallsManager-DEBUG: Scanning for plugins in `/home/fortysixandtwo/install/lib/x86_64-linux-gnu/calls/plugins'
# CallsProvider-DEBUG: Loaded plugin `dummy'
# CallsProvider-DEBUG: Created provider from plugin `dummy'
# CallsManager-DEBUG: origins changed: pos=0 rem=0 added=1 total=1
# CallsManager-DEBUG: before adding: 0
# CallsManager-DEBUG: Adding origin Dummy origin (0x619000370390)
# CallsManager-DEBUG: after adding: 1
# CallsManager-DEBUG: Remove provider: dummy
# CallsManager-DEBUG: Removing origin Dummy origin (0x619000370390)
ok 2 /Calls/Manager/dummy_provider
# CallsManager-DEBUG: Scanning for plugins in `/home/fortysixandtwo/install/lib/x86_64-linux-gnu/calls/plugins'
# CallsProvider-DEBUG: Loaded plugin `mm'
# CallsMMProvider-DEBUG: Watching for ModemManager
# CallsProvider-DEBUG: Created provider from plugin `mm'
# CallsManager-DEBUG: origins changed: pos=0 rem=0 added=0 total=0
# CallsManager-DEBUG: Remove provider: mm
ok 3 /Calls/Manager/mm_provider
# CallsManager-DEBUG: Scanning for plugins in `/home/fortysixandtwo/install/lib/x86_64-linux-gnu/calls/plugins'
# CallsProvider-DEBUG: Loaded plugin `sip'
# CallsProvider-DEBUG: Created provider from plugin `sip'
# CallsManager-DEBUG: origins changed: pos=0 rem=0 added=0 total=0
# CallsAccountProvider-DEBUG: Trying to add account for Alice
# CallsSipOrigin-DEBUG: Updating credentials
# CallsSipOrigin-DEBUG: Protocol not set, falling back to 'UDP'
# CallsSipMediaManager-DEBUG: Creating CallsSipMediaManager
# CallsGstRfc3551-DEBUG: Gstreamer plugin for PCMA is available
# CallsGstRfc3551-DEBUG: Adding PCMA to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for PCMU is available
# CallsGstRfc3551-DEBUG: Adding PCMU to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for GSM is available
# CallsGstRfc3551-DEBUG: Adding GSM to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for G722 is available
# CallsGstRfc3551-DEBUG: Adding G722 to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for G723 is available
# CallsGstRfc3551-DEBUG: Adding G723 to the codec candidates
# CallsManager-DEBUG: origins changed: pos=0 rem=0 added=1 total=1
# CallsManager-DEBUG: before adding: 0
# CallsManager-DEBUG: Adding origin Alice (0x61d0002f5dc0)
# CallsManager-DEBUG: after adding: 1
# CallsAccountProvider-DEBUG: Trying to add account for Alice
# CallsSipProvider-DEBUG: Cannot add credentials with name 'Alice' multiple times
# CallsAccountProvider-DEBUG: Trying to add account for Bob
# CallsSipOrigin-DEBUG: Updating credentials
# CallsSipOrigin-DEBUG: Protocol not set, falling back to 'UDP'
# CallsManager-DEBUG: origins changed: pos=1 rem=0 added=1 total=2
# CallsManager-DEBUG: before adding: 1
# CallsManager-DEBUG: Adding origin Bob (0x61d0002f66b0)
# CallsManager-DEBUG: after adding: 2
# CallsProvider-DEBUG: Loaded plugin `mm'
# CallsMMProvider-DEBUG: Watching for ModemManager
# CallsProvider-DEBUG: Created provider from plugin `mm'
# CallsManager-DEBUG: origins changed: pos=0 rem=0 added=0 total=0
# CallsAccountProvider-DEBUG: Trying to remove account from Alice
# CallsManager-DEBUG: origins changed: pos=0 rem=1 added=0 total=1
# CallsManager-DEBUG: Removing origin Alice (0x61d0002f5dc0)
# CallsAccountProvider-DEBUG: Trying to remove account from Alice
# CallsManager-DEBUG: Remove provider: mm
# CallsAccountProvider-DEBUG: Trying to remove account from Bob
# CallsManager-DEBUG: origins changed: pos=0 rem=1 added=0 total=0
# CallsManager-DEBUG: Removing origin Bob (0x61d0002f66b0)
ok 4 /Calls/Manager/multiple_provider_mm_sip
# End of Manager tests
# End of Calls tests
--- stderr ---
su_source_port_create() returns 0x61400002bea0
=================================================================
==1015923==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7fcbbd323e8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7fcbbd148d48 in g_malloc ../../../glib/gmem.c:106
SUMMARY: AddressSanitizer: 16384 byte(s) leaked in 1 allocation(s).
-------
10/12 sip FAIL 0.42s (exit status 1)
--- command ---
07:13:09 G_TEST_BUILDDIR='/home/fortysixandtwo/git/calls/_build/tests' PYTHONDONTWRITEBYTECODE='yes' MALLOC_CHECK_='2' G_TEST_SRCDIR='/home/fortysixandtwo/git/calls/tests' NO_AT_BRIDGE='1' CALLS_AUDIOSINK='fakesink' CALLS_AUDIOSRC='audiotestsrc' GSETTINGS_BACKEND='memory' G_DEBUG='gc-friendly,fatal-warnings' /home/fortysixandtwo/git/calls/_build/tests/sip
--- Listing only the last 100 lines from a long log. ---
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-send-src has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-src has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element encoder has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element encoder has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-src has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-src has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element source has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element depayloader has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element source has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element depayloader has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-send-pipeline has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-recv-pipeline has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-send-pipeline has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-recv-pipeline has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-send-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-send-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpstorage9 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpssrcdemux8 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpstorage7 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpssrcdemux6 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpssrcdemux9 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpstorage8 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpssrcdemux7 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpstorage6 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpsession9 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpsession8 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpsession7 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtpsession6 has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element send-rtpbin has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element recv-rtpbin has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element send-rtpbin has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element recv-rtpbin has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element payloader has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element decoder has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element payloader has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element decoder has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-send-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-send-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element encoder has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element encoder has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtcp-udp-recv-src has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element source has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element depayloader has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element source has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element depayloader has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-sink has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-sink has changed state from READY to PAUSED
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-udp-sink has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-send-pipeline has changed state from PAUSED to PLAYING
# CallsSipMediaPipeline-DEBUG: Element rtp-send-pipeline has changed state from PAUSED to PLAYING
# DEBUG: Hanging up call
# CallsSipCall-DEBUG: Hanging up ongoing call
# CallsSipOrigin-DEBUG: incoming BYE: 200 Session Terminated
# CallsSipOrigin-DEBUG: The call state has changed: 200 Session Terminated
# CallsSipOrigin-DEBUG: Call terminated. Deactivating media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipOrigin-DEBUG: response to BYE: 200 OK
# CallsSipOrigin-DEBUG: The call state has changed: 200 to BYE
# CallsSipOrigin-DEBUG: Call terminated. Deactivating media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipMediaPipeline-DEBUG: Stopping media pipeline
# CallsSipOrigin-DEBUG: Requesting nua_shutdown ()
# CallsSipOrigin-DEBUG: response to nua_shutdown: 200 Shutdown successful
# CallsSipOrigin-DEBUG: nua_shutdown () complete. Destroying nua handle
# CallsSipOrigin-DEBUG: Requesting nua_shutdown ()
# CallsSipOrigin-DEBUG: response to nua_shutdown: 200 Shutdown successful
# CallsSipOrigin-DEBUG: nua_shutdown () complete. Destroying nua handle
# CallsSipOrigin-DEBUG: Requesting nua_shutdown ()
# CallsSipOrigin-DEBUG: response to nua_shutdown: 200 Shutdown successful
# CallsSipOrigin-DEBUG: nua_shutdown () complete. Destroying nua handle
ok 5 /Calls/SIP/calls_direct_call
ok 6 /Calls/SIP/media_manager
# End of SIP tests
# End of Calls tests
--- stderr ---
su_source_port_create() returns 0x61400001aaa0
su_source_port_create() returns 0x61400001aca0
su_source_port_create() returns 0x61400001aea0
su_source_port_create() returns 0x6140000222a0
su_source_port_create() returns 0x6140000224a0
=================================================================
==1015926==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7f0c6bd4ce8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7f0c6ba94d48 in g_malloc ../../../glib/gmem.c:106
SUMMARY: AddressSanitizer: 16384 byte(s) leaked in 1 allocation(s).
-------
11/12 account FAIL 0.32s (exit status 1)
--- command ---
07:13:09 G_TEST_BUILDDIR='/home/fortysixandtwo/git/calls/_build/tests' PYTHONDONTWRITEBYTECODE='yes' MALLOC_CHECK_='2' G_TEST_SRCDIR='/home/fortysixandtwo/git/calls/tests' NO_AT_BRIDGE='1' CALLS_AUDIOSINK='fakesink' CALLS_AUDIOSRC='audiotestsrc' GSETTINGS_BACKEND='memory' G_DEBUG='gc-friendly,fatal-warnings' /home/fortysixandtwo/git/calls/_build/tests/account
--- stdout ---
# random seed: R02S48720ac004ffaf9503885acb47b8effb
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ?gsettings-backend?
# GLib-DEBUG: unsetenv() is not thread-safe and should not be used after threads are created
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ?gio-vfs?
1..1
# Start of Calls tests
# Start of Account tests
# CallsProvider-DEBUG: Loaded plugin `sip'
# CallsProvider-DEBUG: Created provider from plugin `sip'
# CallsAccountProvider-DEBUG: Trying to add account for Alice
# CallsSipOrigin-DEBUG: Updating credentials
# CallsSipOrigin-DEBUG: Protocol not set, falling back to 'UDP'
# CallsSipMediaManager-DEBUG: Creating CallsSipMediaManager
# CallsGstRfc3551-DEBUG: Gstreamer plugin for PCMA is available
# CallsGstRfc3551-DEBUG: Adding PCMA to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for PCMU is available
# CallsGstRfc3551-DEBUG: Adding PCMU to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for GSM is available
# CallsGstRfc3551-DEBUG: Adding GSM to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for G722 is available
# CallsGstRfc3551-DEBUG: Adding G722 to the codec candidates
# CallsGstRfc3551-DEBUG: Gstreamer plugin for G723 is available
# CallsGstRfc3551-DEBUG: Adding G723 to the codec candidates
# CallsAccountProvider-DEBUG: Trying to add account for Bob
# CallsSipOrigin-DEBUG: Updating credentials
# CallsSipOrigin-DEBUG: Protocol not set, falling back to 'UDP'
# CallsAccountProvider-DEBUG: Trying to get account from Alice
# CallsAccountProvider-DEBUG: Trying to get account from Alice
# CallsAccountProvider-DEBUG: Trying to get account from Bob
# CallsAccountProvider-DEBUG: Trying to get account from Bob
# CallsAccountProvider-DEBUG: Trying to get account from Alice
# CallsAccountProvider-DEBUG: Trying to get account from Bob
# CallsAccountProvider-DEBUG: Trying to add account for Alice
# CallsSipProvider-DEBUG: Cannot add credentials with name 'Alice' multiple times
# CallsAccountProvider-DEBUG: Trying to remove account from Alice
# CallsSipOrigin-DEBUG: Requesting nua_shutdown ()
# CallsSipOrigin-DEBUG: response to nua_shutdown: 200 Shutdown successful
# CallsSipOrigin-DEBUG: nua_shutdown () complete. Destroying nua handle
# CallsAccountProvider-DEBUG: Trying to remove account from Alice
# CallsAccountProvider-DEBUG: Trying to remove account from Bob
# CallsSipOrigin-DEBUG: Requesting nua_shutdown ()
# CallsSipOrigin-DEBUG: response to nua_shutdown: 200 Shutdown successful
# CallsSipOrigin-DEBUG: nua_shutdown () complete. Destroying nua handle
# CallsAccountProvider-DEBUG: Trying to remove account from Bob
ok 1 /Calls/Account/basic
# End of Account tests
# End of Calls tests
--- stderr ---
su_source_port_create() returns 0x61400001aaa0
=================================================================
==1015928==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16384 byte(s) in 1 object(s) allocated from:
#0 0x7ff4c61c1e8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7ff4c5f09d48 in g_malloc ../../../glib/gmem.c:106
SUMMARY: AddressSanitizer: 16384 byte(s) leaked in 1 allocation(s).
-------
Summary of Failures:
6/12 origin FAIL 0.27s (exit status 1)
8/12 manager FAIL 0.32s (exit status 1)
10/12 sip FAIL 0.42s (exit status 1)
11/12 account FAIL 0.32s (exit status 1)
Ok: 8
Expected Fail: 0
Fail: 4
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /home/fortysixandtwo/git/calls/_build/meson-logs/testlog.txt
FAILED: meson-test
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
```https://source.puri.sm/Librem5/calls/-/issues/293Dial action disabled, with MM+Sip provider, when there is no modem2021-06-04T17:23:35ZEvangelos Ribeiro TzarasDial action disabled, with MM+Sip provider, when there is no modemThis was introduced by dc0242eda54123c90726056ff69a3f4cb199309a.
Now with multiple usable providers, this needs to be changed.
Possibly we need a different action for VoIP?
so maybe `app.dial-telephone` and `app.dial-sip`.
Or the disa...This was introduced by dc0242eda54123c90726056ff69a3f4cb199309a.
Now with multiple usable providers, this needs to be changed.
Possibly we need a different action for VoIP?
so maybe `app.dial-telephone` and `app.dial-sip`.
Or the disable mechanism needs to be altered (although that seems very sensible to me).https://source.puri.sm/Librem5/calls/-/issues/290Dummy provider does not like triggering more than one call2021-05-20T16:40:20ZEvangelos Ribeiro TzarasDummy provider does not like triggering more than one callSending SIGUSR1 to the calls process will trigger an incoming call if the dummy provider is in use.
Sending SIGUSR1 a second time, while the first call is not yet answered/rejected leads to infinite ringing,
user controls (accept butto...Sending SIGUSR1 to the calls process will trigger an incoming call if the dummy provider is in use.
Sending SIGUSR1 a second time, while the first call is not yet answered/rejected leads to infinite ringing,
user controls (accept button, reject button) not working and general weirdness.
`** (sm.puri.Calls:2996): CRITICAL **: 09:09:46.290: calls_dummy_call_answer: assertion 'self->state == CALLS_CALL_STATE_INCOMING' failed`
found during investigation into #195https://source.puri.sm/Librem5/calls/-/issues/287Use uncrustify2021-05-05T14:29:27ZEvangelos Ribeiro TzarasUse uncrustifySee f.e. https://source.puri.sm/Librem5/librem5-dev-tools/-/blob/master/config/uncrustify/phosh.cfg
(hinted at in https://source.puri.sm/Librem5/calls/-/merge_requests/280#note_153281)See f.e. https://source.puri.sm/Librem5/librem5-dev-tools/-/blob/master/config/uncrustify/phosh.cfg
(hinted at in https://source.puri.sm/Librem5/calls/-/merge_requests/280#note_153281)https://source.puri.sm/Librem5/calls/-/issues/286Structured logging2021-06-01T13:15:21ZEvangelos Ribeiro TzarasStructured loggingIt would be nice if we could start up calls with different levels of verbosity (helpful for bug reports).
Also think about anonymizing/pseudomizing personally identifiable data (f.e. hashing and using a nonce - maybe system startup time...It would be nice if we could start up calls with different levels of verbosity (helpful for bug reports).
Also think about anonymizing/pseudomizing personally identifiable data (f.e. hashing and using a nonce - maybe system startup time or something?)
Related https://source.puri.sm/Librem5/calls/-/issues/5https://source.puri.sm/Librem5/calls/-/issues/284USSD provide error message when ussd fails2021-04-29T12:56:40ZJoao AzevedoUSSD provide error message when ussd failsIt seems that `calls` does not provide any error message when USSD codes fail for form reason.
It just presents the spinning wheel indefinitely.
If an error message is not possible then maybe `calls` can stop trying to send the USSD co...It seems that `calls` does not provide any error message when USSD codes fail for form reason.
It just presents the spinning wheel indefinitely.
If an error message is not possible then maybe `calls` can stop trying to send the USSD code after say 120 seconds, and inform the user that it was not possible.https://source.puri.sm/Librem5/calls/-/issues/282autopkgtest: Test the SIP plugin against an embedded server2021-04-27T12:00:42ZEvangelos Ribeiro Tzarasautopkgtest: Test the SIP plugin against an embedded serverIdea: Use a SIP server (kamailio?) to test registering and placing/receiving calls.Idea: Use a SIP server (kamailio?) to test registering and placing/receiving calls.https://source.puri.sm/Librem5/calls/-/issues/281Test SIP call with multiple registered endpoints2021-04-27T11:58:07ZEvangelos Ribeiro TzarasTest SIP call with multiple registered endpointsTest what happens with multiple endpoints:
If we have two endpoints (A and B) registered on the same accounts that we endpoint B stops ringing
when endpoint A accepts the call (also: what should happen when A rejects the call?).
Maybe ...Test what happens with multiple endpoints:
If we have two endpoints (A and B) registered on the same accounts that we endpoint B stops ringing
when endpoint A accepts the call (also: what should happen when A rejects the call?).
Maybe we can automate this test even.https://source.puri.sm/Librem5/calls/-/issues/280Mock ModemManager DBus interface for tests2021-04-26T16:48:41ZEvangelos Ribeiro TzarasMock ModemManager DBus interface for testsThis will allow to test f.e. if !308 really helps with connection issues or not.This will allow to test f.e. if !308 really helps with connection issues or not.https://source.puri.sm/Librem5/calls/-/issues/278Make sure IPv6 works in SIP2021-05-05T14:21:48ZEvangelos Ribeiro TzarasMake sure IPv6 works in SIPThere are a few TODOs in the code.
Need to recheck the current status.
With respect to signalling it's basically about setting up the binding on the network interfaces.
For SDP offer/answer it's about using the correct tag.
No idea ye...There are a few TODOs in the code.
Need to recheck the current status.
With respect to signalling it's basically about setting up the binding on the network interfaces.
For SDP offer/answer it's about using the correct tag.
No idea yet what the status is with respect to the media pipelines.Basic SIP functionalityhttps://source.puri.sm/Librem5/calls/-/issues/277Allow SIP provider/origins to handle tel URIs2021-04-27T08:54:50ZEvangelos Ribeiro TzarasAllow SIP provider/origins to handle tel URIssee https://tools.ietf.org/html/rfc3261#section-19.1.6see https://tools.ietf.org/html/rfc3261#section-19.1.6https://source.puri.sm/Librem5/calls/-/issues/276Support DTMF for SIP2021-04-26T08:42:22ZEvangelos Ribeiro TzarasSupport DTMF for SIPThere are gstreamer elements for this too! https://gstreamer.freedesktop.org/documentation/dtmf/rtpdtmfsrc.html?gi-language=c#rtpdtmfsrcThere are gstreamer elements for this too! https://gstreamer.freedesktop.org/documentation/dtmf/rtpdtmfsrc.html?gi-language=c#rtpdtmfsrchttps://source.puri.sm/Librem5/calls/-/issues/275Errors/warnings should be shown to the user (Rework CallsMessageSourceInterfa...2021-05-05T14:18:57ZEvangelos Ribeiro TzarasErrors/warnings should be shown to the user (Rework CallsMessageSourceInterface?)This is especially useful in SIP, where you might call a wrong address (404 not found) or don't have an internet connection (503 DNS error), but also for MM when there are issues with the modem (i.e. #178 )This is especially useful in SIP, where you might call a wrong address (404 not found) or don't have an internet connection (503 DNS error), but also for MM when there are issues with the modem (i.e. #178 )Basic SIP functionalityhttps://source.puri.sm/Librem5/calls/-/issues/274Robust/Multiple rounds of SDP offer/answer2021-04-27T00:20:56ZEvangelos Ribeiro TzarasRobust/Multiple rounds of SDP offer/answerWe currently only support a relative simple offer/answer model.
Basically only the "Basic call" as in http://sofia-sip.sourceforge.net/refdocs/soa/soa_sdp_oa_use_cases.html
Related #273We currently only support a relative simple offer/answer model.
Basically only the "Basic call" as in http://sofia-sip.sourceforge.net/refdocs/soa/soa_sdp_oa_use_cases.html
Related #273https://source.puri.sm/Librem5/calls/-/issues/273Support provisional responses2021-04-25T21:45:35ZEvangelos Ribeiro TzarasSupport provisional responsesSee f.e. https://tools.ietf.org/html/rfc3261#section-21.1See f.e. https://tools.ietf.org/html/rfc3261#section-21.1