Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sip-jibri container #1629

Closed
wants to merge 186 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
186 commits
Select commit Hold shift + click to select a range
18d7199
prosody: update version of prosody-plugings package
emrahcom Sep 29, 2023
aed6908
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet
emrahcom Oct 17, 2023
c54159b
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
73c6de2
sip-jibri: update LABEL in Dockerfile and install libv4l-0 for pjsua
emrahcom Oct 17, 2023
d3ed852
sip-jibri: typo in LABEL
emrahcom Oct 17, 2023
0bcf760
sip-jibri: update the instance type for autoscaler
emrahcom Oct 17, 2023
9b3a147
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
089d4d5
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
d5a6186
sip-jibri: remove unused env from jibri.conf and rename some of them …
emrahcom Oct 17, 2023
54c5f70
sip-jibri: set SIP-JIBRI-RESOLUTION
emrahcom Oct 17, 2023
e0ae3b9
sip-jibri: update 10-config for sip-jibri
emrahcom Oct 17, 2023
e15aade
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
59ab596
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet
emrahcom Oct 18, 2023
0ea60be
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
6f3badf
sip-jibri: update LABEL in Dockerfile and install libv4l-0 for pjsua
emrahcom Oct 17, 2023
b1616cf
sip-jibri: typo in LABEL
emrahcom Oct 17, 2023
1d1d4f1
sip-jibri: update the instance type for autoscaler
emrahcom Oct 17, 2023
ed4478a
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
69b243d
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
bb6bbcd
sip-jibri: remove unused env from jibri.conf and rename some of them …
emrahcom Oct 17, 2023
baadfdf
sip-jibri: set SIP-JIBRI-RESOLUTION
emrahcom Oct 17, 2023
016ce82
sip-jibri: update 10-config for sip-jibri
emrahcom Oct 17, 2023
9da8fa0
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
6fcc67c
Merge branch 'sip-jibri' of ssh://github.com:22/emrahcom/docker-jitsi…
emrahcom Oct 18, 2023
cfde4c7
sip-jibri: temporary disable the sip-jibri image from hub
emrahcom Oct 19, 2023
4ce9bdb
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into env.sample
emrahcom Oct 19, 2023
18fa2ff
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into the gen-passwords script
emrahcom Oct 19, 2023
b592d7d
sip-jibri: add services for the second display
emrahcom Oct 19, 2023
2c2a308
sip-jibri: set displays for icewm
emrahcom Oct 19, 2023
5d4ee8e
sip-jibri: fix path in 70-autoscaler-sidecar
emrahcom Oct 19, 2023
d966826
sip-jibri: add sip-jibri into Makefile
emrahcom Oct 19, 2023
a9beb03
sip-jibri: add ffmpeg parameters
emrahcom Oct 21, 2023
4b4bdae
sip-jibri: add outbound prefix
emrahcom Oct 21, 2023
e80f385
sip-jibri: update FFMPEG parameter names
emrahcom Oct 21, 2023
8769b9e
sip-jibri: switch from pulse to alsa
emrahcom Oct 21, 2023
a8bb773
sip-jibri: allow snd devices
emrahcom Oct 21, 2023
891938c
sip-jibri: allow video devices
emrahcom Oct 21, 2023
1867369
sip-jibri: add SIP envs for prosody
emrahcom Oct 21, 2023
69ff3ec
sip-jibri: alternative google-stable
emrahcom Oct 21, 2023
e25d858
sip-jibri: icewm theme
emrahcom Oct 22, 2023
1dae4af
sip-jibri: add pjsua scripts
emrahcom Oct 22, 2023
70a8523
sip-jibri: install pjsua
emrahcom Oct 22, 2023
ca42ef5
sip-jibri: install-pjsua into Dockerfile
emrahcom Oct 22, 2023
b511ad0
sip-jibri: add customized pjsua.config
emrahcom Oct 22, 2023
e6dac46
sip-jibri: dont start ffmpeg if it is already running
emrahcom Oct 22, 2023
4340efd
sip-jibri: update video device names
emrahcom Oct 22, 2023
b00eab5
sip-jibri: start virtual cameras before chrome
emrahcom Oct 23, 2023
3229d3c
sip-jibri: set environment variables for services
emrahcom Oct 23, 2023
12fcf02
sip-jibri: kill ffmpeg nicely
emrahcom Oct 23, 2023
51c0d4a
sip-jibri: decrease delay time before chrome
emrahcom Oct 23, 2023
41adfe7
sip-jibri: fix .asoundrc, use the custom copy
emrahcom Oct 23, 2023
965fc58
sip-jibri: install unclutter to hide mouse pointer
emrahcom Oct 23, 2023
cc0e399
sip-jibri: expose 5060 to allow direct calls
emrahcom Oct 23, 2023
ec35dc2
sip-jibri: dont stop ffmpeg otherwise the video device becomes unacce…
emrahcom Oct 23, 2023
56ac37c
sip-jibri: fix shell path in icewm startup script
emrahcom Oct 23, 2023
578180f
sip-jibri: right parameters for unclutter
emrahcom Oct 23, 2023
04056ff
sip-jibri: image path
emrahcom Oct 23, 2023
9533ee1
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet
emrahcom Nov 15, 2023
d9c1347
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
389d158
sip-jibri: update LABEL in Dockerfile and install libv4l-0 for pjsua
emrahcom Oct 17, 2023
0c94ae2
sip-jibri: typo in LABEL
emrahcom Oct 17, 2023
d5a11a4
sip-jibri: update the instance type for autoscaler
emrahcom Oct 17, 2023
e558ea5
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
a736924
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
c0d7969
sip-jibri: remove unused env from jibri.conf and rename some of them …
emrahcom Oct 17, 2023
7bdd2c5
sip-jibri: set SIP-JIBRI-RESOLUTION
emrahcom Oct 17, 2023
de7cbf7
sip-jibri: update 10-config for sip-jibri
emrahcom Oct 17, 2023
088e791
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
066897d
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
6efcf10
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
2051836
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
3002618
sip-jibri: temporary disable the sip-jibri image from hub
emrahcom Oct 19, 2023
a65a5e5
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into env.sample
emrahcom Oct 19, 2023
130fa89
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into the gen-passwords script
emrahcom Oct 19, 2023
0e38e95
sip-jibri: add services for the second display
emrahcom Oct 19, 2023
a4336ff
sip-jibri: set displays for icewm
emrahcom Oct 19, 2023
5d0b6c7
sip-jibri: fix path in 70-autoscaler-sidecar
emrahcom Oct 19, 2023
785949b
sip-jibri: add sip-jibri into Makefile
emrahcom Oct 19, 2023
f7fdace
sip-jibri: add ffmpeg parameters
emrahcom Oct 21, 2023
973f806
sip-jibri: add outbound prefix
emrahcom Oct 21, 2023
babe2ff
sip-jibri: update FFMPEG parameter names
emrahcom Oct 21, 2023
362d53e
sip-jibri: switch from pulse to alsa
emrahcom Oct 21, 2023
eb42608
sip-jibri: allow snd devices
emrahcom Oct 21, 2023
41f739b
sip-jibri: allow video devices
emrahcom Oct 21, 2023
2833f69
sip-jibri: add SIP envs for prosody
emrahcom Oct 21, 2023
dd19a66
sip-jibri: alternative google-stable
emrahcom Oct 21, 2023
26aff30
sip-jibri: icewm theme
emrahcom Oct 22, 2023
f6b3319
sip-jibri: add pjsua scripts
emrahcom Oct 22, 2023
608bc04
sip-jibri: install pjsua
emrahcom Oct 22, 2023
6286f44
sip-jibri: install-pjsua into Dockerfile
emrahcom Oct 22, 2023
7a8a873
sip-jibri: add customized pjsua.config
emrahcom Oct 22, 2023
0d9b5a8
sip-jibri: dont start ffmpeg if it is already running
emrahcom Oct 22, 2023
f60820f
sip-jibri: update video device names
emrahcom Oct 22, 2023
ce11388
sip-jibri: start virtual cameras before chrome
emrahcom Oct 23, 2023
ab92075
sip-jibri: set environment variables for services
emrahcom Oct 23, 2023
81bb701
sip-jibri: kill ffmpeg nicely
emrahcom Oct 23, 2023
34fe27d
sip-jibri: decrease delay time before chrome
emrahcom Oct 23, 2023
2a2fe3e
sip-jibri: fix .asoundrc, use the custom copy
emrahcom Oct 23, 2023
d478937
sip-jibri: install unclutter to hide mouse pointer
emrahcom Oct 23, 2023
8d2d485
sip-jibri: expose 5060 to allow direct calls
emrahcom Oct 23, 2023
c065017
sip-jibri: dont stop ffmpeg otherwise the video device becomes unacce…
emrahcom Oct 23, 2023
2e8f2fa
sip-jibri: fix shell path in icewm startup script
emrahcom Oct 23, 2023
88cea4a
sip-jibri: right parameters for unclutter
emrahcom Oct 23, 2023
0e7e939
sip-jibri: image path
emrahcom Oct 23, 2023
0d5c3fc
sip-jibri: update packages
emrahcom Nov 15, 2023
2a2a646
sip-jibri: solve conflict after git rebase
emrahcom Nov 15, 2023
8fec6e0
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet i…
emrahcom Nov 20, 2023
e9d3c2c
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet i…
emrahcom Nov 27, 2023
06132dd
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet
emrahcom Nov 27, 2023
3faa496
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet
emrahcom Dec 21, 2023
bc8a4c6
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
b5a8868
sip-jibri: update LABEL in Dockerfile and install libv4l-0 for pjsua
emrahcom Oct 17, 2023
837e911
sip-jibri: typo in LABEL
emrahcom Oct 17, 2023
c8887bf
sip-jibri: update the instance type for autoscaler
emrahcom Oct 17, 2023
33584c8
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
0e0cf0c
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
97f4fde
sip-jibri: remove unused env from jibri.conf and rename some of them …
emrahcom Oct 17, 2023
cf5d658
sip-jibri: set SIP-JIBRI-RESOLUTION
emrahcom Oct 17, 2023
0f21f50
sip-jibri: update 10-config for sip-jibri
emrahcom Oct 17, 2023
0bd9db9
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
60321a3
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
7d66593
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
fdc44a2
sip-jibri: add sip-jibri XMPP domain and user
emrahcom Oct 17, 2023
7d975b4
sip-jibri: temporary disable the sip-jibri image from hub
emrahcom Oct 19, 2023
a9740f5
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into env.sample
emrahcom Oct 19, 2023
8bf6e36
sip-jibri: add SIP_JIBRI_XMPP_PASSWORD into the gen-passwords script
emrahcom Oct 19, 2023
f1bc0ec
sip-jibri: add services for the second display
emrahcom Oct 19, 2023
1bde317
sip-jibri: set displays for icewm
emrahcom Oct 19, 2023
a5ee049
sip-jibri: fix path in 70-autoscaler-sidecar
emrahcom Oct 19, 2023
2a30fba
sip-jibri: add sip-jibri into Makefile
emrahcom Oct 19, 2023
07627a3
sip-jibri: add ffmpeg parameters
emrahcom Oct 21, 2023
d96764d
sip-jibri: add outbound prefix
emrahcom Oct 21, 2023
edd5e9e
sip-jibri: update FFMPEG parameter names
emrahcom Oct 21, 2023
1226887
sip-jibri: switch from pulse to alsa
emrahcom Oct 21, 2023
4e87bf4
sip-jibri: allow snd devices
emrahcom Oct 21, 2023
665bf7e
sip-jibri: allow video devices
emrahcom Oct 21, 2023
04d4510
sip-jibri: add SIP envs for prosody
emrahcom Oct 21, 2023
158bfdb
sip-jibri: alternative google-stable
emrahcom Oct 21, 2023
f58344e
sip-jibri: icewm theme
emrahcom Oct 22, 2023
fb602a3
sip-jibri: add pjsua scripts
emrahcom Oct 22, 2023
4398489
sip-jibri: install pjsua
emrahcom Oct 22, 2023
6ae6d58
sip-jibri: install-pjsua into Dockerfile
emrahcom Oct 22, 2023
baf88b2
sip-jibri: add customized pjsua.config
emrahcom Oct 22, 2023
3adb8af
sip-jibri: dont start ffmpeg if it is already running
emrahcom Oct 22, 2023
86a643e
sip-jibri: update video device names
emrahcom Oct 22, 2023
b2f71c6
sip-jibri: start virtual cameras before chrome
emrahcom Oct 23, 2023
0515783
sip-jibri: set environment variables for services
emrahcom Oct 23, 2023
4b70d60
sip-jibri: kill ffmpeg nicely
emrahcom Oct 23, 2023
07dc866
sip-jibri: decrease delay time before chrome
emrahcom Oct 23, 2023
d2605f3
sip-jibri: fix .asoundrc, use the custom copy
emrahcom Oct 23, 2023
34de83b
sip-jibri: install unclutter to hide mouse pointer
emrahcom Oct 23, 2023
855a589
sip-jibri: expose 5060 to allow direct calls
emrahcom Oct 23, 2023
357ca62
sip-jibri: dont stop ffmpeg otherwise the video device becomes unacce…
emrahcom Oct 23, 2023
41d9ded
sip-jibri: fix shell path in icewm startup script
emrahcom Oct 23, 2023
c02fcd5
sip-jibri: right parameters for unclutter
emrahcom Oct 23, 2023
b0e9bda
sip-jibri: image path
emrahcom Oct 23, 2023
aecc23a
sip-jibri: update packages
emrahcom Nov 15, 2023
724afb0
sip-jibri: initialize the folder by copying files from jibri
emrahcom Oct 17, 2023
bcf43d3
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
cfe522d
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
d4478bd
sip-jibri: add sip-jibri brewery
emrahcom Oct 17, 2023
c6d17f1
sip-jibri: add SIP-JIBRI env variables into yaml
emrahcom Oct 17, 2023
a68d94f
sip-jibri: temporary disable the sip-jibri image from hub
emrahcom Oct 19, 2023
2107aae
sip-jibri: add services for the second display
emrahcom Oct 19, 2023
caa553f
sip-jibri: set displays for icewm
emrahcom Oct 19, 2023
c3a40c5
sip-jibri: fix path in 70-autoscaler-sidecar
emrahcom Oct 19, 2023
f20a4e9
sip-jibri: switch from pulse to alsa
emrahcom Oct 21, 2023
7d0d4ec
sip-jibri: alternative google-stable
emrahcom Oct 21, 2023
a32215b
sip-jibri: add pjsua scripts
emrahcom Oct 22, 2023
bd0518d
sip-jibri: install pjsua
emrahcom Oct 22, 2023
0f74d9b
sip-jibri: start virtual cameras before chrome
emrahcom Oct 23, 2023
9df761a
sip-jibri: set environment variables for services
emrahcom Oct 23, 2023
c7f556a
sip-jibri: decrease delay time before chrome
emrahcom Oct 23, 2023
5c14181
sip-jibri: fix .asoundrc, use the custom copy
emrahcom Oct 23, 2023
aae945c
sip-jibri: image path
emrahcom Oct 23, 2023
bb7e975
rebasing against master
emrahcom Dec 21, 2023
14e3ead
sip-jibri: remove duplicated lines
emrahcom Dec 22, 2023
e416346
Merge branch 'master' of https://github.com/jitsi/docker-jitsi-meet i…
emrahcom Dec 25, 2023
55d8bba
sip-jibri: add virtual-camera services
emrahcom Dec 25, 2023
6b15512
sip-jibri: start virtual cameras in the fake chrome
emrahcom Dec 25, 2023
485b6a7
sip-jibri: stop virtual cameras after the session
emrahcom Dec 25, 2023
54c378f
sip-jibri: remove the desktop toolbar
emrahcom Dec 25, 2023
393ab81
sip-jibri: generate asoundrc from template
emrahcom Jan 5, 2024
17c1fbc
sip-jibri: use an intermediate image to build pjsua
emrahcom Jan 8, 2024
97a3704
Merge branch 'master' into sip-jibri
emrahcom Jan 11, 2024
c36cb79
jicofo: fix jibri-sip brewery setting
emrahcom Jan 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ JITSI_BUILD ?= unstable
JITSI_REPO ?= jitsi
NATIVE_ARCH ?= $(shell uname -m)

