Go to file
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
.devcontainer bump devcontainer to java11 2022-07-21 21:38:58 +02:00
.github 🔄 synced local '.github/workflows/' with remote 'config/workflows/' 2023-01-14 02:32:00 +00:00
.idea Refactor and extract ViewThemeUtils to common library 2022-08-31 19:54:05 +02:00
.tx [tx-robot] Update transifex configuration 2022-10-19 09:03:48 +00:00
app Handle "sid" in peer connections 2023-01-16 11:32:10 +01:00
buildSrc Remove 'RC1' for WebRTC versions 2022-11-04 16:35:25 +01:00
contribute Remove duplicated copyright explanation 2022-08-31 16:11:49 +02:00
docs codacy: [list-item-spacing] Missing new line after list item 2022-10-12 19:29:03 +00:00
drawable_resources custom cam view icon resources 2021-11-11 22:10:55 +01:00
fastlane optimize screenshots 2022-09-16 16:51:25 +02:00
gradle/wrapper Build(deps): Bump gradle from 7.3.1 to 7.4.0 2023-01-13 11:05:22 +01:00
scripts Build(deps): Bump gradle from 7.3.1 to 7.4.0 2023-01-13 11:05:22 +01:00
.drone.yml remove analysis from drone due to move to GH action 2022-10-11 17:14:09 +02:00
.editorconfig Add missing .editorconfig 2021-07-08 12:36:36 +02:00
.gitignore Add new analysis action 2022-10-10 17:03:47 +02:00
build.gradle Build(deps): Bump gradle from 7.3.1 to 7.4.0 2023-01-13 11:05:22 +01:00
CHANGELOG.md update changelog for 15.1.0 2023-01-12 11:34:28 +01:00
CODE_OF_CONDUCT.md Add CoC 2018-01-11 21:02:38 +01:00
CONTRIBUTING.md Remove duplicated copyright explanation 2022-08-31 16:11:49 +02:00
detekt.yml reduce detekt max issues count 2022-10-06 19:49:52 +02:00
gradle.properties Add test for login flow 2021-12-21 11:14:13 +01:00
gradlew Initial import 2017-10-23 12:40:38 +02:00
gradlew.bat Initial import 2017-10-23 12:40:38 +02:00
LICENCE Initial import 2017-10-23 12:40:38 +02:00
README.md simplify image markdown 2022-09-16 16:57:18 +02:00
SECURITY.md Issue templates, security info and no-response 2021-04-27 10:05:00 +02:00
settings.gradle Update dependency ImagePicker 2022-11-18 08:05:11 +00:00
SETUP.md update ktlint formatter + documenting update steps 2021-06-08 10:38:05 +02:00
spotbugs-filter.xml exclude dagger module generated classes and align with files-client excludes 2022-12-15 08:33:10 +01:00

Nextcloud Talk for Android 💬

Build Status Codacy Badge Releases

Download from Google Play Get it on F-Droid

Please note that Notifications won't work with the F-Droid version due to missing Google Play Services.

Conversation list Participant search Voice call Voice recording Markdown view Settings

Video & audio calls through Nextcloud on Android

Nextcloud Talk is a fully on-premises audio/video and chat communication service. It features web and mobile apps and is designed to offer the highest degree of security while being easy to use.

Nextcloud Talk lowers the barrier for communication and lets your team connect any time, any where, on any device, with each other, customers or partners.

Why is this so awesome?

Because it is self hosted!!! Audio/video calls and text chat typically require a central server. Some projects go commendably far in trying to ensure they can't see the data, so nobody, not government, advertising company or somebody who broke in the servers, can follow conversations. But the servers still have to mediate every call and text message, allowing them to map out who talks to who and at what time. This 'metadata' is as useful, if not more, to track people, than the full content, especially for mass surveillance purposes. Even if the data is not stored by the chat server, the hosting provider or a hacker could simply gather the data.

By hosting your own server, all meta data stays on your server and thus under your control!

If you have suggestions or problems, please open an issue or contribute directly :)

How to contribute 🚀

If you want to contribute to Nextcloud, you are very welcome:

Contribution Guidelines 📜

GPLv3. All contributions to this repository are considered to be licensed under the GNU GPLv3 or any later version.

Please read the Code of Conduct. This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.

Please review the guidelines for contributing to this repository.

More information how to contribute: https://nextcloud.com/contribute/

Start contributing 🛠️

Make sure you read SETUP.md and CONTRIBUTING.md before you start working on this project. But basically: fork this repository and contribute back using pull requests to the master branch. Easy starting points are also reviewing pull requests and working on starter issues.

Testing 🧪

So you would like to contribute by testing? Awesome, we appreciate that very much.

To report a bug for the alpha or beta version, just create an issue on github like you would for the stable version and provide the version number. Please remember that Google Services are necessary to receive push notifications.

Beta versions (Release Candidates) 📦

via Google Play

Sign up at Google Play Beta channel to get Release Candidates via Google Play.

via github

You can also get the Release Candidates at github releases.

Alpha versions

via Google Play

To become an alpha tester you have to be signed up for the Google Play Beta channel and additionally you have to join the Alpha testing Google Group. After that you will receive the alpha versions via the Play Store (initially, this might take some minutes after signing up). However, in the Play Store the app will still be named "Nextcloud Talk (Beta)" even if you are an alpha tester, but you will receive the alpha versions. If a beta was released that is newer than the alpha version, you will get the beta in the alpha channel.

via Download page

In addition to google play, the alpha and beta apps can also be obtained from the Nextcloud Download page Please make sure to remember that these versions might contain bugs and you don't use them in production.

Support ⛑️

If you need assistance or want to ask a question about the Talk Android app, you are welcome to ask for community help in our forums. If you have found a bug, feel free to open a new issue on GitHub. Keep in mind, that this repository only manages the Nextcloud Talk for Android app. If you find bugs or have problems with the server/backend, you should ask the Nextcloud server team for help!

Notifications

If you have problems to receive talk notifications on your android phone, please have a look at this checklist.

Credits 📜

Ringtones 🔔

Remarks 📜

Google Play and the Google Play logo are trademarks of Google Inc.