Commit Graph
100 Commits
Author SHA1 Message Date
Evangelos Ribeiro TzarasandGuido Gunther 2cb8139094 sip: gst-rfc3551: query for plugin availability 2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther a5a9f728ae sip: media-pipeline: only create pipeline after codec negotiation 2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther c2bd6e9344 sip: media: rework codec negotiation
introduce `calls_sip_media_manager_get_capabilities ()` which takes
a GList of MediaCodecInfo's as input to generate a SDP message.
If using in an SDP answer we simply feed it a list of the common codecs
as gathered from the SDP offer.
2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 4eb07148cc sip: call: rename setup local/remote connection functions
Avoid ambiguity by renaming the functions. `setup_local_media ()`
could give the impression that we're setting up media codecs which
is not the case.
2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 157dc1fffb sip: media: use number types for payload id and clock rate
This is needed for the next commits where we check the received SDP
offers/answers.
2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 7d113d4180 media: manager: support multiple codecs SDP wise
static capabilities are now supporting multiple codecs and generate correct SDP
messages. This only relates to SDP offers. When we are answering an offer we
must take the offer from the other party into account when creating the answer.

Hence why we differentiate between "static" and "dynamic" (not implemented yet)
capability strings.
2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 9fd43eaca8 sip: media-manager: remove unused function prototypes 2021-04-12 08:38:24 +00:00
Evangelos Ribeiro TzarasandGuido Gunther af3cda9c5c media-manager: codestyle
move public function `get_best_codec ()` to the bottom
2021-04-12 08:38:24 +00:00
Evangelos Ribeiro Tzaras aebd8ff683 Introduce HACKING.md
To facilitate using phoshs/libhandys code style for newly written code
and to provide some guidelines if anyone wanted to change the style in
the existing codebase.
2021-04-09 10:20:03 +02:00
Evangelos Ribeiro Tzaras b1add894be mm-origin: fix memory leak 2021-04-07 18:25:09 +02:00
Evangelos Ribeiro Tzaras e92ccb4f8b mm-origin: codestyle
be consistent in the naming of callback functions
2021-04-07 18:22:56 +02:00
Evangelos Ribeiro Tzaras 3fd07c4dee tests: don't special case tests needing FOR_TESTING define
This was introduced in 649da75 and was in preparation for the
sip testing code from 030313d and 21abfb4.
2021-04-06 16:55:33 +00:00
Evangelos Ribeiro Tzaras a44c265903 sip: remove FOR_TESTING ifdef 2021-04-06 16:55:33 +00:00
Evangelos Ribeiro Tzaras 4a264252a7 plugins: build as shared library instead of shared module 2021-04-06 16:55:33 +00:00
Evangelos Ribeiro Tzaras 9703b1e43e best-match: disconnect old signal handlers 2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 0bd6d7f2a5 best-match: Lookup contact if country code changed
Closes #217
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 25d651c834 manager: set default origin
This is a bit of a hack to get the country code property hooked up
and will require a rework when multiple provider support is being added.
As the default origin is not being used anywhere else in the code
it's currently not a problem that we're not tracking if the default
origin is being removed.

Additionally test-manager.c needed some adjustment.
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras a559587a19 mm: Implement country-code property
Closes #167
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 463344c52b Add API to get SIM country code
This is a copy of Mohammed Sadiq's code in purple-mm-sms
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 622827d293 best-match: Use the country code 2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras e5832bbad3 application: Use the country code 2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 7d69d78b70 origin: Add country-code property
And add a binding in CallsManager for the default origin
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 69b170ecfe best-match: g_return_if_fail if not GeeCollection
Closes #254
Closes #227
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras f8a57edc6d contacts-provider: fix docstring
The caller takes ownership of the returned `CallsBestMatch`, so
this should be reflected in the docstring
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras f84d3c0adf call: g_return_if_fail: type check calls_call_get_contact () 2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 26c8bad9cc ci: add -noreset to xvfb-run invocation
Fixes issues in CI `cannot open display`. Similar to 8cd90523
2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 32c89ca9dd contact-provider: remove trailing whitespaces 2021-04-06 14:27:26 +00:00
Evangelos Ribeiro Tzaras 75d32d0924 sip: Allow controlling automatic account loading via environment 2021-04-05 06:13:44 +00:00
Evangelos Ribeiro Tzaras 0b73103384 test: test-plugins: Add SIP plugin 2021-04-05 06:13:44 +00:00
Evangelos Ribeiro Tzaras e3597f4a88 tests: use plugin load API 2021-04-05 06:13:44 +00:00
Evangelos Ribeiro Tzaras 9e92fb88af provider: Add API for loading and unloading provider plugins
This is also used for our tests. In order to avoid code duplication
this is being moved to calls-provider.{c,h}.
2021-04-05 06:13:44 +00:00
Evangelos Ribeiro Tzaras d67e690f33 new-call-box: Connect signals only if origins non-NULL
Fixes #252
2021-04-03 06:41:54 +00:00
Evangelos Ribeiro Tzaras e6b730b805 sip: pipeline: clean up in finalize () 2021-04-03 00:46:29 +02:00
Evangelos Ribeiro Tzaras 71cbc5c636 sip: provider: Fall back to reasonable values for local-port property 2021-04-03 00:46:29 +02:00
Evangelos Ribeiro Tzaras 5a7c22c80f sip: provider: use g_get_user_config_dir () for account config 2021-04-03 00:46:29 +02:00
Evangelos Ribeiro Tzaras 21abfb4f37 test: Test CallsSipOrigin 2021-04-03 00:46:29 +02:00
Evangelos Ribeiro Tzaras 030313d42e test: Add basic SIP provider tests 2021-04-03 00:46:27 +02:00
Evangelos Ribeiro Tzaras 840ffa4653 sip: do not auto load accounts when running tests
because `calls_sip_provider_load_accounts ()` looks at the home folder
for a configuration file.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 19e7f8f119 sip-media: enable echo cancellation
by setting "filter.want" to "echo-cancel" for the pulsesink and pulsesrc
GStElement's.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 8a6f1bb203 sip: fix infinite ringtone loop
by making sure the call-added signal is emitted early enough
so that all consumers (display, ringer, etc) have a chance of getting
notified when the call state changes from f.e. DIALING to DISCONNECTED
similar to how its done in 03d960ccaf
for the dummy provider.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 17ac56fe44 sip: slightly improved authentication
* removed nua_callstate_authenticating as it was never hit
* move debug statement further up, because we might not reach it if no
  corresponding call is found