JITSI_SERVICES := base base-java web prosody jicofo jvb jigasi jibri
JITSI_SERVICES := base base-java web prosody jicofo jvb jigasi jibri sip-jibri

ifeq ($(NATIVE_ARCH),x86_64)
TARGETPLATFORM := linux/amd64
Expand Down
2 changes: 2 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ services:
- PROSODY_VISITOR_INDEX
- PROSODY_VISITORS_MUC_PREFIX
- PUBLIC_URL
- SIP_JIBRI_XMPP_USER
- SIP_JIBRI_XMPP_PASSWORD
- STUN_HOST
- STUN_PORT
- TURN_CREDENTIALS
Expand Down
3 changes: 3 additions & 0 deletions env.example
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ JIBRI_RECORDER_PASSWORD=
# XMPP password for Jibri client connections
JIBRI_XMPP_PASSWORD=

# XMPP password for Sip-Jibri client connections
SIP_JIBRI_XMPP_PASSWORD=

#
# Docker Compose options
#
Expand Down
2 changes: 2 additions & 0 deletions gen-passwords.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ JVB_AUTH_PASSWORD=$(generatePassword)
JIGASI_XMPP_PASSWORD=$(generatePassword)
JIBRI_RECORDER_PASSWORD=$(generatePassword)
JIBRI_XMPP_PASSWORD=$(generatePassword)
SIP_JIBRI_XMPP_PASSWORD=$(generatePassword)

