liuzhe02 / bigbluebutton

Automatically exported from code.google.com/p/bigbluebutton
0 stars 0 forks source link

Audio interference/crossover #1186

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I'm experiencing issues with the Listeners module and sharing audio.

I have BBB setup on a server with a client application making the API calls to 
start conferences.

As user John Doe I start a conference (conference ID 15) and share my audio.
Another person, on a different PC, logs in as user Jane Smith and starts a 
different conference (conference ID 21) and shares their audio.
John is not an invitee of Janes conference, nor vice versa, yet they are both 
displayed in the Listeners module and can talk to each other.

If both users share their webcams they do not see each other, as you'd expect 
(being in different conferences). Similarly, chat messages sent from one user 
do not appear on the other's client screen and presentations/screen sharing 
does not suffer this issue, just audio.

BBB 0.8beta4
Ubuntu 10.10

Original issue reported on code.google.com by StephenK...@gmail.com on 23 Mar 2012 at 7:27

GoogleCodeExporter commented 9 years ago
Hi Stephen,

Can you test this on our demo server at

  http://demo.bigbluebutton.org/

and let us know if you can re-produce the problem there.

Original comment by ffdixon@gmail.com on 23 Mar 2012 at 7:41

GoogleCodeExporter commented 9 years ago
How did you create the conference? It looked like both have the same voice 
conference numbers. Thus, callers for both conference are put into the same 
voice conference room.

Original comment by ritza...@gmail.com on 23 Mar 2012 at 8:25

GoogleCodeExporter commented 9 years ago
Do you have logs when this occured?

