Daniel Gultsch
b6442c0bd4
add Samsung S4 to hardware aec blacklist
...
fixes #4267
2022-01-18 11:30:23 +01:00
Daniel Gultsch
db834a1f07
indicate call reconnect in notification
2021-11-19 12:26:11 +01:00
Daniel Gultsch
f8a94161db
don't play tone going from connect->reconnect->connect
2021-11-19 12:25:27 +01:00
Daniel Gultsch
a508a81553
externalize rtc config generation into seperate method
2021-11-17 11:33:15 +01:00
Daniel Gultsch
61fb38cd84
clean up some error handling error ICE restarts
2021-11-17 10:49:16 +01:00
Daniel Gultsch
0a18c8613f
assume credentials are the same for all contents when restarting ICE
2021-11-16 17:08:34 +01:00
Daniel Gultsch
abb671616c
synchronize setDescription calls
2021-11-16 15:17:12 +01:00
Daniel Gultsch
297a843b9c
use implicit rollback (needed to be enabled on libwebrtc)
2021-11-16 13:17:10 +01:00
Daniel Gultsch
0698fa0d8c
store peer dtls setup for later use in ice restart
2021-11-16 11:21:11 +01:00
Daniel Gultsch
70b5d8d81a
set proper peer dtls setup on ice restart received
2021-11-15 21:49:31 +01:00
Daniel Gultsch
0a3947b8e3
terminate with application failure when failing to apply ICE restart
...
This is fairly unlikely to happen in practice
2021-11-15 17:18:45 +01:00
Daniel Gultsch
3f402b132b
respond with tie-break to prevent ICE restart race
2021-11-15 13:03:04 +01:00
Daniel Gultsch
5b80c62a63
treat transport-info w/o candidates and changed credentials as offer
2021-11-14 18:22:18 +01:00
Daniel Gultsch
717c83753f
delay discovered ice candidates until JingleRtpConnection is ready to receive
...
otherwise setLocalDescription and the arrival of first candidates might race
the rtpContentDescription being set
2021-11-11 21:02:17 +01:00
Daniel Gultsch
b6dee6da6a
reverse: webrtc: include oldState in onConnectionChange
...
turns out we don’t need it and a better way is for RtpConnection to keep track of *all*
states in the current generation
2021-11-11 17:05:36 +01:00
Daniel Gultsch
9c3f55bef2
use stopwatch to keep track of jingle rtp session duration
2021-11-11 16:52:18 +01:00
Daniel Gultsch
9843b72f6f
always use Camera2Enumerator
2021-11-11 15:23:45 +01:00
Daniel Gultsch
61851e5f84
do not automacially hang up failed webrtc sessions
2021-11-11 14:40:15 +01:00
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
bae9fc45c2
make rtcpMux optional
2021-10-31 10:20:58 +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
3ede2d00bd
remove logging
2021-10-02 16:54:19 +02:00
Daniel Gultsch
d2a387e82f
correctly calculate socks destination
2021-10-02 16:44:36 +02:00
Daniel Gultsch
da14f83a42
ensure all bytes are read in socks handshake. fixes #4188
2021-10-02 14:24:36 +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
7466d12505
ring during device discovery
2021-05-22 19:37:20 +02:00
Daniel Gultsch
87f99d3570
Transferables interface needs to differentiate between 0 and null file size
2021-05-17 15:51:21 +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
9182a300c5
report fingerprint missmatch as securiy exception
2021-05-08 10:35:07 +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
6d91551f59
use onAddTrack instead of deprecated onAddStream
2021-05-03 13:06:42 +02:00
Daniel Gultsch
0717f9ba18
upgrade libwebrtc to m90 and enable extmap-allow-mixed
2021-05-03 09:48:46 +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
30c9e7399e
log track class in onAddTrack
2021-03-29 10:57:56 +02:00
Daniel Gultsch
1822a71c2a
Do not crash when receiving video call on device w/o camera
...
Upon accepting a video call on a device that can not establish a video track on
its own (for example by not having a camera), displaying the video enable/disable
button would fail. This commit defaults this button to disabled.
2021-03-26 12:54:26 +01:00
Daniel Gultsch
739d20428a
optimize imports
2021-03-21 21:39:04 +01:00
Daniel Gultsch
8ac97b0027
disable extmap_allow_mixed by default
2021-03-21 19:40:52 +01:00
Daniel Gultsch
6f1b71970d
parse extmap-allow-mixed
2021-03-16 18:52:38 +01:00
Daniel Gultsch
3baacf8862
switch to unified plan
2021-03-16 18:52:38 +01:00
Daniel Gultsch
2681ad82e1
complain if mLineIndex can not be found when receiving candidates
2021-03-16 18:52:25 +01:00
Christopher Vollick
ef24d2050b
Remove Renomination from WebRTC Options
...
This is a feature of WebRTC that's [not standardized][1] and only
supported by libwebrtc. Since there's no support in jingle for passing
this capability from one peer to another, we're currently hard-coding
this option into both the local candidate and also the remote candidate
so they can use it.
But I'm trying to call a user that isn't using WebRTC, and renomination
is causing the call to stay in "connecting..." state for 10 or 20
seconds, sometimes longer, while both sides wait for the other to
nominate something based on their individual beliefs about the standards
they're using.
Removing this seems to make connecting relatively instantaneous.
If we want to reintroduce this feature, we should probably make a XEP so
the peers can negotiate honestly about it, and only use it if both sides
truely support the feature.
[1]: https://datatracker.ietf.org/doc/html/draft-thatcher-ice-renomination-01
2021-03-04 08:26:52 +00: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