Coder Social home page Coder Social logo

docker-janus's People

Contributors

krull avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-janus's Issues

Can you add libcurl >= 7.45.0

Hi Brendan,

The streaming plugin requires libcurl >7.45.0 for RTSP connections. I see the following error.

Getting [WARN] RTSP digest authentication unsupported (needs libcurl >= 7.45.0)

I can pipe the rtsp to ffmpeg and use RTP.. but would like to use rtsp direct.

EDIT 2: This will build, but it didn't update curl like I wanted..

&& printf "\ndeb-src http://deb.debian.org/debian jessie main\ndeb-src http://deb.debian.org/debian jessie-updates main\n"  >> /etc/apt/sources.list \
&& cat /etc/apt/sources.list && echo "starting update..." \
&& DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get -y build-dep curl \
&&  DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget \
&& mkdir ~/curl \
&& cd ~/curl \
&& wget http://curl.haxx.se/download/curl-7.50.2.tar.bz2 \
&& tar -xvjf curl-7.50.2.tar.bz2 \
&& cd curl-7.50.2 \
&& ./configure \
&& make \
&& make install \
&& ldconfig \
&& cd .. \

tklx base debian Image possibly out of date

Switching to the latest tag fixed the issue for me, but in case it's helpful:

Running apt-get update followed by apt-get install -y --no-install-recommends git curl iputils-ping tcpdump returned the following error.

E: Failed to fetch http://security.debian.org/pool/updates/main/c/curl/libcurl4-openssl-dev_7.38.0-4+deb8u9_amd64.deb  404  Not Found [IP: 128.61.240.73 80]

E: Failed to fetch http://security.debian.org/pool/updates/main/c/curl/libcurl3_7.38.0-4+deb8u9_amd64.deb  404  Not Found [IP: 128.61.240.73 80]

E: Failed to fetch http://security.debian.org/pool/updates/main/c/curl/libcurl3-gnutls_7.38.0-4+deb8u9_amd64.deb  404  Not Found [IP: 128.61.240.73 80]

E: Failed to fetch http://security.debian.org/pool/updates/main/c/curl/curl_7.38.0-4+deb8u9_amd64.deb  404  Not Found [IP: 128.61.240.73 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
ERROR: Service 'janus' failed to build: The command '/bin/sh -c apt-get install -y --no-install-recommends git     curl iputils-ping tcpdump' returned a non-zero code: 100

Consider upgrading to `debian:buster`

I've tested the following change locally as it gives access to updated versions of libnice etc:

diff --git a/Dockerfile b/Dockerfile
index 1dc36ef..fc038e8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,7 +4,7 @@
 ############################################################

 # set base image debian jessie
-FROM debian:jessie
+FROM debian:buster

 # file maintainer author
 MAINTAINER brendan jocson <[email protected]>
@@ -82,9 +82,9 @@ RUN \
     && DEBIAN_FRONTEND=noninteractive apt-get update \
     && DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install $JANUS_BUILD_DEPS_DEV ${JANUS_BUILD_DEPS_EXT} \
 # build libsrtp
-    && curl -fSL https://github.com/cisco/libsrtp/archive/v2.0.0.tar.gz -o ${BUILD_SRC}/v2.0.0.tar.gz \
-    && tar xzf ${BUILD_SRC}/v2.0.0.tar.gz -C ${BUILD_SRC} \
-    && cd ${BUILD_SRC}/libsrtp-2.0.0 \
+    && curl -fSL https://github.com/cisco/libsrtp/archive/v2.1.0.tar.gz -o ${BUILD_SRC}/v2.1.0.tar.gz \
+    && tar xzf ${BUILD_SRC}/v2.1.0.tar.gz -C ${BUILD_SRC} \
+    && cd ${BUILD_SRC}/libsrtp-2.1.0 \
     && ./configure --prefix=/usr --enable-openssl \
     && make shared_library \
     && make install \

HTTPS

Good morning,

What i need to change to make the server run on https? For example https://url.com:8088

Best regards,
Fellipe M.

janus-gateway exited with code 1

Hello,

