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
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
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
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
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
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
4c2717c362
dummy: Add dummy send_dtmf_tone function
...
This will allow DTMF to be tested UI wise when running the dummy plugin.
2021-11-23 08:50:01 +00:00
Evangelos Ribeiro Tzaras
a353a03d01
call: Get rid of tone_stop
...
It wasn't used by any plugin backend and helps getting rid of a lot of code.
2021-11-23 08:50:01 +00: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
94d730c3ed
Let provider plugin decide whether to automatically hang up secondary calls
...
Revert "manager: hang up secondary calls"
This reverts commit 94345e0916
and moves that
functionality to the ModemManager plugin.
Fixes #290
2021-10-22 06:00:45 +02:00
Evangelos Ribeiro Tzaras
21eb12e9b1
dummy-call: Simplify change_state()
2021-10-22 04:58:01 +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