sed -i.bak \
-e "s#JICOFO_AUTH_PASSWORD=.*#JICOFO_AUTH_PASSWORD=${JICOFO_AUTH_PASSWORD}#g" \
-e "s#JVB_AUTH_PASSWORD=.*#JVB_AUTH_PASSWORD=${JVB_AUTH_PASSWORD}#g" \
-e "s#JIGASI_XMPP_PASSWORD=.*#JIGASI_XMPP_PASSWORD=${JIGASI_XMPP_PASSWORD}#g" \
-e "s#JIBRI_RECORDER_PASSWORD=.*#JIBRI_RECORDER_PASSWORD=${JIBRI_RECORDER_PASSWORD}#g" \
-e "s#JIBRI_XMPP_PASSWORD=.*#JIBRI_XMPP_PASSWORD=${JIBRI_XMPP_PASSWORD}#g" \
-e "s#SIP_JIBRI_XMPP_PASSWORD=.*#SIP_JIBRI_XMPP_PASSWORD=${SIP_JIBRI_XMPP_PASSWORD}#g" \
"$(dirname "$0")/.env"
5 changes: 3 additions & 2 deletions jicofo/rootfs/defaults/jicofo.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
{{ $ENABLE_JVB_XMPP_SERVER := .Env.ENABLE_JVB_XMPP_SERVER | default "0" | toBool -}}
{{ $HEALTH_CHECKS_USE_PRESENCE := .Env.JICOFO_HEALTH_CHECKS_USE_PRESENCE | default "0" | toBool -}}
{{ $JIBRI_BREWERY_MUC := .Env.JIBRI_BREWERY_MUC | default "jibribrewery" -}}
{{ $SIP_JIBRI_BREWERY_MUC := .Env.SIP_JIBRI_BREWERY_MUC | default "sipbrewery" -}}
{{ $JIGASI_BREWERY_MUC := .Env.JIGASI_BREWERY_MUC | default "jigasibrewery" -}}
{{ $JVB_BREWERY_MUC := .Env.JVB_BREWERY_MUC | default "jvbbrewery" -}}
{{ $JIBRI_PENDING_TIMEOUT := .Env.JIBRI_PENDING_TIMEOUT | default "90 seconds" -}}
Expand Down Expand Up @@ -196,9 +197,9 @@ jicofo {
}
{{ end }}

