Daniel Gultsch
4ec0996dff
webrtc: include oldState in onConnectionChange
2021-11-11 11:19:37 +01:00
Daniel Gultsch
fda45a7c86
use implicit descriptions for WebRTC
...
using the parameter-free form of setLocalDescription() solves some potential race conditions
that can occur - especially once we introduce restartIce()
2021-11-10 16:40:24 +01:00
Daniel Gultsch
20e4d108d4
fixed regression of not handling jingle content map parsing failures
2021-10-05 15:43:05 +02:00
Daniel Gultsch
63f5f8c89d
modify TODOs in JingleRtpConnection upon better understanding of the WebRTC stack
2021-09-08 10:47:34 +02:00
Daniel Gultsch
67e5f839f1
ignore crypto callbacks when rtp session has already been terminated
2021-05-08 11:50:18 +02:00
Daniel Gultsch
8d391753d7
encrypt rtp map as future
2021-05-08 08:45:31 +02:00
Daniel Gultsch
337aa4a110
consider Config.REQUIRE_RTP_VERIFICATION on decrypt. fail as future
2021-05-07 22:55:20 +02:00
Daniel Gultsch
ddf597e0d3
invoke x509 verification upon receiving prekey message in rtp session
2021-05-06 18:40:35 +02:00
Daniel Gultsch
e2324209ed
make sure omemo sessions are verified if the the respective config flag is set
2021-05-04 19:04:01 +02:00
Daniel Gultsch
48156dd27f
a/v calls: seperate out SECURITY error from APP_FAILURE
...
until now problems with verifying the call (omemo or DTLS missing) would
just be another app failure. This commit displays verifications problems as
their own thing.
2021-05-04 10:10:34 +02:00
Daniel Gultsch
9fc04c4b1e
when receiving out-of-order session-init in terminal state do not move to terminal again
...
fixes #4049
2021-04-08 10:23:39 +02:00
Daniel Gultsch
2681ad82e1
complain if mLineIndex can not be found when receiving candidates
2021-03-16 18:52:25 +01:00
Daniel Gultsch
c5f801c1fe
do not push empty candidates to backlog
2021-03-03 13:12:10 +01:00
Daniel Gultsch
d52c46d582
use omemo verification only if omemo is enabled in conversation
2021-03-03 12:55:27 +01:00
Daniel Gultsch
3ee70b1d48
show verified shield in rtp session activity
2021-03-03 09:41:05 +01:00
Daniel Gultsch
e4b2bb4a42
throw exception when unable to encrypt
2021-03-03 08:22:21 +01:00
Daniel Gultsch
8a6430ae29
ground work for omemo dtls verification
2021-03-02 21:13:49 +01:00
Daniel Gultsch
484f633180
let Conversations (not Android) play ringtone and vibration
...
fixes #3972 fixes #3801 fixes #3931
2021-02-18 20:55:31 +01:00
Daniel Gultsch
72e268e6b1
add TODO comments wrt to missing <retract/> parsing
2021-02-18 09:36:51 +01:00
Daniel Gultsch
7330d8a7f0
fixed race conditions around PROCEED state. fixes #3989
2021-02-11 16:56:57 +01:00
Daniel Gultsch
d158eeaf72
terminate jingle call when regular call starts
2020-08-24 12:47:54 +02:00
Daniel Gultsch
15b323ee69
fix crash after session-accept failed and session-accept contained candidates
...
Conversations would attempt to feed any candidates found in the session-accept into
WebRTC; even if the session wasn’t setup correctly.
this commit processes the candidates only if the session was setup correctly
fixes #3867
2020-08-22 08:12:28 +02:00
Daniel Gultsch
637c0cb15a
fixed rare race condition when receiving transport info right after WebRTCWrapper closes
...
fixes #3849
2020-08-01 14:18:03 +02:00
Daniel Gultsch
1ae7d6be16
recover from pre-jingle connection states (discover etc) into full fledged jingle connection
...
fixes #3847
2020-08-01 09:50:54 +02:00
Daniel Gultsch
f22e33e3ea
fixed race condition of WebRTCWrapper being closed before transitioning into terminal state
...
JingleRTPConnection shuts down the WebRTCWrapper before transitioning into a terminal state.
(This allows us to make sure it is actually closed when reaching that state);
However that means that, when we get a UI redrawn inbetween closing and transitioning we might
still be in SESSION_ACCEPTED but with no PeerConnection. This traditionally has triggered
an IllegalStateException on getting the EndUserState.
This commit catches the ISE and returns 'ENDING' instead.
Chances are that this is only visibiliy for a very brief time in the UI before the transition
triggers the UI to redraw with the proper state.
fixes #3848
2020-08-01 08:20:10 +02:00
Daniel Gultsch
6a6c9fb3bf
ignore race condition when toggling fixes #3822
2020-07-09 19:14:28 +02:00
Daniel Gultsch
fada3a63c9
store entire transport info for after session was accepted. fixes #3790
2020-06-22 18:07:27 +02:00
Daniel Gultsch
169ee99afa
do not attempt to reject call if session had already ended. fixes #3798
2020-06-18 20:32:58 +02:00
Daniel Gultsch
0ba4892d3e
RTP: write log message on background thread
2020-06-12 09:08:09 +02:00
Daniel Gultsch
644ad99520
create rtp end user state for connection lost. fixes #3769
2020-06-12 07:57:11 +02:00
Daniel Gultsch
552e17e39a
remember terminal RTP session state
...
if the activity is not connected during finish it won’t receive the last end user state.
this code remembers it even if the actual session is already gone. so when activity reconnects and
we can’t find the real rtp session we can look up the last state instead.
2020-06-11 21:17:15 +02:00
Daniel Gultsch
1853242c66
do not throw when finishing jingle ft twice. fixes #3765
...
the state machine in jingle file transfer does not prevent that the connection
is being finished twice
2020-06-07 15:00:00 +02:00
Daniel Gultsch
637c208f55
ask for resource and use jingle direct init when JMI is not available. fixes #3751
2020-05-30 14:56:12 +02:00
Daniel Gultsch
59d1a2982e
RtpSessionActivity: throw instead of finish when session wasn’t found
2020-05-28 09:22:58 +02:00
Daniel Gultsch
a0920b83e2
use Account.getDomain() for direct access to domain jid
2020-05-17 10:24:46 +02:00
Daniel Gultsch
b6703dbe38
switch xmpp-addr to jxmpp-jid
2020-05-15 17:06:16 +02:00
Daniel Gultsch
2c4788b7c7
send retract when unable to setup webrtc as initiator. fixes #3717
2020-05-11 12:20:32 +02:00
Daniel Gultsch
4d3d3a7038
tie breaking racing jingle message proposals. fixes #3698
2020-05-10 14:09:16 +02:00
Daniel Gultsch
2c5bed61a1
introduce extra RTP state to handle going from sending proceed to receiving retract
2020-05-09 21:35:21 +02:00
Daniel Gultsch
f4247379bd
catch UnsatisfiedLinkError when trying to init libwebrtc. fixes #3707
2020-05-09 19:48:54 +02:00
Daniel Gultsch
92fc22b313
show call duration in audio calls. fixes #3708
2020-05-09 11:14:39 +02:00
Daniel Gultsch
285c750e69
throw IllegalStateException when trying to finish from a non terminal state
2020-05-08 18:36:52 +02:00
Daniel Gultsch
350fc57d87
properly wrap IPv6 addresses
2020-05-08 17:52:41 +02:00
Daniel Gultsch
5af4c865a7
make sure we finsh() the connection after transitioning into terminal state
2020-05-08 17:22:27 +02:00
Daniel Gultsch
3c3f5d8e6f
mark missed calls as unread (bold) in overview. fixes #3687
2020-05-03 18:07:00 +02:00
Daniel Gultsch
e70b6eec98
do not mirror back camera. fixes #3693
2020-05-03 11:54:58 +02:00
Daniel Gultsch
63ddd97b6b
add button to switch cameras during video call
...
RIP symmetry :-(
fixes #3683
2020-05-02 17:15:50 +02:00
Daniel Gultsch
f7a0d2031a
disable TLS cert validation for stun/turn server
...
turns out libwebrtc doesn’t use the system root CA store but comes with only a few default CAs.
in anyway we will probably only use tcp/443 to bypass firewalls and not to actually secure anything.
2020-05-01 20:17:23 +02:00
Daniel Gultsch
7ac5e8e828
properly close WebRTCWrapper even when init failed
2020-05-01 13:56:24 +02:00
Daniel Gultsch
deae2b109f
do not crash UI after ignoring improperly formatted jingle init
2020-04-29 15:54:02 +02:00