Commit Graph
100 Commits
Author SHA1 Message Date
Evangelos Ribeiro Tzaras a4f845206e mm-provider: Remove unused variable 2022-09-03 18:26:55 +02:00
Evangelos Ribeiro Tzaras 551bb00e20 hacking: Refresh links 2022-09-03 16:52:16 +02:00
Evangelos Ribeiro Tzaras 1cbc948e12 readme: Update links to d/control 2022-09-03 16:52:16 +02:00
Evangelos Ribeiro Tzaras 2f56836720 ci: Publish pages for main branch (not master)
This is a follow up to renaming the default branch
2022-09-03 16:52:16 +02:00
Evangelos Ribeiro Tzaras eae9fb0ef0 ci: (Slightly) rename flatpak CI job 2022-09-03 16:52:16 +02:00
Evangelos Ribeiro Tzaras adb1cdb18a ofono-provider: Don't g_error() without good reason
Use g_warning() for things are not fatal.

Closes: #4
2022-09-03 08:40:56 +00:00
Evangelos Ribeiro Tzaras 1016505357 mm-provider: Avoid using g_error()
First steps in closing #4.
2022-09-03 08:40:56 +00:00
Evangelos Ribeiro Tzaras e7c3775f42 mm-provider: Don't leak error 2022-09-03 08:40:56 +00:00
Evangelos Ribeiro Tzaras b543d61f3b ofono-provider: Add TODO about preferring async functions 2022-09-03 08:40:56 +00:00
Evangelos Ribeiro Tzaras 396152bd24 d/gbp.conf: Set default branch to 'main' (was 'master')
The default branch of Calls has switched to 'main'.

See #490
2022-09-01 19:46:37 +02:00
Evangelos Ribeiro Tzaras 09688a1e80 call: Document call states 2022-09-01 18:08:27 +02:00
Evangelos Ribeiro Tzaras 1d20998e9a call: Prefer using enum values 2022-09-01 18:06:55 +02:00
Evangelos Ribeiro Tzaras 4592194c11 application: Fix typo in message emission 2022-09-01 18:06:55 +02:00
Evangelos Ribeiro Tzaras 5869296c14 application: Consistent use of user_data in action "activate" callbacks. 2022-09-01 18:06:55 +02:00
Evangelos Ribeiro Tzaras b893c81375 application: Whitespaces style nitpicks 2022-09-01 18:06:55 +02:00
Evangelos Ribeiro Tzaras f8c65b9326 Revert "new-call-box: Clear entry after dialing"
This reverts commit 528fb11dcd.

It is cumbersome having to retype everything
if you've made a mistake when entering a number.
2022-09-01 17:52:52 +02:00
Evangelos Ribeiro Tzaras 8a928f2008 call: Remove waiting state
The waiting state is not used any more and made wrong assumptions to
begin with, so let's get rid of it.
2022-09-01 17:48:02 +02:00
Evangelos Ribeiro Tzaras 4b99660e3f mm: call: Check call direction when mapping waiting state
MM_CALL_STATE_WAITING may also be used on outgoing calls,
so we need to check the call direction.

Fixes #465
2022-09-01 17:48:02 +02:00
Evangelos Ribeiro Tzaras a4c4687208 sip: origin: Actually set "auto-connect" property
Closes: #466
Fixes ef56c8f51c
2022-09-01 07:08:23 +00:00
Evangelos Ribeiro Tzaras 6f2808c7cd ci: Include flatpak_ci_initiative.yml and remove inline copy
The copy was originally done because the include failed while Calls was
still being hosted at source.puri.sm.
2022-09-01 06:57:51 +00:00
Evangelos Ribeiro Tzaras 0e271226dc plugins: Fix install directory typo
Plugins could no longer be found because we installed the plugins
outside the search path:
The directory structure uses singular 'provider', not plural
'providers'.