* handle 401 and 407 the same way
  note: we should record which realm we're authenticating against during
  REGISTER so we can prompt the user for additional credentials when
  challenged for a different realm - still happens when calling from
  a sip.linphone.org account to a jmp.bwapp.bwsip.io account.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras cadaa6a3e0 sip: use g_return_if_fail and friends only for public functions 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 685aa1950e application: open sip uri 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 45285062ca sip: improve connection handling by using relevant sofia tags
NUTAG_SUPPORTED and SIPTAG_EXPIRES_STR for instance

sip: include expire, urn uuid

sip.linphone.org accounts seems to be working!
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras de44a17fe5 sip: use ipv4 exclusively for now
IPv6 should work, but sofia's outbound engine keep printing
errors involving the outbound engine. Working theory:
Failing ICMPv6 (pings) can make sofia think we don't have connectivity.
Note that we also don't get any answers from the SIP servers we tried so far.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras dcff7538f2 sip: media: improve SDP offer/answer handling 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 97a925ee39 sip: handle i_outbound 404 errors 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 7b54855f5e sip: media: change default codec to PCMA 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras c33fd53829 sip: Use app name in the user agent 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 1836c7c915 sip: allow specifying local port and use IPv6 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 37b9fe1c30 sip: rework setting SDP 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras afd5b5d6a8 sip: go offline when disposing CallsSipOrigin 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 4521033127 sip: origin: register with SIP server 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 017af5ec8b sip: pipeline: bind sockets for RTP
Add debugging information for used sockets
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras a53f07dfd3 sip: origin: do not use hardcoded ports for RTP 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 6681077886 sip: origin: emit message on DNS error 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 3133f25c6b sip: call: rework call state changes 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 706a667547 sip: origin: fix direct connection case 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras c9949a5f9f sip: origin: get address on incoming call 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 588f70f78a sip: origin: fix CallsSipHandles reference in sip_callback 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras e0482fc6e6 sip: initial call handling
* implement answering and hangup
 * (de)activate media pipeline
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 967f30d688 sip: Add media manager and sipify origin
* pipeline: we should bind the used socket of our udpsink to the socket udpsrc
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 2dfa42d48d sip: sipify provider with sofia 2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 7971fb5afb sip: Origin needs account credentials
Credentials can be set through a config file. The config file is parsed
by CallsSipProvider in order to add origins for each SIP account.
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras 71e7a33626 sip: Initial provider
based on dummy provider
2021-04-03 00:08:31 +02:00
Evangelos Ribeiro Tzaras a32f6e4dc4 ofono: use g_bus_watch_name
Otherwise the load plugins test fails in CI.
2021-04-02 07:24:51 +00:00
Evangelos Ribeiro Tzaras 649da75a2f test: Test loading provider plugins 2021-04-02 07:24:51 +00:00
Evangelos Ribeiro Tzaras 52424ee927 ofono: Derive from CallsProvider
This was missed 5684d54 when CallsProvider switched from
an interface to an abstract class.