{{ if .Env.JIBRI_SIP_BREWERY_MUC }}
{{ if $SIP_JIBRI_BREWERY_MUC }}
jibri-sip {
brewery-jid = "{{ .Env.JIBRI_SIP_BREWERY_MUC }}"
brewery-jid = "{{ $SIP_JIBRI_BREWERY_MUC }}@{{ $XMPP_INTERNAL_MUC_DOMAIN }}"
}
{{ end }}

Expand Down
20 changes: 17 additions & 3 deletions prosody/rootfs/defaults/conf.d/jitsi-meet.cfg.lua
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@
{{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "muc.meet.jitsi" -}}
{{ $XMPP_MUC_DOMAIN_PREFIX := (split "." $XMPP_MUC_DOMAIN)._0 -}}
{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}}
{{ $XMPP_SIP_DOMAIN := .Env.XMPP_SIP_DOMAIN | default "sip.meet.jitsi" -}}
{{ $JIBRI_RECORDER_USER := .Env.JIBRI_RECORDER_USER | default "recorder" -}}
{{ $SIP_JIBRI_XMPP_USER := .Env.SIP_JIBRI_XMPP_USER | default "sip" -}}
{{ $JIGASI_TRANSCRIBER_USER := .Env.JIGASI_TRANSCRIBER_USER | default "transcriber" -}}
{{ $DISABLE_POLLS := .Env.DISABLE_POLLS | default "false" | toBool -}}
{{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "true" | toBool -}}
Expand Down Expand Up @@ -232,7 +234,9 @@ VirtualHost "{{ $XMPP_DOMAIN }}"
{{ if $ENABLE_LOBBY }}
lobby_muc = "lobby.{{ $XMPP_DOMAIN }}"
{{ if $ENABLE_RECORDING }}
muc_lobby_whitelist = { "{{ $XMPP_RECORDER_DOMAIN }}" }
muc_lobby_whitelist = { "{{ $XMPP_SIP_DOMAIN }}, {{ $XMPP_RECORDER_DOMAIN }}" }
{{ else }}
muc_lobby_whitelist = { "{{ $XMPP_SIP_DOMAIN }}" }
{{ end }}
{{ end }}