I was trying to test out the docker-compose.yml present in this repo so that I could eventually use janus for my project. But the service seems to be failing every time I launch it. PFA the generated logs.
janus_log.txt

Readme typo

Readme lists http://localhost:8080/janus/info as the default info screen, should be http://localhost:8088/janus/info.

The terminal process "/bin/bash '-c', 'docker build --pull --rm -f "Dockerfile" -t dockerjanus:latest "."'" terminated with exit code: 2.

i tried to follow the instruction as set i have not made any additions to the files . When I build an image it fails with he option show in the title of this issue , its failing at this point

RUN \
# init build env & install apt deps
    export JANUS_WITH_POSTPROCESSING="${JANUS_WITH_POSTPROCESSING}"\
    && export JANUS_WITH_BORINGSSL="${JANUS_WITH_BORINGSSL}"\
    && export JANUS_WITH_DOCS="${JANUS_WITH_DOCS}"\
    && export JANUS_WITH_REST="${JANUS_WITH_REST}"\
    && export JANUS_WITH_DATACHANNELS="${JANUS_WITH_DATACHANNELS}"\
    && export JANUS_WITH_WEBSOCKETS="${JANUS_WITH_WEBSOCKETS}"\
    && export JANUS_WITH_MQTT="${JANUS_WITH_MQTT}"\
    && export JANUS_WITH_PFUNIX="${JANUS_WITH_PFUNIX}"\
    && export JANUS_WITH_RABBITMQ="${JANUS_WITH_RABBITMQ}"\
    && export JANUS_WITH_FREESWITCH_PATCH="${JANUS_WITH_FREESWITCH_PATCH}"\
    && export JANUS_BUILD_DEPS_DEV="${JANUS_BUILD_DEPS_DEV}"\
    && export JANUS_CONFIG_OPTIONS="${JANUS_CONFIG_OPTIONS}"\
    && if [ $JANUS_WITH_POSTPROCESSING = "1" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --enable-post-processing"; fi \
    && if [ $JANUS_WITH_BORINGSSL = "1" ]; then export JANUS_BUILD_DEPS_DEV="$JANUS_BUILD_DEPS_DEV golang-go" && export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --enable-boringssl --enable-dtls-settimeout"; fi \
    && if [ $JANUS_WITH_DOCS = "1" ]; then export JANUS_BUILD_DEPS_DEV="$JANUS_BUILD_DEPS_DEV doxygen graphviz" && export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --enable-docs"; fi \
    && if [ $JANUS_WITH_REST = "1" ]; then export JANUS_BUILD_DEPS_DEV="$JANUS_BUILD_DEPS_DEV libmicrohttpd-dev"; else export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-rest"; fi \
    && if [ $JANUS_WITH_DATACHANNELS = "0" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-data-channels"; fi \
    && if [ $JANUS_WITH_WEBSOCKETS = "0" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-websockets"; fi \
    && if [ $JANUS_WITH_MQTT = "0" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-mqtt"; fi \
    && if [ $JANUS_WITH_PFUNIX = "0" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-unix-sockets"; fi \
    && if [ $JANUS_WITH_RABBITMQ = "0" ]; then export JANUS_CONFIG_OPTIONS="$JANUS_CONFIG_OPTIONS --disable-rabbitmq"; fi \
    && /usr/sbin/groupadd -r janus && /usr/sbin/useradd -r -g janus janus \
    && DEBIAN_FRONTEND=noninteractive apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install $JANUS_BUILD_DEPS_DEV ${JANUS_BUILD_DEPS_EXT} \
# build libsrtp
    && curl -fSL https://github.com/cisco/libsrtp/archive/v2.0.0.tar.gz -o ${BUILD_SRC}/v2.0.0.tar.gz \
    && tar xzf ${BUILD_SRC}/v2.0.0.tar.gz -C ${BUILD_SRC} \
    && cd ${BUILD_SRC}/libsrtp-2.0.0 \
    && ./configure --prefix=/usr --enable-openssl \
    && make shared_library \
    && make install \
# build boringssl
    && if [ $JANUS_WITH_BORINGSSL = "1" ]; then git clone https://boringssl.googlesource.com/boringssl ${BUILD_SRC}/boringssl \
    && cd ${BUILD_SRC}/boringssl \
    && sed -i s/" -Werror"//g CMakeLists.txt \
    && mkdir -p ${BUILD_SRC}/boringssl/build \
    && cd ${BUILD_SRC}/boringssl/build \
    && cmake -DCMAKE_CXX_FLAGS="-lrt" .. \
    && make \
    && mkdir -p /opt/boringssl \
    && cp -R ${BUILD_SRC}/boringssl/include /opt/boringssl/ \
    && mkdir -p /opt/boringssl/lib \
    && cp ${BUILD_SRC}/boringssl/build/ssl/libssl.a /opt/boringssl/lib/ \
    && cp ${BUILD_SRC}/boringssl/build/crypto/libcrypto.a /opt/boringssl/lib/ \
    ; fi \
# build usrsctp
    && if [ $JANUS_WITH_DATACHANNELS = "1" ]; then git clone https://github.com/sctplab/usrsctp ${BUILD_SRC}/usrsctp \
    && cd ${BUILD_SRC}/usrsctp \
    && ./bootstrap \
    && ./configure --prefix=/usr \
    && make \
    && make install \
    ; fi \
# build libwebsockets
    && if [ $JANUS_WITH_WEBSOCKETS = "1" ]; then git clone https://github.com/warmcat/libwebsockets.git ${BUILD_SRC}/libwebsockets \
    && cd ${BUILD_SRC}/libwebsockets \
#    && git checkout v1.5-chrome47-firefox41 \
    && mkdir ${BUILD_SRC}/libwebsockets/build \
    && cd ${BUILD_SRC}/libwebsockets/build \
    && cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" .. \
    && make \
    && make install \
    ; fi \
# build paho.mqtt.c
    && if [ $JANUS_WITH_MQTT = "1" ]; then git clone https://github.com/eclipse/paho.mqtt.c.git ${BUILD_SRC}/paho.mqtt.c \
    && cd ${BUILD_SRC}/paho.mqtt.c \
    && make \
    && make install \
    ; fi \
# build rabbitmq-c
    && if [ $JANUS_WITH_RABBITMQ = "1" ]; then git clone https://github.com/alanxz/rabbitmq-c ${BUILD_SRC}/rabbitmq-c \
    && cd ${BUILD_SRC}/rabbitmq-c \
    && git submodule init \
    && git submodule update \
    && autoreconf -i \
    && ./configure --prefix=/usr \
    && make \
    && make install \
    ; fi \
# build janus-gateway
    && git clone https://github.com/meetecho/janus-gateway.git ${BUILD_SRC}/janus-gateway \
    && if [ $JANUS_WITH_FREESWITCH_PATCH = "1" ]; then curl -fSL https://raw.githubusercontent.com/krull/docker-misc/master/init_fs/tmp/janus_sip.c.patch -o ${BUILD_SRC}/janus-gateway/plugins/janus_sip.c.patch && cd ${BUILD_SRC}/janus-gateway/plugins && patch < janus_sip.c.patch; fi \
    && cd ${BUILD_SRC}/janus-gateway \
    && ./autogen.sh \
    && ./configure ${JANUS_CONFIG_DEPS} $JANUS_CONFIG_OPTIONS \
    && make \
    && make install \
# folder ownership
    && chown -R janus:janus /opt/janus \
# build cleanup
    && cd ${BUILD_SRC} \
    && if [ $JANUS_WITH_BORINGSSL = "1" ]; then rm -rf boringssl; fi \
    && if [ $JANUS_WITH_DATACHANNELS = "1" ]; then rm -rf usrsctp; fi \
    && if [ $JANUS_WITH_WEBSOCKETS = "1" ]; then rm -rf libwebsockets; fi \
    && if [ $JANUS_WITH_MQTT = "1" ]; then rm -rf paho.mqtt.c; fi \
    && if [ $JANUS_WITH_RABBITMQ = "1" ]; then rm -rf rabbitmq-c; fi \
    && rm -rf \
        v2.0.0.tar.gz \
        libsrtp-2.0.0 \
        janus-gateway \
    && DEBIAN_FRONTEND=noninteractive apt-get -y --auto-remove purge ${JANUS_BUILD_DEPS_EXT} \
    && DEBIAN_FRONTEND=noninteractive apt-get -y clean \
    && DEBIAN_FRONTEND=noninteractive apt-get -y autoclean \
    && DEBIAN_FRONTEND=noninteractive apt-get -y autoremove \
    && rm -rf /usr/share/locale/* \
    && rm -rf /var/cache/debconf/*-old \
    && rm -rf /usr/share/doc/* \
    && rm -rf /var/lib/apt/*

What is the recommended way to run this image?

I am probably missing something really trivial, but what is the recommended way to run this image when pulling from hub.docker.com? If I just docker run it janus complains about missing configuration files:

$ docker run mcroth/docker-janus:latest
Janus commit: 63d7ea37ebba5d40ddc4bc374210814c26537e92
Compiled on:  Mon Oct 23 19:14:47 UTC 2017

Error reading/parsing the configuration file, going on with the defaults and the command line arguments
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.cfg'... error 2 (No such file or directory)
---------------------------------------------------
  Starting Meetecho Janus (WebRTC Gateway) v0.2.6
---------------------------------------------------

Checking command line arguments...
Debug/log level is 4
Debug/log timestamps are disabled
Debug/log colors are enabled
Using 172.17.0.2 as local IP...
[WARN] Token based authentication disabled
Initializing recorder code
Initializing ICE stuff (Full mode, ICE-TCP candidates disabled, IPv6 support disabled)
TURN REST API backend: (disabled)
[WARN] Janus is deployed on a private address (172.17.0.2) but you didn't specify any STUN server! Expect trouble if this is supposed to work over the internet and not just in a LAN...
BUNDLE is NOT going to be forced
rtcp-mux is NOT going to be forced
Crypto: OpenSSL pre-1.1.0
[WARN] No cert/key specified, autogenerating some...
ICE handles watchdog started
Fingerprint of our certificate: 33:4A:5F:0B:08:30:56:7F:98:05:8D:12:13:8E:18:FE:35:1A:6A:42:06:C7:96:B3:23:C5:34:29:C6:F4:A7:44
Event handler plugins folder: /opt/janus/lib/janus/events
[WARN] Event handlers support disabled
Plugins folder: /opt/janus/lib/janus/plugins
Loading plugin 'libjanus_textroom.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.textroom.cfg'... error 2 (No such file or directory)
JANUS TextRoom plugin initialized!
Loading plugin 'libjanus_audiobridge.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.audiobridge.cfg'... error 2 (No such file or directory)
JANUS AudioBridge plugin initialized!
Loading plugin 'libjanus_streaming.so'...
Sessions watchdog started
TextRoom watchdog started
AudioBridge watchdog started
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.streaming.cfg'... error 2 (No such file or directory)
JANUS Streaming plugin initialized!
Loading plugin 'libjanus_nosip.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.nosip.cfg'... error 2 (No such file or directory)
JANUS NoSIP plugin initialized!
Loading plugin 'libjanus_recordplay.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.recordplay.cfg'... error 2 (No such file or directory)
[FATAL] [plugins/janus_recordplay.c:janus_recordplay_init:709] No recordings path specified, giving up...
[WARN] The 'janus.plugin.recordplay' plugin could not be initialized
Loading plugin 'libjanus_voicemail.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.voicemail.cfg'... error 2 (No such file or directory)
[ERR] [utils.c:janus_mkdir:218] Error creating folder ./html
[ERR] [plugins/janus_voicemail.c:janus_voicemail_init:361] Permission denied[WARN] The 'janus.plugin.voicemail' plugin could not be initialized
Loading plugin 'libjanus_videoroom.so'...
NoSIP watchdog started
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.videoroom.cfg'... error 2 (No such file or directory)
JANUS VideoRoom plugin initialized!
Loading plugin 'libjanus_videocall.so'...
Streaming watchdog started
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.videocall.cfg'... error 2 (No such file or directory)
JANUS VideoCall plugin initialized!
Loading plugin 'libjanus_echotest.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.echotest.cfg'... error 2 (No such file or directory)
JANUS EchoTest plugin initialized!
Loading plugin 'libjanus_sip.so'...
VideoRoom watchdog started
EchoTest watchdog started
VideoCall watchdog started
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.plugin.sip.cfg'... error 2 (No such file or directory)
JANUS SIP plugin initialized!
Transport plugins folder: /opt/janus/lib/janus/transports
Loading transport plugin 'libjanus_http.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.transport.http.cfg'... error 2 (No such file or directory)
[WARN] No HTTP/HTTPS server started, giving up...
[WARN] The 'janus.transport.http' plugin could not be initialized
Loading transport plugin 'libjanus_pfunix.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.transport.pfunix.cfg'... error 2 (No such file or directory)
[WARN] No Unix Sockets server started, giving up...
[WARN] The 'janus.transport.pfunix' plugin could not be initialized
Loading transport plugin 'libjanus_websockets.so'...
[ERR] [config.c:janus_config_parse:91]   -- Error reading configuration file 'janus.transport.websockets.cfg'... error 2 (No such file or directory)
[WARN] No WebSockets server started, giving up...
[2018/03/19 17:10:13:8822] NOTICE: lws_context_destroy: ctx (nil)
[WARN] The 'janus.transport.websockets' plugin could not be initialized
[FATAL] [janus.c:main:4314] No Janus API transport is available... enable at least one and restart Janus

Thanks!

Can't connect to the janus server in docker image

Hi,
I try to run this docker image on my mac.
I follow the instruction in Readme.md and I got the server run inside the docker. I can see the information on "http://localhost:8088/janus/info" successfully

Then I serve the samples from janus repo. E.g., the echotest.html from a node server locally on port:3000

I update the connection information in echotest.js to change it to connect to "http://localhost:8088/janus" which points to the server in docker image.

Then I run the echotest.html page and it doesn't work. The log from frontend shows the following:
Initializing library
janus.js:314 Library initialized: true
janus.js:341 Using REST API to contact Janus: http://127.0.0.1:8088/janus
janus.js:706 Created session: 6371452023286584
janus.js:953 Created handle: 1239877826562899
echotest.js:113 Plugin attached! (janus.plugin.echotest, id=1239877826562899)
janus.js:1328 Creating PeerConnection
janus.js:1336 Preparing local SDP and gathering candidates (trickle=true)
janus.js:1368 Adding local stream
janus.js:1382 Creating data channel
janus.js:1800 Creating offer (iceDone=false)
janus.js:1839 Setting local description
janus.js:1861 Offer ready
janus.js:1778 Remote description accepted!
echotest.js:168 ICE state changed to checking
2janus.js:1373 Handling Remote Track
janus.js:1344 End of candidates.
janus.js:2118 Starting bitrate timer (via getStats)
echotest.js:174 Janus says our WebRTC PeerConnection is down now
janus.js:2173 Cleaning WebRTC stuff
janus.js:2218 Stopping local stream tracks
janus.js:2222 MediaStreamTrack {kind: "audio", id: "71f97ae6-57cb-4dc1-998b-5665c3d718fb", label: "Built-in Microphone", enabled: true, muted: false, …}
janus.js:2222 MediaStreamTrack {kind: "video", id: "f9a2051d-fda6-4178-aefb-7f661a351784", label: "FaceTime HD Camera", enabled: true, muted: false, …}
echotest.js:361 ::: Got a cleanup notification :::
janus.js:1389 State change on data channel: null
10echotest.js:344 Uncaught TypeError: Cannot read property 'videoWidth' of undefined
at echotest.js:344

Do you know why it happened so? Thanks

Permission denied

I created and started container with:
docker-compose up -d
but i get exit status = -1

Container log file contains:
{"log":"Error opening log file /var/log/janus.log: Permission denied\n","stream":"stdout","time":"2017-03-14T14:14:21.874209353Z"}

Any help?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.