nextcloud / spreed

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.61k stars 429 forks source link

Talk doens't work in Firefox #6499

Closed moritz76 closed 2 years ago

moritz76 commented 2 years ago

Steps to reproduce

  1. Open a videocall with another user
  2. Waiting for video and audio - no connection is established
  3. Disable Cache in Firefox settings
  4. video and audio is established

Expected behaviour

Open videocall with another user, video and audio connection is established immediate

Actual behaviour

The connection only works if I disable the cache in firefox settings (More tools - Web Developer Tools - Network - Disable Cache)

Talk app

Talk app version: 12.1.2

Custom Signaling server configured: yes

Custom TURN server configured: yes

Custom STUN server configured: yes

Browser

Microphone available: yes

Camera available: yes

Operating system: Windows

Browser name: Firefox

Browser version: 94.0.1

Browser log

grafik

Server configuration

Operating system: Ubuntu 20.04 LTS Webserver: nginx/1.21.4 (fpm-fcgi) Database: mysql 10.5.12 PHP version: 8.0.12 Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, Reflection, SPL, session, standard, sodium, cgi-fcgi, mysqlnd, PDO, xml, apcu, bcmath, bz2, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, intl, ldap, exif, mysqli, pdo_mysql, Phar, posix, readline, redis, shmop, SimpleXML, smbclient, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, libsmbclient, Zend OPcache Nextcloud version: 22.2.0
List of activated apps Enabled: - accessibility: 1.8.0 - activity: 2.15.0 - admin_audit: 1.12.0 - appointments: 1.10.2 - apporder: 0.13.0 - bruteforcesettings: 2.2.0 - calendar: 2.3.4 - circles: 22.1.1 - cloud_federation_api: 1.5.0 - comments: 1.12.0 - contacts: 4.0.6 - contactsinteraction: 1.3.0 - cookbook: 0.9.6 - dashboard: 7.2.0 - dav: 1.19.0 - deck: 1.5.5 - drawio: 1.0.1 - drop_account: 1.0.2 - event_update_notification: 1.3.0 - external: 3.9.0 - extract: 1.3.2 - federatedfilesharing: 1.12.0 - federation: 1.12.0 - files: 1.17.0 - files_fulltextsearch: 22.0.1 - files_mindmap: 0.0.25 - files_pdfviewer: 2.3.0 - files_rightclick: 1.1.0 - files_sharing: 1.14.0 - files_trashbin: 1.12.0 - files_versions: 1.15.0 - files_videoplayer: 1.11.0 - firstrunwizard: 2.11.0 - flow_notifications: 1.2.0 - forms: 2.3.0 - fulltextsearch: 22.0.1 - fulltextsearch_elasticsearch: 22.0.1 - integration_dropbox: 1.0.2 - integration_google: 1.0.3 - integration_onedrive: 1.1.0 - integration_reddit: 1.0.1 - integration_twitter: 1.0.1 - integration_whiteboard: 0.0.14 - keeweb: 0.6.6 - logreader: 2.7.0 - lookup_server_connector: 1.10.0 - music: 1.4.1 - news: 16.2.0 - nextcloud_announcements: 1.11.0 - notes: 4.1.1 - notifications: 2.10.1 - notify_push: 0.2.4 - oauth2: 1.10.0 - onlyoffice: 7.2.0 - password_policy: 1.12.0 - photos: 1.4.0 - privacy: 1.6.0 - provisioning_api: 1.12.0 - quota_warning: 1.11.0 - ransomware_protection: 1.11.0 - recommendations: 1.1.0 - registration: 1.3.0 - richdocuments: 4.2.3 - richdocumentscode: 6.4.1303 - serverinfo: 1.12.0 - settings: 1.4.0 - sharebymail: 1.12.0 - spreed: 12.1.2 - support: 1.5.0 - systemtags: 1.12.0 - text: 3.3.0 - theming: 1.13.0 - twofactor_backupcodes: 1.11.0 - twofactor_totp: 6.1.0 - twofactor_u2f: 6.2.0 - updatenotification: 1.12.0 - user_status: 1.2.0 - video_converter: 1.0.3 - viewer: 1.6.0 - weather_status: 1.2.0 - workflowengine: 2.4.0 Disabled: - eidlogin - encryption - files_external - libresign - mail - survey_client - talk_simple_poll - user_ldap
Configuration (config/config.php) { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "meindedomain.de" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "default_language": "de", "default_locale": "de_DE", "dbtype": "mysql", "version": "22.2.0.2", "overwrite.cli.url": "https:\/\/meinedomain.de", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "simpleSignUpLink.shown": false, "activity_expire_days": 14, "auth.bruteforce.protection.enabled": true, "blacklisted_files": [ ".htaccess", "Thumbs.db", "thumbs.db" ], "cron_log": true, "enable_previews": true, "enabledPreviewProviders": [ "OC\\Preview\\PNG", "OC\\Preview\\JPEG", "OC\\Preview\\GIF", "OC\\Preview\\BMP", "OC\\Preview\\XBitmap", "OC\\Preview\\Movie", "OC\\Preview\\PDF", "OC\\Preview\\MP3", "OC\\Preview\\TXT", "OC\\Preview\\MarkDown" ], "filesystem_check_changes": 0, "filelocking.enabled": "true", "htaccess.RewriteBase": "\/", "integrity.check.disabled": false, "knowledgebaseenabled": false, "logfile": "\/var\/nc_data\/nextcloud.log", "loglevel": 2, "logtimezone": "Europe\/Berlin", "log_rotate_size": 104857600, "maintenance": false, "memcache.local": "\\OC\\Memcache\\APCu", "memcache.locking": "\\OC\\Memcache\\Redis", "overwriteprotocol": "https", "preview_max_x": 1024, "preview_max_y": 768, "preview_max_scale_factor": 1, "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 0, "timeout": 0 }, "quota_include_external_storage": false, "share_folder": "\/Geteilt", "skeletondirectory": "", "theme": "", "trashbin_retention_obligation": "auto, 7", "updater.release.channel": "stable", "mail_smtpmode": "smtp", "mail_smtpsecure": "ssl", "mail_sendmailmode": "smtp", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtpauthtype": "LOGIN", "mail_smtpauth": 1, "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "465", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "onlyoffice": { "jwt_secret": "ewfwefwf", "jwt_header": "Auth" }, "trusted_proxies": "***REMOVED SENSITIVE VALUE***", "overwritecondaddr": "^192\\.168\\.100\\.11$", "encryption.legacy_format_support": false, "encryption.key_storage_migrated": false, "default_phone_region": "DE", "app_install_overwrite": [ "drop_account" ] }

The error does not occur in Chrome and Edge browsers. What could be the reason that it only works when I disable the cache in Firefox?

nickvergessen commented 2 years ago

What could be the reason that it only works when I disable the cache in Firefox?

You updated recently and the wrongly cached JS in your browser is incompatible with the APi of the backend. However this should normally be prevented by the theme cache buster functionality we have. Your generic issue is not really handable as half of our company uses Firefox without disabled cache and it works quite fine

moritz76 commented 2 years ago

Thanks for your reply!

Okay but where is the error then? In the Nextcloud server or Signal server?

It can not be my Firefox because it does not work on different PCs with Firefox.

nickvergessen commented 2 years ago

Your turn server could be misconfigured and it just happens randomly that without cache it picks a combination that works.

moritz76 commented 2 years ago

Sorry for my late response

But why does it work in every other browser except firefox?

My turn server configuration

tls-listening-port=5349
fingerprint
external-ip=meine IP
use-auth-secret static-auth-secret=1212121212121212121212121212121212121212121212121212121212121212
realm=meine signal domain
total-quota=100
bps-capacity=0
stale-nonce=600
cert=/etc/letsencrypt/rsa-certs/fullchain.pem
pkey=/etc/letsencrypt/rsa-certs/privkey.pem
cert=/etc/letsencrypt/ecc-certs/fullchain.pem
pkey=/etc/letsencrypt/ecc-certs/privkey.pem
cipher-list="TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384"
dh-file=/etc/ssl/certs/dhparam.pem
no-multicast-peers
no-tlsv1
no-tlsv1_1
no-stdout-log

The turnserver also passed this test: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ Is there any way how I can figure out where the problem exist?

nickvergessen commented 2 years ago

can you send a screenshot of the output of the trickle to <my github name>@nextcloud.com

nickvergessen commented 2 years ago

stun is not the issue here, the turn server is what matters If you create a public conversation on your instance and email me the link i can have a look

dorpauli commented 2 years ago

I ran into the same issue. I also have the very same turn server configuration (maybe we have used the same configuration tutorial).

Video calls work in every browser tried except Firefox. Both in Windows and Linux.

Was a solution found here?

moritz76 commented 2 years ago

For the one nextcloud instance, the solution was to enable only udp in the nextcloud TUNR server settings. But for the other instance the solution did not work.

dorpauli commented 2 years ago

Ok, I tried that, but the first test shows that unfortunately it does not solve the problem in my instance.

could it be a web server (in my case nginx) configuration issue?

Nevertheless thank you for that hint.

dorpauli commented 2 years ago

I have now played around with the turn server settings and also deleted 1 of the 2 stun servers as the firefox console gave a warning on 2.

1 video call worked when I used turn (not turns) with udp only. I plan to do more tests.

nickvergessen commented 2 years ago

Im closing this as it's a local server/setup issue and not a bug in the software

dorpauli commented 2 years ago

Ok no problem.

But i have one more question: Is it recommended to use only turn and not turns? Is it a security risk?