Kurento group call not able to handle users without video? - webrtc

i implemented group calls in my website, and everything works nice, a few days ago i tested the system again but happend to join in a computer that had no webcam, only mic, and everyone else is not able to listen this user if he have no video. The test was:
User A- video and mic
User B- video and mic
User C- video and mic
User D- only mic
Everyone sees and listen everyone except User D that is not able to be listen from no body.
i tested with difrent computer, just unpluged the webcam and the bug is the same, if i have no video to share and join a grou call with a mic nobody can listen.
Im using last version of kms
Anyone knows if this a kurento Bug or something else?
I mean this type of situation should be fix by default, many people join group calls with no video and others with it, unless i am missing something that i need to add to cover that situations?
Thank you, sorry bad english.

In the room, each client negotiates both audio and video. If you only provide audio, some navigators (like Chrome) can't handle the fact that you have negotiated both audio and video, but are only providing audio. Therefore, it waits until you provide a video track, so both tracks are synchronized.
The solution is to have clients negotiate the type of media they are going to provide, and not both.

Related

WebRTC Audio one to many unlimited listeners

I hope I can find an answer to my idea here.
I would like to broadcast audio via webrtc. meaning, there will be one admin streaming audio only and everyone else will be listening. no one will be communicating with each other. think about it as a radio.
simply share a page where everyone can press play and listen. the number of listeners is unlimited. 100 to start with would be good but the latency should not be more than 2 to 3-sec max.
If anyone can help with the code and/or how to do it, I appreciate that. I am not a developer but I like to learn. thank you all

Webrtc to remotely control phone camera

I am looking for help to take still photos remotely using webrtc. Is there an API that allows access to the other person's rear camera (with permissions) to take photos and save them to my phone? The idea is to use this to take full resolution photos with Android and iOS using react.
Yes you can do this by let them join a channel and then you can send request from your side to ask camera to take picture and then send you back. This is just like message. You sending message from your side to ask other person for taking picture although. If he is using browser then it can be done using js for getting permissions. But in case of a mobile application you can have your own endpoints to interact with channels. I hope you got the basic idea.

Publish audio when already publishing video with Ant Media

I try to reproduce a classroom in which a teacher will publish video and audio and student only video at first.
Students can raise hand and teacher can accept to leave the student speak (all with dataChannel). I tried to change the mediaConstraints (enable audio) but as WebRTCAdaptor is basically stateless, it does not change a thing. Is there a simple way to publish audio as video is already published, as I cannot publish twice either.
If you create a WebRTCAdaptor with a disabled audio, user would not be able to speak later.
But you can use the Un/Mute mic funtions for that. As an example:
webRTCAdaptor.muteLocalMic() would mute the microphone and webRTCAdaptor.unmuteLocalMic()
These functions are included in the sample conference.html file.
You can use these functions for your case.

I don't want camera permission needed for each video chat when there is a series of 1-1 video chats at an event

I am not a coder and having a web platform built with PHP that includes a series of 1-1 video chats in a scheduled networking "event". The problem that the developer is not able to solve with the video plug in that they are using (https://www.magnoliyan.com/video-chat-pro/) is that the user needs to give camera permisson before each chat. I need this permisson to happen one time only at the beginning of the event and not need there to be any further permission giving throughout the event. Of course I would like this to work on all platforms. I'm exploring agora.io as an option to solve this and replace the current plug in with agora. Does anyone know if agora would be the right fit for this or which video chat platform I should use to accomplish this? And if there is specific developer kind of language or code - please speak in as if I was a developer and I will pass on what you say to him directly. You don't need to worry about whether I will understand it.
Thanks!
Jon
Agora.io like any other WebRTC provider requests device camera permission only once. And all subsequent Videocall won't need any special permission (provided that they are on the same domain)
More specifically, Agora.io requests browser permission when stream.init method is invoked. This also turns on the camera light. stream.close turns off the camera light and deallocates the resources.
However, the subsequent stream.init function calls do not require permissions. (Camera light will just turn on)
References:
stream.init: https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.stream.html#init
stream.close: https://docs.agora.io/en/Video/API%20Reference/web/interfaces/agorartc.stream.html#close

Can WebRTC help me create a virtual classroom?

I'm trying to create a virtual classroom. Since I'm not familiar with the web conferencing (or conferencing) terminology, I'm not sure if I'm understanding WebRTC's capabilities as I should.
I've looked in the examples for WebRTC, and all that I've found seem to be peer-to-peer connections. As I understand it, peer-to-peer connections are between two entities. However, virtual classrooms are different as far as I know; they require all parties to be connected to each other, so that when one user speaks/types, all users hear her.
Is such a thing possible with WebRTC? If so, what is it called and how can I read more about it?
Check out the open source Big Blue Button project (http://bigbluebutton.org/). They're currently Flash based but are actively moving towards webRTC. Rumor has it they'll be using Kurento as their MCU. They also have open source mobile (Android/iOS) application code.
According to http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/, such a thing is possible:
Beyond one-to-one: multi-party WebRTC
You may also want to take a look at Justin Uberti's proposed IETF standard for
a REST API for access to TURN Services.
It's easy to imagine use cases for media streaming that go beyond a simple
one-to-one call: for example, video conferencing between a group of colleagues,
or a public event with one speaker and hundreds (or millions) of viewers.
A WebRTC app can use multiple RTCPeerConnections so to that every endpoint
connects to every other endpoint in a mesh configuration. This is the approach
taken by apps such as talky.io, and works remarkably well for a small handful
of peers. Beyond that, processing and bandwidth consumption becomes excessive,
especially for mobile clients.
Maybe you can try searching in the webrtc google group
hope this helps