/usr/share/red5/log/*.log
/var/log/bigbluebutton/bbb-web.log

You can compare if both meetings have the same voiceBridge.

Original comment by ritza...@gmail.com on 30 Mar 2012 at 8:38

GoogleCodeExporter commented 9 years ago
This is no Ubuntu 10.10, which we don't develop, test, or deploy.  Stephen, 
would it be possible to setup a Ubuntu 10.04 installation of BigBlueButton and 
test this again.

If you can provide steps to reproduce, we are *very* interested in looking 
deeper.

Original comment by ffdixon@gmail.com on 23 Jun 2012 at 1:04

GoogleCodeExporter commented 9 years ago
I'm experiencing exactly the same issue which is very annoying. audo is shared 
on every sessions.

I'm using chamilo withbbb API. Can that come from chamilo which would always 
assign the same meetingID?

BigBlueButton Server 0.81-RC3 (1472)
                    Kernel version: 2.6.32-22-pve
                      Distribution: Ubuntu 10.04.4 LTS (64-bit)
                            Memory: 4096 MB

/var/www/bigbluebutton/client/conf/config.xml (bbb-client)
        Port test (tunnel): visio.ialg.fr
                              Red5: visio.ialg.fr

/etc/nginx/sites-available/bigbluebutton (nginx)
                       server name: visio.ialg.fr
                              port: 80
                    bbb-client dir: /var/www/bigbluebutton

/var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties 
(bbb-web)
                      bbb-web host: visio.ialg.fr

/usr/share/red5/webapps/bigbluebutton/WEB-INF/red5-web.xml (red5)
                  voice conference: FreeSWITCH
                     capture video: true
                   capture desktop: true

/usr/local/bigbluebutton/core/scripts/bigbluebutton.yml (record and playback)
                     playback host: visio.ialg.fr

** Potential problems described below **
# IP does not match:
#                           IP from ifconfig: 127.0.0.2
#   /etc/nginx/sites-available/bigbluebutton: visio.ialg.fr
# Not Running:  bbb-record-core

Original comment by jd.ya...@googlemail.com on 19 Oct 2013 at 10:58

GoogleCodeExporter commented 9 years ago
Hi JD,

Can you check the implementation of the Chamilo plugin: does it assign a unique 
dialNumber for different meetings?  See

  https://code.google.com/p/bigbluebutton/wiki/081API#Create_Meeting

Original comment by ffdixon@gmail.com on 19 Oct 2013 at 11:01

GoogleCodeExporter commented 9 years ago
First of all Thank you very much to answer so promptly.

How can I check it for the dialnumber?

Original comment by jd.ya...@googlemail.com on 19 Oct 2013 at 11:21

GoogleCodeExporter commented 9 years ago
            $bbb_params = array(
                'meetingId' => $id,                     // REQUIRED
                'meetingName' => $meeting_name,     // REQUIRED
                'attendeePw' => $attende_password,                  // Match this value in getJoinMeetingURL() to join as attendee.
                'moderatorPw' => $moderator_password,                   // Match this value in getJoinMeetingURL() to join as moderator.
                'welcomeMsg' => $welcome_msg,                   // ''= use default. Change to customize.
                'dialNumber' => '',                     // The main number to call into. Optional.
                'voiceBridge' => '12345',                   // PIN to join voice. Required.
                'webVoice' => '',                       // Alphanumeric to join voice. Optional.
                'logoutUrl' =>  $this->logout_url,
                'maxParticipants' => $max,              // Optional. -1 = unlimitted. Not supported in BBB. [number]
                'record' => $record,                    // New. 'true' will tell BBB to record the meeting.
                'duration' => $duration,                // Default = 0 which means no set duration in minutes. [number]
                //'meta_category' => '',                // Use to pass additional info to BBB server. See API docs.
            );

Original comment by jd.ya...@googlemail.com on 19 Oct 2013 at 11:27

GoogleCodeExporter commented 9 years ago
Fred did you already reproduce this issue?

What can I tell you?

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:18

GoogleCodeExporter commented 9 years ago
The problem is here

> 'dialNumber' => '',

the dialNumber is not optional.  You need to assign a 5 digit number that is 
unique to every conference; otherwise, all conferences will share the same 
voice bridge.

Original comment by ffdixon@gmail.com on 20 Oct 2013 at 12:28

GoogleCodeExporter commented 9 years ago
I just tried to put 'dialNumber' => '12345'

Don't know if I'm right the issue stays the same

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:41

GoogleCodeExporter commented 9 years ago
> You need to assign a 5 digit number that is unique to every conference; 
otherwise, all conferences will share the same voice bridge.

Original comment by ffdixon@gmail.com on 20 Oct 2013 at 12:42

GoogleCodeExporter commented 9 years ago
I thought this was for the voicebridge the 5 digit what I allready patched. 
Very weared because as StephenK was telling nothing but the voice is shared 
between two different sessions...

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:46

GoogleCodeExporter commented 9 years ago
How can I assign it automatically as I can't assign it on the API

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:47

GoogleCodeExporter commented 9 years ago
I'm sorry I'm very new on it

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:47

GoogleCodeExporter commented 9 years ago
To put it differently, if you create two meetings with separate meetingIDs, the 
users will be in two separate meetings.  But if your two meetings have the same 
voiceBridge number, the users will be in the same audio bridge.

So, when you create a meeting, make sure you provide a unique (different) 
voiceBridge number for each meeting; otherwise, users will share the same audio 
bridge.

Original comment by ffdixon@gmail.com on 20 Oct 2013 at 12:48

GoogleCodeExporter commented 9 years ago
Well I think I almost understand what you mean but how? Is it a common issue 
because I just saw the only patch about the 12345 to put in bbb.lib.php and 
that's it.

So the question is is there a file to change to provide unique different 
voicebridge?

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 12:51

GoogleCodeExporter commented 9 years ago
Is this something like this?
https://github.com/bigbluebutton/bigbluebutton/blob/master/bbb-voice-conference/
config/freeswitch/conf/dialplan/public.xml#L48

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 1:01

GoogleCodeExporter commented 9 years ago
Not sure what version of chamilio plugin you are using, but i have a handful of 
chamilio users that stay on .71 bbb because the plugin was not working 
correctly with .8+.   It might me that they are on very old installation of 
chamillo? not sure.

Are there users in chamilio forums with successful .8+ integrations. 

Original comment by 207T...@gmail.com on 20 Oct 2013 at 4:29

GoogleCodeExporter commented 9 years ago
I have the last version of chamilo 1.9.4 with .81 RC3 bbb installed. Everything 
is working (I did not try the recording for the moment.)

Just all sessions are voiced related which makes it unusable. 

By the way when I try the demo_api session I don't hear the other session of my 
install. 

I'll try to uninstall 0.81 to switch back but I'm pretty sure there's something 
wrong enywhere else.

Fred I checked the API of the plugin which is the same than the one you 
uploaded 
https://github.com/bigbluebutton/bigbluebutton/blob/master/labs/bbb-api-php/incl
udes/bbb-api.php

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 8:09

GoogleCodeExporter commented 9 years ago
Stephen, Did you solve the issue. It's bringing me crazy.

I'm looking for an answer since 3 days without finding anything

Original comment by jd.ya...@googlemail.com on 20 Oct 2013 at 11:15

GoogleCodeExporter commented 9 years ago
If I understand the log It's looking like every session is using the 
voicebridge 12345. That supposes that there is just one audio session and all 
the other sessions are joining the same audioconference.

Is it an issue and how can I change it?

Original comment by jd.ya...@googlemail.com on 21 Oct 2013 at 12:49

GoogleCodeExporter commented 9 years ago
Marking as WontFix -- the front-end application using BigBlueButton must ensure 
it sends a unique dialNumber. 

If it sends the same dailNumber for two sessions, they will share the same 
audio bridge.

Original comment by ffdixon@gmail.com on 4 Apr 2015 at 3:07

GoogleCodeExporter commented 9 years ago
Hi guys, Yannick, leader of the Chamilo LMS project here. Sorry I only realize 
this report exists now. Apparently it's been 2 years and I would have been more 
than happy to know about it then. Sorry this was not reported in our BTS at 
https://support.chamilo.org.

Regarding the issue, yes, we are sending a 12345 voicebridge everytime. Before 
I send a patch for that, I'd like to know if there is a way to send an API call 
to get a free voicebridge number from the server before assigning one. The 
reason I ask this is we commonly use one BBB server for several Chamilo 
installations (yes... we like using as few resources as possible), and in this 
case there is no way to guess a 5 digits number that will not have a probable 
chance of being the same as another conference room launched by another Chamilo 
instance...

A quick look at the PHP API doesn't seem to offer an option to get a "free" 
voiceBridge.
Another look at http://docs.bigbluebutton.org/dev/api.html doesn't seem to 
provide that capability either. In particular, even if I could hope to list all 
the busy voiceBridges from a getMeetings call, apparently the getMeetings call 
doesn't return the voiceBridge used, so... How do you suggest we do that safely?

Is there another way than just starting from an arbitrary number on each 
Chamilo instance and just hope that it will not conflict?

Original comment by ywarn...@gmail.com on 19 May 2015 at 3:41

GoogleCodeExporter commented 9 years ago
I sent this fix to the plugin here: 
https://github.com/chamilo/chamilo-lms/commit/67943d194db924f345c51df81da7f1e77c
53ab82

A few notes are worthy reading in the changelod.md about the (single) change 
you have to put into the database so that your previous installation of Chamilo 
(up to 1.9.10.2) can use this new version of the plugin.

Beware that the fix not being completely critical, I sent it to the 1.10.x 
branch, which is a development branch. Considering it's just a plugin, it 
shouldn't interfere with the rest of the code, but it's best to be safe and 
take a backup of your bbb plugin folder before applying the change. I tried it 
on a running install of 1.10.x with bbb 0.81 and it worked like a charm.

Original comment by ywarn...@gmail.com on 19 May 2015 at 4:08