Expand All @@ -258,7 +262,7 @@ VirtualHost "{{ $XMPP_DOMAIN }}"
c2s_require_encryption = false

{{ if $ENABLE_VISITORS -}}
visitors_ignore_list = { "{{ $XMPP_RECORDER_DOMAIN }}" }
visitors_ignore_list = { "{{ $XMPP_SIP_DOMAIN }}, {{ $XMPP_RECORDER_DOMAIN }}" }
{{ end }}

{{ if .Env.XMPP_CONFIGURATION -}}
Expand Down Expand Up @@ -302,6 +306,15 @@ VirtualHost "{{ $XMPP_RECORDER_DOMAIN }}"
authentication = "internal_hashed"
{{ end }}

{{ if $XMPP_SIP_DOMAIN }}
VirtualHost "{{ $XMPP_SIP_DOMAIN }}"
modules_enabled = {
"ping";
"smacks";
}
authentication = "internal_hashed"
{{ end }}

Component "{{ $XMPP_INTERNAL_MUC_DOMAIN }}" "muc"
storage = "memory"
modules_enabled = {
Expand Down Expand Up @@ -364,7 +377,8 @@ Component "{{ $XMPP_MUC_DOMAIN }}" "muc"

rate_limit_whitelist_jids = {
"{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}",
"{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}"
"{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}",
"{{ $SIP_JIBRI_XMPP_USER }}@{{ $XMPP_SIP_DOMAIN }}"
}
{{ end -}}

Expand Down
5 changes: 4 additions & 1 deletion prosody/rootfs/defaults/conf.d/visitors.cfg.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
{{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "true" | toBool -}}
{{ $ENABLE_XMPP_WEBSOCKET := .Env.ENABLE_XMPP_WEBSOCKET | default "1" | toBool -}}
{{ $JIBRI_RECORDER_USER := .Env.JIBRI_RECORDER_USER | default "recorder" -}}
{{ $SIP_JIBRI_XMPP_USER := .Env.SIP_JIBRI_XMPP_USER | default "sip" -}}
{{ $JIGASI_TRANSCRIBER_USER := .Env.JIGASI_TRANSCRIBER_USER | default "transcriber" -}}
{{ $LIMIT_MESSAGES_CHECK_TOKEN := .Env.PROSODY_LIMIT_MESSAGES_CHECK_TOKEN | default "0" | toBool -}}
{{ $RATE_LIMIT_LOGIN_RATE := .Env.PROSODY_RATE_LIMIT_LOGIN_RATE | default "3" -}}
Expand Down Expand Up @@ -35,6 +36,7 @@
{{ $XMPP_SERVER := .Env.XMPP_SERVER | default "xmpp.meet.jitsi" -}}
{{ $XMPP_SERVER_S2S_PORT := .Env.XMPP_SERVER_S2S_PORT | default $S2S_PORT -}}
{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}}
{{ $XMPP_SIP_DOMAIN := .Env.XMPP_SIP_DOMAIN | default "sip.meet.jitsi" -}}

