Skip to content
Snippets Groups Projects
Commit 26b737eb authored by Sébastien Blin's avatar Sébastien Blin Committed by Amin Bandali
Browse files

developer: remove gsoc and update feature requests

Pretty much all of the GSoC projects are done or are already in the list
of requested features.

Also, rename features-requests to feature-requests, and clean up the
page by linkifying URLs.  Also change ring-* links to jami-* links.

Change-Id: I63b5faeb04e3f1227ef60aa0882231043a6bba22
parent cb15119b
No related branches found
No related tags found
No related merge requests found
Feature requests
================
This page exists to classify feature requests per users' feedback, to
avoid leaving tickets open for years. Under construction, will sort
the tickets.
## SFL
+ Push to talk support -> Contact #Jami (Adrien, Andreas, Pierre, etc.)
+ [POC for AV1 support](https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/27) -> Contact #Jami (Adrien, Andreas, Pierre, etc.)
+ [Implement pipewire](https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/13) to support screen sharing on Wayland -> Contact #Jami (Adrien, Sébastien, etc.)
+ [Investigate support for more codecs](https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/201) -> Contact #Jami (Ming, Adrien, Eloi, etc.)
+ Investigate: SIP/XMPP bridge -> Contact #Jami (Ming, Adrien, Sébastien)
+ Search into system contacts ([jami-client-gnome#1191](https://git.jami.net/savoirfairelinux/jami-client-gnome/issues/1191), [jami-client-gnome#829](https://git.jami.net/savoirfairelinux/jami-client-gnome/issues/829), etc.) -> Contact #Jami (Adrien, Sébastien, Andreas, etc.)
Some other ideas from tickets:
## Planned/In progress
+ Improve Jami on Yocto -> Contact Rennes
+ [Qt/QML Improve client](https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues) -> Contact #Jami (Andreas)
+ [Jami-web](https://review.jami.net/q/project:jami-web). Because installing an app can be boring. Joining a conference via a link can be cool. For now, nobody is working on it.
## Wanted but not planned
+ Push to talk, voice detection
## Can be implemented, contributions welcome (or will take months/years to come)
+ [add possibility to show "reachable at the following times" (contact details)](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1261)
+ [Preferences per contact (allow calls/file transfer/custom ringtone)](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1280)
+ [Ability to create poll (ideally a plugin with swarm)](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1254)
+ [Support for Panic buttons](https://git.jami.net/savoirfairelinux/jami-project/issues/623)
+ Matrix bridge
+ Full TOR support or other alternatives such as lokinet ([jami-project#922](https://git.jami.net/savoirfairelinux/jami-project/issues/922), [jami-project#622](https://git.jami.net/savoirfairelinux/jami-project/issues/622), [jami-project#495](https://git.jami.net/savoirfairelinux/jami-project/issues/495)), [i2p](https://git.jami.net/savoirfairelinux/jami-project/issues/630)
+ [Bluetooth support](https://git.jami.net/savoirfairelinux/jami-project/issues/774)
+ [Secret-based turn server](https://git.jami.net/savoirfairelinux/jami-project/issues/886)
+ [Ability to compress files before sending](https://git.jami.net/savoirfairelinux/jami-client-android/issues/720)
+ Ability to trim recorded clips before sending
+ [Spell checking support](https://git.jami.net/savoirfairelinux/jami-client-gnome/issues/1169)
+ [Echo bot to test audio](https://git.jami.net/savoirfairelinux/jami-project/issues/392)
+ [Handle click on jami:uri system wide](https://git.jami.net/savoirfairelinux/jami-project/issues/653)
+ [Initial audio mode](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1288)
+ [Format text](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1358)
+ Plugins: [Live closed captions (multiple languages)](https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/576)
+ [Emoticon/emoji message reactions](https://git.jami.net/savoirfairelinux/jami-project/issues/1034) (need to wait for group chat)
## Depends on mass changes
## Packaging
+ [FreeBSD support](https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1272)
## Others
+ [Collaborative editor](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1010)
+ [A thunderbird plugin](https://git.jami.net/savoirfairelinux/jami-project/issues/516)
+ [OpenAlias](https://git.jami.net/savoirfairelinux/jami-project/issues/928)
+ [CMIS integration](https://git.jami.net/savoirfairelinux/jami-project/issues/455)
+ [Sound safety](https://git.jami.net/savoirfairelinux/jami-project/issues/441)
+ [Ability to see multiple chats at the same time](https://git.jami.net/savoirfairelinux/jami-client-gnome/issues/909)
+ [Vocoder option](https://git.jami.net/savoirfairelinux/jami-client-gnome/issues/957)
+ [SOCKS5 support](https://git.jami.net/savoirfairelinux/jami-project/issues/430)
+ [Cardbook integration](https://git.jami.net/savoirfairelinux/jami-project/issues/383)
+ [Multiple instances running](https://git.jami.net/savoirfairelinux/jami-project/issues/629)
+ [Whiteboard](https://git.jami.net/savoirfairelinux/jami-daemon/issues/181)
+ [Camera zoom](https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/979#note_29386)
+ [Emoji reaction in calls](https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/497)
+ [Conversation's background](https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/710)
+ [[Desktop] Option to have a Window per Chat](https://git.jami.net/savoirfairelinux/jami-project/-/issues/633)
+ [Multiple text selection](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1096)
+ [In-app sticker pack creation](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1317)
+ [Re-order messages](https://git.jami.net/savoirfairelinux/jami-project/-/issues/1357)
+ [Remote control](https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/349)
Feature requests
================
This page exists to classify features request coming from users feedback (to avoid to let the ticket open for years). (under construction, will sort the tickets)
## SFL
+ Add support for voice activity detection, noise suppression (Daemon side) -> Contact #Jami (Adrien, Andreas, Pierre,etc)
+ Push to talk support -> Contact #Jami (Adrien, Andreas, Pierre, etc)
+ POC for AV1 support (https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/27) -> Contact #Jami (Adrien, Andreas, Pierre, etc)
+ Implement pipewire (https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/13) to support screen sharing on Wayland -> Contact #Jami (Adrien, Sébastien, etc)
+ Improve Jami on Yocto -> Contact Rennes
+ Investigate support for more codecs (https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/201) -> Contact #Jami (Ming, Adrien, Eloi, etc)
+ Qt/QML Improve client: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues -> Contact #Jami (Andreas)
+ Investigate: SIP/XMPP bridge -> Contact #Jami (Ming, Adrien, Sébastien)
+ Search into system contacts (https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/1191, https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/829, etc) -> Contact #Jami (Adrien, Sébastien, Andreas, etc)
Some other ideas from tickets:
## Planned/In progress
+ Group chat. Yeah we know it's missing but it's currently in progress (https://git.jami.net/groups/savoirfairelinux/-/epics/2)
+ Read notifications (already available on some platforms)
## Wanted but not planned
+ A web interface. Because installing an app can be boring. Joining a conference via a link can be cool. For now, nobody is working on it.
+ Push to talk, voice detection
## Can be implemented, contributions welcome (or will take months/years to come)
+ add possibility to show "reachable at the following times"[contact details] (https://git.jami.net/savoirfairelinux/ring-project/-/issues/1261)
+ Preferences per contact (allow calls/file transfer/custome ringtone) https://git.jami.net/savoirfairelinux/ring-project/-/issues/1280
+ Ability to create poll (ideally a plugin with swarm) https://git.jami.net/savoirfairelinux/ring-project/-/issues/1254
+ Support for Panic buttons (https://git.jami.net/savoirfairelinux/ring-project/issues/623)
+ Matrix bridge
+ Full tor support or other alternatives such as lokinet (https://git.jami.net/savoirfairelinux/ring-project/issues/922, https://git.jami.net/savoirfairelinux/ring-project/issues/622, https://git.jami.net/savoirfairelinux/ring-project/issues/495), i2p (https://git.jami.net/savoirfairelinux/ring-project/issues/630)
+ Bluetooth support (https://git.jami.net/savoirfairelinux/ring-project/issues/774)
+ Secret based turn server (https://git.jami.net/savoirfairelinux/ring-project/issues/886)
+ Option to compress files before sending it (https://git.jami.net/savoirfairelinux/ring-client-android/issues/720)
+ Trim recorded clips before sending
+ Spell checking support https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/1169
+ Echo bot to test audio https://git.jami.net/savoirfairelinux/ring-project/issues/392
+ Support for markdown https://git.jami.net/savoirfairelinux/ring-lrc/issues/416
+ Handle click on jami:uri system wide https://git.jami.net/savoirfairelinux/ring-project/issues/653
+ Initial audio mode: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1288
+ Format text https://git.jami.net/savoirfairelinux/jami-project/-/issues/1358
+ Plugin: Live closed captions (multiple languages) (https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/576)
## Depends on mass changes
+ Emoticon Message Reactions (https://git.jami.net/savoirfairelinux/ring-project/issues/1034) (need to wait for group chat)
## Packaging
https://git.jami.net/savoirfairelinux/ring-client-gnome/-/issues/1272
## Others
+ Collaborative editor (https://git.jami.net/savoirfairelinux/ring-project/-/issues/1010)
+ A thunderbird plugin (https://git.jami.net/savoirfairelinux/ring-project/issues/516)
+ OpenAlias (https://git.jami.net/savoirfairelinux/ring-project/issues/928)
+ CMIS integration (https://git.jami.net/savoirfairelinux/ring-project/issues/455)
+ Sound safety (https://git.jami.net/savoirfairelinux/ring-project/issues/441)
+ Ability to see multiple chats at the same time (https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/909)
+ Vocoder option (https://git.jami.net/savoirfairelinux/ring-client-gnome/issues/957)
+ Socks5 support https://git.jami.net/savoirfairelinux/ring-project/issues/430
+ Cardbook integration https://git.jami.net/savoirfairelinux/ring-project/issues/383
+ Multiple instances running: https://git.jami.net/savoirfairelinux/ring-project/issues/629
+ Whiteboard https://git.jami.net/savoirfairelinux/ring-daemon/issues/181
+ Camera zoom (https://git.jami.net/savoirfairelinux/ring-client-android/-/issues/979#note_29386)
+ Emoji reaction in calls (https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/497)
+ Conversation's background (https://git.jami.net/savoirfairelinux/ring-client-android/-/issues/710)
+ [Desktop] Option to have a Window per Chat (https://git.jami.net/savoirfairelinux/ring-project/-/issues/633)
+ Multiple text selection (https://git.jami.net/savoirfairelinux/ring-project/-/issues/1096)
+ In-app sticker pack creation (https://git.jami.net/savoirfairelinux/jami-project/-/issues/1317)
+ Re-order messages (https://git.jami.net/savoirfairelinux/jami-project/-/issues/1357)
+ Remote control (https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/349)
GSoC
====
The Ring project has previously participated in the Google Summer of
Code program on 2016 and 2017 under the umbrella of the [Debian
project](https://www.debian.org/) and the [GNU
project](https://www.gnu.org/), mentoring 7 students during these two
editions.
This year we are willing to participate as an individual organization.
Thus, we are welcoming every contribution to [Ring's source
code](https://gerrit-ring.savoirfairelinux.com/#/admin/projects/) that
could help to further develop Ring as well as our community. You can
also contribute to Ring's documentation.
### Project ideas:
#### A Node.js client for Ring
#### Ring account provisioning server
#### Auto video quality: Optimizing the auto video quality algorithm (RTCP/RTSP feedback)
Likely mentor(s): Olivier, Philippe
For the moment ring uses a slider to set video stream quality disregarding the connection quality.
The student will explore the RTCP and RTSP protocols implementation in FFmpeg to later implement an automation of the video stream quality setting, though the informations furnished by the control packets.
- Renegotiate SDP depending on network conditions (change codec parameters or codecs, limit data flow, etc)
- Improve algorithm so it can maximize quality without going over a maximum bit rate, or maintain a certain quality regardless of network traffic
- Use other RTCP facilities to improve video quality (Ring only uses packet loss)
#### Ring IoT
Likely mentor(s): Anthony
The ring-client-iot project, started last year by a previous GSoC student, can be used as a base for a headless Ring client. Using it to start a new client, more focused
on little devices without direct human interaction, would enable new applications in the embedded field. From this point, multiple directions can be followed as a GSoC
project :
- Build Ring daemon and client-iot on ARM platforms (possibly including it in the Buildroot ecosystem).
- Add commands to read sensor values, trigger actions on system and eventual peripherals, etc.
- Improve manageability of accounts authorized to send commands to the device.
- Integrate the recent file transfer feature with IoT applications (display any picture received by Ring on a screen, etc.)
#### Add video surveillance features to Ring
Likely mentor(s): Maxim, Nicolas
The goal of this project is to enable remote video surveillance capabilities in Ring which would allow someone to keep an eye on their home, a child, etc. When a sound or movement event is triggered, a notification should be sent and the video should be recorded and stored on both the local and remote device to provide forensic evidence.
Tasks:
- Implement/integrate movement/sound detection algorithms in the Ring daemon.
- Leverage the features already present in Ring to implement the message notifications as well as the video streaming and recording.
- Design and implement the UI elements of at least one client that will define how this functionality is enabled and used.
#### Refactoring User Interfaces
#### Continue working on Telepathy client
Likely mentor(s): Olivier
A previous work was initiated in 2016 for the integration of Ring in Telepathy [https://github.com/alok4nand/telepathy-bell], WIP:
1. Improving the Account Management, text messaging, and Contact Management: Making the connection manager usable as a Ring client for text messaging for a non tech user
2. Exploring video calls: Currently the daemon handles video one frame at a time (not a video stream). If using dbus the actual frames are shared via shm (shared memory), would the video via frames model work with Telepathy/Empathy?
3. Implement trust requests (ie: friend requests)
#### Ring as a WebRTC service
Likely mentor(s): Guillaume
For all communications LibRing uses simple system sockets (mainly UDP, and TCP for data transfer).
The idea is to add a WebRTC connectivity to extend Ring and facilitate portage of Ring.
This project needs to add new settings to indicate how and when to use WebRTC sockets and re-design most of libring low-level implementations.
Example of tasks to be done:
- Identify impacted code.
- Make a WebRTC small client as validation test.
- Implement WebRTC connectivity at low-level.
- Change libring API and settings if needed.
- Modify/Test a currently supported client to validate the full chain.
#### Peer to peer file transfer
Likely mentor(s): Guillaume
Current code base uses a TURN only connection (TURN/TCP/TLS) to manage a peer connectivity for our reliable data transfer feature.
TURN is a relay protocol to solve connectivity issues between peers behind NAT or firewall. The side effects are latency and non-scalability.
To reduce these effects we want to introduce a non-relay connection, true P2P, usable for hosts on the same network as example.
To make connection transparent to the application (so to the user), the true P2P-way is tried as first stage and the TURN-way is used as fallback.
This change doesn't require to change the libring API. It's only an implementation change. The data-transfer protocol (i.e. data exchanged over DHT at connection request) could be changed.
Example of tasks to be done:
- Identify impacted code.
- Create a validation test.
- Implement the true P2P in data-transfer code.
- Support the TURN fallback.
- Verify the data-transfer using validation tests created earlier.
#### Conference server
#### Matrix integration
Likely mentor(s): Pierre, Anthony
In the same spirit as <https://github.com/matrix-org/matrix-appservice-irc> or <https://github.com/jfrederickson/matrix-xmpp-bridge>, the goal of this project is to integrate Ring to Matrix as well as possible.
That way, communication between users of Ring and users of Matrix would be possible.
#### Redesign of the media system
Likely mentor(s): Philippe, Andreas
Ring's media system is massive and needs an overhaul.
The goals of this project are:
- Implement zero-copy video frame buffer manipulations (ex: OpenGL/OpenCL, VDPAU).
- Update the usage of Ring's media APIs and codecs to conform to current standards,
- Provide a cleaner and better design for platform specific implementations and reduce conditionally compiled code clutter.
- Extend the audio API to allow for client implementations on platforms where media device access is restricted to client specific APIs.
#### Create a clean wrapper for AndroidTV's API.
Likely mentor(s): Pierre, Adrien
For now, Ring is the only video chat client available on AndroidTV. This client is more basic than the Android one mainly because it's hard to get good quality and maintainable code with the current state of the AndroidTV framework.
Right now, the Ring AndroidTV client contains a wrapper for AndroidTV's API, but there's still boilerplate code.
The goals of this project are:
- To identify improvements that can be made on this wrapper
- To create an API for Leanback easily usable in the context of Ring (will leverage any knowledge on design patterns and API design)
- To implement the new API in Ring
- To create an external library, independent of Ring and usable in the context of any AndroidTV application.
------------------------------------------------------------------------
### Contributions GSoC 2016:
1. Improving distributed and secure communication using free software
[(link)](https://summerofcode.withgoogle.com/archive/2016/projects/4886025126019072/)
2. Indexation over a distributed network
[(link)](https://summerofcode.withgoogle.com/archive/2016/projects/6573755878866944/)
3. Ring project
[(link)](https://summerofcode.withgoogle.com/archive/2016/projects/6477112403820544/)
4. Telepathy Connection Manager for Ring protocol
[(link)](https://summerofcode.withgoogle.com/archive/2016/projects/5047255782391808/)
### Contributions GSoC 2017
1. Setting up unit tests for SIP calls in Ring
[(link)](https://summerofcode.withgoogle.com/archive/2017/projects/5836252280520704/)
2. Ring - Create a C++ plugin for Ring
[(link)](https://summerofcode.withgoogle.com/archive/2017/projects/5704614754123776/)
3. Ring: NodeJS Plugin for Seamless Cross-platform Client Development
[(link)](https://summerofcode.withgoogle.com/archive/2017/projects/6532521776906240/)
......@@ -21,7 +21,7 @@ designed and how its various parts work together.
setting-up-your-own-turn-server
synchronizing-profiles
submitting-your-first-patch
features-requests
feature-requests
connection-manager
calls-in-swarm
conference-protocol
......@@ -46,4 +46,3 @@ designed and how its various parts work together.
ui-ux-development
working-with-gerrit
working-with-gerrit-fr
gsoc
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment