2016-08-03 61 views
0

konfigurieren Von High-Level-Architektur Übersicht für bigbluebutton Ich verstehe, dass red5 Server kommuniziert mit Client mit rtmp oder Tunning rtmp über Nginx. Und dann kommunizieren red5 Server mit FreeSwitch mit redis (mit fsesl-akka). Es bedeutet, dass wir red5 auf einem separaten Server bereitstellen können. Das Ergebnis sollte 3-Server sein:Wie bigbluebutton mit externen Red5-Server

  1. Server für nginx/tomcat7 Client ausgeführt werden, bbb-web
  2. Server für Red5 + redis die rtmp für Modul Videoconf/Sharing/Anruf/Audio
  3. Server Griff für Freeswitch

Derzeit bin ich in der Lage Modul config rtmp von separat Red5-Server zu verwenden, indem 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> 

Wo 10.0.121.14 - Red5 + Redis ausführen. 10.0.121.16 run nginx + tomcat7. Irgendein Dokument/Hilfe/Vorschlag von Experten zur Lösung dieses Problems?

Antwort

1

Separate Red5-Server können Video- und Deskshare-Module verteilen, müssen nur die Archivierungsskripte abrufen, um die .flv-Dateien aus dem Stream-Verzeichnis bei der Verarbeitung abzurufen. Ich würde die grundlegenden red5 auf BBB-Server verlassen, um den Rest der Nachrichten mit lokalen Redis-Speicher zu behandeln.

Wenn Sie red5 nicht alle zusammen auf dem Server haben möchten, müssen Sie den red5 Server aktivieren, damit er sich mit redis verbinden kann. Achtung. Downt Think und Passwort ist gesetzt, so dass Sie dies auf der öffentlichen Schnittstelle nicht offen legen wollen, ohne korrekte iptable Regeln zu verwenden.

Grüßen, Stephen hostbbb.com