plugin_paths = { "/prosody-plugins/", "/prosody-plugins-custom" }

Expand Down Expand Up @@ -190,7 +192,8 @@ Component '{{ $VISITORS_MUC_PREFIX }}.v{{ $VISITOR_INDEX }}.{{ $VISITORS_XMPP_DO

rate_limit_whitelist_jids = {
"{{ $JIBRI_RECORDER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}",
"{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}"
"{{ $JIGASI_TRANSCRIBER_USER }}@{{ $XMPP_RECORDER_DOMAIN }}",
"{{ $SIP_JIBRI_XMPP_USER }}@{{ $XMPP_SIP_DOMAIN }}",
}
{{ end -}}

Expand Down
11 changes: 11 additions & 0 deletions prosody/rootfs/etc/cont-init.d/10-config
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ fi
[ -z "${JIBRI_XMPP_USER}" ] && export JIBRI_XMPP_USER=jibri
[ -z "${JIGASI_XMPP_USER}" ] && export JIGASI_XMPP_USER=jigasi
[ -z "${JVB_AUTH_USER}" ] && export JVB_AUTH_USER=jvb
[ -z "${SIP_JIBRI_XMPP_USER}" ] && export SIP_JIBRI_XMPP_USER=sip
[ -z "${XMPP_DOMAIN}" ] && export XMPP_DOMAIN=meet.jitsi
[ -z "${XMPP_AUTH_DOMAIN}" ] && export XMPP_AUTH_DOMAIN=auth.meet.jitsi
[ -z "${XMPP_RECORDER_DOMAIN}" ] && export XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
[ -z "${XMPP_SIP_DOMAIN}" ] && export XMPP_SIP_DOMAIN=sip.meet.jitsi

prosodyctl --config $PROSODY_CFG register focus $XMPP_AUTH_DOMAIN $JICOFO_AUTH_PASSWORD

Expand Down Expand Up @@ -116,6 +118,15 @@ if [[ "$PROSODY_MODE" == "client" ]]; then
fi
fi

if [[ ! -z $SIP_JIBRI_XMPP_PASSWORD ]]; then
OLD_SIP_JIBRI_XMPP_PASSWORD=passw0rd
if [[ "$SIP_JIBRI_XMPP_PASSWORD" == "$OLD_SIP_JIBRI_XMPP_PASSWORD" ]]; then
echo 'FATAL ERROR: Sip-Jibri XMPP password must be changed, check the README'
exit 1
fi
prosodyctl --config $PROSODY_CFG register $SIP_JIBRI_XMPP_USER $XMPP_SIP_DOMAIN $SIP_JIBRI_XMPP_PASSWORD
fi

if [[ ! -z $JIGASI_XMPP_PASSWORD ]]; then
OLD_JIGASI_XMPP_PASSWORD=passw0rd
if [[ "$JIGASI_XMPP_PASSWORD" == "$OLD_JIGASI_XMPP_PASSWORD" ]]; then
Expand Down
66 changes: 66 additions & 0 deletions sip-jibri.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
version: '3.5'

