Compare commits
11 commits
Author | SHA1 | Date | |
---|---|---|---|
|
cf0027240c | ||
|
93e7f04880 | ||
|
79abc93fcf | ||
|
3287166e13 | ||
|
af663e074e | ||
|
e6d087d2da | ||
|
027566e6cc | ||
|
a10070a7d5 | ||
|
7ec8aa82c4 | ||
|
555427cba1 | ||
|
02d35fcf18 |
20 changed files with 771 additions and 1 deletions
1
type/__jitsi_jibri/.gitignore
vendored
Normal file
1
type/__jitsi_jibri/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
files/chromedriver_linux64.zip
|
2
type/__jitsi_jibri/explorer/kernel_release
Normal file
2
type/__jitsi_jibri/explorer/kernel_release
Normal file
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
uname -r
|
198
type/__jitsi_jibri/files/apt-google-chrome-keyring.gpg
Normal file
198
type/__jitsi_jibri/files/apt-google-chrome-keyring.gpg
Normal file
|
@ -0,0 +1,198 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.2.2 (GNU/Linux)
|
||||
|
||||
mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
|
||||
kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
|
||||
fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
|
||||
feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
|
||||
QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
|
||||
b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
|
||||
78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
|
||||
4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
|
||||
HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
|
||||
bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
|
||||
eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
|
||||
HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
|
||||
AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
|
||||
A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
|
||||
rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
|
||||
XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
|
||||
pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
|
||||
K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
|
||||
2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
|
||||
CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
|
||||
KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
|
||||
cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
|
||||
G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
|
||||
5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
|
||||
D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
|
||||
/FJG
|
||||
=Quqp
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQINBFcMjNMBEAC6Wr5QuLIFgz1V1EFPlg8ty2TsjQEl4VWftUAqWlMevJFWvYEx
|
||||
BOsOZ6kNFfBfjAxgJNWTkxZrHzDl74R7KW/nUx6X57bpFjUyRaB8F3/NpWKSeIGS
|
||||
pJT+0m2SgUNhLAn1WY/iNJGNaMl7lgUnaP+/ZsSNT9hyTBiH3Ev5VvAtMGhVI/u8
|
||||
P0EtTjXp4o2U+VqFTBGmZ6PJVhCFjZUeRByloHw8dGOshfXKgriebpioHvU8iQ2U
|
||||
GV3WNIirB2Rq1wkKxXJ/9Iw+4l5m4GmXMs7n3XaYQoBj28H86YA1cYWSm5LR5iU2
|
||||
TneI1fJ3vwF2vpSXVBUUDk67PZhg6ZwGRT7GFWskC0z8PsWd5jwK20mA8EVKq0vN
|
||||
BFmMK6i4fJU+ux17Rgvnc9tDSCzFZ1/4f43EZ41uTmmNXIDsaPCqwjvSS5ICadt2
|
||||
xeqTWDlzONUpOs5yBjF1cfJSdVxsfshvln2JXUwgIdKl4DLbZybuNFXnPffNLb2v
|
||||
PtRJHO48O2UbeXS8n27PcuMoLRd7+r7TsqG2vBH4t/cB/1vsvWMbqnQlaJ5VsjeW
|
||||
Tp8Gv9FJiKuU8PKiWsF4EGR/kAFyCB8QbJeQ6HrOT0CXLOaYHRu2TvJ4taY9doXn
|
||||
98TgU03XTLcYoSp49cdkkis4K+9hd2dUqARVCG7UVd9PY60VVCKi47BVKQARAQAB
|
||||
tFRHb29nbGUgSW5jLiAoTGludXggUGFja2FnZXMgU2lnbmluZyBBdXRob3JpdHkp
|
||||
IDxsaW51eC1wYWNrYWdlcy1rZXltYXN0ZXJAZ29vZ2xlLmNvbT6JAjgEEwECACIF
|
||||
AlcMjNMCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHch9jvTi0eW5CAP
|
||||
/RELE/OAoA4o1cMBxJsljWgCgDig2Ge91bFCN0vExLcP0iByra7qPWJowXDJ5sCj
|
||||
UBnCkrxGo5D15U7cW5FC0+qWU73q0AuG3OjKDQ49ecdRkYHwcvwWQvT5Lz3DwOGW
|
||||
4armfEuzWXcUDeShR7AgfcTq+Pfoo3dHqdB8TmtNySu/AdJFmVH/xTiWYWrOSibh
|
||||
yLuaSW/0cTkHW0GDk06MlDkcdkTzhO5GMDO7PUxBgCysTXFR0T9TVWDo9VwvuMww
|
||||
2pE5foleA0X6PD/6GQpy3aX2xry8rhFvYplEa5zwXhqsscdKXlp1ZPZ4PMvvwe49
|
||||
5mY9n/1Rx1TmMvIcLHKP61sURMOve97Gipk/iD6oaeeT8I0khexHCQy7JMROoPMr
|
||||
z5onVOt2rAGZScIZsm5FYGSt9eDKBWI6qpJ/5QoVhkRWjOXOchZlJHo+kLdg6jq2
|
||||
vOnIlFnXo0p6Rqf/IEq5PMh70vVZpk4tNYNy4zRx03ZTA9qXRLW+ftxSQIYMY5eC
|
||||
Z31lqSH4EjqgtUG+zn2A6juKayb1nkt2O3F1wWOm6oTzNsAP5LdReJRlw151Jp4U
|
||||
4ftGtw7ygq+nvokXL7YLuu8sbFqfFXcTPrAZa5M9gnC7GCnIQyF/WvqUnrcaC1jp
|
||||
qBc+pkSJhROhN12QY8Po8AT8/UaUh/dPIiW5A4o8pOPEiEYEEBECAAYFAlcNtn8A
|
||||
CgkQoECDD3+sWZGy3wCfWTMZWsipX+yG/VB4Q1FunIfEVHYAnimEXCjZ3IVyy5F1
|
||||
yU36PihDCjWqiEYEEBECAAYFAlcNtvEACgkQMUcsOzG36APnRwCeJ/bfGf8FBa4q
|
||||
5TMw8p1GS1jWT5EAn2sc02481HHdTmZiW/CGWXmgE+OPuQINBFcMjcgBEACrL9gH
|
||||
hdr6gQX4ZMA5slp628xOrHCsdLO54WNdPRKeFHXJqSSJi3fs8FxBWI4FnejeKUGb
|
||||
F+MrOlFpKqELxaMje7bwZyap3izztZHszP3YmOoTBJvREGKdCkL82cLsChYD/Prg
|
||||
E8crvkhSnq9evcsKAnziMxg/wDCChUL3Evqo29BeoB81f+E9wkrUTMCT/kVxt3pG
|
||||
RalKX0UhrtKrpm8yRfjufJfwjkdwgvinkRGZ2GrWHj4LzMbi9/udYaJZ66Yw0hEU
|
||||
4USxUB9vNtmSFrb4EB91T2rhc68dgQ4jYBI7K4Ebb8XaWAxb+IAq31l1UkiEA32F
|
||||
4qUMoL6rChB4y6nHxOnTvs+XEb5TBwXVogjLRKTQs5U/HV9l7j+HAchk5y3im2N2
|
||||
UKmMxHqotvPZZUZPdaCRxUedQf9gR0yLZV+U9BcDuwjzL/zjrthNZYlEGJ6HZ/TL
|
||||
STp4dDH+uXuLqMVWy5iquKtnbrnNTQtv5twD+Ajpgy60YLOJ9YaiJ4GjifOpzSk8
|
||||
3e1rJ3p/pX6B5NWQinVLZJzxyeOoh3iMjdmCDSnEXLrCmYv5g6jyV/Wbd4GYFuMK
|
||||
8TT7+PQdWLcbZ/Lxc5w0s+c7+f5OfmKXO5KPHnnUsrF5DBaKRPjScpwePQitxeIg
|
||||
lUgEMDkNruBhu1PzCxd3BtXgu++K3WdoH3VcgwARAQABiQREBBgBAgAPBQJXDI3I
|
||||
AhsCBQkFo5qAAikJEHch9jvTi0eWwV0gBBkBAgAGBQJXDI3IAAoJEBOXvFNkDbVR
|
||||
QSYP/0Ewr3T7e0soTz8g4QJLLVqZDZdX8Iez04idNHuvAu0AwdZ2wl0C+tMkD7l4
|
||||
R2aI6BKe/9wPndk/NJe+ZYcD/uzyiKIJQD48PrifNnwvHu9A80rE4BppQnplENeh
|
||||
ibbWaGNJQONGFJx7QTYlFjS5LNlG1AX6mQjxvb423zOWSOmEamYXYBmYyMG6vkr/
|
||||
XTPzsldky8XFuPrJUZslL/Wlx31XQ1IrtkHHOYqWwr0hTc50/2O8H0ewl/dBZLq3
|
||||
EminZZ+tsTugof0j4SbxYhplw99nGwbN1uXy4L8/dWOUXnY5OgaTKZPF15zRMxXN
|
||||
9FeylBVYpp5kzre/rRI6mQ2lafYHdbjvd7ryHF5JvYToSDXd0mzF2nLzm6jwsO84
|
||||
7ZNd5GdTD6/vcef1IJta1nSwA/hhLtgtlz6/tNncp3lEdCjAMx29jYPDX+Lqs9JA
|
||||
xcJHufr82o6wM9TF24Q8ra8NbvB63odVidCfiHoOsIFDUrazH8XuaQzyZkI0bbzL
|
||||
mgMAvMO6u1zPfe/TK6LdJg7AeAKScOJS38D5mmwaD1bABr67ebA/X5HdaomSDKVd
|
||||
UYaewfTGBIsrWmCmKpdb+WfX4odFpNzXW/qskiBp5WSesKvN1QUkLJZDZD1kz2++
|
||||
Xul5B97s5LxLTLRwvgLoNaUFr3lnejzNLgdBpf6FnkA59syRUuIP/jiAZ2uJzXVK
|
||||
PeRJqMGL+Ue2HiVEe8ima3SQIceqW8jKS7c7Nic6dMWxgnDpk5tJmVjrgfc0a9c1
|
||||
FY4GomUBbZFj+j73+WRk3EaVKIsty+xz48+rlJjdYFVCJo0Jp67jjjXOt6EOHTni
|
||||
OA/ANtzRIzDMnWrwJZ7AxCGJ4YjLShkcRM9S30X0iuAkxNILX++SNOd8aqc2bFof
|
||||
yTCkcbk6CIc1W00vffv1QGTNjstNpVSl9+bRmlJDqJWnDGk5Nl4Ncqd8X51V0tYE
|
||||
g6WEK4OM83wx5Ew/TdTRq5jJkbCu2GYNaNNNgXW7bXSvT5VINbuP6dmbi1/8s0jK
|
||||
JQOEBI3RxxoB+01Dgx9YdNfjsCM3hvQvykaWMALeZIpzbXxV118Y9QQUIRe2L+4X
|
||||
ZACEAhWjj2K1wP7ODGTQrrM4q4sIw1l3l7yO9aXXN7likAAddT4WEpGV0CiorReO
|
||||
J1y/sKJRJSI/npN1UK7wMazZ+yzhxN0qzG8sqREKJQnNuuGQQ/qIGb/oe4dPO0Fi
|
||||
hAUGkWoa0bgtGVijN5fQSbMbV50kZYqaa9GnNQRnchmZb+pK2xLcK85hD1np37/A
|
||||
m5o2ggoONj3qI3JaRHsZaOs1qPQcyd46OyIFUpHJIfk4nezDCoQYd93bWUGqDwxI
|
||||
/n/CsdO0365yqDO/ADscehlVqdAupVv2uQINBFiGv8wBEACtrmK7c12DfxkPAJSD
|
||||
12VanxLLvvjYW0KEWKxN6TMRQCawLhGwFf7FLNpab829DFMhBcNVgJ8aU0YIIu9f
|
||||
HroIaGi+bkBkDkSWEhSTlYa6ISfBn6Zk9AGBWB/SIelOncuAcI/Ik6BdDzIXnDN7
|
||||
cXsMgV1ql7jIbdbsdX63wZEFwqbaiL1GWd4BUKhj0H46ZTEVBLl0MfHNlYl+X3ib
|
||||
9WpRS6iBAGOWs8Kqw5xVE7oJm9DDXXWOdPUE8/FVti+bmOz+ICwQETY9I2EmyNXy
|
||||
UG3iaKs07VAf7SPHhgyBEkMngt5ZGcH4gs1m2l/HFQ0StNFNhXuzlHvQhDzd9M1n
|
||||
qpstEe+f8AZMgyNnM+uGHJq9VVtaNnwtMDastvNkUOs+auMXbNwsl5y/O6ZPX5I5
|
||||
IvJmUhbSh0UOguGPJKUu/bl65theahz4HGBA0Q5nzgNLXVmU6aic143iixxMk+/q
|
||||
A59I6KelgWGj9QBPAHU68//J4dPFtlsRKZ7vI0vD14wnMvaJFv6tyTSgNdWsQOCW
|
||||
i+n16rGfMx1LNZTO1bO6TE6+ZLuvOchGJTYP4LbCeWLL8qDbdfz3oSKHUpyalELJ
|
||||
ljzin6r3qoA3TqvoGK5OWrFozuhWrWt3tIto53oJ34vJCsRZ0qvKDn9PQX9r3o56
|
||||
hKhn8G9z/X5tNlfrzeSYikWQcQARAQABiQREBBgBAgAPBQJYhr/MAhsCBQkFo5qA
|
||||
AikJEHch9jvTi0eWwV0gBBkBAgAGBQJYhr/MAAoJEGSUxtaZfCFeW4kP/iZq+blR
|
||||
DzgRzOw16x80vyBjfPOUKd++dSUkcr4Khi5vjBygNdVSWcKZaBKVkdBmCvf+p9bY
|
||||
wzfL+RdxvGEv8WKNTNjdaWcJ2chU2O4H5Am3QsduQ/sSf+jTzlnMe7NpfF9n3uo3
|
||||
4o+xEFOOcnyF3cHrhxWOCde9rX6kbnUQriIMXZteJY8e9Rs+Iv46DoL1eOlavAgD
|
||||
UJbIf/iLt219OdtWI7ZqopA0d+tcn7FL3fwuvyvn5WZRYHIerB4EYgBI6bCwl5JQ
|
||||
ejORlhuYx1oknyPjnzPJ9Los74chrf7OHOJ06iIQf1zlC9V/niA2xiM9NwePtTQO
|
||||
CTEJVB6IEoEtH6rozpAdriprH9fRnZkJxINNnCoYk1op9wVh3xfUHbOCvGQbB54c
|
||||
qN+amp9dEquCAe6Yt1WodTspL1zPXJ5Mv43Dud76TNEwQDywuebg4NFQnBTPXZGp
|
||||
LQYbUVhXSuMlVZXNEUx8xSz7vECm0S4x2h12RBKbK2RfI4oCq/wpD1dQRsZaKSYL
|
||||
FbZw5j2yk6nBBrtfahd7sWVX1F+YdisbTeT5iUhESAWqW9bCyCnNRFy6V34IgW9P
|
||||
e9yLu8WbVSJAFvnALxsc6hGyvs5dbXbruWKmi5mvk6tCFWdFlBVrrhx1QgqMtcS3
|
||||
jv3S7GHyCA3CS1lEgsifYkeOARAgJ1hZ5BvUurUP+wb66lIhDB0U9NuFdJUTc6nO
|
||||
/1cy3i9mGCVoqwmTcB1BJ9E1hncMUP1/MvrAgkBBrAWJiD2Xj9QV/uBozA7nLxrV
|
||||
7cf1de9OLgH4eNEfX25xj8BBPYnyVyHsyk5ZHDhjj9SaurfvlFWYi13i5ieMpyLV
|
||||
JV4+r2Wi1x1UgKVAlB78sHYnbDzSoHPLBcIxtIKp30LJ0PEkat8SG7G2wgtv1Rdh
|
||||
mcZEBV05vMnrGGO991e+pKzRNPYH8rD3VQKJlvaFwsJuBTW42gZ3KfpUNKI2ugCc
|
||||
nRNpoHFWNCrzlJ0CFI48LMlmUSs+7i/l+QGleaLKQxRTNNpAmevLrS7ga4Iq0IEq
|
||||
xey6VW6RSk/Z1Z37J8B7PISSR0rZn6TeyQgFWf/FOLw6OtwOquGmMeGSqj2Uzxyb
|
||||
ygtsvUZz0BxYymoWFd4F8sp43oL2TXU6Wp7QIpBaFgkSf/UQxfR6wcQ3ivafeS1l
|
||||
g8vUFuMfuMLto6T0JiZw8uKSuDWltSReF+FXVnhawz72BZMy8RIoshGdpWHn/YbN
|
||||
6L+JOuxZnvkMAZvSLT3c0H4XCDYtEfK2mJMqD2ynX5tGR8Fy3GAaEjhx36TvzTjC
|
||||
XRmJ+FnlSW1p77x+UjFUFcpY8skv+f0Gip30iynAb1hoAdibIDab612OWi/4vX0D
|
||||
aM6t68Uq8rsabeJYsZG4uQINBF01/K4BEACskZL08crrKfX2aD2w8OUS3jVGSW7K
|
||||
10Jr/dgl6ZB7Xx/y3c9lhBim7oRIsl6tpR/DBP50UnTIgBbvynbJ6tbWGptt64Az
|
||||
nI7el9pH0k63DOKcfqRUgJKTM4OUZSkcuqQ2qnkvn+g0oiJ3VhaVYOJdJfJF/pLj
|
||||
5Oi3UEL2afoEd048/lZEaATRvEqLj+h2pSfETEl5wCWyRnuMSu6ay9NmVzRxiJhP
|
||||
DGW2ppQTxJuaKj+6Vqw5WISu9nsRxTPE1DW8f7LYyPBwgultuSYKZoCdfoYE8ff4
|
||||
71oZIuCKcGSSBHQbR6MBTD6KJtqzBzpfJ8zZJmVO4lg0CJgp9xX2QZ8hPkpaBbnq
|
||||
2JCMS1zriCMN8iGhW6ZHYmZQJtWuubuZt51VL9QmEUUhCF1t+3ld11SaowY4NFKI
|
||||
LUdYbC2zAOQIEEJkWRIHKleuc2zYSNSoXl06oGgwCKQb5l+LlcYHx4+/F3+KzyAq
|
||||
0NqBC1rMnhbn3tcckdZyhLEpnx9/y33ypo6ZZ0s6dLGrmSpJpedEz6zr8siBa4uT
|
||||
3IvVF4xjfpzSt3cMD/Lzhbnk5onUfkmoCmQ/pkuKpMr35hHtdDxshLcLPFkTncMj
|
||||
EVAOBToHDbKDSplueyJm48ELPi9ZmuyNu7WsB8TWVEAkUShxdeHALVpY1D+MjXK+
|
||||
Z5ap6/tppj+fmwARAQABiQREBBgBCAAPBQJdNfyuAhsCBQkFo5qAAikJEHch9jvT
|
||||
i0eWwV0gBBkBCAAGBQJdNfyuAAoJEHi9ZUc8s70TzUAP/1Qq69M1CMd302TMnp1Y
|
||||
h1O06wkCPFGnMFMVwYRXH5ggoYUb3IoCOmIAHOEn6v9fho0rYImS+oRDFeE08dOx
|
||||
eI+Co0xVisVHJ1JJvdnu216BaXEsztZ0KGyUlFidXROrwndlpE3qlz4t1wh/EEaU
|
||||
H2TaQjRJ+O1mXJtF6vLB1+YvMTMz3+/3aeX/elDz9aatHSpjBVS2NzbHurb9g7mq
|
||||
D45nB80yTBsPYT7439O9m70OqsxjoDqe0bL/XlIXsM9w3ei/Us7rSfSY5zgIKf7/
|
||||
iu+aJcMAQC9Zir7XASUVsbBZywfpo2v4/ACWCHJ63lFST2Qrlf4Rjj1PhF0ifvB2
|
||||
XMR6SewNkDgVlQV+YRPO1XwTOmloFU8qepkt8nm0QM1lhdOQdKVe0QyNn6btyUCK
|
||||
I7p4pKc8/yfZm5j6EboXiGAb3XCcSFhR6pFrad12YMcKBhFYvLCaCN6g1q5sSDxv
|
||||
xqfRETvEFVwqOzlfiUH9KVY3WJcOZ3Cpbeu3QCpPkTiVZgbnR+WU9JSGQFEi7iZT
|
||||
rT8tct4hIg1Pa35B1lGZIlpYmzvdN5YoV9ohJoa1Bxj7qialTT/Su1Eb/toOOkOl
|
||||
qQ7B+1NBXzv9FmiBntC4afykHIeEIESNX9LdmvB+kQMW7d1d7Bs0aW2okPDt02vg
|
||||
wH2VEtQTtfq5B98jbwNW9mbXTvMQAKKCKl+H8T72WdueqgPKHEkXDZtJmTn6nyne
|
||||
YlETvdmHGEIb1ejxuJ5URlAYnciY+kvSQ/boKjVHNGmf6+JBexd+HqPhkeextV6J
|
||||
cnmi47HDvIU/TSynhuqZeK/3SZAV7ESqQl42q7wm7Pqw0dkv4jjFCRxDA+Qq2aH6
|
||||
szJ7DZxTRWqfR3Zbe78NyFVXKxhFQO72zHzC3pFu/Ak59hmTU23yoXVo5t+5O+Q2
|
||||
1kX2dbuLd6Px1bnT+EmyneoPP1Emea5jgsw2/ECqHnvNt6cbp+42XYldGh+PBHBm
|
||||
ucC3Mn7sALajHe5k2XkNlfbjSNlmutxQFH1qq9rh/JVyxJNHeGzV5G0timAwfdJF
|
||||
UzE1vNU5P0w4O8HrCsX5Ecfgcw2BQ9vPCE3OfG+11xp6oiNMRVsR5pTu7RiI1BQA
|
||||
yICWUW/wXuhhHkkwNTiwfciJfVA8ckOiRubik8geEH5boOxgeAaBu6yusQVHnRRy
|
||||
G4wjQ+qsWo+wDI9WMdtpNG1toJrSUL4OYa4oX3YogSv5hGrbYIaP4HwO6O2oTMnS
|
||||
0lRIGJOqbEQcmKUa/nWT/3NipTnYzyMjMlEQe89YKjd+32tjMfOSdIOvwCGaTizd
|
||||
WnKPF77qB9D0v8C/7AdHmEFqf2ZX8vK31aaY+ZpPWG5IHlf6f/buIMBalJOxIBev
|
||||
eBqxcHwQuQINBGF4DJ8BEACk2Gwau+s/pKmOTnGLMnB3ybQsiVGLRhsw2SqSTvSy
|
||||
BthAyW1UAqdRqNA8/FdMlvVuppG8+vCLXPmpP63C+9M2tyQeOR2aVQp+u1EIwN4l
|
||||
Pu4wrh6vdtgSRim8uxBdLIHG16z0xxVhE2rM/Ot/gucfkpoEw289VaR7sPmIxfVT
|
||||
m1QcqCGiFQl3rZnma6Bz8UOXJoE8wO+LK5WkcdmFz6+Z3BLSb5IL9lhsArFToNq5
|
||||
dN2SSTbCTdHRzrRuoCdefYHdxoLCM4kJfggRRgWhKoEJro+ZipESq1T5yHV/iAJy
|
||||
+3DuC8LbYLvsjt9VZYARw8xIGb90Vj3ThWuMoVr/IVmKT7foC5Whe0PTI/b2frNa
|
||||
WCxxC4cRVxMusiBX66mclQ4Mvzwj50G1WKygULYcvPQ81Tg0pvgTKqgxwL9luN9M
|
||||
iDVtkn9CZx7NFlszVr+ic7nVJjANnJebFHCEZfJbQo4uIwKfYbhopUkCa41iXpes
|
||||
bVzAKqNwePgyNTAMFyYnjAUE8FVUmx7ZJVb15iEbMs38gJKJ/Wb8wtJRflAfkhrE
|
||||
zh1M/43WUAU3RfPmXTrGeyDCYKTHiXTnj748uH6U40sB9q+qeEhZdTj0KufjgtWa
|
||||
FWsZTkVrtGOaI6xfX6py/k3hjU3es+7ddElxhPBcqNE3pkPRqb9wz+exSdM7hiUz
|
||||
NwARAQABiQREBBgBCAAPBQJheAyfAhsCBQkFo5qAAikJEHch9jvTi0eWwV0gBBkB
|
||||
CAAGBQJheAyfAAoJEE6yfbKjuIuLggkP/1INRyRToLmY1ms9DTWMQ0lwbBL8J3xu
|
||||
/neKIOKVGOdw9zcWlGugUoOthSbT8bjvuybH1Vjx4wFM+cnuMVfjD58Xu6ZpgCHN
|
||||
1wXYMuzYweBFKaMg4oSwTKuAJBJ2IhfEm/cAryVvKY2zY+uyzgizx3vAg3sjkAPD
|
||||
crSCJP2nkuHcJ3nzUbKNAjmdMsnWDrqqZVwP99nuyMk8bAtueZ0SKvIpCv2wIeYO
|
||||
7zkj61vuQOFOGhl98OBui5wUhtgQw//esTWYiGNKSmD3derd2JHVA01tBmCWV4KM
|
||||
LDbg3CcMMQ1x3V1me6EG3giwBL1I9xTsBUbEa6eEN9U0zdKvoMbSogON5wCuxAzO
|
||||
/CXGMreJtBUupHEc69oTuwe426Ihi3AbRrPAg3tnGGFCt11HoQFNnRPWb3unF8Ul
|
||||
A2rSytvwFyQi3pzBYt5VsTIA7NEHGuJs+/Oor6AOInzht1cp7AfmDGfGy2N5ow+4
|
||||
GI6FPe2UqIg2+nFiGr9hRZOvXRgLQL8dlDnFChymldxm/J/UFdJGSWRldEDsPrzH
|
||||
QESKvsV9EjnJQR5p5zkQK6jx0zqSlDgiNG2GT3/CSvwIdCih6Cl9HThHtYNm3ZYN
|
||||
0bU9W2jeoLh3AINNTcrp0tAHZuQLFxukbj56O5eB+nfk67/X2iNii46ZdJQNwbT9
|
||||
YN6CstQz+Cnqg7YP/3G6Y6NHIQggXnlYIi3iwN72hEgEqz6vIRK87lBGW2r3eQ0c
|
||||
DZuE3+5Q4FYciw+B2RKeDhjdmPHypA5o+RiAyI7JOZwJalqHO3nwJG5sr0rRzcJs
|
||||
bGvpbzso2JuTyTURv4tBNq45b9y0Qdzt5PpNrPJbQADJWn+HWsbVJB5gWBTdoQYg
|
||||
pyTr84nQyscWAUFTRbmHvtjCCfLdvU8wM7ubAQ5Dwi1pABRttRAMuPA94HzaBF5y
|
||||
XkghxHpnW0IcXGiwgch9LQyaO9VSRhiPH6r5Zuk7KvGhHph7SC5JgUn9vJmmp1zc
|
||||
d0mXQ2Zh8M81J3Ri3iGPHM2CqplAxXNbIrnztbEJhN2I+77m73Z4d+K1ivg6xQht
|
||||
eSZhwhx7/Z3Tl+U2jYOEFIn/UFmV3UxRSJa/jQRcjvMKprSp4tAZ2yJI3babjRbi
|
||||
xgUEtlK105/JepxcAdw9vosxO/rR7VqCzu0copdxC0GAH8og+A9/3LPhlRGy3Qhf
|
||||
zjy9JHWHj4EIsol02BS8+dWvAoYerkve9O9+h6/B5wM/Yng9BjT+OrNvkfmqK2cs
|
||||
pBXwYedOrC4uWcUmueEVrv5P4FF36wJ+ejvPS6vdTxVTdLXjouUHwTQQZVlNjWY3
|
||||
cIyj03nZ19c+b30+2FzG/uSnb/ePWsRLY7Iyz4ygr8etweBPnEIvjwpAZxOu
|
||||
=ilBW
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
51
type/__jitsi_jibri/files/apt-jitsi-keyring.gpg
Normal file
51
type/__jitsi_jibri/files/apt-jitsi-keyring.gpg
Normal file
|
@ -0,0 +1,51 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=uIZN
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
1
type/__jitsi_jibri/files/chrome-driver-hash
Normal file
1
type/__jitsi_jibri/files/chrome-driver-hash
Normal file
|
@ -0,0 +1 @@
|
|||
sha256:99511b54102cf52ab22bf5dcc5a46c4a75d9ed4ca2b1d06b99a006782a33507f
|
1
type/__jitsi_jibri/files/chrome-driver-version
Normal file
1
type/__jitsi_jibri/files/chrome-driver-version
Normal file
|
@ -0,0 +1 @@
|
|||
101.0.4951.41
|
34
type/__jitsi_jibri/files/finalize_recording.sh
Executable file
34
type/__jitsi_jibri/files/finalize_recording.sh
Executable file
|
@ -0,0 +1,34 @@
|
|||
# Managed remotely, changes will be lost
|
||||
#!/bin/sh
|
||||
set -e
|
||||
set -u
|
||||
|
||||
guess_room_name() {
|
||||
recording_meeting_path="${1}"
|
||||
# the approach is to delete the 25 fixed character postfix string on each
|
||||
# file (example: room_name_2022-06-08-15-28-25.mp4) another approach would be
|
||||
# to take the url
|
||||
# from the metadata.json file, but that would imply json parsing or jq dependency
|
||||
basename "$(ls "${recording_meeting_path}"/*.mp4)" | rev | cut -c25- | rev
|
||||
}
|
||||
|
||||
move_meeting() {
|
||||
recording_meeting_path="${1}"
|
||||
recording_general_path="${2}"
|
||||
room="${3}"
|
||||
mkdir -p "${recording_general_path}/${room}/"
|
||||
mv "${recording_meeting_path}"/*.mp4 "${recording_general_path}/${room}/"
|
||||
rm "${recording_meeting_path}/metadata.json"
|
||||
rmdir "${recording_meeting_path}"
|
||||
}
|
||||
|
||||
main() {
|
||||
recording_meeting_path="${1}"
|
||||
recording_general_path="$(dirname "${1}")"
|
||||
room="$(guess_room_name "${recording_meeting_path}")"
|
||||
move_meeting "${recording_meeting_path}" "${recording_general_path}" "${room}"
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
|
||||
exit 0
|
136
type/__jitsi_jibri/files/jibri.conf.sh
Executable file
136
type/__jitsi_jibri/files/jibri.conf.sh
Executable file
|
@ -0,0 +1,136 @@
|
|||
#!/bin/sh -eu
|
||||
|
||||
# Start
|
||||
JIBRI_CONFIG="$(cat <<EOF
|
||||
# Managed remotely, changes will be lost
|
||||
|
||||
# thanks
|
||||
# https://community.jitsi.org/t/jibri-service-fails/85272/4
|
||||
# https://github.com/emrahcom/emrah-buster-templates/blob/master/machines/eb-jibri-template/etc/jitsi/jibri/jibri.conf
|
||||
|
||||
jibri {
|
||||
// A unique identifier for this Jibri
|
||||
// TODO: eventually this will be required with no default
|
||||
id = ""
|
||||
// Whether or not Jibri should return to idle state after handling
|
||||
// (successfully or unsuccessfully) a request. A value of 'true'
|
||||
// here means that a Jibri will NOT return back to the IDLE state
|
||||
// and will need to be restarted in order to be used again.
|
||||
single-use-mode = false
|
||||
api {
|
||||
http {
|
||||
external-api-port = 2222
|
||||
internal-api-port = 3333
|
||||
}
|
||||
xmpp {
|
||||
// See example_xmpp_envs.conf for an example of what is expected here
|
||||
environments = [{
|
||||
name = "jibri-env"
|
||||
xmpp-server-hosts = ["${JIBRI_HOST:?}"]
|
||||
xmpp-domain = "${JIBRI_HOST:?}"
|
||||
|
||||
control-muc {
|
||||
domain = "internal.auth.${JIBRI_HOST:?}"
|
||||
room-name = "JibriBrewery"
|
||||
nickname = "jibri-nickname"
|
||||
}
|
||||
|
||||
control-login {
|
||||
domain = "auth.${JIBRI_HOST:?}"
|
||||
username = "jibri"
|
||||
password = "${JIBRI_AUTH_PASS:?}"
|
||||
}
|
||||
|
||||
call-login {
|
||||
domain = "recorder.${JIBRI_HOST:?}"
|
||||
username = "recorder"
|
||||
password = "${JIBRI_RECORDER_PASS:?}"
|
||||
}
|
||||
|
||||
strip-from-room-domain = "conference."
|
||||
usage-timeout = 0
|
||||
trust-all-xmpp-certs = true
|
||||
}]
|
||||
}
|
||||
}
|
||||
recording {
|
||||
recordings-directory = "/tmp/recordings"
|
||||
# TODO: make this an optional param and remove the default
|
||||
finalize-script = "/opt/finalize_recording.sh"
|
||||
}
|
||||
streaming {
|
||||
// A list of regex patterns for allowed RTMP URLs. The RTMP URL used
|
||||
// when starting a stream must match at least one of the patterns in
|
||||
// this list.
|
||||
rtmp-allow-list = [
|
||||
// By default, all services are allowed
|
||||
".*"
|
||||
]
|
||||
}
|
||||
sip {
|
||||
// The routing rule for the outbound scenario in VoxImplant is based on this prefix
|
||||
outbound-prefix = "out_"
|
||||
}
|
||||
ffmpeg {
|
||||
resolution = "1280x720"
|
||||
// resolution = "1920x1080"
|
||||
// The audio source that will be used to capture audio on Linux
|
||||
audio-source = "alsa"
|
||||
// The audio device that will be used to capture audio on Linux
|
||||
audio-device = "plug:bsnoop"
|
||||
}
|
||||
chrome {
|
||||
// The flags which will be passed to chromium when launching
|
||||
flags = [
|
||||
"--use-fake-ui-for-media-stream",
|
||||
"--start-maximized",
|
||||
"--kiosk",
|
||||
"--enabled",
|
||||
"--autoplay-policy=no-user-gesture-required"
|
||||
]
|
||||
}
|
||||
stats {
|
||||
enable-stats-d = true
|
||||
}
|
||||
webhook {
|
||||
// A list of subscribers interested in receiving webhook events
|
||||
subscribers = []
|
||||
}
|
||||
jwt-info {
|
||||
// The path to a .pem file which will be used to sign JWT tokens used in webhook
|
||||
// requests. If not set, no JWT will be added to webhook requests.
|
||||
# signing-key-path = "/path/to/key.pem"
|
||||
|
||||
// The kid to use as part of the JWT
|
||||
# kid = "key-id"
|
||||
|
||||
// The issuer of the JWT
|
||||
# issuer = "issuer"
|
||||
|
||||
// The audience of the JWT
|
||||
# audience = "audience"
|
||||
|
||||
// The TTL of each generated JWT. Can't be less than 10 minutes.
|
||||
# ttl = 1 hour
|
||||
}
|
||||
call-status-checks {
|
||||
// If not all clients have their audio and video muted, but Jibri does not
|
||||
// detect any data stream (audio or video) comming in, it will stop
|
||||
// recording after NO_MEDIA_TIMEOUT expires.
|
||||
no-media-timeout = 3 minutes
|
||||
|
||||
// If all clients have their audio and video muted, Jibri consideres this
|
||||
// as an empty call and stops the recording after ALL_MUTED_TIMEOUT expires.
|
||||
all-muted-timeout = 10 minutes
|
||||
|
||||
// When detecting if a call is empty, Jibri takes into consideration for how
|
||||
// long the call has been empty already. If it has been empty for more than
|
||||
// DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop the recording.
|
||||
default-call-empty-timeout = 30 seconds
|
||||
|
||||
// If ICE hasn't completed, or stays in a state other than "connected" for this amount of time, Jibri will stop.
|
||||
ice-connection-timeout = 30 seconds
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)"
|
14
type/__jitsi_jibri/files/update_files.sh
Executable file
14
type/__jitsi_jibri/files/update_files.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# src https://github.com/jitsi/jibri#jitsi-debian-repository
|
||||
wget https://download.jitsi.org/jitsi-key.gpg.key -O apt-jitsi-keyring.gpg
|
||||
|
||||
# src https://github.com/jitsi/jibri#google-chrome-stable--chromedriver
|
||||
wget https://dl-ssl.google.com/linux/linux_signing_key.pub -O apt-google-chrome-keyring.gpg
|
||||
|
||||
curl chromedriver.storage.googleapis.com/LATEST_RELEASE > chrome-driver-version
|
||||
cd_path='chromedriver_linux64.zip'
|
||||
cd_url=https://chromedriver.storage.googleapis.com/$(cat chrome-driver-version)/chromedriver_linux64.zip
|
||||
curl "${cd_url}" -z "${cd_path}" -o "${cd_path}"
|
||||
printf "sha256:$(sha256sum chromedriver_linux64.zip | cut -d' ' -f1)" > chrome-driver-hash
|
128
type/__jitsi_jibri/files/xorg-video-dummy.conf.sh
Executable file
128
type/__jitsi_jibri/files/xorg-video-dummy.conf.sh
Executable file
|
@ -0,0 +1,128 @@
|
|||
#!/bin/sh -eu
|
||||
|
||||
JIBRI_XORG_CONFIG="$(cat <<EOF
|
||||
# Managed remotely, changes will be lost
|
||||
|
||||
# This xorg configuration file is meant to be used by xpra
|
||||
# to start a dummy X11 server.
|
||||
# For details, please see:
|
||||
# https://xpra.org/Xdummy.html
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "DontVTSwitch" "true"
|
||||
Option "AllowMouseOpenFail" "true"
|
||||
Option "PciForceNone" "true"
|
||||
Option "AutoEnableDevices" "false"
|
||||
Option "AutoAddDevices" "false"
|
||||
EndSection
|
||||
|
||||
Section "Device"
|
||||
Identifier "dummy_videocard"
|
||||
Driver "dummy"
|
||||
Option "ConstantDPI" "true"
|
||||
#VideoRam 4096000
|
||||
#VideoRam 256000
|
||||
VideoRam 192000
|
||||
EndSection
|
||||
|
||||
Section "Monitor"
|
||||
Identifier "dummy_monitor"
|
||||
HorizSync 5.0 - 1000.0
|
||||
VertRefresh 5.0 - 200.0
|
||||
#This can be used to get a specific DPI, but only for the default resolution:
|
||||
#DisplaySize 508 317
|
||||
#NOTE: the highest modes will not work without increasing the VideoRam
|
||||
# for the dummy video card.
|
||||
Modeline "32768x32768" 15226.50 32768 35800 39488 46208 32768 32771 32781 32953
|
||||
Modeline "32768x16384" 7516.25 32768 35544 39192 45616 16384 16387 16397 16478
|
||||
Modeline "16384x8192" 2101.93 16384 16416 24400 24432 8192 8390 8403 8602
|
||||
Modeline "8192x4096" 424.46 8192 8224 9832 9864 4096 4195 4202 4301
|
||||
Modeline "5496x1200" 199.13 5496 5528 6280 6312 1200 1228 1233 1261
|
||||
Modeline "5280x1080" 169.96 5280 5312 5952 5984 1080 1105 1110 1135
|
||||
Modeline "5280x1200" 191.40 5280 5312 6032 6064 1200 1228 1233 1261
|
||||
Modeline "5120x3200" 199.75 5120 5152 5904 5936 3200 3277 3283 3361
|
||||
Modeline "4800x1200" 64.42 4800 4832 5072 5104 1200 1229 1231 1261
|
||||
Modeline "3840x2880" 133.43 3840 3872 4376 4408 2880 2950 2955 3025
|
||||
Modeline "3840x2560" 116.93 3840 3872 4312 4344 2560 2622 2627 2689
|
||||
Modeline "3840x2048" 91.45 3840 3872 4216 4248 2048 2097 2101 2151
|
||||
Modeline "3840x1080" 100.38 3840 3848 4216 4592 1080 1081 1084 1093
|
||||
Modeline "3600x1200" 106.06 3600 3632 3984 4368 1200 1201 1204 1214
|
||||
Modeline "3288x1080" 39.76 3288 3320 3464 3496 1080 1106 1108 1135
|
||||
Modeline "2048x2048" 49.47 2048 2080 2264 2296 2048 2097 2101 2151
|
||||
Modeline "2048x1536" 80.06 2048 2104 2312 2576 1536 1537 1540 1554
|
||||
Modeline "2560x1600" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
|
||||
Modeline "2560x1440" 42.12 2560 2592 2752 2784 1440 1475 1478 1513
|
||||
Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
|
||||
Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
|
||||
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
|
||||
Modeline "1680x1050" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
|
||||
Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
|
||||
Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946
|
||||
Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
|
||||
ModeLine "1366x768" 72.00 1366 1414 1446 1494 768 771 777 803
|
||||
Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
|
||||
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||
Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807
|
||||
Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807
|
||||
Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
|
||||
Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076
|
||||
|
||||
|
||||
#common resolutions for android devices (both orientations):
|
||||
Modeline "800x1280" 25.89 800 832 928 960 1280 1310 1315 1345
|
||||
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
|
||||
Modeline "720x1280" 30.22 720 752 864 896 1280 1309 1315 1345
|
||||
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
|
||||
Modeline "768x1024" 24.93 768 800 888 920 1024 1047 1052 1076
|
||||
Modeline "1024x768" 23.77 1024 1056 1144 1176 768 785 789 807
|
||||
Modeline "600x1024" 19.90 600 632 704 736 1024 1047 1052 1076
|
||||
Modeline "1024x600" 18.26 1024 1056 1120 1152 600 614 617 631
|
||||
Modeline "536x960" 16.74 536 568 624 656 960 982 986 1009
|
||||
Modeline "960x536" 15.23 960 992 1048 1080 536 548 551 563
|
||||
Modeline "600x800" 15.17 600 632 688 720 800 818 822 841
|
||||
Modeline "800x600" 14.50 800 832 880 912 600 614 617 631
|
||||
Modeline "480x854" 13.34 480 512 560 592 854 873 877 897
|
||||
Modeline "848x480" 12.09 848 880 920 952 480 491 493 505
|
||||
Modeline "480x800" 12.43 480 512 552 584 800 818 822 841
|
||||
Modeline "800x480" 11.46 800 832 872 904 480 491 493 505
|
||||
#resolutions for android devices (both orientations)
|
||||
#minus the status bar
|
||||
#38px status bar (and width rounded up)
|
||||
Modeline "800x1242" 25.03 800 832 920 952 1242 1271 1275 1305
|
||||
Modeline "1280x762" 22.93 1280 1312 1392 1424 762 780 783 801
|
||||
Modeline "720x1242" 29.20 720 752 856 888 1242 1271 1276 1305
|
||||
Modeline "1280x682" 25.85 1280 1312 1408 1440 682 698 701 717
|
||||
Modeline "768x986" 23.90 768 800 888 920 986 1009 1013 1036
|
||||
Modeline "1024x730" 22.50 1024 1056 1136 1168 730 747 750 767
|
||||
Modeline "600x986" 19.07 600 632 704 736 986 1009 1013 1036
|
||||
Modeline "1024x562" 17.03 1024 1056 1120 1152 562 575 578 591
|
||||
Modeline "536x922" 16.01 536 568 624 656 922 943 947 969
|
||||
Modeline "960x498" 14.09 960 992 1040 1072 498 509 511 523
|
||||
Modeline "600x762" 14.39 600 632 680 712 762 779 783 801
|
||||
Modeline "800x562" 13.52 800 832 880 912 562 575 578 591
|
||||
Modeline "480x810" 12.59 480 512 552 584 810 828 832 851
|
||||
Modeline "848x442" 11.09 848 880 920 952 442 452 454 465
|
||||
Modeline "480x762" 11.79 480 512 552 584 762 779 783 801
|
||||
EndSection
|
||||
|
||||
Section "Screen"
|
||||
Identifier "dummy_screen"
|
||||
Device "dummy_videocard"
|
||||
Monitor "dummy_monitor"
|
||||
DefaultDepth 24
|
||||
SubSection "Display"
|
||||
Viewport 0 0
|
||||
Depth 24
|
||||
#Modes "32768x32768" "32768x16384" "16384x8192" "8192x4096" "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
|
||||
Modes "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
|
||||
Virtual 1280 720
|
||||
#Virtual 1920 1080
|
||||
EndSubSection
|
||||
EndSection
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "dummy_layout"
|
||||
Screen "dummy_screen"
|
||||
EndSection
|
||||
EOF
|
||||
)"
|
10
type/__jitsi_jibri/gencode-remote
Executable file
10
type/__jitsi_jibri/gencode-remote
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
if grep -qE "__file" "${__messages_in}"; then
|
||||
RESTART_SERVICES="YES"
|
||||
fi
|
||||
|
||||
if [ -n "${RESTART_SERVICES}" ]; then
|
||||
echo "systemctl restart jibri"
|
||||
echo "systemctl restart jibri-xorg"
|
||||
fi
|
5
type/__jitsi_jibri/man.rst
Normal file
5
type/__jitsi_jibri/man.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
TODO
|
||||
|
||||
last java (from debian 11) mostly works, but cuts a little bit of the video (between 2 to 5 seconds). with java8 this works ok
|
||||
|
||||
resolution is hardcoded to 720p (default resolution was 1080p), right now is not configurable
|
128
type/__jitsi_jibri/manifest
Executable file
128
type/__jitsi_jibri/manifest
Executable file
|
@ -0,0 +1,128 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
JIBRI_HOST="${__target_host}"
|
||||
JIBRI_AUTH_PASS='jibriauthpass'
|
||||
JIBRI_RECORDER_PASS='jibrirecorderpass'
|
||||
|
||||
os="$(cat "${__global}/explorer/os")"
|
||||
kernel_release="$(cat "${__object}/explorer/kernel_release")"
|
||||
case "${os}" in
|
||||
devuan|debian)
|
||||
if echo "${kernel_release}" | grep -qE "cloud|rt"; then
|
||||
echo "using wrong kernel ${kernel_release}, do/use: apt install linux-image-amd64" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
#ubuntu)
|
||||
#;;
|
||||
# TODO on ubuntu you should also care about installing:
|
||||
# linux-image-extra-virtual
|
||||
# and to check for different kernel
|
||||
# src https://github.com/jitsi/jibri#installation-notes
|
||||
*)
|
||||
echo "Your OS '${os}' is currently not supported." >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
__line '/etc/modules' --line 'snd_aloop' --onchange 'modprobe snd_aloop'
|
||||
|
||||
# thanks https://github.com/emrahcom/emrah-buster-templates/blob/master/machines/eb-jibri-template/usr/local/bin/finalize_recording.sh
|
||||
__file '/opt/finalize_recording.sh' \
|
||||
--mode '755' \
|
||||
--source "${__type}/files/finalize_recording.sh"
|
||||
|
||||
__apt_key 'jitsi_meet' \
|
||||
--source "${__type}/files/apt-jitsi-keyring.gpg"
|
||||
|
||||
require='__apt_key/jitsi_meet' __apt_source 'jitsi_meet' \
|
||||
--uri 'https://download.jitsi.org' \
|
||||
--distribution 'stable/'
|
||||
|
||||
__apt_key 'google-chrome' \
|
||||
--source "${__type}/files/apt-google-chrome-keyring.gpg"
|
||||
|
||||
__apt_source 'debian9' \
|
||||
--uri 'http://security.debian.org/debian-security' \
|
||||
--distribution 'stretch/updates' \
|
||||
--component 'main'
|
||||
|
||||
# google-chrome object id is important because after google-chrome installation
|
||||
# the apt file would be duplicated, making apt update process to fail
|
||||
require='__apt_key/google-chrome' __apt_source google-chrome \
|
||||
--uri 'http://dl.google.com/linux/chrome/deb/' \
|
||||
--distribution 'stable' \
|
||||
--component 'main'
|
||||
|
||||
## Ensure apt cache is up-to-date
|
||||
require='__apt_source/jitsi_meet __apt_source/google-chrome __apt_source/debian9' __check_messages update_jibri \
|
||||
--pattern '^__apt_source/(jitsi_meet|google-chrome|debian9)' \
|
||||
--execute 'apt update'
|
||||
|
||||
PKGS="$( grep -v '#' <<END
|
||||
jibri
|
||||
# extra deps
|
||||
default-jre-headless ffmpeg curl alsa-utils icewm xdotool xserver-xorg-video-dummy ruby-hocon
|
||||
google-chrome-stable
|
||||
# old java for jibri
|
||||
openjdk-8-jdk-headless
|
||||
END
|
||||
)"
|
||||
|
||||
for pkg in ${PKGS}; do
|
||||
require='__check_messages/update_jibri' __package "${pkg}"
|
||||
done
|
||||
|
||||
# TODO CHROME_DRIVER explorer so this process is launched only if needed
|
||||
# src https://github.com/jitsi/jibri#google-chrome-stable--chromedriver
|
||||
CHROME_DRIVER_VERSION="$(cat "${__type}/files/chrome-driver-version")"
|
||||
CHROME_DRIVER_HASH="$(cat "${__type}/files/chrome-driver-hash")"
|
||||
__download '/tmp/chromedriver.zip' \
|
||||
--url "https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip" \
|
||||
--sum "${CHROME_DRIVER_HASH}"
|
||||
CHROME_DRIVER_PATH='/usr/local/bin'
|
||||
require='__download/tmp/chromedriver.zip' __unpack '/tmp/chromedriver.zip' \
|
||||
--destination "${CHROME_DRIVER_PATH}" \
|
||||
--onchange "chown root:root ${CHROME_DRIVER_PATH} && chmod 0755 ${CHROME_DRIVER_PATH}"
|
||||
|
||||
CHROME_POLICIES='/etc/opt/chrome/policies/managed'
|
||||
require='__package/google-chrome-stable' __directory "${CHROME_POLICIES}" --parents
|
||||
require="__directory/${CHROME_POLICIES}" __file "${CHROME_POLICIES}/managed_policies" \
|
||||
--mode '644' \
|
||||
--source '-' <<EOF
|
||||
{ "CommandLineFlagSecurityWarningsEnabled": false }
|
||||
EOF
|
||||
|
||||
# Proceed only after installation/upgrade has finished
|
||||
export require='__package/jibri'
|
||||
__user_groups 'jibri' --group 'adm' --group 'audio' --group 'video' --group 'plugdev'
|
||||
|
||||
# shellcheck source=type/__jitsi_jibri/files/jibri.conf.sh
|
||||
. "${__type}/files/jibri.conf.sh" # This defines JIBRI_CONFIG
|
||||
__file '/etc/jitsi/jibri/jibri.conf' \
|
||||
--mode '0444' \
|
||||
--source '-' <<EOF
|
||||
${JIBRI_CONFIG}
|
||||
EOF
|
||||
|
||||
# thanks https://community.jitsi.org/t/jibri-recording-resolution-to-record-a-full-window-at-720p-without-cropping/104442
|
||||
# shellcheck source=type/__jitsi_jibri/files/xorg-video-dummy.conf
|
||||
. "${__type}/files/xorg-video-dummy.conf.sh" # This defines JIBRI_XORG_CONFIG
|
||||
__file '/etc/jitsi/jibri/xorg-video-dummy.conf' \
|
||||
--mode '0444' \
|
||||
--source '-' <<EOF
|
||||
${JIBRI_XORG_CONFIG}
|
||||
EOF
|
||||
|
||||
__file '/opt/jitsi/jibri/launch.sh' \
|
||||
--onchange 'systemctl daemon-reload && systemctl restart jibri.service' \
|
||||
--mode 755 \
|
||||
--source '-' <<EOF
|
||||
#!/bin/bash
|
||||
# Managed remotely, changes will be lost
|
||||
|
||||
exec /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Djava.util.logging.config.file=/etc/jitsi/jibri/logging.properties -Dconfig.file="/etc/jitsi/jibri/jibri.conf" -jar /opt/jitsi/jibri/jibri.jar --config "/etc/jitsi/jibri/config.json"
|
||||
EOF
|
||||
|
||||
__systemd_unit 'jibri.service' \
|
||||
--enablement-state 'enabled'
|
0
type/__jitsi_jibri/singleton
Normal file
0
type/__jitsi_jibri/singleton
Normal file
14
type/__jitsi_meet/files/jibri.cfg.lua.sh
Normal file
14
type/__jitsi_meet/files/jibri.cfg.lua.sh
Normal file
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh -eu
|
||||
|
||||
# Source:
|
||||
# https://github.com/jitsi/jibri#prosody
|
||||
|
||||
# shellcheck disable=SC2034 # This is intended to be included
|
||||
JIBRI_CONFIG="$(cat <<END
|
||||
VirtualHost "recorder.${JITSI_HOST:?}"
|
||||
modules_enabled = {
|
||||
"ping";
|
||||
}
|
||||
authentication = "internal_plain"
|
||||
END
|
||||
)"
|
|
@ -30,5 +30,18 @@ cat <<EOF
|
|||
EOF
|
||||
fi
|
||||
|
||||
# Jibri if needed
|
||||
if [ "${JIBRI_STATE:?}" = "present" ]; then
|
||||
cat <<EOF
|
||||
|
||||
jibri: {
|
||||
// The JID of the MUC to be used as a brewery for jibri instances for streaming.
|
||||
brewery-jid: "JibriBrewery@internal.auth.${JITSI_HOST:?}",
|
||||
// How long to wait for Jibri to start recording from the time it accepts a START request.
|
||||
pending-timeout: 90
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# End
|
||||
echo '}'
|
||||
|
|
|
@ -179,6 +179,34 @@ else
|
|||
SECURED_DOMAINS_STATE='absent'
|
||||
fi
|
||||
|
||||
if [ -f "${__object}/parameter/jibri" ]; then
|
||||
JIBRI_STATE='present'
|
||||
else
|
||||
JIBRI_STATE='absent'
|
||||
fi
|
||||
|
||||
export JIBRI_STATE
|
||||
# shellcheck source=type/__jitsi_meet/files/prosody.cfg.lua.sh
|
||||
. "${__type}/files/jibri.cfg.lua.sh" # This defines JIBRI_CONFIG
|
||||
__file "/etc/prosody/conf.d/01_jibri.cfg.lua" \
|
||||
--state "${JIBRI_STATE}" \
|
||||
--group prosody \
|
||||
--mode 0440 \
|
||||
--source - <<EOF
|
||||
${JIBRI_CONFIG}
|
||||
EOF
|
||||
# TODO/WARNING cleartext passwords
|
||||
JIBRI_AUTH_PASS='jibriauthpass'
|
||||
JIBRI_RECORDER_PASS='jibrirecorderpass'
|
||||
__jitsi_meet_user "jibri" \
|
||||
--password "${JIBRI_AUTH_PASS}" \
|
||||
--domain "auth.${JITSI_HOST}" \
|
||||
--state "${JIBRI_STATE}"
|
||||
__jitsi_meet_user "recorder" \
|
||||
--password "${JIBRI_RECORDER_PASS}" \
|
||||
--domain "recorder.${JITSI_HOST}" \
|
||||
--state "${JIBRI_STATE}"
|
||||
|
||||
# This is the main host config
|
||||
PROSODY_MAIN_CONFIG="YES"
|
||||
# Prosody settings for common components (jvb, focus, ...)
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
disable-prometheus-exporter
|
||||
secured-domains
|
||||
jibri
|
||||
|
|
|
@ -5,6 +5,7 @@ basic_urlencode() {
|
|||
}
|
||||
|
||||
PASSWD="$(cat "${__object}/parameter/password" 2>/dev/null || true)"
|
||||
DOMAIN="$(cat "${__object}/parameter/domain" 2>/dev/null || true)"
|
||||
STATE="$(cat "${__object}/parameter/state")"
|
||||
|
||||
if [ -z "${PASSWD}" ] && [ "${STATE}" != "absent" ]; then
|
||||
|
@ -23,7 +24,10 @@ EOF
|
|||
fi
|
||||
|
||||
JITSI_USER="$(basic_urlencode "${JITSI_USER_RAW}")"
|
||||
FQDN="$(basic_urlencode "${__target_host}")"
|
||||
if [ -z "${DOMAIN}" ]; then
|
||||
DOMAIN="${__target_host}"
|
||||
fi
|
||||
FQDN="$(basic_urlencode "${DOMAIN}")"
|
||||
FQDN_PATH="/var/lib/prosody/${FQDN}/accounts"
|
||||
FILENAME="${FQDN_PATH}/${JITSI_USER}.dat"
|
||||
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
password
|
||||
state
|
||||
domain
|
||||
|
|
Loading…
Reference in a new issue