Fixes 11ba83c16e
2022-08-24 21:21:08 +02:00
Evangelos Ribeiro TzarasandGuido Günther 92e7b962cc plugins.in: Add package version and update copyright 2022-08-19 08:43:57 +00:00
Evangelos Ribeiro TzarasandGuido Günther 11ba83c16e Move plugin specific tests into dedicated directory
This will prove beneficial when we also add tests for the policy engine
plugins. The increased locality is also nice to have.
2022-08-19 08:43:57 +00:00
Evangelos Ribeiro TzarasandGuido Günther 86a8f3ae22 Move provider plugins into a dedicated directory
Since we will introduce another type of plugin for the policy engine
we want to have each plugin type in separate directories.

We also have to adjust:

- plugin search directories
- po file location
- update paths for calls-doc target
2022-08-19 08:43:57 +00:00
Evangelos Ribeiro Tzaras dea8b111d4 ci: Update Debian image
From now on intltool will be part of the image,
so we don't need to install it explicitly any more.
2022-08-17 12:28:07 +02:00
Evangelos Ribeiro Tzaras e49614d203 ci: Include intltool in Debian image
We run it and currently also install it in the check-po script.
Having it preinstalled let's us get rid of the `apt install` stage.

This will help avoiding CI failures like this:

$ apt-get -y install intltool
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 libc6-dev : Breaks: libglib2.0-dev (<= 2.72.3-1) but 2.72.1-1 is to be installed

From https://gitlab.gnome.org/devrtz/calls/-/jobs/2213858#L39
2022-08-17 11:59:51 +02:00
Evangelos Ribeiro Tzaras 55be6cd39e manager: Remove unused has_active_call() function
Introduced in f69c597387
but was never really used, so let's drop the dead code.
2022-08-10 16:00:00 +02:00
Evangelos Ribeiro Tzaras 21ae0a67c4 manager: Drop unused get_contact_name() declaration
The function has been removed since quite some time,
but the declaration did not get removed.

Fixes 889d5a0981
2022-08-10 15:07:02 +02:00
Evangelos Ribeiro Tzaras 3cbe2c781a Document and release 43.beta.0 2022-08-06 20:24:53 +02:00
Evangelos Ribeiro Tzaras 65dfc1293b ci: Update debian image 2022-08-05 17:21:05 +00:00
Evangelos Ribeiro Tzaras 857c375ab9 Disable g722 to avoid test failure with ffmpeg 5.0/gst-libav
Bail out! CallsSipMediaPipeline-FATAL-WARNING: Error trying to setup codecs for pipeline: Could not create 'decoder' element of type avdec_g722
stderr:

(gst-plugin-scanner:196349): GLib-GObject-WARNING **: 07:29:24.149: type name '-a-png-encoder-pred' contains invalid characters

See
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1055
2022-08-05 17:21:05 +00:00
Evangelos Ribeiro Tzaras d19aa10534 Update libcall-ui to v0.0.4
Brings some UX improvements and updated translations
2022-08-05 15:05:18 +00:00
Evangelos Ribeiro Tzaras 757351b39c record-row: Add SMS action
Add a menu entry in the history popover to open the default "sms" URI
handler.

Closes: #182
2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras 01f3757ce1 record-row: Simplify add-action logic
Get rid of some code by avoiding special casing
and potentially fix an issue (WIP).
2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras 0d6095b42a record-row: Use STR_IS_NULL_OR_EMPTY macro 2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras 8e23d77508 record-row: Chain up early to constructed() 2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras d94792f3c5 record-row: Rename callback to conform to on_* naming scheme 2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras 37eba7b66f record-row: Remove unused code 2022-08-05 10:30:06 +02:00
Evangelos Ribeiro Tzaras b81b216cf0 history-box: Cap size of slice at number of call records
This helps avoiding some log spam when scrolling to the bottom:

16:29:17.1053      CallsHistoryBox[2798409]:   DEBUG: Increasing history slice from 1825 to 1875
16:29:17.1215      CallsHistoryBox[2798409]:   DEBUG: Increasing history slice from 1875 to 1925
16:29:20.6739      CallsHistoryBox[2798409]:   DEBUG: Increasing history slice from 1925 to 1975
16:29:23.1919      CallsHistoryBox[2798409]:   DEBUG: Increasing history slice from 1975 to 2025
16:29:24.2533      CallsHistoryBox[2798409]:   DEBUG: Increasing history slice from 2025 to 2075

