Evangelos Ribeiro Tzaras
0e753816c9
sip-origin: Include SIP address in debugging
...
This makes it easier to see if all accounts are being disposed
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
f7745f50bd
sip-origin: Keep sofia running to allow unregistering on dispose
...
sofia-sip needs to keep iterating its' main loop in order to
unregister as well as process the response from the server.
Closes : #554
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
8b3eccd1b7
sip-origin: Use g_clear_pointer() instead of emulating it
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
94cfbd83b2
sip-provider: Chain up to constructed early
2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras
243753d064
sip-provider: Improve debugging of account loading
...
This should help diagnosing why the flatpak sometimes fails to add SIP accounts.
2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras
208438236c
sip-provider: Don't leak keyfile
...
The reference taken in new_origin_from_keyfile_secret() was never
released in the async callback.
2023-04-12 09:17:40 +00:00
Evangelos Ribeiro Tzaras
c84f2a2bd9
sip-provider: Remove unused variables
2023-04-12 09:17:40 +00:00
Guido Günther
47afc70552
mm-provider: Don't exit early when country code matches
...
This makes sure we fetch emergency numbers in any case (and also
further things should they be added later).
2023-04-09 15:38:01 +00:00
Guido Günther
b880ddf1d7
mm-provider: Implement get_country_code
2023-04-06 16:37:59 +00:00
Guido Günther
69250ac121
mm-provider: Fetch emergency numbers from sim
2023-04-06 16:37:59 +00:00
Guido Günther
6cdae3fd40
origin: Allow to fetch country code
...
This is an optional method as not all origins might support this
(e.g. SIP).
2023-04-06 16:37:59 +00:00
Guido Günther
d598acd96b
mm-provider: Initialize parent class first
2023-04-06 16:37:59 +00:00
Дилян Палаузов
242efcc06a
SIP:calls_sdp_crypto_context_generate_answer() accept the first supporetd a=crypto: line
2023-02-12 12:06:06 +00:00
Evangelos Ribeiro Tzaras
d790e35bc3
sip-provider: Remove duplicated check
...
init() already checked if CALLS_SIP_TEST was set,
no need to do it again in constructed()
2023-02-12 10:26:46 +01:00
Evangelos Ribeiro Tzaras
4d402d2f79
sip-provider: Use STR_IS_NULL_OR_EMPTY macro
2023-02-12 10:26:46 +01:00
Guido Günther
8a4a7c6131
mm: Implement empty emegency call property
...
This allows the tests to pass.
2023-02-12 08:00:56 +00:00
Guido Günther
75cbc30dc0
sip: Implement empty emegency call property
...
This allows the tests to pass.
2023-02-12 08:00:56 +00:00
Guido Günther
9af09a0db9
dummy: Support getting emergency call numbers
2023-02-12 08:00:56 +00:00
Evangelos Ribeiro Tzaras
205f691570
mm-origin: Disable call waiting
...
As Calls cannot deal with call waiting we should disable it entirely.
This works around issues where call audio get's completely broken once
the waiting call is disconnected on the BM818 modem shipped with the
Librem 5.
See https://source.puri.sm/Librem5/OS-issues/-/issues/311
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
72a85d62fa
mm-origin: Ensure objects stay alive during async operations
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
0f9a89aa3b
mm-origin: Remove unnecessary cast
...
g_signal_connect takes a gpointer, so the instance parameter does not
need to be cast explicitly.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
3dcb1881bf
mm-origin: Don't leak ID
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
5379907cf8
mm-origin: Don't leak MMModem
...
mm_object_get_modem() is transfer full,
so we need to unref it when we're done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
9c8e70088c
mm-origin: Don't leak MMModemVoice
...
mm_object_get_modem_voice() is transfer full,
so we need to unref it when we're done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
6f771b1685
mm-origin: Avoid unnecessary allocation
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
0232430ae1
mm-origin: Prefer g_autoptr instead of explicit reference counting
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
f09852bc19
mm-origin: Prefer STR_IS_NULL_OR_EMPTY macro to explicit checks
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
ab6f1a4c45
mm-origin: Explicitly cast ussd state
...
This is better than the implicit conversion of the enum.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
e5780677f6
mm-origin: Chain up to to parent's constructed() early
...
Not strictly needed here, because we don't depend on the parent being
constructed but this is how it should generally be done.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
2e43639d03
mm-origin: Codestyle
...
- Prefer char* over gchar*
- g_auto* variables come first
- Two newlines between functions
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
1793035683
mm-call: Guard public API
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
9ee436135f
mm-call: Codestyle
...
Prefer char over gchar and some whitespace cleanups.
2023-01-31 08:55:38 +00:00
Evangelos Ribeiro Tzaras
18173f067f
sip-provider: Use STR_IS_NULL_OR_EMPTY macro
2023-01-26 12:03:39 +00:00
Evangelos Ribeiro Tzaras
204772abbd
sip-provider: Sort includes
...
We want the configuration to be included first
2023-01-26 12:03:39 +00:00
Evangelos Ribeiro Tzaras
bb6b76107c
build: Rename util.{c,h} to calls-util.{c,h}
...
"util" is a very generic name. This guards against accidentally
including similarly named headers from elsewhere.
2023-01-22 07:33:02 +00:00
Evangelos Ribeiro Tzaras
8d15f46b3f
sip-pipeline: Only use gstreamer debugging if option is set
...
Fixes build issues when gstreamer has not been compiled with debugging
enabled.
Fixes : #533
2022-12-22 15:08:18 +00:00
Evangelos Ribeiro Tzaras
f997048a38
build: Rename config.h to calls-config.h
...
This guards against accidentally including configuration from elsewhere.
2022-12-22 15:08:18 +00:00
Julian Sparber
b3040e38a4
tests: Ensure that plugins are build for tests that need them
2022-12-03 12:39:27 +01:00
Julian Sparber
270d145b65
tests: Use CALLS_PLUGIN_DIR to search for plugins in the build dir
...
There is no need to add a second variable to search for plugins, we can
use CALLS_PLUGIN_DIR directly.
2022-12-03 12:32:29 +01:00
Julian Sparber
baeae94c2e
meson: Don't set G_TEST_*
...
Those env variables aren't needed.
2022-12-03 12:32:29 +01:00
Julian Sparber
7537e37d3b
tests: Fix sdp-crypto test for flatpak
...
Debian patches sofia-sip therefore the test worked outside of flatpak.
See: 4df0ebb90a
2022-12-03 12:32:29 +01:00
Дилян Палаузов
dee7e1b9ae
provider/sip: on_origin_pw_looked_up() display_name is read twice
2022-11-20 12:51:23 +00:00
Дилян Палаузов
90228e968c
SIP dial() convert the port from int to string
2022-11-18 13:48:55 +00:00
Evangelos Ribeiro Tzaras
662befeb48
mm-provider: Cancel ongoing operations
...
both when MM has appeared on DBus and
when disposing of the provider.
2022-11-08 13:40:37 +00:00
Evangelos Ribeiro Tzaras
9d63f8961c
sip-origin: Honour set port when completing address
...
This makes sure to include the port when dialing the short form.
Fixes : #506
2022-11-04 10:00:02 +00:00
Evangelos Ribeiro Tzaras
563ceb770c
media-pipeline: Dump dot graph without GST_DEBUG_DUMP_DOT_DIR set
...
gst_debug_bin_to_dot_file() NOOPs if GStreamer was initialized without
the enviroment variable GST_DEBUG_DUMP_DOT_DIR.
If SIGUSR2 was signalled we want to have a dot file dumped no matter
what. Functions for asynchronously writing the graph as obtained by
gst_debug_bin_dot_data() to a temporary file and print the path to
stdout.
Note: Usage of GST_DEBUG_BIN_DOT_FILE() on pipeline state change is left
as is, because we don't want to dump graphs for every change on every
pipeline.
2022-11-01 12:25:43 +00:00
Evangelos Ribeiro Tzaras
9dd3066649
sip: media-manager: Simplify SDP generation
...
Use the newly added get_address_family().
2022-11-01 11:04:35 +00:00
Evangelos Ribeiro Tzaras
8cdd017c2f
Revert "Disable g722 to avoid test failure with ffmpeg 5.0/gst-libav"
...
This reverts commit 857c375ab9
.
The failure to register types due to invalid type names seems to be
resolved, so let's revert to reenable g722 codecs.
2022-10-12 23:18:13 +02:00
Evangelos Ribeiro Tzaras
2a5e96cda2
media-pipeline: Bind to the unspecified IPv6 address
...
IPv4 keeps working through the magic of IPv4 mapped IPv6 addresses.
Without this change errors about invalid address family will be raised
when trying to connect to a IPv6 host.
Bail out! CallsSipMediaPipeline-FATAL-WARNING: Error on the message bus: Could not get/set settings from/on resource. (../gst/udp/gstmultiudpsink.c(1228): gst_multiudpsink_configure_client (): /GstPipeline:media-pipeline/GstUDPSink:rtcp-udp-sink:
Invalid address family (got 10))
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1019292
2022-10-12 20:35:40 +00:00
Evangelos Ribeiro Tzaras
f2a22d0c02
meson: Sort sources alphabetically
2022-09-21 12:40:31 +02:00
Evangelos Ribeiro Tzaras
39c182ffca
i18n: mm-call: Clarify "transfer" and "deflect"
...
Closes : #499
2022-09-17 09:11:12 +02:00
Evangelos Ribeiro Tzaras
f44e8025c9
mm-provider: Don't leak MMManager
2022-09-03 18:26:55 +02:00
Evangelos Ribeiro Tzaras
d0c4374a0b
mm-provider: Prefer g_clear_*() in dispose() and finalize()
2022-09-03 18:26:55 +02:00
Evangelos Ribeiro Tzaras
a4f845206e
mm-provider: Remove unused variable
2022-09-03 18:26:55 +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
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
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 Tzaras
92e7b962cc
plugins.in: Add package version and update copyright
2022-08-19 08:43:57 +00:00
Evangelos Ribeiro Tzaras
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 Tzaras
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
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
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
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
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
eladyn
fec3451cd0
sip: origin: Honor preferred codecs for incoming calls
...
This enables proper negotiation of the codec when answering calls, which
previously also responded with codecs that were not part of the users
preferred ones.
Fixes : #413
2022-06-02 09:07:01 +00:00
Yuri Chornoivan
a98cd6a802
Fix minor typo
2022-05-31 07:47:45 +00: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
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
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
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
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
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
Evangelos Ribeiro Tzaras
94fa13af4c
settings: Convert to the singleton pattern
...
We only have a single source of settings, so we should reflect that by
using a singleton. This also reduces our LoC.
This doesn't impair our ability to run tests because there we run with
GSETTINGS_BACKEND=memory
2022-05-13 19:58:07 +02:00
Evangelos Ribeiro Tzaras
d28be2650b
Fix header alignment
...
Uncrustify messed up a bit because of the it expects a semicolon for the
G_* () macros
See https://github.com/uncrustify/uncrustify/issues/3393
2022-05-13 19:58:07 +02:00
Evangelos Ribeiro Tzaras
96f1cc0a30
sip: call: Defer setting up codecs for pipeline until activated
...
This let's us get rid of some ugly code
2022-05-09 11:13:15 +02:00
Evangelos Ribeiro Tzaras
c6c17671e1
sip: origin: Remove unused variable
2022-05-09 11:13:15 +02:00
Evangelos Ribeiro Tzaras
2ea4b8736f
sip: call: Fix header alignment
...
Uncrustify must have gotten confused.
2022-05-09 11:13:15 +02:00
Evangelos Ribeiro Tzaras
47d4164a09
sip: media-pipeline: Take srtp into account when determing pipeline state
...
If we're using srtp we should also consider the state of srtpenc and srtpdec
elements when determining the state of the whole pipeline.
2022-04-24 13:36:26 +02:00
Evangelos Ribeiro Tzaras
bfda8f6a3e
sip: media-pipeline: Introduce SRTP elements
...
The rtpbin will request GstSrtpDec and GstSrtpEnc elements using the
"request-{rtp,rtcp}-{de,en}coder" family of signals.
The newly added boolean use_srtp controls whether the srtp elements are
returned in the signal handler and thus decides if SRTP is used or not.
2022-04-24 13:36:24 +02:00
Evangelos Ribeiro Tzaras
5d0ae4a6fa
sip: media-pipeline: Debug pipeline graph on SIGUSR2
...
Ust GST_DEBUG_BIN_TO_DOT_FILE to generate a dot graph of a pipeline for
debugging purposes when SIGUSR2 is received.
Note the same signal is also used within the dummy plugin to simulate an
incoming call from an unknown number, so when testing you probably want either
the sip plugin or the dummy plugin, but not both.
2022-04-24 13:33:19 +02:00
Evangelos Ribeiro Tzaras
58f9f5cb62
sip: media: Allow specifying SRTP for GStreamer capabilities
...
When using SRTP the GstCaps must be set accordingly.
2022-04-24 13:31:40 +02:00