Site Tools


Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
New release available: 2020-07-29 "Hogfather". upgrade now! [51.3] (what's this?)
New release candidate 3 available: 2020-06-09 "Hogfather". upgrade now! [51.2] (what's this?)
New release candidate 2 available: 2020-06-01 "Hogfather". upgrade now! [51.1] (what's this?)
New release candidate available: 2020-06-01 "Hogfather". upgrade now! [51] (what's this?)
Hotfix release available: 2018-04-22c "Greebo". upgrade now! [50.3] (what's this?)
Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
bbb_voice_conference_from_sip_clients_crossbow_-_live_event

BBB Voice conference from SIP Clients (Expertus Meeting)

Requirement

The users should be able to join the BBB voice conference by dialing in the conference number and entering the voice bridge for the particular conference. They can join from any SIP client like a VOIP phone etc. provided that they know the dialin number and the voice bridge(aka extension) of the particular meeting.

Implementation

To support this freeswitch of BBB should be registered with asterisk so that the external calls to asterisk will be routed to BBB's frees witch. More info - http://code.google.com/p/bigbluebutton/wiki/FAQ#How_do_I_forward_calls_from_my_Asterisk_server_to_FreeSWITCH_in

Once we have this setup then we need to allot extensions to meetings such that an extension can be occupied by only one meeting at a time and extensions are made available out side the duration of the meeting.

Implementation - Assigning the voice extensions to live events

voice_extensions table holds the list of extension numbers. Typically there will be 10's or 100's of extensions available for the app to use. A live event can be started 30 minutes before the scheduled time and is expired after 30 minutes of scheduled end time. Just to have some buffer time and avoid overlaps, a live event can hold an extension from 1 hour before the scheduled start to 1 hour after the end time.

So, for a given voice extension and live event ASSIGNED_TIME_FRAME = (meeting scheduled start time - 1 hour TO meeting scheduled end time + 1 hour)

1. Creation cycle

  • Check the extensions that are free during the live event's ASSIGNED_TIME_FRAME and assign one of the free extensions at random.
  • If none of the extensions are avialable during ASSIGNED_TIME_FRAME of the meeting, then do not assign a voice extension. Attendees can still attend the meeting from the web client.
  • The phone number and conference pin show up on the what i am working on panel live event thumbnail image.

2. Edit cycle

  • Check if either scheduled start time or scheduled end time is being changed. If yes then check if the assigned voice bridge is free during this time. If it is not free then assign a new voice bridge number available at that time. If none of the extensions are available then set the voice bridge value to nil.

3. Delete

  • Deletion also clears and frees the voice bridge. So, no need to handle anything here.

Table Design

Table name - voice_extensions

Saves list of extension numbers. The data is populated from a csv file with a rake task.

Column_name type Description
id integer primary key
number integrer The value of the extension number - (Ex- 85001)
active boolean If the extension number can be used for future meetings or not

Rake Task Details

There are 3 tasks to add, inactivate and remove the voice extensions in the database table. They can be found in <RAILS_ROOT>/lib/taks/voice_externsions.rake

1. rake voice_extensions:populate[file_path,inactivate_rest] (populates a voice_extensions table with the actual voice extensions we use on that environment.)

file_path - the file path relative to Rails app directory. This file should contain all the extensions we need to populate. If the extensions are already in the table , they are activated.Default value is - db/voice_extensions.csv

Note -

  • If we pass csv filename as “voice.csv”, it looks for <RAILS_ROOT>/voice.csv
  • If we do not pass a filename then by default it looks for <RAILS_ROOT>/db/voice_extensions.csv

inactivate_rest - Pass true if you want to inactivate the voice extensions which are in the table but not in the file “file_path” which is passed as first argument. If any extensions are being used for any future live events they will still remain active and a message will be displayed.

2. rake voice_extensions:inactivate[file_path] (Inactivates the voice extensions mentioned in the CSV file.)

file_path - the file path relative to Rails app directory. Default value is - db/voice_extensions_inactive.csv

3. rake voice_extensions:delete_inactive (Deletes the voice extensions which are inactive.)

Open Questions

1. Should allowing the users to join from phone/any sip client be an option while creating the live event ?

bbb_voice_conference_from_sip_clients_crossbow_-_live_event.txt · Last modified: 2018/08/31 16:16 (external edit)