nextcloud / nextcloud/spreed

[BUG] Participants in the right side panel: Webcam and microphone icons often inconsistent

Open
#12,857 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug design feature: frontend 🖌️ feature: talk-sidebar ⬅️
Dominant language
PHP
Stars
2.2k
Forks
587
Avg merge
18h 27m
Merged PRs (30d)
333

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are affected by the same issue.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

In the right-hand side panel, in the participants tab, next to each participant is a microphone or webcam icon, depending on the choice(s) made by the user.

I've noticed two problems:

  • Bug: In the screenshot below, the second person from the top is using his microphone and webcam, but he's the only person using his webcam among all the participants. So all the other webcam icons are actually a bug. The 5th person from the top has a microphone icon, which luckily is correct, as she only uses her microphone (as do all the other people, with the exception of the first person mentioned, who uses her microphone AND webcam).
  • Inadequate UI/UX: currently, if you ignore the bug, only one icon is displayed (microphone or webcam, but never both). This is inconsistent and not precise enough, because before joining the call (and during the call) you can choose to use the microphone only, the webcam only, or both. For greater consistency, accuracy and therefore a better user experience, if both are used, we should have two icons (microphone and webcam) displayed side by side.
  • To make things even better, while we're at it: it would be nice if a 3rd icon could be displayed, that for screen sharing. So a person could have 1, 2 or even 3 icons (microphone / webcam / screen sharing).

2024-07-31_09-29

Steps to reproduce

N/A

Expected behaviour

Check above description

Actual behaviour

Check above description

Talk app

Talk app version: 19.0.7

Custom Signaling server configured: yes

Custom TURN server configured: yes

Custom STUN server configured: yes

Browser

Microphone available: yes

Camera available: yes

Operating system: Ubuntu

Browser name: Firefox

Browser version: 128

Browser log
``` Can be provided if necessary ```

Server configuration

Operating system: CENTOS

Web server: /Nginx

Database: Maria

PHP version: 8.2

Nextcloud Version: 29.0.4

List of activated apps:

Enabled:
 - activity: 2.21.1
 - admin_audit: 1.19.0
 - announcementcenter: 6.8.1
 - appointments: 2.1.8
 - assistant: 1.1.0
 - bbb: 2.6.0
 - bookmarks: 14.2.2
 - bruteforcesettings: 2.9.0
 - calendar: 4.7.13
 - call_summary_bot: 1.2.0
 - circles: 29.0.0-dev
 - cloud_federation_api: 1.12.0
 - collectives: 2.13.0
 - comments: 1.19.0
 - contacts: 6.0.0
 - contactsinteraction: 1.10.0
 - dashboard: 7.9.0
 - dav: 1.30.1
 - deck: 1.13.1
 - external: 5.4.0
 - federatedfilesharing: 1.19.0
 - federation: 1.19.0
 - files: 2.1.0
 - files_automatedtagging: 1.19.0
 - files_downloadlimit: 2.0.0
 - files_fulltextsearch: 29.0.0
 - files_lock: 29.0.1
 - files_markdown: 2.4.1
 - files_pdfviewer: 2.10.0
 - files_reminders: 1.2.0
 - files_sharing: 1.21.0
 - files_texteditor: 2.15.1
 - files_trashbin: 1.19.0
 - files_versions: 1.22.0
 - firstrunwizard: 2.18.0
 - flow_notifications: 1.9.0
 - forms: 4.2.4
 - fulltextsearch: 29.0.0
 - fulltextsearch_elasticsearch: 29.0.1
 - groupfolders: 17.0.1
 - guests: 3.1.0
 - impersonate: 1.16.0
 - integration_openai: 2.0.3
 - integration_openproject: 2.6.3
 - logreader: 2.14.0
 - lookup_server_connector: 1.17.0
 - mail: 3.7.5
 - memegen: 1.1.0
 - nextcloud_announcements: 1.18.0
 - notes: 4.10.1
 - notifications: 2.17.0
 - notify_push: 0.7.0
 - oauth2: 1.17.0
 - onlyoffice: 9.3.0
 - password_policy: 1.19.0
 - photos: 2.5.0
 - piwik: 0.12.0
 - polls: 7.1.3
 - privacy: 1.13.0
 - provisioning_api: 1.19.0
 - qownnotesapi: 24.4.0
 - recommendations: 2.1.0
 - related_resources: 1.4.0
 - richdocuments: 8.4.3
 - secrets: 2.0.2
 - serverinfo: 1.19.0
 - settings: 1.12.0
 - sharebymail: 1.19.0
 - side_menu: 3.13.1
 - snappymail: 2.36.4
 - spreed: 19.0.7
 - support: 1.12.0
 - survey_client: 1.17.0
 - systemtags: 1.19.0
 - tasks: 0.16.0
 - text: 3.10.1
 - theming: 2.4.0
 - theming_customcss: 1.17.0
 - twofactor_backupcodes: 1.18.0
 - updatenotification: 1.19.1
 - user_ldap: 1.20.0
 - user_saml: 6.2.0
 - user_status: 1.9.0
 - viewer: 2.3.0
 - weather_status: 1.9.0
 - workflowengine: 2.11.0
 - workspace: 3.2.0
