Commit Graph
100 Commits
Author SHA1 Message Date
Evangelos Ribeiro Tzaras 1b4af654f1 sip: origin: Fix comment style 2022-01-27 18:02:15 +01:00
Evangelos Ribeiro Tzaras 14930ba82f Document and release 42.beta.1 2022-01-26 14:35:20 +01:00
Evangelos Ribeiro Tzaras 79a7e8c59f Update libcall-ui subproject to v0.0.1
This brings a few UI fixes and updated translations
2022-01-26 14:22:05 +01:00
Evangelos Ribeiro Tzaras a7677798d1 dbus-manager: Fix critical when transforming call states
Fixes c796df9260
2022-01-26 08:27:31 +01:00
Evangelos Ribeiro Tzaras 40cb9edf43 readme: Mention that documentation is available as gitlab page 2022-01-26 06:16:42 +00:00
Evangelos Ribeiro Tzaras 55028565aa ci: Deploy documentation as gitlab pages 2022-01-26 06:16:42 +00:00
Evangelos Ribeiro Tzaras 1c253c0604 Document and release 42.beta.0 2022-01-25 14:22:43 +01:00
Evangelos Ribeiro Tzaras 0dc761d87c tests: sip: Switch to state notify signal 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 7c5dcd37d7 sip: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 470475e531 mm: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 58507556e5 dummy: origin: Switch to state notify signal
We don't need the old state here, so let's use the "notify::state" signal
instead of the "state-changed" signal.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 656643c522 call: Temporarily hold ref while setting new state
This is needed to make sure the object stays alive, because some implementations
will unref the call after it has been set to a disconnected state.

This has become apparent because tests started failing when origins switched
from the "state-changed" to the "notify::state" signal (as is done in the next
commits).
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c2c8b1acd9 dummy: origin: Use g_assert in non public functions 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 85c6ac2ff8 tests: dummy origin: Use correct origin
And unref it after we're done. Otherwise we're leaking memory because the dummy
provider only keeps actively unrefs the origin it added itself.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c594726ce5 best-match: Fix potential memory leak
We would leak memory if calls_best_match_set_phone_number would be called a
second time with a SIP address.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras ebc5e584bb manager: Use ternary operator instead of if/else block
Less code is better code.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras f01c99c587 ui-call-data: Remove unused struct 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 36c4f2b349 ui-call-data: Add license header 2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 6567b7cad7 call-selector-item: Codestyle
Move public functions to the bottom
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras c0a67d2cce contacts-provider: Remove static from action name string
There was no reason to have it static in the first place.
2022-01-20 10:23:09 +00:00
Evangelos Ribeiro Tzaras 99057452c5 dbus: Document interface in a way that gtk-doc can use
Fixes #394
2022-01-20 10:50:48 +01:00
Evangelos Ribeiro Tzaras 12ae596352 contacts-provider: Overhaul documentation
This commit describes what CallsContactsProvider is used for,
documents signals, properties and the public API.
2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras bcdb703ec3 origin: Remove unused parameter from docstring 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 4dd4ba3be3 provider: Remove unused parameter from docstring 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 52eebaad83 message-source: Fix typo 2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras 558393a8cb meson: Don't access the network when validating metadata
Build servers might not allow network access and this shaves off a little time
in the test suite.
It shouldn't be a problem running the validation manually when adding new
screenshots.
2022-01-20 10:17:26 +01:00
Evangelos Ribeiro Tzaras c796df9260 dbus-manager: Use CuiCallStates instead of CallsCallStates
CallsCallStates are considered internal call states and do not map 1:1 to
CuiCallStates.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras e3afefcef2 ui-call-data: Add call state mapping to public API
This allows it to get used in the DBus manager in a GBindingTransformFunc
until to make sure we don't use emit deprecated values over DBus.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 4bc8e82ff6 ui-call-data: Don't use deprecated states in mapping
For the UI we don't distinguish between dialing and alerting or between
waiting and incoming.
2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 6e9fadbee2 dbus: document states 2022-01-20 07:42:08 +00:00
Evangelos Ribeiro Tzaras 7c7110996c meson: Warn when using misleading indentation
This allows catching bugs like the infamous 'goto fail goto fail' bug.
2022-01-18 05:25:49 +01:00
Evangelos Ribeiro Tzaras 54092e45d4 call: Fix typos in section docstring 2022-01-18 03:53:11 +00:00
Evangelos Ribeiro Tzaras 3eda1119ad potfiles: Add src/account.c 2022-01-18 02:50:04 +00:00
Evangelos Ribeiro Tzaras 827594dc2e record-row: Add context menu entry for adding a new contact
Fixes #157
2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 5588bd934a contacts-provider: Add API to add new contacts 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras c6d867cd72 contacts-provider: Add GDBusActionGroup to query if contacts can be added
As this requires a patched GNOME Contacts, we want to be able to query if the
necessary actions to add new contacts is available before trying to use it.
2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 56da32d1b6 contacts-provider: Remove unused config.h include 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 8ad21b211c contacts-provider: Codestyle 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras bc4ed210b2 contacts-provider: Sort includes 2022-01-18 02:12:37 +00:00
Evangelos Ribeiro Tzaras 339093876c manager: Propagate messages from account
Not all portions from the user interface are listening directly to messages from
accounts, so the manager should propagate them to allow the UI to pick them up.

