diff --git a/mod/core/Dockerfile b/mod/core/Dockerfile index 00e45e4..2598848 100644 --- a/mod/core/Dockerfile +++ b/mod/core/Dockerfile @@ -49,9 +49,16 @@ RUN sed -i 's|securerandom.source=file:/dev/random|securerandom.source=file:/dev RUN chown bigbluebutton:bigbluebutton /var/bigbluebutton # -- copy configuration files -COPY red5.properties /usr/share/red5/conf/red5.properties -COPY bigbluebutton.properties /usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties -COPY bigbluebutton-sip.properties /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties +COPY red5-webapps/bigbluebutton/application.conf /usr/share/red5/webapps/bigbluebutton/WEB-INF/classes/application.conf +COPY red5-webapps/bigbluebutton/bigbluebutton.properties /usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties +COPY red5-webapps/bigbluebutton/redis.properties /usr/share/red5/webapps/bigbluebutton/WEB-INF/redis.properties +COPY red5-webapps/sip/bigbluebutton-sip.properties /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties +COPY red5-webapps/screenshare/screenshare.properties /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties +COPY red5-webapps/screenshare/screenshare-app.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/screenshare-app.conf +COPY red5-webapps/screenshare/application.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/application.conf +COPY red5-webapps/video/bigbluebutton-video.properties /usr/share/red5/webapps/video/WEB-INF/bigbluebutton-video.properties +COPY red5-webapps/video-broadcast/video-broadcast.properties /usr/share/red5/webapps/video-broadcast/WEB-INF/video-broadcast.properties + COPY bigbluebutton.yml /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml COPY web/bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl @@ -60,10 +67,6 @@ COPY bbb-fsesl-akka/application.conf /etc/bbb-fsesl-akka/application.conf COPY bbb-transcode-akka/application.conf /etc/bbb-transcode-akka/application.conf COPY web-run.sh /usr/share/bbb-web/run-prod.sh -COPY screenshare/screenshare.properties /usr/share/red5/webapps/screenshare/WEB-INF/screenshare.properties -COPY screenshare/screenshare-app.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/screenshare-app.conf -COPY screenshare/application.conf /usr/share/red5/webapps/screenshare/WEB-INF/classes/application.conf - COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY entrypoint.sh /entrypoint.sh diff --git a/mod/core/screenshare/application.conf b/mod/core/red5-webapps/bigbluebutton/application.conf similarity index 98% rename from mod/core/screenshare/application.conf rename to mod/core/red5-webapps/bigbluebutton/application.conf index 918155f..9399112 100644 --- a/mod/core/screenshare/application.conf +++ b/mod/core/red5-webapps/bigbluebutton/application.conf @@ -28,7 +28,7 @@ akka { } redis { - host="127.0.0.1" + host="redis" port=6379 password="" # recording keys should expire in 14 days diff --git a/mod/core/bigbluebutton.properties b/mod/core/red5-webapps/bigbluebutton/bigbluebutton.properties similarity index 98% rename from mod/core/bigbluebutton.properties rename to mod/core/red5-webapps/bigbluebutton/bigbluebutton.properties index c602a1e..63f2f36 100644 --- a/mod/core/bigbluebutton.properties +++ b/mod/core/red5-webapps/bigbluebutton/bigbluebutton.properties @@ -23,7 +23,7 @@ freeswitch.esl.host=10.7.7.1 freeswitch.esl.port=8021 freeswitch.esl.password=ClueCon -redisHost=10.7.7.5 +redisHost=redis redisPort=6379 redisPassword= redisExpireKey=1209600 diff --git a/mod/core/red5-webapps/bigbluebutton/redis.properties b/mod/core/red5-webapps/bigbluebutton/redis.properties new file mode 100644 index 0000000..89324f9 --- /dev/null +++ b/mod/core/red5-webapps/bigbluebutton/redis.properties @@ -0,0 +1,5 @@ +# Redis settings + +redis.host=redis +redis.port=6379 +redis.pass= \ No newline at end of file diff --git a/mod/core/red5-webapps/screenshare/application.conf b/mod/core/red5-webapps/screenshare/application.conf new file mode 100644 index 0000000..9399112 --- /dev/null +++ b/mod/core/red5-webapps/screenshare/application.conf @@ -0,0 +1,43 @@ +akka { + actor { + debug { + # enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.) + autoreceive = on + # enable DEBUG logging of actor lifecycle changes + lifecycle = on + } + } + loggers = ["akka.event.slf4j.Slf4jLogger"] + loglevel = "DEBUG" + + redis-publish-worker-dispatcher { + mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox" + # Throughput defines the maximum number of messages to be + # processed per actor before the thread jumps to the next actor. + # Set to 1 for as fair as possible. + throughput = 512 + } + + redis-subscriber-worker-dispatcher { + mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox" + # Throughput defines the maximum number of messages to be + # processed per actor before the thread jumps to the next actor. + # Set to 1 for as fair as possible. + throughput = 512 + } +} + +redis { + host="redis" + port=6379 + password="" + # recording keys should expire in 14 days + keyExpiry=1209600 +} + +eventBus { + meetingManagerChannel = "FROM APPLICATION.CONF MeetingManagerChannel" + outMessageChannel = "OutgoingMessageChannel" + incomingJsonMsgChannel = "IncomingJsonMsgChannel" + outBbbMsgMsgChannel = "OutBbbMsgChannel" +} \ No newline at end of file diff --git a/mod/core/screenshare/screenshare-app.conf b/mod/core/red5-webapps/screenshare/screenshare-app.conf similarity index 100% rename from mod/core/screenshare/screenshare-app.conf rename to mod/core/red5-webapps/screenshare/screenshare-app.conf diff --git a/mod/core/screenshare/screenshare.properties b/mod/core/red5-webapps/screenshare/screenshare.properties similarity index 100% rename from mod/core/screenshare/screenshare.properties rename to mod/core/red5-webapps/screenshare/screenshare.properties diff --git a/mod/core/bigbluebutton-sip.properties b/mod/core/red5-webapps/sip/bigbluebutton-sip.properties similarity index 100% rename from mod/core/bigbluebutton-sip.properties rename to mod/core/red5-webapps/sip/bigbluebutton-sip.properties diff --git a/mod/core/red5-webapps/video-broadcast/video-broadcast.properties b/mod/core/red5-webapps/video-broadcast/video-broadcast.properties new file mode 100644 index 0000000..5c6a147 --- /dev/null +++ b/mod/core/red5-webapps/video-broadcast/video-broadcast.properties @@ -0,0 +1,2 @@ +redis.host=redis +redis.port=6379 diff --git a/mod/core/red5-webapps/video/bigbluebutton-video.properties b/mod/core/red5-webapps/video/bigbluebutton-video.properties new file mode 100644 index 0000000..bcab3d2 --- /dev/null +++ b/mod/core/red5-webapps/video/bigbluebutton-video.properties @@ -0,0 +1,5 @@ +redis.host=redis +redis.port=6379 +redis.password= +# recording keys should expire in 14 days +redis.keyExpiry=1209600 diff --git a/mod/core/red5.properties b/mod/core/red5.properties deleted file mode 100644 index a6cc740..0000000 --- a/mod/core/red5.properties +++ /dev/null @@ -1,157 +0,0 @@ -# Socket policy -policy.host=0.0.0.0 -policy.port=843 - -# HTTP -http.host=0.0.0.0 -http.port=5080 -https.port=5443 -http.URIEncoding=UTF-8 -http.max_headers_size=8192 -http.max_keep_alive_requests=-1 -http.max_threads=20 -http.acceptor_thread_count=10 -http.processor_cache=20 - -# RTMP -rtmp.host=0.0.0.0 -rtmp.port=1935 -rtmp.io_threads=8 -rtmp.send_buffer_size=65536 -rtmp.receive_buffer_size=65536 -rtmp.ping_interval=1000 -rtmp.max_inactivity=20000 -rtmp.max_handshake_time=5000 -rtmp.tcp_nodelay=true -rtmp.tcp_keepalive=false -rtmp.default_server_bandwidth=10000000 -rtmp.default_client_bandwidth=10000000 -rtmp.client_bandwidth_limit_type=2 -rtmp.bandwidth_detection=false -rtmp.encoder_base_tolerance=5000 -rtmp.encoder_drop_live_future=false -# traffic optimization hinting. to disable set traffic class set to -1 -# low delay + high throughput == 24 (0x18) -rtmp.traffic_class=-1 -# requested maximum length of the queue of incoming connections -rtmp.backlog=32 -# the interval (seconds) between each throughput calculation -rtmp.thoughput_calc_interval=15 -# enable use of the default mina acceptor -rtmp.default_acceptor=true -# socket i/o pool sizes used when default acceptor is disabled -rtmp.initial_pool_size=0 -rtmp.max_pool_size=2 -rtmp.max_processor_pool_size=8 -rtmp.executor_keepalive_time=60000 -mina.logfilter.enable=false -# scheduler configs (per application) -rtmp.scheduler.pool_size=8 -rtmp.deadlockguard.sheduler.pool_size=8 -# message executor configs (per application) - adjust these as needed if you get tasks rejected -rtmp.executor.core_pool_size=4 -rtmp.executor.max_pool_size=32 -rtmp.executor.queue_capacity=64 -# drop audio packets when queue is almost full, to disable this, set to 0 -rtmp.executor.queue_size_to_drop_audio_packets=60 -# maximum amount of time allotted to process a single rtmp message / packet in milliseconds, set it as 0 to disable timeout -rtmp.max_handling_time=2000 -# connection tweaks - dont modify unless you know what you're doing -rtmp.channel.initial.capacity=3 -rtmp.channel.concurrency.level=1 -rtmp.stream.initial.capacity=1 -rtmp.stream.concurrency.level=1 -rtmp.pending.calls.initial.capacity=3 -rtmp.pending.calls.concurrency.level=1 -rtmp.reserved.streams.initial.capacity=1 -rtmp.reserved.streams.concurrency.level=1 -rtmp.generateMetadata=false -# maximum packet size allowed in bytes -rtmp.max_packet_size=3145728 - -# RTMPS -rtmps.host=0.0.0.0 -rtmps.port=8443 -rtmps.ping_interval=5000 -rtmps.max_inactivity=20000 -rtmps.max_keep_alive_requests=-1 -rtmps.max_threads=8 -rtmps.acceptor_thread_count=2 -rtmps.processor_cache=20 -# RTMPS Key and Trust store parameters -rtmps.keystorepass=password -rtmps.keystorefile=conf/keystore.jks -rtmps.truststorepass=password -rtmps.truststorefile=conf/truststore.jks - -# RTMPT -rtmpt.host=0.0.0.0 -rtmpt.port=8088 -rtmpt.ping_interval=5000 -rtmpt.max_inactivity=20000 -rtmpt.max_handshake_time=5000 -rtmpt.max_keep_alive_requests=-1 -rtmpt.max_threads=8 -rtmpt.acceptor_thread_count=2 -rtmpt.processor_cache=20 -rtmpt.encoder_base_tolerance=5000 -rtmpt.encoder_drop_live_future=true -# better setting for streaming media -rtmpt.target_reponse_size=32768 -# best setting for small messages or shared objects -#rtmpt.target_reponse_size=8192 -# max incoming messages to process at a time. the most that FP appears to send is 166 -rtmpt.max_in_msg_process=166 -# max time in millis that we will wait when offering data to the in or out queue -rtmpt.max_queue_offer_time=125 -# max offer attempts -rtmpt.max_queue_offer_attempts=4 - -# WebSocket -ws.host=0.0.0.0 -ws.port=8081 - -# Debug proxy (needs to be activated in red5-core.xml) -proxy.source_host=127.0.0.1 -proxy.source_port=1936 -proxy.destination_host=127.0.0.1 -proxy.destination_port=1935 - -# JMX -jmx.rmi.host=localhost -jmx.rmi.port=9999 -jmx.rmi.sport=9998 -jmx.rmi.port.remoteobjects= -jmx.keystorepass=password -jmx.mina.monitor.enable=false -jmx.mina.poll.interval=1000 -# Whether to always create the registry in-process, not attempting to -# locate an existing registry at the specified port. Set to "true" in order -# to avoid the overhead of locating an existing registry when you always intend -# to create a new registry in any case. -jmx.registry.create=true -# Whether or not the MBeanServerFactoryBean should attempt to locate a running -# MBeanServer before creating one -jmx.reuse.existing.server=true -# Whether to register the MBeanServer with the MBeanServerFactory, making it -# available through MBeanServerFactory.findMBeanServer() -jmx.register.factory=true -# Whether any threads started for the JMXConnectorServer should be started as daemon threads -jmx.daemon=true -# Whether the JMXConnectorServer should be started in a separate thread -jmx.threaded=true - -# Server properties -# max events to send in a single update -so.max.events.per.update=64 -so.scheduler.pool_size=4 -keyframe.cache.entry.max=500 -war.deploy.server.check.interval=600000 -fileconsumer.delayed.write=true -fileconsumer.queue.size=120 -fileconsumer.wait.for.keyframe=true -subscriberstream.buffer.check.interval=5000 -subscriberstream.underrun.trigger=100 -subscriberstream.max.pending.frames=10 -subscriberstream.max.sequential.frames=10 -broadcaststream.auto.record=false