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
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
75d32d0924
sip: Allow controlling automatic account loading via environment
2021-04-05 06:13:44 +00:00
Mohammed Sadiq
c30a41ffa9
Let calls-call be an abstract class
...
And adapt to changes.
A calls-mm-call IS-A calls-call (and so on)
2021-04-05 09:38:03 +05:30
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
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
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
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
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
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
Mohammed Sadiq
eda460ac15
provider: Use GListModel to track origins
...
And adapt to changes
It's easier to track changes if we are using GListModel than
a GList. Also, eventually we shall have multiple providers,
and we can use GtkFlattenListModel to merge multiple origins
without manually managing pointers ourself.
Since several widgets has APIs to handle GListModels, it will
also help us create widgets from GListModels easily.
2021-02-25 08:44:56 +05:30
Mohammed Sadiq
5684d54bbd
Let calls-provider be an abstract class
...
And adapt to changes.
A calls-mm-provider IS-A calls-provider (and so on)
2021-01-31 23:01:13 +00:00
Eugenio Paolantonio (g7)
ddab47d288
ofono: call: ensure signals get disconnected on voice_call object destruction
...
The 'property-changed' and 'disconnect-reason' signals weren't disconnected on the
voice_call object cleanup, and callbacks would thus still be fired once a second
call happens, resulting in a crash.
Signed-off-by: Eugenio Paolantonio (g7) <me@medesimo.eu>
2021-01-12 02:22:17 +01:00
Daniel Abrecht
0d8470597b
Don't localise property descriptions in calls-call and calls-origin properties
2020-12-07 17:25:33 +00:00
Daniel Abrecht
4e7a0b8151
Replace CallsOrigin getters with properties and add calls_origin_foreach_call method
2020-12-07 17:25:33 +00:00
Mohammed Sadiq
939a59735c
mm-origin: Implement CallsUssd interface
2020-11-03 08:19:00 +05:30
Julian Sparber
ed0da2a3ab
MMPlugin: emit *-removed after removing object
...
This makes sure that when we use calls_provider_get_origins/calls ()
in the signal handler it doesn't include the removed origin/call.
2020-03-26 18:49:57 +00:00
Julian Sparber
389e772069
DummyPlugin: fix events emits for call-removed, origin-*
...
This fixes this two issues:
- Emit the events origin-removed, origin-added when required.
- Remove call immediately when disconnected and emit events:
By using `g_idle_add ()` we can't be sure when the call is actually
removed and could stay potentionaly for evere, as long the main loop is
busy. This can lead to unexpected behavior. If the calls shouldn't be
freed then it's required to increase the ref count. This is similar how
the `remove` event works in a `GtkContainer`.
2020-03-26 18:49:57 +00:00
Daniel Abrecht
cad79a4834
Reintroduce GParamSpec props arrays & replace g_object_notify with g_object_notify_by_pspec
2020-03-18 09:57:01 +00:00
Daniel Abrecht
4055503336
Notify if number changes in mm plugin
2020-03-18 09:57:01 +00:00