📜 ⬆️ ⬇️

BigBlueButton: an open conferencing solution


I am almost sure that every IT department was tasked with organizing a video conference, or just a conference, for example, with a branch. There are many solutions to the problem - from expensive hardware to free software. I want to draw the attention of the small community to one of the free solutions of this task - BigBlueButton. On Habré already had a small note about him , I will try to tell a little more about this decision, as well as about the experience of its implementation in our company.


The developers themselves are positioning it as a solution for training and conducting presentations, the claimed functionality does not prevent us from using it for our business purposes. On the main page of the project there is a link to the demonstration of the solution. The first time I came across BigBlueButton in search of a solution to organizing the conference, I followed this link, what I saw impressed and seemed to fit our needs completely (it turned out, by the way).

A pleasant surprise, also, it turned out that a fully functioning system is available as a VMWARE image directly on the developers' website, and there is also a detailed installation guide . It is worth noting here that the specified image was converted without problems and launched under hyper-v.
')
After downloading and running the image, we almost immediately get the solution out of the box (the ip machine gets by dhcp). Already in this form it is quite possible to use bbb, for this we need a video camera and a headset. Demo conferences are available if you go to the browser address of the deployed server.

After entering the conference, the main window opens:


The conference participants are displayed in the upper left part of the window. It is worth noting here that participants can be of two types - a regular participant and a moderator. A regular participant can listen and watch the conference. The moderator can control the microphones of the participants, as well as give participants the right to demonstrate. A participant with the right to demonstrate can place on the demonstration panel (panel in the middle) various materials (for example, a word or powerpoint document) that will be available for viewing to all conference participants. Also a conference participant can watch the image from the camera of other participants, if another participant has turned it on.

In the lower left part there is a window of the so-called "listeners" - these are the participants of the conference who got into it by calling the conference phone number. This functionality is very interesting and useful (at least for us) and I will discuss its configuration a little more later.

On the right side is a chat (yes, the usual chat) to which all conference participants can write. When you enter a chat conference, an invitation is written that can be customized when creating a conference.

The work with the bbb interface is described in more detail in the document, the link to which I attached at the end of the note, this is the real member instruction used by us.

Now I want to talk about the fact that we actually changed “by ourselves”


First of all, we changed the part of creating / entering the conference.

The image is distributed as a demo and initially there are several sample templates to understand how conferences are created. Templates are here:

/var/lib/tomcat6/webapps/bigbluebutton/demo

Having studied them, we simply created our own, now we have about the following when entering the conference server:



The second thing I wanted to do was dial the conference from the phones.


In BigBlueButton, telephony (and indeed the whole voice) is supported by the built-in Asterisk, respectively, we will have to somehow connect the existing telephony network with bbb Asterisk. All the necessary Asterisk configuration files are in

/etc/asterisk/

Actually, we need only two files:

bbb_sip.conf
bbb_extensions.conf


Telephony in our company is organized through Cisco CallManager, we can connect it with Asterisk, for example, with a SIP trunk. To do this, on the Asterisk side, we change bbb_sip.conf like this:

[bbbuser]
type=friend
username=bbbuser
insecure=very
qualify=no
nat=yes
host=dynamic
canreinvite=no
context=bbb-voip
disallow=all
allow=ulaw

[TO_CCM]
disallow=all
type=friend
context=bigbluebutton
host= 172.31.0.2
port= 5062
allow=ulaw
allow=alaw
nat=no
canreinvite=no
qualify=no
dtmfmode=rfc2833

where 172.31.0.2 is the address of our CCM, 5062 is the trunk port.

On the CCM side, a SIP trunk is also created in the direction of Asterisk, a routing pattern is created from some internal number to this trunk, so the call to the internal number will be wrapped on Asterisk and in the conference.

On the Asterisk side, the bbb_extensions.conf file was also slightly modified .

In section

[prompt]
exten => s,1,Read(CONF_NUM,conf-getconfno, 5 ,,3,10)
exten => s,n,Goto(bbb-conference,${CONF_NUM},1)

It is necessary to register the number of characters in the conference number, we have 5.

We also changed the section

[bbb-conference]
include => echo-test

exten => _XXXX.,1,Agi(agi://localhost/findConference?conference=${EXTEN})
exten => _XXXX.,n,GotoIf($[${EXTEN} = ${CONFERENCE_FOUND}]?valid:invalid)
exten => _XXXX.,n(valid),Playback(conf-placeintoconf)
; exten => _XXXX.,n,MeetMe(${CONFERENCE_FOUND},cdMsT)
exten => _XXXX.,n,Set(CALLERID(name)= ${IF($["${CALLERID(name)}" = ""]?${CALLERID(num)}:${CALLERID(name)})})
exten => _XXXX.,n,Konference(${CONFERENCE_FOUND},H)
exten => _XXXX.,n(invalid),Goto(handle-invalid-conference,s,1)


The essence of the changes is as follows: when an external subscriber dials in and enters the conference, his CALLERNAME is shown in the listeners window, but since the caller's name is not always transferred to the final PBX. In the end, almost always the “unknown caller” appears in the listeners window, which is logical in itself, but it makes it difficult to understand who is who in the listeners, this change serves to ensure that the caller does not have a name. his determined phone number was displayed.

What else?
The platform turned out to be surprisingly flexible and change-friendly, in case of such need all the functionality it provides can be built into the corporate portal, you can automate the order of conferences, you can screw something else to the telephony, but in general a lot of things can be :)

Useful links:
Developer site
BBB google group
The work instruction of the participant of the video conference: Download the instruction of the participant_video_conference_abr.docx with WebFile.RU

Source: https://habr.com/ru/post/112066/


All Articles