Call with WebRTC support
See original GitHub issueTHE CURRENT DESCRIPTION IS WIP
Introduction
WebRTC implementation supports voice and video calls in direct rooms which have only 2 joined members.
Requirements
-
1. Show voice and video call icons as menu actions in RoomDetailFragment only if the room is direct and has 2 joined members.
-
2. Start a foreground service for both incoming and outgoing calls.
-
3. Show heads-up notification for incoming calls with userId of the caller as title, call type as description, “Answer” and “Reject” buttons as actions.
-
4. Show heads-up notification for outgoing calls with userId of the callee as title and “Calling…” as description.
-
5. Change the title of the notifications as “Ongoing Call” as soon as the connection established.
-
6. Notification (or CallActivity) should be visible even on the lock screen.
-
7. Show CallActivity when the outgoing call started and incoming call answered.
-
8. Ongoing call has to continue even if CallActivity is destroyed by the user.
-
9. Show CallActivity with the representation of the current call state when the user clicks the notification.
-
10. Voice Call: Show hangup, mute, speaker buttons and the avatar of the participant on CallActivity.
-
11. Video Call: Show hangup, mute, switch camera, turn off camera buttons and camera streams of both other participant and the current user on CallActivity.
-
12. Automatically send hangup (busy) to the second incoming call if there is an ongoing call.
-
13. Play sounds for ringing, ring back and hangup events.
-
14. Send local ice candidate events to the room.
-
15. Refresh turn server periodically.
-
16. RiotX should not ring when performing an initial sync. It should handle still valid incoming call (regarding age and lifetime) properly though
-
17. RiotX should behaves correctly if the incoming call is answered on another device.
-
18. RiotX should ask for permission BEFORE starting on outgoing call (it’s a bug currently). For incoming call, if the user denies the permission request, it should reject the call.
-
19.
m.call.candidates
events should be hidden by default in the timeline
Issue Analytics
- State:
- Created 4 years ago
- Reactions:100
- Comments:30 (15 by maintainers)
Top GitHub Comments
This is a showstopper for switching from Riot-android
I don’t speak for this project, but as a general point of etiquette, I’d suggest you use the thumbs up reaction to vote for the issue instead of leaving comments, which spam every other person who is interested in following an issue. Developers can sort issues based on which ones had the most reactions, so it’s a much more useful and friendly way to show your support.
If you’re demanding specific features that aren’t already implemented in Riot, it would be better to file those as separate issues. I think having feature parity sooner is more important than implementing new stuff on top while we all wait. Also, remember that if you haven’t paid anyone to hack on this project, all you can do is politely make suggestions, you’re not entitled to outright demand anything except a full refund of your payment, or lack thereof. 😉