nextcloud / nextcloud/spreed

feat(SIP): better indication of SIP streams / speaker identification

Open
#17,472 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement feature: frontend πŸ–ŒοΈ feature: SFU & SIP ☎️
Dominant language
JavaScript
Stars
2.2k
Forks
586
Avg merge
18h 27m
Merged PRs (30d)
333

Description

[!TIP]

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.

Description

As per current implementation, when SIP Bridge devices are connected to the call in Talk, there would be two separate tiles when SIP Bridge is connected (regardless of how many phone users or Cisco devices connected):

  • one shared audio tile with all participants mixed
  • one shared video tile with currently speaking participant with video
SIP Bridge                                                    
β”‚                                                             
β”‚                                                             
β”œβ”€β”€β”€β–Ί Audio stream β”Œβ”€β”€β”€β”€β–Ί Hardware device 1 (speaking) ───┐   
β”‚                  β”‚                                      β”‚   
β”‚                  β”œβ”€β”€β”€β”€β–Ί Hardware device 2            ───┼──► Talk audio
β”‚                  β”‚                                      β”‚   
β”‚                  └────► Phone user (from mobile) 1-∞ β”€β”€β”€β”˜   
β”‚                                                             
└───► Video stream β”Œβ”€β”€β”€β”€β–Ί Hardware device 1 (speaking) ──┐    
                   β”‚                                     ▼───► Talk video
                   └────► Hardware device 2            ──│       
Suggestion
  • Mark SIP Bridge connections in Talk call UI as 'Shared SIP Bridge audio/video', e.g. User (SIP audio)
    • Look into implementation and how to identify connections coming from SIP
    • adjust components CallView >> VideoBottomBar
  • Identify currently speaking SIP participants and display it in Talk call UI, e.g. User A (SIP video)
    • consider multiple participants speaking
    • see, if current speaking information available in stores can be reused
    • alternative: we should send the session id of the video stream source inside the PeerConnection through a DataChannel message. This will then be updated once the SIP bridge switches to a different speaker. I think there already exists one for the display name (nickChanged)
    • adjust components CallView >> VideoBottomBar

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 by reading the CallView and VideoBottomBar components, then inspect how SIP connections and speaking information are represented in the stores. Check whether existing PeerConnection DataChannel messages, including nickChanged, can provide the stream source identity. Done means SIP audio/video tiles are labeled clearly and the currently speaking SIP participant or participants are shown in Talk.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.