Closes #243
2021-03-24 10:00:00 +00:00
Evangelos Ribeiro Tzaras b60680f645 plugins: fix memory leaks with respect to items in GListStore
This was probably missed by accident in eda460ac where oFono's origin
did get the g_autoptr treatment.
2021-03-23 09:58:15 +01:00
Evangelos Ribeiro Tzaras 8cd9052378 ci: add -noreset to xvfb-run invocation for flatpak builds 2021-03-15 18:44:26 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 94345e0916 manager: hang up secondary calls 2021-03-15 09:24:46 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 24f53cd927 manager: remove unused function 2021-03-15 09:24:46 +00:00
Evangelos Ribeiro TzarasandGuido Gunther 78c0fb1ed7 ringer: use quiet profile for non-primary calls 2021-03-15 09:24:46 +00:00
Evangelos Ribeiro Tzaras 03d960ccaf dummy: fix infinite ringtone
Fixes #238 by making sure the call-added signal is emitted earlier.
2021-03-11 23:36:41 +01:00
Evangelos Ribeiro Tzaras 3aebfcc6d1 contact-row: remove deprecated function
Fixes #234
2021-03-09 22:45:01 +01:00
Evangelos Ribeiro Tzaras 35f45d8373 meson: bump required libhandy-1 version >1.1.90 2021-03-09 16:50:13 +01:00
Evangelos Ribeiro Tzaras 45dd165c23 flatpak: remove libhandy as it is part of the SDK 2021-03-09 16:50:13 +01:00
Evangelos Ribeiro Tzaras 7a6b702a31 plugins: use g_autoptr for GError 2021-03-03 00:17:49 +00:00
Evangelos Ribeiro Tzaras 3f197149a8 codestyle: remove whitespaces 2021-03-03 00:17:49 +00:00
Evangelos Ribeiro Tzaras 5b34342134 new-call-box: make sure to call origin_count_changed_cb
Otherwise the model changes happening before hooking up will be missed
(which results in the model not being bound to HdyComboRow).
2021-02-27 09:45:06 +01:00
Evangelos Ribeiro Tzaras 29ad37150b d/gbp.conf: automatically bump project version
this makes sure we don't forget to bump the version in meson.build
2021-02-26 12:32:13 +01:00
Evangelos Ribeiro Tzaras c7cc3805f0 po: Add src/ui/contacts-box.ui to POTFILES.in 2021-02-22 18:31:49 +01:00
Evangelos Ribeiro Tzaras 161f20b2c9 meson: bump version 2021-02-21 04:04:53 +01:00
Evangelos Ribeiro Tzaras 4a364c7c24 Document and release 0.3.1
This is a bugfix release
2021-02-16 11:49:35 +01:00
Evangelos Ribeiro Tzaras d75a08b9b7 application: Fix double free
The double free was introduced in 46e4422.
This fixes #225
2021-02-16 02:59:24 +01:00
Evangelos Ribeiro Tzaras 82275c7fea Document changes and release 0.3.0 2021-02-12 17:12:44 +01:00
Evangelos Ribeiro Tzaras f99cd48394 d/control: Add myself as maintainer 2021-02-12 10:20:10 +01:00
Evangelos Ribeiro Tzaras 3050e30672 project: rename back to calls
The project files should not have been renamed in c732c74
as these changes might infringe on GNOME trademarks
2021-02-11 08:31:27 +00:00
Evangelos Ribeiro Tzaras 46e4422026 application: use g_autoptr 2021-02-11 00:44:07 +01:00
Evangelos Ribeiro Tzaras 5d4b84470c code style: consistent whitespaces for g_autoptr 2021-02-11 00:43:18 +01:00
Evangelos Ribeiro Tzaras 71f9e636b3 display: fix null pointer dereference
removing unused GError
2021-02-08 17:39:42 +00:00
Evangelos Ribeiro Tzaras f8cd126d6f record-store: Handle old and new database locations gracefully
Because we rename the project and binaries to 'gnome-calls' we want
to make sure that the call history is preserved by doing the following:
If there is an old directory '~/.local/share/calls' try to rename it to
'gnome-calls'. Use new location if it succeeds and fall back to old location if it failed.
2021-02-04 01:19:26 +00:00
Evangelos Ribeiro Tzaras c732c74703 project: rename to gnome-calls 2021-02-04 01:19:26 +00:00
Evangelos Ribeiro Tzaras d8f2534795 call-display: fix whitespace 2021-02-03 23:58:31 +00:00
Evangelos Ribeiro Tzaras ca9c5747ab ci: Build flatpak in packaging stage
Closes #220
2021-02-04 00:25:38 +01:00
Evangelos Ribeiro Tzaras 2568ea8179 application: Notify when opening URI/files fails 2021-02-01 23:14:36 +00:00
Evangelos Ribeiro Tzaras dc6b675a14 application: Use g_autoptr and g_autofree 2021-02-01 23:14:36 +00:00
Evangelos Ribeiro Tzaras 4ebea1a27c application: chain up to parents finalize 2021-01-22 15:02:22 +01:00
Evangelos Ribeiro Tzaras d7cd299d9c new-call-box: clear entry on longpress 2021-01-20 12:35:34 +00:00
Evangelos Ribeiro Tzaras 9f295a729b record-row: hide copy number menu item
for anonymous callers
2021-01-20 11:47:33 +00:00