for a history of ~1400 records.
2022-07-27 16:54:26 +02:00
Evangelos Ribeiro Tzaras 9209a7801c history-box: Allow transition from non-empty to empty history
Since call records may be deleted, the transition from non-empty to
empty is also possible.
2022-07-27 16:45:42 +02:00
Evangelos Ribeiro Tzaras a6faac2940 history-box: Dynamically adjust slice list model size
The slice get's increased by 50 items if scrolled to the bottom
and reset to the initial 75 items if scrolled back to the top.

The defined threshholds make sure that the UX still feels smooth.
2022-07-27 16:29:39 +02:00
Evangelos Ribeiro Tzaras 8ae03a1321 history-box: Switch to GtkSliceListModel
Having more than ~200 widgets in a GtkListBox comes with a very
performance impact. This is especially noticable during while the main
window is being realized (even if Calls already runs in daemon mode).

We can limit the amount of widgets by using a slice list model.

Fixes: #374
2022-07-27 16:27:07 +02:00
Evangelos Ribeiro Tzaras 3568af8553 meson: Add gtk sources to build 2022-07-27 16:26:25 +02:00
Evangelos Ribeiro Tzaras 44c892b6f7 Drop use of volatile
The volatile qualifier was mostly used for historical reasons,
the documentation for `g_once_init_enter()` and `g_once_init_leave()`
has the following to say:

While `location` has a `volatile` qualifier,
this is a historical artifact and the pointer passed to it
should not be volatile.

See also https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
2022-07-27 16:26:25 +02:00
Evangelos Ribeiro Tzaras fd5a24f853 history-box: Chain up to constructed() early 2022-07-27 16:26:24 +02:00
Evangelos Ribeiro Tzaras 01aa8c04c2 Add various gtk list models
This is an exact copy from GTK4.
as grabbed by chattys commit 1ed5084fb965908e3ee0304781b0de06479c869b

Slightly adapted for Calls.

Based on GTKs 01bd4cc4e18a1ea697fe61791ba710d0d55e8290
2022-07-27 16:06:57 +02:00
Evangelos Ribeiro Tzaras 4188af73af sip: origin: Drop comparison that always evaluates as true
This avoids the following warning:

