Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/origin2/master' into 3deye_version
Browse files Browse the repository at this point in the history
  • Loading branch information
Bogdanov Kirill committed Jan 13, 2021
2 parents a127e29 + ba0b83b commit 8f18feb
Show file tree
Hide file tree
Showing 72 changed files with 2,347 additions and 520 deletions.
154 changes: 154 additions & 0 deletions .github/workflows/janus-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
name: janus-ci

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
compiler: [gcc, clang]
datachannels: ["yes", "no"]
libcurl: ["yes", "no"]
include:
- datachannel: "yes"
libcurl: "yes"
deps_from_src: "yes"
janus_config_opts: ""
- datachannels: "yes"
libcurl: "no"
deps_from_src: "no"
janus_config_opts: "--disable-aes-gcm -disable-mqtt --disable-mqtt-event-handler --disable-turn-rest-api --disable-sample-event-handler"
- datachannels: "no"
libcurl: "yes"
deps_from_src: "no"
janus_config_opts: "--disable-aes-gcm -disable-mqtt --disable-mqtt-event-handler --disable-data-channels"
exclude:
- datachannels: "no"
libcurl: "no"
env:
CC: ${{ matrix.compiler }}
steps:
- name: install janus apt dependencies
run: >
sudo apt-get update && sudo apt-get --no-install-recommends -y install
autoconf
cmake
gengetopt
gtk-doc-tools
libavcodec-dev
libavformat-dev
libavutil-dev
libcollection-dev
libconfig-dev
libevent-dev
libglib2.0-dev
libgnutls28-dev
libini-config-dev
liblua5.3-dev
libjansson-dev
libmicrohttpd-dev
libmount-dev
libnanomsg-dev
libogg-dev
libopus-dev
librabbitmq-dev
libsofia-sip-ua-dev
libssl-dev
libvorbis-dev
ninja-build
openssl
- name: setup additional dependencies from apt
if: ${{ matrix.deps_from_src == 'no' }}
run: >
sudo apt-get --no-install-recommends -y install
libnice-dev
libsrtp2-dev
libusrsctp-dev
libwebsockets-dev
- name: install libcurl from apt
if: ${{ matrix.libcurl == 'yes' }}
run: sudo apt-get --no-install-recommends -y install libcurl4-openssl-dev
- name: setup python
if: ${{ matrix.deps_from_src == 'yes' }}
uses: actions/setup-python@v2
with:
python-version: '3.x'
architecture: 'x64'
- name: install python packages
if: ${{ matrix.deps_from_src == 'yes' }}
run: pip3 install wheel meson
- name: setup libnice from sources
if: ${{ matrix.deps_from_src == 'yes' }}
run: |
git clone --depth 1 --quiet -b master https://gitlab.freedesktop.org/libnice/libnice.git libnice
pushd libnice
if [ $CC = clang ]; then LNICE_CFLAGS="-Wno-cast-align"; fi;
meson setup -Dprefix=/usr -Dlibdir=lib -Dc_args="$LNICE_CFLAGS" -Ddebug=false -Doptimization=0 -Dexamples=disabled -Dgtk_doc=disabled -Dgupnp=disabled -Dgstreamer=disabled -Dtests=disabled build
ninja -C build
sudo ninja -C build install
- name: checkout libsrtp source
if: ${{ matrix.deps_from_src == 'yes' }}
uses: actions/checkout@v2
with:
repository: cisco/libsrtp
ref: v2.3.0
- name: setup libsrtp from sources
if: ${{ matrix.deps_from_src == 'yes' }}
run: |
./configure --prefix=/usr --enable-openssl
make -j$(nproc) shared_library
sudo make install
- name: checkout usrsctp source
if: ${{ matrix.datachannels == 'yes' && matrix.deps_from_src == 'yes' }}
uses: actions/checkout@v2
with:
repository: sctplab/usrsctp
ref: master
- name: setup usrsctp from sources
if: ${{ matrix.datachannels == 'yes' && matrix.deps_from_src == 'yes' }}
run: |
./bootstrap
./configure --prefix=/usr --disable-static --disable-debug --disable-programs --disable-inet --disable-inet6
make -j$(nproc)
sudo make install
- name: checkout lws source
if: ${{ matrix.deps_from_src == 'yes' }}
uses: actions/checkout@v2
with:
repository: warmcat/libwebsockets
ref: v4.1-stable
- name: setup lws from sources
if: ${{ matrix.deps_from_src == 'yes' }}
run: |
mkdir -p build
pushd build
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DLWS_WITH_STATIC=OFF -DLWS_WITHOUT_CLIENT=ON -DLWS_WITHOUT_TESTAPPS=ON -DLWS_WITHOUT_TEST_SERVER=ON -DLWS_WITH_HTTP2=OFF ..
make -j$(nproc)
sudo make install
- name: checkout paho-mqtt source
if: ${{ matrix.deps_from_src == 'yes' }}
uses: actions/checkout@v2
with:
repository: eclipse/paho.mqtt.c
ref: v1.3.1
- name: setup paho-mqtt from sources
if: ${{ matrix.deps_from_src == 'yes' }}
run: |
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_SAMPLES=FALSE -DPAHO_BUILD_DOCUMENTATION=FALSE
make -j$(nproc)
sudo make install
- name: checkout janus source
uses: actions/checkout@v2
- name: build janus from sources
env:
JANUS_CONFIG_COMMON: "--disable-docs --enable-post-processing --enable-plugin-lua --enable-plugin-duktape --enable-json-logger"
JANUS_CONFIG_OPTS: ${{ matrix.janus_config_opts }}
run: |
./autogen.sh
./configure $JANUS_CONFIG_COMMON $JANUS_CONFIG_OPTS
make -j$(nproc)
make check-fuzzers
80 changes: 0 additions & 80 deletions .travis.yml