services:
sip-jibri:
image: jitsi/sip-jibri:${JITSI_IMAGE_VERSION:-unstable}
restart: ${RESTART_POLICY:-unless-stopped}
ports:
- '${SIP_JIBRI_PORT:-5060}:5060/udp'
- '${SIP_JIBRI_PORT:-5060}:5060'
volumes:
- ${CONFIG}/sip-jibri:/config:Z
shm_size: '2gb'
cap_add:
- SYS_ADMIN
devices:
- /dev/snd:/dev/snd
- /dev/video2:/dev/video0
- /dev/video3:/dev/video1
environment:
- AUTOSCALER_SIDECAR_KEY_FILE
- AUTOSCALER_SIDECAR_KEY_ID
- AUTOSCALER_SIDECAR_GROUP_NAME
- AUTOSCALER_SIDECAR_HOST_ID
- AUTOSCALER_SIDECAR_INSTANCE_ID
- AUTOSCALER_SIDECAR_PORT
- AUTOSCALER_SIDECAR_REGION
- AUTOSCALER_SIDECAR_SHUTDOWN_POLLING_INTERVAL
- AUTOSCALER_SIDECAR_STATS_POLLING_INTERVAL
- AUTOSCALER_URL
- CHROMIUM_FLAGS
- DISPLAY0=:0
- DISPLAY1=:1
- ENABLE_STATS_D
- JIBRI_WEBHOOK_SUBSCRIBERS
- JIBRI_HTTP_API_EXTERNAL_PORT
- JIBRI_HTTP_API_INTERNAL_PORT
- JIBRI_USAGE_TIMEOUT
- JIBRI_XMPP_USER
- JIBRI_XMPP_PASSWORD
- JIBRI_BREWERY_MUC
- JIBRI_STRIP_DOMAIN_JID
- JIBRI_STATSD_HOST
- JIBRI_STATSD_PORT
- LOCAL_ADDRESS
- PUBLIC_URL
- SIP_JIBRI_BREWERY_MUC
- SIP_JIBRI_BREWERY_MUC_DUMMY
- SIP_JIBRI_RESOLUTION
- SIP_JIBRI_USAGE_TIMEOUT
- SIP_JIBRI_XMPP_USER
- SIP_JIBRI_XMPP_PASSWORD
- SIP_JIBRI_SINGLE_USE_MODE
- SIP_JIBRI_STRIP_DOMAIN_JID
- TZ
- XMPP_AUTH_DOMAIN
- XMPP_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_MUC_DOMAIN
- XMPP_SERVER
- XMPP_SIP_DOMAIN
- XMPP_PORT
- XMPP_TRUST_ALL_CERTS
depends_on:
- jicofo
networks:
meet.jitsi:
66 changes: 66 additions & 0 deletions sip-jibri/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# ------------------------------------------------------------------------------
# builder
# ------------------------------------------------------------------------------
ARG JITSI_REPO=jitsi
ARG BASE_TAG=latest
FROM ${JITSI_REPO}/base:${BASE_TAG} as builder

ARG PROJECT_REPO=https://github.com/jitsi/pjproject
ARG PROJECT_BRANCH=jibri-2.13-dev1

RUN apt-dpkg-wrap apt-get update && \
apt-dpkg-wrap apt-get install -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
build-essential git \
libv4l-dev libsdl2-dev libavcodec-dev libavdevice-dev libavfilter-dev \
libavformat-dev libavresample-dev libavutil-dev libswresample-dev \
libswscale-dev libasound2-dev libopus-dev libvpx-dev && \
cd /tmp && \
git clone -b $PROJECT_BRANCH $PROJECT_REPO && \
cd pjproject && ./configure && make dep && make && \
cp pjsip-apps/bin/pjsua-x86_64-unknown-linux-gnu /tmp/pjsua && \
apt-cleanup

# ------------------------------------------------------------------------------
# sip-jibri
# ------------------------------------------------------------------------------
ARG JITSI_REPO=jitsi
ARG BASE_TAG=latest
FROM ${JITSI_REPO}/base-java:${BASE_TAG}

LABEL org.opencontainers.image.title="Jitsi Video-SIP-Gateway (sip-jibri)"
LABEL org.opencontainers.image.description="Components for joining a conference from a SIP device."
LABEL org.opencontainers.image.url="https://github.com/jitsi/jibri"
LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-meet"
LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/"

ARG TARGETPLATFORM
ARG USE_CHROMIUM=0
#ARG CHROME_RELEASE=latest
# https://googlechromelabs.github.io/chrome-for-testing/
ARG CHROME_RELEASE=116.0.5845.96

COPY --from=builder /tmp/pjsua /usr/local/bin/pjsua
COPY rootfs/ /