Disabled:
 - accessibility
 - encryption
 - files_downloadactivity: 1.16.0
 - files_external: 1.6.0
 - jitsi: 0.18.0
 - suspicious_login
 - twofactor_totp

Nextcloud configuration:

{
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "cloud.mydomain.fr"
    ],
    "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "overwrite.cli.url": "https:\/\/cloud.mydomain.fr",
    "dbtype": "mysql",
    "version": "29.0.4.1",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "filelocking.enabled": true,
    "memcache.local": "\\OC\\Memcache\\APCu",
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "memcache.distributed": "\\OC\\Memcache\\Redis",
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "password": "***REMOVED SENSITIVE VALUE***",
        "port": 6379,
        "dbindex": 0,
        "timeout": 0
    },
    "log_type": "file",
    "logtimezone": "Europe\/Paris",
    "logfile": "\/var\/log\/nextcloud\/cloud.mydomain.fr\/nextcloud.log",
    "loglevel": 1,
    "debug": false,
    "default_phone_region": "FR",
    "default_language": "fr",
    "default_locale": "fr_FR",
    "log_rotate_size": 104857600,
    "session_keepalive": true,
    "simpleSignUpLink.shown": false,
    "mail_smtpmode": "smtp",
    "mail_smtpsecure": "ssl",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpauth": 1,
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "465",
    "mail_smtpauthtype": "PLAIN",
    "trashbin_retention_obligation": "auto,60",
    "versions_retention_obligation": "auto,60",
    "activity_expire_days": 40,
    "activity_use_cached_mountpoints": true,
    "installed": true,
    "appstore.experimental.enabled": true,
    "maintenance": false,
    "theme": "",
    "mysql.utf8mb4": true,
    "updater.release.channel": "stable",
    "app_install_overwrite": [
        "groupfolders",
        "files_downloadactivity",
        "external",
        "files_texteditor",
        "user_saml",
        "flow_notifications",
        "onlyoffice",
        "impersonate",
        "richdocuments",
        "spreedme",
        "piwik",
        "accessibility",
        "apporder",
        "bbb",
        "files_markdown",
        "secrets"
    ],
    "ldapIgnoreNamingRules": false,
    "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory",
    "mail_sendmailmode": "smtp",
    "defaultapp": "files",
    "maintenance_window_start": 1,
    "upgrade.disable-web": true
}
Server log (data/nextcloud.log)
Can be provided if necessary

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the Talk participants tab and reproduce the inconsistent microphone and webcam icons using the reported Talk 19.0.7 setup. Trace how participant media choices are represented and rendered, then verify that microphone, webcam, and optionally screen-sharing states display accurately and independently.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
audio-video-rtc, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.