This file was deleted.

44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,50 @@
All notable changes to this project will be documented in this file.


## [v0.10.9] - 2020-12-23

- Replaced Travis CI with GitHub Actions [[PR-2486](#2486)]
- Fixed data channel messages potentially getting stuck in case of burst transfers (thanks @afshin2003!) [[PR-2427](#2427)]
- Fixed simulcast issues when renegotiating PeerConnections [[Issue-2466](#2466)]
- Added configurable TURN REST API timeout (thanks @evorw!) [[PR-2470](#2470)]
- Added support for recording of binary data channels [[PR-2481](#2481)]
- Fixed occasional SRTP errors when pausing and then resuming Streaming plugin handles after a long time
- Fixed occasional SRTP errors when leaving and joining AudioBridge rooms without a new PeerConnection after a long time
- Added support for playout of data channels in Record&Play plugin and demo (thanks @ricardo-salgado-tekever!) [[PR-2468](#2468)]
- Added option to override connections limit in HTTP transport plugin [[PR-2489](#2489)]
- Added options to enable libmicrohttpd debugging in HTTP transport plugin (thanks @evorw!) [[PR-2471](#2471)]
- Fixed a few compile and runtime issues in WebSocket event handler
- Refactored postprocessing management of timestamps to fix some key issues [[PR-2345](#2345)]
- Fixed postprocessing of audio recordings containing RTP silence suppression packets [[PR-2467](#2467)]
- Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)

## [v0.10.8] - 2020-11-23

- Added differentiation between IPv4 and IPv6 NAT-1-1 addresses [[PR-2423](#2423)]
- Made NACK buffer cleanup on outgoing keyframe disabled by default but configurable [[PR-2402](#2402)]
- Added support for simulcast and TWCC to Duktape and Lua plugins [[PR-2409](#2409)]
- Fixed rare crash in AudioBridge plugin when leaving a room [[Issue-2432](#2432)]
- Fixed codec names not being updated in the SIP plugin after renegotiations (thanks @ihusejnovic!) [[PR-2417](#2417)]
- Fixed crash in SIP plugin when handling REGISTER challenges without WWW-Authenticate headers [[Issue-2419](#2419)]
- Added option to SIP plugin to let users CANCEL pending transactions without waiting for a 1xx [[PR-2434](#2434)]
- Added option to enforce CORS on the server side in both HTTP and WebSocket transport plugins [[PR-2410](#2410)]
- Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)

## [v0.10.7] - 2020-10-30

- Fixed SDP negotiation when client uses max-bundle [[Issue-2390](#2390)]
- Added optional JSEP flag to invert processing order of simulcast "rid" in SDP [[PR-2385](#2385)]
- Fixed broken rid-based simulcast when using less than 3 substreams
- Fixed occasional misleading "private IP" warning on startup (thanks @npikimasu!) [[PR-2386](#2386)]
- Added "plugin-offer mode" to AudioBridge [[PR-2366](#2366)]
- Fixed occasional deadlock when sending SUBSCRIBE messages via SIP plugin [[PR-2387](#2387)]
- Fixed occasional SIGABRT in RabbitMQ transport (thanks @david-goncalves!) [[PR-2380](#2380)]
- Fixed broken RTP parsing in janus-pp-rec when there were too many extensions (thanks @isnumanagic!) [[PR-2411](#2411)]
- Fixed occasional segfault when post-processing G.722 mjr recordings
- Added configurable simulcast encodings to janus.js (thanks @fippo!) [[PR-2393](#2392)]
- Updated old Insertable Streams APIs in janus.js and e2etest.js
- Other smaller fixes and improvements (thanks to all who contributed pull requests and reported issues!)

## [v0.10.6] - 2020-10-05

- New mechanism to tweak/query transport plugins via Admin API [[PR-2354](https://github.com/meetecho/janus-gateway/pull/2354)]
Expand Down
14 changes: 8 additions & 6 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ version.c: FORCE | $(dir_target)
echo "$(build_date)" | awk 'BEGIN {} {print "const char *janus_build_git_time = \""$$0"\";"} END {} ' >> version.c
echo "$(JANUS_VERSION)" | awk 'BEGIN {} {print "int janus_version = "$$0";"} END {} ' >> version.c
echo "$(JANUS_VERSION_STRING)" | awk 'BEGIN {} {print "const char *janus_version_string = \""$$0"\";"} END {} ' >> version.c
pkg-config --modversion nice | awk 'BEGIN {} {print "const char *libnice_version_string = \""$$0"\";"} END {} ' >> version.c
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config --modversion nice | awk 'BEGIN {} {print "const char *libnice_version_string = \""$$0"\";"} END {} ' >> version.c

$(dir_present):
`which git` rev-parse HEAD | awk 'BEGIN {print "#include \"version.h\""} {print "const char *janus_build_git_sha = \"" $$0"\";"} END {}' > version.c
Expand Down Expand Up @@ -417,7 +417,7 @@ plugins_libadd = \
if ENABLE_PLUGIN_AUDIOBRIDGE
plugin_LTLIBRARIES += plugins/libjanus_audiobridge.la
plugins_libjanus_audiobridge_la_SOURCES = plugins/janus_audiobridge.c
plugins_libjanus_audiobridge_la_CFLAGS = $(plugins_cflags) $(OPUS_CFLAGS) $(OGG_CFLAGS)
plugins_libjanus_audiobridge_la_CFLAGS = $(plugins_cflags) $(OPUS_CFLAGS) $(OGG_CFLAGS) $(LIBSRTP_CFLAGS)
plugins_libjanus_audiobridge_la_LDFLAGS = $(plugins_ldflags) $(OPUS_LDFLAGS) $(OPUS_LIBS) $(OGG_LDFLAGS) $(OGG_LIBS)
plugins_libjanus_audiobridge_la_LIBADD = $(plugins_libadd) $(OPUS_LIBADD) $(OGG_LIBADD)
conf_DATA += conf/janus.plugin.audiobridge.jcfg.sample
Expand Down Expand Up @@ -454,7 +454,7 @@ endif
if ENABLE_PLUGIN_SIP
plugin_LTLIBRARIES += plugins/libjanus_sip.la
plugins_libjanus_sip_la_SOURCES = plugins/janus_sip.c
plugins_libjanus_sip_la_CFLAGS = $(plugins_cflags) $(SOFIA_CFLAGS)
plugins_libjanus_sip_la_CFLAGS = $(plugins_cflags) $(SOFIA_CFLAGS) $(LIBSRTP_CFLAGS)
plugins_libjanus_sip_la_LDFLAGS = $(plugins_ldflags) $(SOFIA_LDFLAGS) $(SOFIA_LIBS)
plugins_libjanus_sip_la_LIBADD = $(plugins_libadd) $(SOFIA_LIBADD)
conf_DATA += conf/janus.plugin.sip.jcfg.sample
Expand All @@ -464,7 +464,7 @@ endif
if ENABLE_PLUGIN_NOSIP
plugin_LTLIBRARIES += plugins/libjanus_nosip.la
plugins_libjanus_nosip_la_SOURCES = plugins/janus_nosip.c
plugins_libjanus_nosip_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_nosip_la_CFLAGS = $(plugins_cflags) $(LIBSRTP_CFLAGS)
plugins_libjanus_nosip_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_nosip_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.nosip.jcfg.sample
Expand All @@ -474,7 +474,7 @@ endif
if ENABLE_PLUGIN_STREAMING
plugin_LTLIBRARIES += plugins/libjanus_streaming.la
plugins_libjanus_streaming_la_SOURCES = plugins/janus_streaming.c
plugins_libjanus_streaming_la_CFLAGS = $(plugins_cflags) $(LIBCURL_CFLAGS) $(OGG_CFLAGS)
plugins_libjanus_streaming_la_CFLAGS = $(plugins_cflags) $(LIBCURL_CFLAGS) $(OGG_CFLAGS) $(LIBSRTP_CFLAGS)
plugins_libjanus_streaming_la_LDFLAGS = $(plugins_ldflags) $(LIBCURL_LDFLAGS) $(LIBCURL_LIBS) $(OGG_LDFLAGS) $(OGG_LIBS)
plugins_libjanus_streaming_la_LIBADD = $(plugins_libadd) $(LIBCURL_LIBADD) $(OGG_LIBADD)
conf_DATA += conf/janus.plugin.streaming.jcfg.sample
Expand Down Expand Up @@ -502,7 +502,7 @@ endif
if ENABLE_PLUGIN_VIDEOROOM
plugin_LTLIBRARIES += plugins/libjanus_videoroom.la
plugins_libjanus_videoroom_la_SOURCES = plugins/janus_videoroom.c
plugins_libjanus_videoroom_la_CFLAGS = $(plugins_cflags)
plugins_libjanus_videoroom_la_CFLAGS = $(plugins_cflags) $(LIBSRTP_CFLAGS)
plugins_libjanus_videoroom_la_LDFLAGS = $(plugins_ldflags)
plugins_libjanus_videoroom_la_LIBADD = $(plugins_libadd)
conf_DATA += conf/janus.plugin.videoroom.jcfg.sample
Expand Down Expand Up @@ -593,6 +593,8 @@ janus_pp_rec_SOURCES = \
postprocessing/pp-rtp.h \
postprocessing/pp-srt.c \
postprocessing/pp-srt.h \
postprocessing/pp-binary.c \
postprocessing/pp-binary.h \
postprocessing/pp-webm.c \
postprocessing/pp-webm.h \
postprocessing/janus-pp-rec.c \
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Janus WebRTC Server
===================
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-brightgreen.svg)](COPYING)
[![Build Status](https://travis-ci.com/meetecho/janus-gateway.svg?branch=master)](https://travis-ci.com/meetecho/janus-gateway)
![janus-ci](https://github.com/meetecho/janus-gateway/workflows/janus-ci/badge.svg)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/13265/badge.svg)](https://scan.coverity.com/projects/meetecho-janus-gateway)
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/janus-gateway.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:janus-gateway)

Expand Down Expand Up @@ -127,7 +127,8 @@ The same applies for libwebsockets, which is needed for the optional WebSockets
mkdir build
cd build
# See https://github.com/meetecho/janus-gateway/issues/732 re: LWS_MAX_SMP
cmake -DLWS_MAX_SMP=1 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
# See https://github.com/meetecho/janus-gateway/issues/2476 re: LWS_WITHOUT_EXTENSIONS
cmake -DLWS_MAX_SMP=1 -DLWS_WITHOUT_EXTENSIONS=0 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..
make && sudo make install

* *Note:* if libwebsockets.org is unreachable for any reason, replace the first line with this:
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "janus-gateway",
"version": "0.10.7",
"version": "0.10.10",
"homepage": "https://github.com/meetecho/janus-gateway",
"authors": [
"Lorenzo Miniero <[email protected]>",
Expand Down
Loading

0 comments on commit 8f18feb

Please sign in to comment.