RUN apt-dpkg-wrap apt-get update && \
apt-dpkg-wrap apt-get install -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
jibri libgl1-mesa-dri jitsi-autoscaler-sidecar jq dbus dbus-x11 rtkit \
unzip fonts-noto && \
apt-dpkg-wrap apt-get install -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" \
libv4l-0 unclutter && \
/usr/bin/install-chrome.sh && \
/usr/bin/install-pjsua.sh && \
apt-cleanup && \
adduser jibri rtkit && \
update-alternatives --install /usr/bin/google-chrome google-chrome \
/usr/local/bin/google-chrome 300

EXPOSE 5060

VOLUME /config
67 changes: 67 additions & 0 deletions sip-jibri/rootfs/defaults/asoundrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{{ $LOOPBACK0 := .Env.LOOPBACK0 | default "Loopback" -}}
{{ $LOOPBACK1 := .Env.LOOPBACK1 | default "Loopback_1" -}}

pcm.amix {
type dmix
ipc_key 219345
slave.pcm "hw:{{ $LOOPBACK0 }},0,0"
}

pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:{{ $LOOPBACK1 }},1,0"
}

pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}

pcm.bmix {
type dmix
ipc_key 219347
slave.pcm "hw:{{ $LOOPBACK1 }},0,0"
}

pcm.bsnoop {
type dsnoop
ipc_key 219348
slave.pcm "hw:{{ $LOOPBACK0 }},1,0"
}

pcm.bduplex {
type asym
playback.pcm "bmix"
capture.pcm "bsnoop"
}

pcm.pjsua {
type plug
slave.pcm "bduplex"
}

# capture device for pjsua, --capture-dev=7 if there is no sound card
pcm.pjsua_capture {
type plug
slave.pcm "hw:{{ $LOOPBACK0 }},1,0"
}

# playback device for pjsua, --playback-dev=8 if there is no sound card
pcm.pjsua_playback {
type plug
slave.pcm "hw:{{ $LOOPBACK1 }},0,0"
}

# capture device for chrome
pcm.chrome_capture {
type plug
slave.pcm "hw:{{ $LOOPBACK1 }},1,0"
}

# playback device for chrome (since this is the default option)
pcm.!default {
type plug
slave.pcm "aduplex"
}
18 changes: 18 additions & 0 deletions sip-jibri/rootfs/defaults/autoscaler-sidecar.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{ $JIBRI_HTTP_API_EXTERNAL_PORT := .Env.JIBRI_HTTP_API_EXTERNAL_PORT | default "2222" -}}
{{ $SHUTDOWN_POLLING_INTERVAL := .Env.AUTOSCALER_SIDECAR_SHUTDOWN_POLLING_INTERVAL | default "60" -}}
{{ $STATS_POLLING_INTERVAL := .Env.AUTOSCALER_SIDECAR_STATS_POLLING_INTERVAL | default "30" -}}
export SHUTDOWN_POLLING_INTERVAL={{ $SHUTDOWN_POLLING_INTERVAL }}
export STATS_POLLING_INTERVAL={{ $STATS_POLLING_INTERVAL }}
export PORT={{ .Env.AUTOSCALER_SIDECAR_PORT }}
export GRACEFUL_SHUTDOWN_SCRIPT="/opt/jitsi/jibri/wait_graceful_shutdown.sh"
export TERMINATE_SCRIPT="/opt/jitsi/jibri/shutdown.sh"
export ENABLE_REPORT_STATS=true
export POLLING_URL="{{ .Env.AUTOSCALER_URL }}/sidecar/poll"
export STATUS_URL="{{ .Env.AUTOSCALER_URL }}/sidecar/status"
export STATS_RETRIEVE_URL="http://localhost:{{ $JIBRI_HTTP_API_EXTERNAL_PORT }}/jibri/api/v1.0/health"
export STATS_REPORT_URL="{{ .Env.AUTOSCALER_URL }}/sidecar/stats"
export ASAP_SIGNING_KEY_FILE="{{ .Env.AUTOSCALER_SIDECAR_KEY_FILE }}"
export ASAP_JWT_KID="{{ .Env.AUTOSCALER_SIDECAR_KEY_ID }}"
export INSTANCE_TYPE="sip-jibri"
export INSTANCE_ID="{{ .Env.AUTOSCALER_SIDECAR_INSTANCE_ID }}"
export INSTANCE_METADATA='{"environment":"{{ .Env.XMPP_ENV_NAME }}","region":"{{ .Env.AUTOSCALER_SIDECAR_REGION }}","group":"{{ .Env.AUTOSCALER_SIDECAR_GROUP_NAME }}","name":"{{ .Env.SIP_JIBRI_INSTANCE_ID }}","version":"{{ .Env.JIBRI_VERSION }}","privateIp":"{{ .Env.LOCAL_ADDRESS }}","hostId":"{{ .Env.AUTOSCALER_SIDECAR_HOST_ID }}"}'
Loading
Loading