Closes #340
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras cc8da717b1 account-overview: Reindent ui file
This was done to avoid the diff noise in the previous commit introducing
the in app notifications to the account overview.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 2a9791a9a3 account-overview: Show notification on account message
Accounts implement the CallsMessageSource interface and emit messages when
there are state changes of which the user should be informed.

Closes #340
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 695839a2d9 sip: origin: Emit user feedback on state change 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 4cd3a0dcc3 account: Add message emission API
This can be used when wanting to show a human readable description in the UI
for example when the account state changes.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras cdb6f90acc account: Rework account states
Introduce a state-changed signal which also gives a reason for why the state
changed. This will allow the UI to give some meaningful feedback to the user.

Additionally we can get rid of a number of things that were not really states,
but rather reasons for why a state changed (f.e. authentication failures).
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras d5fd098479 sip: origin: Make go_online() a no-op in the direct connection case
This avoids some special casing in init_sip_account()
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 6d877fd9d3 manager: Implement message source interface
This allows the user interface to pick up messages by having them propagate
from the managed providers, origins, calls, etc.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 6de5e9a54c manager: Remove the "error" signal and adapt to changes
We can now use the message source interface to signal any feedback to the user.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras d1b20bec39 message-source: Add API to emit message 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras e148930cc4 application: Sort includes alphabetically 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 6a3702dea3 manager: Clean up includes
The manager is not using the account providers anywhere.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 8a6787d959 message-source: Get rid of unnecessary semicolon
Our .dir-locals.el makes Emacs understand that we don't need a semicolon after
the various G_* macros.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 7d05508ace message-source: Clean up includes
Include directly what's being used here.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 3c32739369 message-source: Use pragma once instead of include guard 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras c6a8dcf140 util: Use pragma once instead of include guard 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras eab45610bd manager: Codestyle
We use two empty lines between functions, unless they are documented with
docstrings in which case there is only one empty line.
2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras 69b615a2c2 sip: origin: Codestyle 2022-01-11 12:00:10 +00:00
Evangelos Ribeiro Tzaras eeb97c82c0 sip: origin: Purge own IP when uninitialising account
This will make sure that we're not using a stale IP address if we're resetting
the account after an IP change.
2022-01-10 08:27:08 +01:00
Evangelos Ribeiro Tzaras 38f9e0b608 sip: media-manager: Get rid of global session IP
Since we're now passing the IP to be used to retrieve the capabilities
for the SDP message body, this has become dead code.
2022-01-08 21:25:09 +00:00
Evangelos Ribeiro Tzaras 8b126484cb sip: Use per origin IP instead of a global IP
Sofia detects a NAT by presence of the "received" parameter in the Via header in
the response to a REGISTER. Sofia will then update the Contact header to use the
IP as reported by the registrar.

