2016-08-03 11 views
0

De l'aperçu de l'architecture de haut niveau pour bigbluebutton http://docs.bigbluebutton.org/overview/architecture.html Je comprends que le serveur red5 communique avec le client en utilisant rtmp ou en ajustant rtmp via nginx. Et puis le serveur red5 communique avec FreeSwitch en utilisant redis (avec fsesl-akka). Cela signifie que nous sommes en mesure de déployer red5 dans un serveur distinct. Le résultat devrait être de 3 serveurs:Comment configurer bigbluebutton pour fonctionner avec un serveur Red5 externe

  1. Server pour nginx/tomcat7 pour exécuter le client, bbb Web
  2. Server pour Red5 + Redis qui gèrent RTMP pour le module Videoconf/partage/appel/audio
  3. Server pour FreeSwitch

Actuellement, je suis en mesure de module de configuration pour utiliser rtmp du serveur séparément Red5 en changeant client/conf/config.xml

<config> 
    <localeversion suppressWarning="false">0.9.0</localeversion> 
    <version>VERSION</version> 
    <help url="http://10.0.121.16/help.html"/> 
    <javaTest url="http://10.0.121.16/testjava.html"/> 
    <porttest host="10.0.121.16" application="video/portTest" timeout="10000"/>  
    <bwMon server="10.0.121.16" application="video/bwTest"/> 
    <application uri="rtmp://10.0.121.16/bigbluebutton" host="http://10.0.121.16/bigbluebutton/api/enter"/> 
    <language userSelectionEnabled="true" /> 
    <skinning enabled="true" url="http://10.0.121.16/client/branding/css/BBBDefault.css.swf" /> 
    <shortcutKeys showButton="true" /> 
    <browserVersions chrome="CHROME_VERSION" firefox="FIREFOX_VERSION" flash="FLASH_VERSION" java="1.7.0_51" /> 
    <layout showLogButton="false" defaultLayout="bbb.layout.name.defaultlayout" 
      showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true" 
      showLogoutWindow="true" showLayoutTools="true" confirmLogout="true" 
      showRecordingNotification="true"/> 
    <meeting muteOnStart="false" /> 
    <logging enabled="true" target="trace" level="info" format="{dateUTC} {time} :: {name} :: [{logLevel}] {message}" uri="http://10.0.121.16"/> 
    <lock disableCamForLockedUsers="false" disableMicForLockedUsers="false" disablePrivateChatForLockedUsers="false" 
      disablePublicChatForLockedUsers="false" lockLayoutForLockedUsers="false" lockOnJoin="true" lockOnJoinConfigurable="false"/> 

     <modules> 

     <module name="ChatModule" url="http://10.0.121.16/client/ChatModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      dependsOn="UsersModule" 
      privateEnabled="true" 
      fontSize="12" 
      position="top-right" 
      baseTabIndex="701" 
      colorPickerIsVisible="false" 
      maxMessageLength="1024" 
     /> 

     <module name="UsersModule" url="http://10.0.121.16/client/UsersModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      allowKickUser="true" 
      enableEmojiStatus="true" 
      enableSettingsButton="true" 
      baseTabIndex="301" 
     /> 


     <module name="DeskShareModule" 
      url="http://10.0.121.16/client/DeskShareModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/deskShare" 
      publishURI="10.0.121.16" 
      useTLS="false" 
      showButton="true" 
      autoStart="false" 
      autoFullScreen="false" 
      baseTabIndex="201" 
     /> 

     <module name="PhoneModule" url="http://10.0.121.16/client/PhoneModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/sip" 
      autoJoin="true" 
      listenOnlyMode="true" 
      presenterShareOnly="false" 
      skipCheck="false" 
      showButton="true" 
      enabledEchoCancel="true" 
      useWebRTCIfAvailable="true" 
      showPhoneOption="false" 
      echoTestApp="9196" 
      dependsOn="UsersModule" 
     /> 

     <module name="VideoconfModule" url="http://10.0.121.16/client/VideoconfModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/video" 
      dependson = "UsersModule" 
      baseTabIndex="401" 
      presenterShareOnly = "false" 
      controlsForPresenter = "false" 
      autoStart = "false" 
      skipCamSettingsCheck="false" 
      showButton = "true" 
      showCloseButton = "true" 
      publishWindowVisible = "true" 
      viewerWindowMaxed = "false" 
      viewerWindowLocation = "top" 
      smoothVideo="false" 
      applyConvolutionFilter="false" 
      convolutionFilter="-1, 0, -1, 0, 6, 0, -1, 0, -1" 
      filterBias="0" 
      filterDivisor="4" 
      displayAvatar = "false" 
      focusTalking = "false" 
      glowColor = "0x4A931D" 
      glowBlurSize = "30.0" 
      priorityRatio = "0.67" 
     /> 

     <module name="WhiteboardModule" url="http://10.0.121.16/client/WhiteboardModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      dependsOn="PresentModule" 
      baseTabIndex="601" 
      whiteboardAccess="presenter" 
      keepToolbarVisible="false" 
     /> 

     <module name="PollingModule" url="http://10.0.121.16/client/PollingModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      dependsOn="PresentModule" 
     /> 

     <module name="PresentModule" url="http://10.0.121.16/client/PresentModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      host="http://10.0.121.16" 
      showPresentWindow="true" 
      showWindowControls="true" 
      openExternalFileUploadDialog="false" 
      dependsOn="UsersModule" 
      baseTabIndex="501" 
      maxFileSize="30" 
     /> 

     <module name="LayoutModule" url="http://10.0.121.16/client/LayoutModule.swf?v=VERSION" 
      uri="rtmp://10.0.121.16/bigbluebutton" 
      layoutConfig="http://10.0.121.16/client/conf/layout.xml" 
      enableEdit="false" 
     /> 
    </modules> 
</config> 

Où 10.0.121.14 - exécuter Red5 + redis. 10.0.121.16 exécutez nginx + tomcat7. Tout document/aide/suggestion d'expert pour résoudre ce problème?

Répondre

1

Les serveurs Seperate Red5 peuvent distribuer des modules vidéo et deskskshare, il suffit d'obtenir les scripts d'archivage pour extraire les fichiers .flv du répertoire de flux lors du traitement. Je laisserais le basic red5 sur le serveur bbb pour gérer le reste de la messagerie avec le magasin redis local.

Si vous ne voulez pas avoir red5 sur le serveur tous ensemble, alors vous devrez permettre au serveur red5 d'avoir accès à redis. Faites attention. Downt pense et le mot de passe est défini, donc vous ne voulez pas exposer cela sur l'interface publique sans utiliser les règles correctes iptable.

salutations Stephen hostbbb.com