talk-android/app
Daniel Calviño Sánchez c1f77b13c1 Handle "sid" in peer connections
Signaling messages related to peer connections include a "sid" parameter
to be able to identify the connection. At any given time it is expected
that there will be a single peer connection for certain session and
type, and the sid is used to verify that both ends are using the same
peer connection.

Signaling messages with a different sid can be ignored, unless they are
offers; if an offer is received for an existing peer connection with a
different sid that means that the existing peer connection is stale, so
it should be removed and a new one should be created instead. This can
happen, for example, if a new offer is requested to the HPB (which
creates a new peer connection in the HPB, so the existing one can no
longer be used).

On the other hand, if an offer with the same sid as the existing peer
connection is received that means that the offer is a renegotiation, and
it should be handled by the existing peer connection.

Note that a signaling message may not contain a "sid" parameter if an
older HPB is being used (external signaling server < 0.5.0), or when the
other participant is using an older app version. In that case it is not
possible to know if a signaling message for certain session and type
actually refers to the existing connection or a different one, so it is
always handled as if it was for the existing connection (which was the
behaviour until now).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-01-16 11:32:10 +01:00
..
schemas/com.nextcloud.talk.data.source.local.TalkDatabase Room db schema v8 2022-07-01 08:59:12 +02:00
src Handle "sid" in peer connections 2023-01-16 11:32:10 +01:00
build.gradle Merge pull request #2692 from nextcloud/dependabot/gradle/org.mockito-mockito-core-5.0.0 2023-01-16 09:21:48 +01:00
lint.xml Get rid of BaseController, ButterknifeController, and ButterKnife 2022-08-18 17:19:08 +02:00
proguard-rules.pro Initial import 2017-10-23 12:40:38 +02:00