The "received" parameter MUST be included in the response according to
https://datatracker.ietf.org/doc/html/rfc3261#section-18.2.1
when the registrar detects a difference between the domain part of the top Via
header and the packet source address but practice has shown that this will not
always be the case.

Addditionally this change allows us to have origins bound to different network
interfaces which would be useful when a registrar can only be accessed through a
VPN.

This also fixes an issue with SDP introduced in
36880c3d34 which was only seen on some SIP
providers:

The session name ("s=") line is not relevant for establishing a connection,
the connection data (c=") line is.

See https://datatracker.ietf.org/doc/html/rfc4566 section 5.3 and 5.7
2022-01-08 21:25:09 +00:00
Evangelos Ribeiro Tzaras ae4053e1c9 sip: call: Remove unnecessary code
The call state depending on whether a call is inbound or not is handled in the
constructed() method of the CallsCall base class.
2022-01-08 21:25:09 +00:00
Evangelos Ribeiro Tzaras ba00665c36 sip: origin: Decouple TLS usage from target address
Since we cannot do encrypted media streams yet, we should hardcode whether or
not we want to use SRTP to FALSE, so that sips target URLs can be used in SIP
calls at all.
2022-01-07 16:34:25 +01:00
Evangelos Ribeiro Tzaras 8f85c42ba3 meson: Don't use deprecated meson.source_root()
This function is deprecated since 0.56.0:

WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since
'0.56.0': meson.source_root. use meson.project_source_root() or
meson.global_source_root() instead.
2021-12-29 11:10:21 +01:00
Evangelos Ribeiro Tzaras de834bcfe9 meson: Don't use deprecated meson.build_root()
This function is deprecated since 0.56.0:

WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since
'0.56.0': meson.build_root. use meson.project_build_root() or
meson.global_build_root() instead.
2021-12-29 11:10:21 +01:00
Evangelos Ribeiro Tzaras 112098405b meson: Don't use deprecated Dependency.get_pkgconfig_variable()
This function is deprecated since 0.56.0:

WARNING: Project targeting '>= 0.56.0' but tried to use feature deprecated since
'0.56.0': Dependency.get_pkgconfig_variable.
use Dependency.get_variable(pkgconfig : ...) instead
2021-12-29 11:10:03 +01:00
Evangelos Ribeiro Tzaras 0cadf24ed0 sip: origin: Fix host being passed as number
Closes #389

Fixes e2acfd3794
2021-12-28 16:40:46 +01:00
Evangelos Ribeiro Tzaras e2acfd3794 sip: origin: Pass telephone number to the call object
If the origin is used for PSTN telephony extract the number from the
SIP dialstring (i.e. sip:+49160123456789@my-sip-host.de) and pass that
to call object for contact matching.
2021-12-26 17:57:14 +01:00
Evangelos Ribeiro Tzaras 992a243de6 sip-account-widget: Add switch to specify account can handle tel URI
Fixes #277
2021-12-26 17:45:12 +01:00
Evangelos Ribeiro Tzaras fbbe17139d sip: origin: Add property tracking usage for tel URIs
Fixes #277
2021-12-26 17:45:12 +01:00
Evangelos Ribeiro Tzaras 66224c9a48 origin: Get rid of "numeric-addresses" property 2021-12-26 17:45:12 +01:00
Evangelos Ribeiro Tzaras 6d031e2ab6 new-call-box: Decide if numeric input is needed based on the origins protocol
The numeric addresses property conveys no additional information.
By changing the logic here we can get rid of the "numeric-addresses" property
alltogether.
2021-12-26 17:45:12 +01:00
Evangelos Ribeiro Tzaras cd6917dcf6 sip: origin: Include address in warning when we cannot dial
This allows figuring out which call failed.
2021-12-21 14:52:14 +00:00
Evangelos Ribeiro Tzaras 8575adf998 media-manager: Take preferred audio codecs into account for SDP
Fixes #349
2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras 0b8fb4a448 media-codecs: Clarify that codec availability should be checked before use 2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras 27463212d9 media-codecs: Add codec availability check to public API
This will be useful for building a list of preferred audio codecs.
2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras 7fe8a90d77 settings: Add GSetting for preferred audio codecs 2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras da4434564d test: sip: Add debug messages 2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras dc809e54e5 settings: Add docstring for autoload-plugins setter and getter 2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras a63023e315 settings: Chain up to parents constructed() early
Not strictly necessary since we're not depending on anything the parents
constructed() might be doing, but it's a good practice.
2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras b49041a3f2 sip: codecs: Fix transfer annotation of media_codecs_get_candidates() 2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras 4e09ada0df best-match: Fix header include
We only need gio.h here because of GLoadable.
2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras 2026573e64 project: Do not allow deprecated gtk/gdk symbols
This will make sure that we're not introducing deprecated symbols which
could make it harder to migrate to Gtk4.
2021-12-21 15:05:47 +01:00
Evangelos Ribeiro Tzaras f068e20f68 ci: Use prebuilt debian images
This should speed up CI jobs.

Close #380
2021-12-21 14:16:49 +01:00
Evangelos Ribeiro Tzaras a21fded449 gitlab-ci: Use prebuilt containers
This image has all build dependencies to speed up build and tests.
Copied from
phosh (https://gitlab.gnome.org/World/Phosh/phosh/-/commit/d8b2e5651b837adb6698c9868a9d278ef7929400)
with minor modifications for Calls.

Use

 .gitlab-ci/run-docker.sh --base debian build --version 0.0.<date>
 .gitlab-ci/run-docker.sh --base debian push --version 0.0.<date>

to update.
2021-12-21 14:16:47 +01:00
Evangelos Ribeiro Tzaras c12b7a8c69 call: Use protocol fallback
We're falling back to "tel" as the default case.
2021-12-20 12:25:19 +01:00
Evangelos Ribeiro Tzaras dbfa593a07 call: Move name property to base class
This let's us avoid some duplication in the derived classes.
2021-12-20 12:25:19 +01:00
Evangelos Ribeiro Tzaras a1fefcdbac call: Move id property into base class
This allows us to avoid some duplication in the derived classes.
2021-12-20 12:25:19 +01:00
Evangelos Ribeiro Tzaras a048b4c83d call: Move state property into base class
This let's us get rid of a lot of duplication in the derived classes.

Additionally we set the initial state to CALLS_CALL_STATE_INCOMING if
inbound is TRUE and CALLS_CALL_STATE_DIALING otherwise.
2021-12-20 12:25:19 +01:00
Evangelos Ribeiro Tzaras ddf1dd7349 call: Move inbound property into base class
This avoids some repetition in the derived classes.
2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras 88cd7ce222 call: Add unknown state
This is the default fallback state and is useful f.e. in the oFono plugin
if the GDBOVoiceCall doesn't provide a state in its' properties.
2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras cead5ada88 call-window: Use g_assert in private functions 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras a0942034de test: call: Codestyle 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras 797c9a0c46 mm: call: Codestyle 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras b3aff65822 dummy: call: Codestyle 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras aadf546472 ofono: call: Codestyle 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras 09699254c8 call: Codestyle 2021-12-20 12:25:18 +01:00
Evangelos Ribeiro Tzaras 08456c8043 in-app-notification: Use g_clear_* instead of emulating it 2021-12-16 06:39:38 +01:00
Evangelos Ribeiro Tzaras 3e37870824 in-app-notification: Use unsigned integers for timeout property
It's used in g_timeout_add_seconds and that expects a guint.
Set the minimum timeout to 1 second.
2021-12-16 06:39:38 +01:00
Evangelos Ribeiro Tzaras d7b4aff0d8 in-app-notification: Use DEFAULT_TIMEOUT_SECONDS as the default timeout
By setting the G_PARAM_CONSTRUCT flag for the timeout property we make sure
that the default value is set if it has not been given explicitly in
g_object_new().
2021-12-16 06:39:38 +01:00
Evangelos Ribeiro Tzaras fd6fcbc3c0 in-app-notification: Codestyle 2021-12-16 06:39:38 +01:00