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
b49041a3f2
sip: codecs: Fix transfer annotation of media_codecs_get_candidates()
2021-12-21 15:05: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
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
73cf5081d0
sip: origin: Prevent dialing when not online
...
Setting up the nua context could have failed (see #379 ) and in that case
our nua_*() calls might derefence a NULL pointer.
2021-12-15 20:01:40 +01:00
Evangelos Ribeiro Tzaras
f206b7d257
call: Rename property from "number" to "id"
...
The term number is not necessarily accurate when dealing with f.e. SIP.
2021-12-05 09:49:05 +01:00
Evangelos Ribeiro Tzaras
2cf7c5e981
sip: origin: Make sure "@host" is in the dial string
...
This helps avoid some typing work in the case of dialing telephone numbers.
Fixes #350
2021-10-30 18:49:27 +02:00
Evangelos Ribeiro Tzaras
1b4e968e8e
sip: origin: Bail when trying to dial empty string
2021-10-30 18:49:27 +02:00
Evangelos Ribeiro Tzaras
36880c3d34
sip: Gather public IP from REGISTER response and use it in SDP
...
Fixes #335
2021-10-06 13:43:04 +00:00
Evangelos Ribeiro Tzaras
b8efaf1f66
media-manager: Use G_BEGIN_DECLS and G_END_DECLS in header
2021-10-06 13:43:04 +00:00
Evangelos Ribeiro Tzaras
4675821838
sip: origin: Recreate handles when updating credentials
...
Otherwise transport protocol changes won't be picked up.
This also allows to get rid of update_nua().
2021-09-29 21:33:55 +00:00
Evangelos Ribeiro Tzaras
1718823b80
sip: Do not fail if CallsNetworkWatch is unavailable
...
In this case network changes will not be detected.
Additionally fall back to binding on all network interfaces (in this case a user
will have problems when using multiple network interfaces, but there is really
not much we can do without a functioning CallsNetworkWatch).
2021-09-24 05:24:41 +00:00
Evangelos Ribeiro Tzaras
b6ee0bb48d
sip: sdp: Hang up call when there are no common codecs
2021-09-20 02:14:27 +00:00
Evangelos Ribeiro Tzaras
929d76708a
sip: sdp: Honour per media connections
...
Otherwise we might miss the IP of the remote peer leaving us unable to
establish a connection for RTP.
From https://datatracker.ietf.org/doc/html/rfc4566#section-5.7
A session description MUST contain either at least one "c=" field in
each media description or a single "c=" field at the session level.
It MAY contain a single session-level "c=" field and additional "c="
field(s) per media description, in which case the per-media values
override the session-level settings for the respective media.
2021-09-20 02:14:27 +00:00
Evangelos Ribeiro Tzaras
cf3face6cc
sip: Fix possible NULL pointer dereference
...
The assumption that the IP of the remote peer can always be found in the
sdp_connection member of the sdp_session_s struct does not always hold true
and we should handle this case gracefully (i.e. without crashing).
2021-09-20 02:14:27 +00:00
Evangelos Ribeiro Tzaras
400281c07e
sip: origin: Fix memory leak
2021-09-20 02:14:27 +00:00
Evangelos Ribeiro Tzaras
24040c2122
sip: media: Fix gtk-doc transfer annotation
2021-09-20 02:14:27 +00:00
Evangelos Ribeiro Tzaras
a5cfd9eb24
sip: origin: Bind sockets to NIC with default route
...
Otherwise sofia may use the wrong interface resulting in unroutable packets.
Closes #317
2021-09-05 18:16:24 +02:00
Evangelos Ribeiro Tzaras
6b33845b11
sip: origin: Do not use CallsNetworkWatch during tests
...
As local testing showed we might get netlink message headers of type
NLMSG_ERROR which leads to a warning being printed and the test to fail.
2021-09-05 18:01:45 +02:00
Evangelos Ribeiro Tzaras
876375a39b
sip: provider: Skip creating credential directory on test
...
As it's not guaranteed that the home directory is always writable
during the build. Debspawn for example does not allow this
and we might get such a warning:
`CallsSipProvider-WARNING **: 21:58:14.839: Failed to create directory '/home/salsaci/.config/calls': 13`
2021-09-03 00:08:05 +02:00
Evangelos Ribeiro Tzaras
56259fd1f1
sip: origin: Destroy registration handle on deinit
...
Otherwise shutting down may be timing out, because there are pending messages.
Calling nua_destroy_handle() will kill any dialog/leg.
2021-09-02 20:13:25 +02:00
Evangelos Ribeiro Tzaras
a3d91d92b5
sip: origin: Handle nua_shutdown() timeout gracefully
...
If we don't handle the timeout explicitly we would never leave the
`while (!self->is_nua_shutdown)` loop.
2021-09-02 20:11:36 +02:00
Evangelos Ribeiro Tzaras
bede9f42e8
sip: origin: Recreate sofia handles on network change
...
Otherwise the origin will not be able to do any communication anymore
as used sockets might not be valid any more.
Fixes #317
2021-09-02 20:08:48 +02:00
Evangelos Ribeiro Tzaras
2df221c94c
sip: origin: Warn instead of asserting in update_nua() on nua stack
...
Crashing the application is overkill in this case.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
16897eebe6
sip: origin: Include transport parameter in NUTAG_URL and friends
...
This makes sure all of the supported protocols have a chance of working.
Since nua_set_params does not update NUTAG_URL (carefully rechecking the docs
verifies this), it is safe to remove the code in update_nua().
However, this means that we will have to recreate the nua stack,
which incidentally is currently being worked on:
https://gitlab.gnome.org/GNOME/calls/-/merge_requests/402
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
7330fe11fd
account-widget: Fix apply button not becoming sensitive
...
when only the transport protocol has been changed.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
42c0872499
origin: Fix the password when updating credentials
...
Updating the credentials was broken otherwise.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
0bfa55473e
sip: Make save_to_disk() public and use it when updating accounts
...
Account credentials will not get updated at all otherwise.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
f47139f7d2
account-widget: Actually use the entered port
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
9faac7e789
account-widget: Actually use the selected protocol
...
instead of using the hardcoded UDP value.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
5371debc57
sip: origin: Bail when trying to go online but nua handle is not present
...
This fixes a segmentation fault.
2021-09-02 09:12:13 +02:00
Evangelos Ribeiro Tzaras
c9dd476fa8
sip: Avoid dereferencing a NULL pointer
...
secret_password_*_finish() may return FALSE without setting the GError.
F.e. trying to remove a non existent secret is not a failure.
The bug supposedly manifests itself because the updating account credentials
from the UI does not always seem to work correctly.
2021-08-26 12:04:21 +00:00
Evangelos Ribeiro Tzaras
77ec258acc
sip: provider: Try to create folder for credentials
...
Otherwise the user could be left unable to save credentials to disk later.
Fixes #326
2021-08-26 12:23:20 +02:00
Evangelos Ribeiro Tzaras
4e76efc5e7
sip: provider: No need to print warning when no credentials file found
...
The file could simply not (yet) exist.
2021-08-26 12:23:20 +02:00
Evangelos Ribeiro Tzaras
2520a9a555
sip: Avoid g_error for non-fatal issues
...
The media pipeline acting up does not warrant crashing the application.
2021-08-26 12:23:19 +02:00
Evangelos Ribeiro Tzaras
c7731b189a
origin: Add "numeric-addresses" property
...
This will be useful in the dialpad to determine whether we should allow
only numeric input or not.
2021-08-13 02:13:27 +02:00
Evangelos Ribeiro Tzaras
f5cd48bd99
sip: origin: Add protocol prefix if missing
2021-08-13 02:13:27 +02:00
Mohammed Sadiq
55a69944f1
sip-account-widget: Validate port value on change
2021-08-10 14:03:13 +00:00
Evangelos Ribeiro Tzaras
21578557f4
sip: provider: Don't store the password in the GKeyFile
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
fe6b5f9f4a
sip: provider: Retrieve password from keyring
...
Fixes #251 .
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
8ca63828df
sip: provider: Delete password from keyring when deleting account
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
a8516f6e7b
sip: provider: Update credentials on disk when removing origin
...
Otherwise the key file will be unaltered and loads the same account on
the next startup.
One more step closer to fixing #251 .
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
40cea6760b
sip: provider: Use the secret store to store credentials
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
3f12b3fcd5
sip: provider: Add argument to _add_origin() whether to store credentials
...
This allows us to avoid unnecessary saving to disk during initial account
loading.
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
e9f155678e
sip: origin: Set and update name of origin
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
5c1b76908b
sip: provider: Save accounts to disk
2021-07-20 10:17:17 +02:00
Evangelos Ribeiro Tzaras
7717633698
sip: provider: Add API to save credentials to GKeyFile
2021-07-20 10:17:17 +02:00