Daniel Gultsch
32da5853d7
track offline message queue
2024-02-23 09:54:11 +01:00
Daniel Gultsch
ef5508e5b1
trigger incoming call integration only for rtp connections
2024-02-23 09:54:11 +01:00
Daniel Gultsch
b7da7f3367
add generator for JMI finish message
2024-02-23 09:54:11 +01:00
Daniel Gultsch
bcc0c32af3
fix crash when using direct jingle init on offline contacts
2024-02-23 09:54:11 +01:00
Daniel Gultsch
1090b2edd3
add optional strict offline checking for calls
2024-02-23 09:54:11 +01:00
Daniel Gultsch
d4225fcf32
fix regression with screen not being put in right state
2024-02-23 09:54:10 +01:00
Daniel Gultsch
7f9d836f1a
play connected sound from sound file
2024-02-23 09:54:10 +01:00
Daniel Gultsch
d31b24d05a
get rid of ToneManager and play sounds in CallIntegration instead
...
CallIntegration takes care of audio routing so it makes sense to play
and sounds here too
2024-02-23 09:54:10 +01:00
Daniel Gultsch
66cd50e163
add permission check to placeCall method
2024-02-23 09:54:10 +01:00
Daniel Gultsch
0ffc295888
provide alternative method to create calls for Android <8
2024-02-23 09:54:10 +01:00
Daniel Gultsch
d79fc1bb79
run some AppRTCAudioManager actions on main thread
2024-02-23 09:54:10 +01:00
Daniel Gultsch
6ba9208eea
switch audio device when switching to video
2024-02-23 09:54:09 +01:00
Daniel Gultsch
ebb48e9320
set correct video state for calls
2024-02-23 09:54:09 +01:00
Daniel Gultsch
6975299a28
hook into onAnswer/onReject of CallIntegration
...
the Operating System shows a notification on our behalf if there is currently
a call going on that can not be put on hold (For example a Quicksy call is going
on while a Conversations call is coming on)
2024-02-23 09:54:09 +01:00
Daniel Gultsch
f119c36bff
(un)register phone account on xmpp account creation/deletion
2024-02-23 09:54:09 +01:00
Daniel Gultsch
b9e4296321
reformat debug info
2024-02-23 09:54:09 +01:00
Daniel Gultsch
dfa389f61f
update UI in case proposal gets retracted by system
2024-02-23 09:54:09 +01:00
Daniel Gultsch
a44ad6015d
update UI with correct state after UI gets invoked with ACTION_VIEW
2024-02-23 09:54:08 +01:00
Daniel Gultsch
d20cc87bda
retract proposal when accepting other call
2024-02-23 09:54:08 +01:00
Daniel Gultsch
4378f8931b
add Config flag to debug direct call init
2024-02-23 09:54:08 +01:00
Daniel Gultsch
19c634f3d2
use call integration via MANAGE_OWN_CALLS
...
better integrate calls into the system via 'Build a calling app'¹
a few hooks like onAnswer/onReject and automatic PhoneAccount creation are still missing
¹: https://developer.android.com/develop/connectivity/telecom/selfManaged
2024-02-23 09:54:08 +01:00
Daniel Gultsch
8e73b7f477
make contact integration depend on manifest, not flavor
2024-02-19 10:12:52 +01:00
Daniel Gultsch
9b832e1285
null check PushTargetMessenger
2024-02-18 17:38:32 +01:00
Daniel Gultsch
a62a7a4a84
resolver results need to be editable if we inject see-other-host
2024-02-18 10:20:54 +01:00
Daniel Gultsch
d175843cbd
ignore 'subscribe' presence for blocked contacts
2024-02-16 16:59:52 +01:00
Daniel Gultsch
8598462737
remove address book integration from Conversations on PlayStore
2024-02-14 13:53:46 +01:00
Daniel Gultsch
33c63fb562
fixup: access Android_id only on push
2024-02-14 12:09:08 +01:00
Daniel Gultsch
59c23f5558
add ability to display privacy policy link in menu
2024-02-14 09:11:49 +01:00
Daniel Gultsch
617dd76d2f
add shortcut info only for 'messages' channel
2024-02-13 18:29:08 +01:00
Daniel Gultsch
1cfc5d426e
access Android_id only on push
2024-02-13 11:04:38 +01:00
Daniel Gultsch
2833fc833c
fix JET spec compliance
2024-02-11 10:40:50 +01:00
Daniel Gultsch
93b5a099b0
add json mime type according to RFC4627
2024-02-11 08:45:46 +01:00
Daniel Gultsch
9f1c4a42f8
default to microphone foreground service type during call
2024-02-10 13:46:07 +01:00
Daniel Gultsch
6ce052a337
check sasl success message no response
2024-02-10 10:20:40 +01:00
Daniel Gultsch
75f42d680d
lower bitrate for voice recordings
2024-02-09 17:54:25 +01:00
p42ity
cd1821f2b6
Avoid truncated voice messages for affected devices
...
There were some devices which are known to produce truncated voice messages from time to time. I investigated this issue on a Fairphone 4 and found a configuration which did not show this behaviour in my experiments.
These devices are very sensitive on AAC settings. That's why I added an extra section for them. The list of devices can be adjusted.
Reviewed-on: https://codeberg.org/iNPUTmice/Conversations/pulls/192
Co-authored-by: p42ity <shopping@fpgas.de>
Co-committed-by: p42ity <shopping@fpgas.de>
2024-02-09 16:50:19 +00:00
Daniel Gultsch
b93c5622df
modify quicksy user consent wording once more
2024-02-09 11:25:00 +01:00
Daniel Gultsch
03dc15158b
use modern Java in XmppConnection
2024-02-09 11:23:05 +01:00
Daniel Gultsch
5aff7d023c
slight modifications in quicksy onboard flow
2024-02-08 11:06:07 +01:00
Daniel Gultsch
3882ea669d
check server from on stream open
2024-02-07 10:55:33 +01:00
Daniel Gultsch
01ac2912f5
catch exception when hardware renderer can not be set up
2024-02-07 10:55:01 +01:00
Daniel Gultsch
7fe8be1adc
better work around for not processing race condition stanza
2024-02-07 10:07:53 +01:00
Daniel Gultsch
7455e99761
remove unnecessary resume call
2024-02-07 09:15:36 +01:00
Stephen Paul Weber
961a024aa2
XEP says thread means not the topic
...
Note: A message with a <subject/> and a <body/> or a <subject/> and a
<thread/> is a legitimate message, but it SHALL NOT be interpreted as a
subject change.
2024-02-07 07:22:57 +00:00
Daniel Gultsch
ff082ab607
code clean up in IQ callback handling
2024-02-06 14:27:32 +01:00
Daniel Gultsch
c2592d1417
fixup: simplify loginInfo null check
2024-02-05 15:59:06 +01:00
Daniel Gultsch
5ab8912cb4
simplify loginInfo null check
2024-02-04 19:49:55 +01:00
Daniel Gultsch
4168bc4666
less noisy logcat. catch illegal state exception as result of race condition
2024-01-19 15:20:47 +01:00
Daniel Gultsch
b2e1f9b3d8
call current transport when receiving transport-replace
2024-01-19 11:43:23 +01:00
Daniel Gultsch
15a3c163eb
respond OK to JFT session terminate
2024-01-19 10:40:32 +01:00
Daniel Gultsch
88851ea12a
bundle letsencrypt root certificates
...
as per https://letsencrypt.org/2023/07/10/cross-sign-expiration.html
Letsencrypt is dropping support for Android <= 7 by removing cross signing.
to keep supporting older Android versions we need to bundle the root cert
ourselves. (Firefox for example does this too)
The KeyStore file is in BKS-V1 format. A good tools to edit the file is
https://keystore-explorer.org/
To keep the attack and bug surface as low as possible we only run the check
against the bundled keystore on Android <= 7
2024-01-15 10:57:07 +01:00
Daniel Gultsch
aeb805a3ca
abort socks candidate search if peer selected something with higher priority
2023-12-20 11:23:04 +01:00
Daniel Gultsch
eec01c9e7b
disable quick log
2023-12-20 09:23:09 +01:00
Daniel Gultsch
d3b38a5273
refactor Jingle File Transfer. add WebRTCDatachannel transport
2023-12-19 17:26:11 +01:00
Daniel Gultsch
1a83c290a2
UnifiedPush: send unregistered to apps when 'none' account is selected
2023-12-05 10:59:50 +01:00
Daniel Gultsch
20c179c1a1
ensure will tell 'messenger' when UP registration fails or is delayed
2023-12-02 12:20:19 +01:00
Daniel Gultsch
f7b5124fd3
support location attribute on enable
2023-12-01 18:29:52 +01:00
Daniel Gultsch
eb5994f80f
add quick log functionality to debug UP
2023-12-01 13:22:10 +01:00
Daniel Gultsch
747f58c35b
JingleConnectionManager: code clean up
2023-11-22 08:37:17 +01:00
Daniel Gultsch
b183f49977
update call UI after RTP connection has ended
2023-11-22 08:36:44 +01:00
Daniel Gultsch
402882389f
fixup: properly detect fast
2023-11-21 19:40:10 +01:00
Daniel Gultsch
59ff27062b
treat carbons as enabled when requested through bind 2
2023-11-21 16:50:46 +01:00
Daniel Gultsch
3dac9ef3f4
use stricter namespace matching in stream parser
2023-11-21 15:25:21 +01:00
Daniel Gultsch
5bb8f3f9aa
stricter bind 2 inline feature parsing
2023-11-21 15:24:31 +01:00
Daniel Gultsch
acef5dbd3b
code clean up
2023-11-20 19:29:19 +01:00
Daniel Gultsch
25dd775613
catch illegal argument exception when reading DNS
2023-11-14 15:13:45 +01:00
Daniel Gultsch
c72a86a0a4
add timeout to ICE gathering
2023-11-14 08:57:22 +01:00
Daniel Gultsch
5728cf13ea
RtpSessionActivity code clean up
2023-11-13 17:12:18 +01:00
Daniel Gultsch
622b569bbc
fix accepting senders both content adds
2023-11-13 13:46:30 +01:00
Daniel Gultsch
80c49955f0
JingleRtpConnection code clean up
2023-11-13 13:46:30 +01:00
Daniel Gultsch
96dcc75ac3
add SDP Offer / Answer support
2023-11-13 12:36:20 +01:00
Daniel Gultsch
38ca53fcac
bump reporting xep and add ability to report messages
2023-11-12 19:29:15 +01:00
Daniel Gultsch
e73fbac56f
enable 'PEP Native Bookmarks'
2023-11-10 15:29:26 +01:00
Stephen Paul Weber
f798102978
Fix and updates Bookmarks2 support
...
Support the stable version namespace and the new elements, including preserving
any extension content.
2023-11-10 11:41:02 +01:00
Daniel Gultsch
0898ea77ff
jingle: do not send session-terminate after failed regneg when session already was
2023-10-31 13:16:17 +01:00
Daniel Gultsch
438a228fc3
minor code clean up
2023-10-31 12:34:55 +01:00
Daniel Gultsch
f6482c5a87
fix caps hash calculation for empty form fields
2023-10-31 11:03:59 +01:00
Daniel Gultsch
fba7721cd5
fix rare concurrent modification in muc user search
2023-10-31 10:43:53 +01:00
Daniel Gultsch
dfd7410b1a
make copy omemo fp button a show qr code button
2023-10-30 14:26:28 +01:00
Daniel Gultsch
71b6492d61
show unverified devices warning in contact and account details
2023-10-30 13:06:04 +01:00
Daniel Gultsch
0bbc1193e3
allow background activity start for OpenKeyChain intents
2023-10-29 08:54:19 +01:00
Daniel Gultsch
ea5ffe92ea
improve logging when PGP decryption fails
2023-10-29 08:54:19 +01:00
Daniel Gultsch
48ffde9656
toggle foreground service to set correct type when gaining permissions
2023-10-29 08:54:18 +01:00
Daniel Gultsch
e83a0af277
ignore false positive warning wrt foreground service
2023-10-29 08:54:17 +01:00
Daniel Gultsch
35c8d31d42
update gradle and gradle plugin
2023-10-29 08:54:17 +01:00
Daniel Gultsch
e422b89df5
use aggressive reconnects for see-other-host
2023-10-29 08:54:17 +01:00
Daniel Gultsch
1732ab5cc7
add internal ping timer in case alarm manager fails
2023-10-29 08:54:17 +01:00
Daniel Gultsch
a162d72c2a
code clean up in processAccountState()
2023-10-29 08:54:17 +01:00
Daniel Gultsch
928db01ae8
do not init connection for disabled accounts
2023-10-29 08:54:16 +01:00
Daniel Gultsch
2dd8896dc2
stop service on log out when UI is not active
2023-10-29 08:54:16 +01:00
Daniel Gultsch
d1f648f2e3
code clean up in onStartCommand
2023-10-29 08:54:16 +01:00
Daniel Gultsch
69425e677c
remove soft disable flag when attempting call
2023-10-29 08:54:16 +01:00
Daniel Gultsch
f042efd550
add 'log out' button to foreground notifcation
...
this temporarily disconnects all accounts until the user opens the app again.
essentially this akin to an 'Exit' button
Users previously had the option to 'disable' accounts but this provides a
faster way to "free up resources" until the next time the app is opened.
2023-10-29 08:54:16 +01:00
Daniel Gultsch
418d6b09a0
explicitly declare foreground service type
2023-10-29 08:54:16 +01:00
Daniel Gultsch
981dc2df6d
fix RtpSessionActivity not asking for permissions
2023-10-26 09:38:24 +02:00
Daniel Gultsch
f6c9df00de
run account deletion callback on ui thread
2023-10-25 09:41:05 +02:00
Daniel Gultsch
6d519cd447
pick proper TTL for non existent DNS entries
2023-10-24 21:05:35 +02:00
Daniel Gultsch
1da9d42065
retrieve DNS response from cache
2023-10-24 19:16:47 +02:00
Daniel Gultsch
97acd16422
keep cache of DNS messages
2023-10-24 18:53:14 +02:00
Daniel Gultsch
55a77c083f
store SSLSocket after starttls to fix channel binding mechanism detection
2023-10-23 14:40:40 +02:00
Daniel Gultsch
68eb17d400
create missed call notification when device is busy
2023-10-23 11:22:00 +02:00
Daniel Gultsch
c44f4b102a
do not accept fast token w/o channel binding for channel bound login
2023-10-21 14:22:38 +02:00
Daniel Gultsch
822f3f4d22
consider going from unique or exporter to endpoint a downgrade
2023-10-21 14:21:29 +02:00
Daniel Gultsch
d1f4fbd9de
add connect timeout to DoT
2023-10-19 20:51:19 +02:00
Daniel Gultsch
71ebca40e8
add ķ as irregular unicode
2023-10-19 18:11:08 +02:00
Daniel Gultsch
063f30ded2
ignore outgoing invite
...
outgoing, mediated invites are of type=normal and can end up in MAM.
We want to ignore those if they get mirrored back to us
2023-10-18 11:50:10 +02:00
Daniel Gultsch
1b49e6b3c1
disable password edit unless unauthorized
2023-10-15 11:23:12 +02:00
Daniel Gultsch
3350ea8b5b
ensure we are in session accepted when processing content-modify
2023-10-15 08:51:15 +02:00
Daniel Gultsch
9a922ffe5d
quietly ignore mediated invites from blocked contacts
2023-10-13 17:36:12 +02:00
Daniel Gultsch
5b2444ea13
implement see-other-host stream error
2023-10-13 08:29:23 +02:00
Daniel Gultsch
a40d244bf5
remove unnecessary in resolver
2023-10-12 11:59:21 +02:00
Daniel Gultsch
788565b299
upgrade to 'both' upon accepting recvonly content-add
2023-10-11 11:38:09 +02:00
Daniel Gultsch
dbf71e5d54
handle senders modification via content-modify
...
Dino uses this to enable/disable video when a video content is already present
2023-10-10 18:47:29 +02:00
Daniel Gultsch
39194d111c
QR code scan: take disabled accounts into consideration
...
when making register or add contact decision
2023-10-10 09:36:08 +02:00
Daniel Gultsch
c53e035935
do not use JMI if any rtp capable device does not support it
2023-10-09 16:23:02 +02:00
Daniel Gultsch
8f014d5525
implement Private DNS (DoT)
...
due to limitations in the MiniDNS library this does not work when
'Validate hostname with DNSSEC' is enabled in the expert settings
2023-10-09 13:27:44 +02:00
Daniel Gultsch
d3d582759f
support omemo verification in non stub transport content modifications
...
Dino (and this is probably correct behaviour) expects a fingerprint in the
content-add message. (and not a stub transport as indicated in the examples).
however if we start to include them we also need to encrypt and verify them
properly.
2023-10-09 13:19:26 +02:00
Arne-Brün Vogelsang
1a7e75235a
Update src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java
...
just a space
2023-10-08 18:25:47 +00:00
Arne-Brün Vogelsang
77631c97a7
Update src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java
...
Add Fairphone 4 to AEC Blacklist to fix Echo problems: https://github.com/iNPUTmice/Conversations/issues/4439
2023-10-08 18:25:20 +00:00
Daniel Gultsch
1c5a1b8c71
keep order of rtp contents
2023-10-06 12:34:41 +02:00
Daniel Gultsch
541c8ba80d
modify mime type detection for shared files
...
add support for audiobooks
2023-10-06 12:34:13 +02:00
Daniel Gultsch
95aea4291e
don't attempt to figure out file path on Android 11+
...
fixes #117
2023-10-05 20:29:42 +02:00
Daniel Gultsch
601a8cb3bc
process content-modify for pending content-adds
2023-10-05 16:23:43 +02:00
Daniel Gultsch
a8241c72df
use url safe jingle session ids
...
Movim does not like slashes (/) in jingle session ids.
When proposing a session called 'wBKabx1kRIfkgNxAShip/w' Movim will
accept (proceed) a session called 'wBKabx1kRIfkgNxAShip' which the initiator of course does not know about. (Conversations will get stuck at ringing/discovering devices)
This is likely because a click on 'Reply' (accept call) in Movim opens upa pop up window where both the full jid as well as the session id are transmitted as part of the URL.
(Full jids can contain more than on slash btw)
2023-10-04 13:30:53 +02:00
Daniel Gultsch
1b5d2151d0
warn early when SDP is likely to be invalid
2023-10-04 13:07:28 +02:00
Daniel Gultsch
6bc3cad7de
apply ice-options when adding content or restarting ice
2023-10-04 10:43:45 +02:00
Daniel Gultsch
1aeae9c7f6
set local-only flag on ongoing call notification
2023-10-03 14:16:48 +02:00
Daniel Gultsch
8570c9f912
use more aggressive reconnect intervals during rtp session
2023-10-03 12:56:10 +02:00
Daniel Gultsch
fd4b8ba188
bring back ICE Renomination via negotiation
2023-10-03 12:55:44 +02:00
Daniel Gultsch
17856a47db
hold back candidates until after content-add
2023-10-02 13:54:36 +02:00
Daniel Gultsch
7e9980d997
catch illegal state exception in TrackWrapper
2023-10-02 11:48:03 +02:00
Daniel Gultsch
09993b8319
fetch local description on its own executor
2023-10-02 11:03:08 +02:00
Daniel Gultsch
0dca7f8a5a
JMI: send 'ringing' and receipts only for contacts
...
fixes #110
2023-10-01 08:05:40 +02:00
Daniel Gultsch
ac3ce93c56
fix stun url generation
2023-10-01 08:02:55 +02:00
Daniel Gultsch
c9b80254e4
add more logging to unroutable jingle messages
2023-09-30 15:56:06 +02:00
Daniel Gultsch
6660877bcf
jingle: trim media attribute values
...
Movim has trailing whitespace around some of their media attributes
<source ssrc="1892824964" xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
<parameter name="msid" value="{a98821d7-b298-4130-925a-ff6c510734c0} {f45dfc5c-2fa7-42b4-85e5-935e786b3feb} " xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"/>
<parameter name="cname" value="{63b1042b-5cb5-4411-b2a5-bdff92ae45be}" xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"/>
</source>
our WebRTC doesn’t like that. We trim the value even though this seems to be a Movim bug.
2023-09-30 07:55:08 +02:00
Daniel Gultsch
86f46ece83
revert back to AAC for voice messages
...
iOS can not do opus out of the box
2023-09-29 18:42:31 +02:00
Daniel Gultsch
05c79ff29d
version bump webrtc to m117
2023-09-29 16:19:01 +02:00
Daniel Gultsch
3e9c08a4aa
include date in backup file name
...
since `account.ceb` might have previously been created by a different application
(for example f-droid and user is on play now) or copied over via the file
manager Conversations might not have permission to write over an existing file.
we include the date so we always get a new file
fixes #105
2023-09-25 10:56:24 +02:00
Daniel Gultsch
2adff4a92c
catch rare instances of foreground service not allowed to start
2023-09-25 09:22:29 +02:00
Daniel Gultsch
8ba90f266e
add explicit error message for outdated backup files
2023-09-20 17:00:04 +02:00
Daniel Gultsch
b4c3334d7e
add a few TODOs wrt tie breaks
2023-09-14 14:39:32 +02:00
Daniel Gultsch
fdd7f2926f
support 'ringing' jingle message
2023-09-14 11:22:19 +02:00
Daniel Gultsch
00ae1ca762
fix group chat shortcuts
2023-09-11 16:38:57 +02:00
Daniel Gultsch
c6501a3ad4
fix UUIDv4 calculation
2023-09-08 14:19:18 +02:00
Stephen Paul Weber
11e6cb9693
Use conversation notifications
...
Allows for per-conversation priority and sound
2023-09-07 13:08:23 +02:00
Daniel Gultsch
d5ae2f4b41
look at roomconfig_changesubject and roominfo_changesubject
...
fixes #90
2023-09-06 13:47:35 +02:00
Daniel Gultsch
1b05cbd665
use opus for voice messages on Android 10
...
recipients need at least Android 5 to play the message; however
Conversations has been Android 5+ for a while now
2023-08-20 07:59:45 +02:00
Daniel Gultsch
09f6343ced
Security: Introduce backup file format v2
...
This switches the SQL based backup format to something JSON based.
The SQL based format has always been prone to SQL injections that, for example, could delete other messages or preexisting accounts in the app. This hasn’t been a concern this far because why would anyone purposely try to restore a faulty backup? However the argument has been made that a user can be socially engineered to restore an exploited backup file.
Before version 2.12.8 a third party app could even trigger the restore process, leaving the backup password entry dialog the only hurdle.
On top of that it has been demonstrated that a backup file can be crafted in a way that puts preexisting credentials into a 'pending' message to an attacker ultimately leading to that information being leaked.
While destorying information has always been deemed an acceptable risk, leaking information is one step too far.
Starting with Conversations 2.12.9 Conversations will no longer be able to read v1 backup files. This means if you are restoring on a new device and you have a v1 backup file you must first install Conversations <= 2.12.8, restore the backup, and then upgrade to Conversations >= 2.12.9.
ceb2txt¹ has support for v2 backup files. Conceivably ceb2txt could be extended to convert between v1 and v2 file formats. (ceb2txt already recreates the database from v1 files; It is relatively straight forward to create v2 files from that database. Pull requests welcome.)
¹: https://github.com/iNPUTmice/ceb2txt/
2023-08-17 12:07:51 +02:00
Daniel Gultsch
b4a07d0093
remove channel discovery from Google Play build flavor
2023-08-08 10:39:36 +02:00