1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-11-04 23:51:17 +00:00
Commit graph

332 commits

Author SHA1 Message Date
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