RestComm / Restcomm-Connect

The Open Source Cloud Communications Platform
http://www.restcomm.com/
GNU Affero General Public License v3.0
242 stars 215 forks source link

Conference call is dropped (NEXMO drops calls after 30s period of inactivity) if for any reason there silence at the bridge. #1268

Open leftyb opened 8 years ago

leftyb commented 8 years ago

There are various scenarios that can reproduce this. 1.) If all participants are muted. 2.) If only one participant left at the bridge. 3.) etc

hrosa commented 8 years ago

Until we have opportunity to implement Comfort Noise Generator (CNG), a possible workaround would be:

  1. Participants == 1, then RestComm issues Play(silence.wav, it=infinite)
  2. MS plays silent wav in loop
  3. Participants == 2, then RestComm issues EndSignal
  4. MS stops playing

Unfortunately, our MGCP EndSignal implementation doesn't do what is supposed to. So, the only workaround I see available is to revert the conference to the previous state and start playing that initial music.

When the new MS version is released, we can implement the workaround I suggested with EndSignal. As mentioned, this is temporary workaround until CNG is implemented.

Related tickets on Media Server side: https://github.com/RestComm/mediaserver/issues/133 https://github.com/RestComm/mediaserver/issues/220

deruelle commented 7 years ago

@hrosa how about playing silence in infinite manner whatever the number of pariticpants ? If they all mute we would still push silence so the calls don't get disconnected. If there is some disconnection issue for some participants and the conference thinks there is more than 2 participants, we would have the issue but by always playing silence we would allievate this right ?

Do you see any drawback to that ?

hrosa commented 7 years ago

@deruelle that sounds hacky. For every conference in the system we would be playing an infinite track. Not very efficient solution CPU-wise.

If there is some disconnection issue for some participants and the conference thinks there is more than 2 participants

Then I'd recommend getting a proper fix as defined in https://github.com/RestComm/mediaserver/issues/114

deruelle commented 7 years ago

The main issue is not about evicting participants if there are not there anymore but comfort noise because if participants are alone or all muted, the provider kicks them out.

but I agree RestComm/mediaserver#114 would already help a bit and not only for conference in general to reduce resource consumption and ghost pooling if people drop. Can it be included in 5.1 ?

hrosa commented 7 years ago

@deruelle the task may be a bit time consuming to be implemented in a proper way, wont make it to 5.1. We can talk better on its priority and re-schedule it in MS roadmap.