../plugins/sip/calls-sip-origin.c: In function ‘sip_r_register’:
../plugins/sip/calls-sip-origin.c:483:26: warning: the comparison will always evaluate as ‘true’ for the address of ‘m_url’ will never be NULL [-Waddress]
  483 |     if (sip->sip_contact && sip->sip_contact->m_url && sip->sip_contact->m_url->url_host) {
      |                          ^~
In file included from /usr/include/sofia-sip-1.12/sofia-sip/nua.h:47,
                 from ../plugins/sip/calls-sip-util.h:28,
                 from ../plugins/sip/calls-sip-call.h:30,
                 from ../plugins/sip/calls-sip-origin.c:31:
/usr/include/sofia-sip-1.12/sofia-sip/sip.h:477:23: note: ‘m_url’ declared here
  477 |   url_t               m_url[1];     /**< SIP URL */
      |                       ^~~~~
../plugins/sip/calls-sip-origin.c: In function ‘sip_callback’:
../plugins/sip/calls-sip-origin.c:779:23: warning: the comparison will always evaluate as ‘true’ for the address of ‘a_url’ will never be NULL [-Waddress]
  779 |     if (sip->sip_from && sip->sip_from->a_url &&
      |                       ^~
/usr/include/sofia-sip-1.12/sofia-sip/sip.h:386:22: note: ‘a_url’ declared here
  386 |   url_t              a_url[1];      /**< URL */
      |                      ^~~~~
2022-07-27 16:06:57 +02:00
Evangelos Ribeiro Tzaras 74beff0c98 ci: Allow flatpak failures
That does of course not mean that we shouldn't investigate,
but I like to have passing CI in the meantime.
2022-07-06 07:12:05 +02:00
Evangelos Ribeiro Tzaras 5fc07678d1 d/gbp.conf: Adjust debian-tag-msg
Tag messages have been a bit inconsistent in the past, because we
created signed tags by hand.

With this change we can just `gbp tag` and get consistently named tags
and messages.
2022-06-27 04:37:38 +02:00
Evangelos Ribeiro Tzaras 03543142e6 Post release bump
According to the schedule
https://wiki.gnome.org/FortyThree
the next version will be 43.beta.0
2022-06-27 04:36:53 +02:00
Evangelos Ribeiro Tzaras 3d7c671034 Document and release 43.alpha.2 2022-06-26 15:47:47 +02:00
Evangelos Ribeiro Tzaras 879a214baf dir-locals: Use the linux coding style 2022-06-22 10:17:30 +02:00
Evangelos Ribeiro Tzaras fae760c541 dir-locals: Exhaustive projectile setup
This expands on the minimal projectile setup we had before by including
compilation directory, configure and run commands.
2022-06-22 10:17:30 +02:00
Evangelos Ribeiro Tzaras 36b10bc764 new-call-box: Don't auto select offline accounts 2022-06-21 12:19:38 +02:00
Evangelos Ribeiro Tzaras ee64b33e24 new-call-box: Fix memory leak
calls_new_call_box_dial was taking a reference it never released.
2022-06-21 11:52:40 +02:00
Evangelos Ribeiro Tzaras 581c82fcd7 new-call-box: Order includes alphabetically 2022-06-21 11:52:40 +02:00
Evangelos Ribeiro Tzaras e5e19fcd5f doc: Add call state diagram
Having this makes it easier to reason about the call states.
2022-06-20 15:59:17 +00:00
Evangelos Ribeiro Tzaras 82a03ac0b1 record-store: Add debug statement for call state changes
This can help debugging issues such as #463 and #455
2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras 7094363894 sip: origin: Reduce logspam from REGISTER keep-alives 2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras bf8bc5db3c sip: origin: Only set own IP if it has changed
This helps to reduce some logspam.
2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras 2c7569c608 sip: origin: Don't fetch the contact header repeatedly
This somewhat reduces the logspam:
response to get_params: 200 OK

origin->contact_header
2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras 6d7feec690 mm: call: Better debugging
Including the error domain should help in identifying errors.
Use the DBus object path as the primary identifier for a call.
2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras 07aa990601 mm: call: Use correct enum type
They both have the same value (=0), and things worked because of
implicit conversion, but was still confusing and technically wrong.
2022-06-20 13:00:37 +00:00
Evangelos Ribeiro Tzaras 654664799b data: Add D-Bus service file
Heavily inspired by
https://gitlab.com/mobian1/callaudiod/-/commit/cf329d0a050899f036f677d8d5e16a749c6a80ba

Fixes #464
2022-06-20 05:39:31 +02:00
Evangelos Ribeiro Tzaras 01b214c5fb sip: origin: Don't mix code and declarations
Move (and reorder) declarations to avoid warnings triggered by
-Wdeclaration-after-statement

Closes #459
2022-06-14 17:48:43 +00:00
Evangelos Ribeiro Tzaras 7847c72560 sip: origin: Codestyle 2022-06-14 17:48:43 +00:00
Evangelos Ribeiro Tzaras 35eebcbfe7 debian: Install manpage 2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras 8cb6c3e5a9 flatpak: Don't build manpage 2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras 6738962073 meson: Build manpage with rst2man
Closes #457
2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras c86df0f564 ci: Update debian bookworm image for rst2man 2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras 73109fb235 Add python3-docutils as build dependency
We want to use rst2man for generating manpages.
2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras 0d6ceca324 doc: Add manpage as reStructuredText 2022-06-08 08:25:36 +00:00
Evangelos Ribeiro Tzaras b713141384 README: Update section on debugging 2022-06-02 01:39:48 +02:00
Evangelos Ribeiro Tzaras 1e44ae56d3 Fix version bumpage
Next version will still be "43~alpha.2" (not "43~beta.0").
2022-06-01 19:33:56 +02:00
Evangelos Ribeiro Tzaras fc10a1ce71 Post release bump 2022-05-30 11:25:40 +02:00
Evangelos Ribeiro Tzaras 138f882643 Document and release 43.alpha.1 2022-05-25 21:07:22 +02:00
Evangelos Ribeiro Tzaras 50e7c87a4d sip: Store media encryption account preference to disk 2022-05-24 22:48:59 +02:00
Evangelos Ribeiro Tzaras aeae044534 sip: account-widget: Add media encryption option
This option can only be set when the transport protocol is set to TLS or
the "always-allow-sdes" gsetting is used.
2022-05-24 22:48:59 +02:00
Evangelos Ribeiro Tzaras 30148cebe3 schema: Add setting allowing to use SDES
Key exchanges in SDES can only be done securely with TLS and the option
is disabled by default if not using TLS as the transport protocol.

This setting allows to override this behaviour if the user desires
it (f.e. if the user considers the network his packets go through to be trusted).
2022-05-24 22:48:59 +02:00
Evangelos Ribeiro Tzaras 1a51ce0e40 dbus-manager: Bind encrypted property 2022-05-24 22:48:59 +02:00
Evangelos Ribeiro Tzaras be235189cc call: Add "encrypted" property
This property indicates whether a call is using encryption.
2022-05-24 22:48:59 +02:00
Evangelos Ribeiro Tzaras e75e04fb4e sip: Allow specifying if media encryption is desired
A property of type SipMediaEncryption is added to both the origin and
the call which allows to state if we want the media session to be
encrypted with SRTP.

Logic is added to interact with the CallsSdpCryptoContext if encryption
is desired.
2022-05-24 22:48:56 +02:00
Evangelos Ribeiro Tzaras 0e57d31c1e sip: media-manager: Include crypto attributes for capabilities
The API is changed to accept a list of calls_srtp_crypto_attributes
which get inserted into the SDP line.
2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras 14350a38ed sip: Add SDP crypto context class
Objects of this type keep track of SDP of the local and remote peers,
allow generating offers and answers and codify default policy used for
cryptographic parameters.
2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras a14b6bfbf5 sip: media-pipeline: Uncrustify struct members 2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras ea5b4f2895 sip: media-pipeline: Use cryptographic parameters
Allows setting up cryptographic parameters with
calls_sip_media_pipeline_set_crypto() and use them to set GstCaps for
GstSrtpDec and GObject properties for GstSrtpEnc
2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras 4937723541 sip: Add srtp-utilities
These utilities aid in generating and parsing SDP crypto attributes to be used
during the offer/answer negotiation.
2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras 5cd03a8a13 dbus-manager: Remove unused variables 2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras cfd0dc6e08 sip: account-widget: Warn when trying to find unknown protocol
A warning is more suitable than a simple debug message as this would be
considered a programming error.
2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras 5a4fc20c6f Add editorconfig 2022-05-24 22:30:03 +02:00
Evangelos Ribeiro Tzaras ef56c8f51c sip: account-widget: Include option for automatically connecting
Fixes #438
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 47d252eb8b sip-origin: Notify on account property updates
The UI does not have a chance to react otherwise.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras c1be092dea account-widgets: Make row activatable
This brings us closer to the intended design and let's us get rid of
some code.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras f102fb3fcd account-widgets: Conform to style
Closes #396
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 4714aea068 sip: origin: Don't treat DNS failures as errors
No need to g_warning() for this.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 46ff807f6b sip: origin: Always notify state changes when relevant to the UI
by adding functions to the public API which determine if state changes
should be shown to the user and use them (instead of duplicating similar
logic).
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 41479eea09 account-row: Use delayed state changes for GtkSwitch
When trying to go online/offline we're always waiting for confirmation
from the stack (even if it's a timeout) so the delayed pattern is a good choice.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 0605582fc7 sip: origin: Notify on state change
The account state has G_EXPLICIT_NOTIFY but we did never notified.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras 59c06aef44 sip: origin: Tweak debugging
Be slightly more verbose in messages.
Demote some warnings.
Don't print empty tags.
2022-05-24 11:55:52 +00:00
Evangelos Ribeiro Tzaras b31db4a51c sip-origin: Codestyle 2022-05-24 11:55:52 +00:00