Index: bbb.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/bbb/Attic/bbb.module,v
retrieving revision 1.4.2.9
diff -u -p -r1.4.2.9 bbb.module
--- bbb.module	23 Sep 2010 16:25:45 -0000	1.4.2.9
+++ bbb.module	6 Feb 2011 22:54:19 -0000
@@ -609,7 +609,7 @@ function bbb_meeting_attend($node) {
   );
   $status = bbb_api_getMeetingInfo($params);
 
-  if ($status->hasBeenForciblyEnded == 'true') {
+  if ($status->hasBeenForciblyEnded == 'true' && variable_get('bbb_allow_restart', 0) == FALSE) {
     drupal_set_message('The meeting has been terminated and is not available for attending.');
     drupal_goto('node/' . $node->nid);
   }
@@ -647,10 +647,10 @@ function bbb_meeting_moderate($node) {
   );
   $status = bbb_api_getMeetingInfo($params);
 
-  if ($status->hasBeenForciblyEnded == 'true') {
+  if ($status->hasBeenForciblyEnded == 'true' && variable_get('bbb_allow_restart', 0) == FALSE) {
     drupal_set_message('The meeting has been terminated and is not available for reopening.');
     drupal_goto('node/' . $node->nid);
-  } 
+  }
 
   drupal_set_title($node->title);
   // Implicitly create meeting
@@ -670,6 +670,12 @@ function bbb_meeting_moderate($node) {
  * Terminate confirm form
  */
 function bbb_end_confirm_form($form_state, $node) {
+  if (variable_get('bbb_allow_restart', 0)) {
+    $warning = t('All attendes will be removed from the meeting.');
+  }
+  else {
+    $warning = t('This action cannot be undone, all attendes will be removed from the meeting.');
+  }
   return confirm_form(
     array(
       'nid' => array(
@@ -679,7 +685,7 @@ function bbb_end_confirm_form($form_stat
     ),
     t('Are you sure you want to terminate the meeting !name?', array('!name' => $node->title)),
     'node/' . $node->nid,
-    t('This action cannot be undone, all attendes will be removed from the meeting.'),
+    $warning,
     t('Terminate'),
     t('Cancel')
   );
Index: includes/pages.bbb.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/bbb/includes/Attic/pages.bbb.inc,v
retrieving revision 1.1.2.7
diff -u -p -r1.1.2.7 pages.bbb.inc
--- includes/pages.bbb.inc	10 Jan 2011 15:38:37 -0000	1.1.2.7
+++ includes/pages.bbb.inc	6 Feb 2011 22:54:19 -0000
@@ -93,6 +93,16 @@ function bbb_settings() {
     '#default_value' => variable_get('bbb_local_tasks', 1),
     '#description' => t('Choose wether to display the local tasks. (Save twice to see the effect)'), // TODO: fix!
   );
+  $form['bbb_general']['bbb_allow_restart'] = array(
+    '#title' => t('Allow terminated meetings to be restarted'),
+    '#type' => 'checkbox',
+    '#options' => array(
+      0 => t('Deny'),
+      1 => t('Allow'),
+    ),
+    '#default_value' => variable_get('bbb_allow_restart', 0),
+    '#description' => t('Note that you will still need to wait the number of minutes defined in beans.dynamicConferenceService.minutesElapsedBeforeMeetingExpiration in the file /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties before meetings can be restarted. This value defaults to 60 minutes, but can be reduced to 1 minute.'),
+  );
   $form['#submit'][] = 'bbb_settings_submit';
   return system_settings_form($form);
 }
