{"id":6455,"date":"2022-02-11T08:58:09","date_gmt":"2022-02-11T14:58:09","guid":{"rendered":"https:\/\/ugit.siua.ac.cr\/?p=6455"},"modified":"2022-06-02T09:54:18","modified_gmt":"2022-06-02T15:54:18","slug":"instalacion-de-jitsi-meet-ct-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=6455","title":{"rendered":"Instalaci\u00f3n de Jitsi Meet CT Ubuntu 20.04"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Memoria Ram: 32768  \/ 32GB<\/li><li>Swap: 2048 \/ 2GB<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Network<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_094-1024x140.png\" alt=\"\" class=\"wp-image-6457\" width=\"880\" height=\"120\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_094-1024x140.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_094-300x41.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_094-768x105.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_094.png 1183w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">DNS<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"424\" height=\"159\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_095.png\" alt=\"\" class=\"wp-image-6458\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_095.png 424w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_095-300x113.png 300w\" sizes=\"(max-width: 424px) 100vw, 424px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Options<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"498\" height=\"379\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_096.png\" alt=\"\" class=\"wp-image-6460\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_096.png 498w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_096-300x228.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Firewall<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"581\" height=\"351\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_097.png\" alt=\"\" class=\"wp-image-6462\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_097.png 581w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_097-300x181.png 300w\" sizes=\"(max-width: 581px) 100vw, 581px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"554\" height=\"412\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_098.png\" alt=\"\" class=\"wp-image-6463\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_098.png 554w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_098-300x223.png 300w\" sizes=\"(max-width: 554px) 100vw, 554px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Actualizaci\u00f3n del servidor<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\napt upgrade<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n de rutas est\u00e1ticas<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Para el funcionamiento correcto de la redes el servidor debe almacenar las siguientes rutas est\u00e1ticas<\/li><li>Abrimos el servidor<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/systemd\/network\/eth0.network<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Contenido:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Match]\nName = eth0\n\n&#91;Network]\nDescription = Interface eth0 autoconfigured by PVE\nAddress = 10.20.200.74\/24\nDHCP = no\nIPv6AcceptRA = false<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Route]\nGateway=10.20.200.1\nDestination=10.20.200.0\/24\n&#91;Route]\nGateway=10.20.200.1\nDestination=10.30.240.0\/24<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>para mantener esta configuraci\u00f3n debemos crear el siguiente archivo para que proxmox no rescriba la informaci\u00f3n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>touch .pve-ignore.eth0.network\nls -la<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos el servidor para comprobar<\/li><li>Ejecutamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>netstat -rn<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Resultado:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>0.0.0.0         181.193.87.1    0.0.0.0         UG        0 0          0 net1\n10.20.200.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0\n10.20.200.0     10.20.200.1     255.255.255.0   UG        0 0          0 eth0\n10.30.240.0     10.20.200.1     255.255.255.0   UG        0 0          0 eth0\n181.193.87.0    0.0.0.0         255.255.255.240 U         0 0          0 net1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Aplicamos la gu\u00eda de seguridad V2<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"\/?p=1951\" target=\"_blank\" rel=\"noreferrer noopener\">\/?p=1951<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n de jitsi<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalaci\u00f3n de Jitsi Meet en contenedor Ubuntu 20.04<\/li><li>guias:<ol><li><a rel=\"noreferrer noopener\" href=\"https:\/\/jitsi.github.io\/handbook\/docs\/devops-guide\/devops-guide-quickstart\" target=\"_blank\">https:\/\/jitsi.github.io\/handbook\/docs\/devops-guide\/devops-guide-quickstart<\/a><\/li><\/ol><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n de dependencias<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos sudo y dependencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install ssh gnupg2 nginx-full sudo curl wget apt-transport-https software-properties-common -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos jaja<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install default-jre -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>java -version\n\n# Resultado\nopenjdk version \"11.0.13\" 2021-10-19\nOpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)\nOpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Jitsi requiere dependencias de Ubuntu universe, as\u00ed que:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-add-repository universe\nsudo apt update<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Definici\u00f3n de nombre de dominio<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Aseguramos que la m\u00e1quina tenga el nombre correcto dependiendo del dominio qu se selecciono para la aplicaci\u00f3n; por ejemplo en nuestro caso deseamos que sea https:\/\/conferencias.siua.ac.cr<\/li><li>Por tanto si ejecutamos el siguiente comando debe devolver el nombre de host \u00abconferencias\u00bb<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo hostnamectl<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Resultado:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>   Static hostname: conferencias\n         Icon name: computer-container\n           Chassis: container\n        Machine ID: b354c482f7cc342776f020ee5ea440c3\n           Boot ID: 6d42e953f2cc4c288096830005ffbdb8\n    Virtualization: lxc\n  Operating System: Ubuntu 20.04.3 LTS\n            Kernel: Linux 5.4.78-2-pve\n      Architecture: x86-64\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Si no lo podemos modificar con el comando<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo hostnamectl set-hostname conferencias<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Adem\u00e1s debemos asegurar que en el archivo \/etc\/hosts tenga tambien el nombre<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/hosts<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Debe contener:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>10.20.200.74 conferencias.siua.ac.cr.cr conferencias<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Finalmente verificamos todo con<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ping \"$(hostname)\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Agregar Repositorios<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Prosody<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>echo deb http:\/\/packages.prosody.im\/debian $(lsb_release -sc) main | sudo tee -a \/etc\/apt\/sources.list\nwget https:\/\/prosody.im\/files\/prosody-debian-packages.key -O- | sudo apt-key add -\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos el repositporio de jitsi videoBridge, Meet Jicofo Jigasi<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/download.jitsi.org\/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor &gt; \/usr\/share\/keyrings\/jitsi-keyring.gpg'\necho 'deb &#91;signed-by=\/usr\/share\/keyrings\/jitsi-keyring.gpg] https:\/\/download.jitsi.org stable\/' | sudo tee \/etc\/apt\/sources.list.d\/jitsi-stable.list &gt; \/dev\/null\n# update all package sources\nsudo apt update<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar firewall<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Debemos habilitar los siguientes puerto para el correcto funcionamiento<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>80 TCP &#8211; for SSL certificate verification \/ renewal with Let&#8217;s Encrypt<\/li><li>443 TCP &#8211; for general access to Jitsi Meet<\/li><li>4443 TCP &#8211; for fallback network video\/audio communications (when UDP is blocked for example)<\/li><li>10000 UDP &#8211; for general network video\/audio communications<\/li><li>22 TCP &#8211; if you access you server using SSH (change the port accordingly if it&#8217;s not 22)<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"281\" src=\"\/wp-content\/uploads\/2020\/08\/Selecci\u00f3n_015-1024x281.png\" alt=\"\" class=\"wp-image-3450\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/Selecci\u00f3n_015-1024x281.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/Selecci\u00f3n_015-300x82.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/Selecci\u00f3n_015-768x211.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/Selecci\u00f3n_015.png 1360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"267\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_099-1024x267.png\" alt=\"\" class=\"wp-image-6468\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_099-1024x267.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_099-300x78.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_099-768x200.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_099.png 1437w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>El instalador verificar\u00e1 si el servidor tiene nginx o apache instalado en ese orden<\/li><li>Instalamos JITSI MEET<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install jitsi-meet -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>En la primera ventana nos pide el FQDN el servidor <\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"243\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_100.png\" alt=\"\" class=\"wp-image-6471\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_100.png 766w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_100-300x95.png 300w\" sizes=\"(max-width: 766px) 100vw, 766px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>A continuaci\u00f3n no dice que si quiere generar un certificado o quiere utilizar uno propio, seleccionamos la primera opci\u00f3n luego lo podemos modificar por uno de letsencrypt<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"176\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_101-1024x176.png\" alt=\"\" class=\"wp-image-6472\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_101-1024x176.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_101-300x52.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_101-768x132.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_101-1536x264.png 1536w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_101.png 1847w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Letsencrypt<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Para crear un certificado por letsencrypt <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/usr\/share\/jitsi-meet\/scripts\/install-letsencrypt-cert.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Resultado<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>-------------------------------------------------------------------------\nThis script will:\n- Need a working DNS record pointing to this machine(for domain conferencias.siua.ac.cr)\n- Download certbot-auto from https:\/\/dl.eff.org to \/usr\/local\/sbin\n- Install additional dependencies in order to request Let\u2019s Encrypt certificate\n- If running with jetty serving web content, will stop Jitsi Videobridge\n- Configure and reload nginx or apache2, whichever is used\n\nYou need to agree to the ACME server's Subscriber Agreement (https:\/\/letsencrypt.org\/documents\/LE-SA-v1.1.1-August-1-2016.pdf) \nby providing an email address for important account notifications\nEnter your email and press &#91;ENTER]: interuniversitariadealajuela@gmail.com\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Si esta detr\u00e1s de NAT (no aplica)<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Si la aplicaci\u00f3n se encuentra detr\u00e1s de un NAT, debe aplicar los siguientes comandos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/jitsi\/videobridge\/sip-communicator.properties<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y agregar las siguientes lineas<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=&lt;Local.IP.Address&gt;\norg.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=&lt;Public.IP.Address&gt;\n\nEjemplo:\norg.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.20.200.74      \norg.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=186.15.227.78<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y comentar la siguiente linea<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ARCHIVO QUEDA AS\u00cd:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true\n#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443\norg.jitsi.videobridge.ENABLE_STATISTICS=true\norg.jitsi.videobridge.STATISTICS_TRANSPORT=muc\norg.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost\norg.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.conferencias.siua.ac.cr\norg.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb\norg.jitsi.videobridge.xmpp.user.shard.PASSWORD=PASSSSSSSSSSSS\norg.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.conferencias.siua.ac.cr\norg.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=94173669-4daf-4ba5-a7a1-4f77f517d89f\n\norg.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.20.200.74      \norg.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=186.15.227.78<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Cantidad de participantes<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Por defecto el sistema soporta bien menos de 100 participantes si desea aumentar este n\u00famero, abra el archivo <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/systemd\/system.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y modifique estos valores<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>DefaultLimitNOFILE=65000\nDefaultLimitNPROC=65000\nDefaultTasksMax=65000<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ARCHIVO QUEDANDO AS\u00cd:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#  This file is part of systemd.\n#\n#  systemd is free software; you can redistribute it and\/or modify it\n#  under the terms of the GNU Lesser General Public License as published by\n#  the Free Software Foundation; either version 2.1 of the License, or\n#  (at your option) any later version.\n#\n# Entries in this file show the compile time defaults.\n# You can change settings by editing this file.\n# Defaults can be restored by simply deleting this file.\n#\n# See systemd-system.conf(5) for details.\n\n&#91;Manager]\n#LogLevel=info\n#LogTarget=journal-or-kmsg\n#LogColor=yes\n#LogLocation=no\n#DumpCore=yes\n#ShowStatus=yes\n#CrashChangeVT=no\n#CrashShell=no\n#CrashReboot=no\n#CtrlAltDelBurstAction=reboot-force\n#CPUAffinity=1 2\n#JoinControllers=cpu,cpuacct net_cls,net_prio\n#RuntimeWatchdogSec=0\n#ShutdownWatchdogSec=10min\n#CapabilityBoundingSet=\n#SystemCallArchitectures=\n#TimerSlackNSec=\n#DefaultTimerAccuracySec=1min\n#DefaultStandardOutput=journal\n#DefaultStandardError=inherit\n#DefaultTimeoutStartSec=90s\n#DefaultTimeoutStopSec=90s\n#DefaultRestartSec=100ms\n#DefaultStartLimitIntervalSec=10s\n#DefaultStartLimitBurst=5\n#DefaultEnvironment=\n#DefaultCPUAccounting=no\n#DefaultIOAccounting=no\n#DefaultIPAccounting=no\n#DefaultBlockIOAccounting=no\n#DefaultMemoryAccounting=no\n#DefaultTasksAccounting=yes\n#DefaultTasksMax=\n#DefaultLimitCPU=\n#DefaultLimitFSIZE=\n#DefaultLimitDATA=\n#DefaultLimitSTACK=\n#DefaultLimitCORE=\n#DefaultLimitRSS=\n#DefaultLimitNOFILE=\n#DefaultLimitAS=\n#DefaultLimitNPROC=\n#DefaultLimitMEMLOCK=\n#DefaultLimitLOCKS=\n#DefaultLimitSIGPENDING=\n#DefaultLimitMSGQUEUE=\n#DefaultLimitNICE=\n#DefaultLimitRTPRIO=\n#DefaultLimitRTTIME=\n#IPAddressAllow=\n#IPAddressDeny=\nDefaultLimitNOFILE=65000\nDefaultLimitNPROC=65000\nDefaultTasksMax=65000<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Para aplicar recargue el sistema y aplique los cambios<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl daemon-reload\nsystemctl restart jitsi-videobridge2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Podemos consultar esos valores con <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl show --property DefaultLimitNPROC\nsystemctl show --property DefaultLimitNOFILE\nsystemctl show --property DefaultTasksMax<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Podemos verificar el estado del servicio<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status jitsi-videobridge2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y ejecutar el siguiente comando para ver la cantidad de procesos soportados<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/proc\/`cat \/var\/run\/jitsi-videobridge\/jitsi-videobridge.pid`\/limits<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Resultado:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Max processes             65000                65000                processes \nMax open files            65000                65000                files<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ya con esto podemos ingresar:<ul><li><a href=\"https:\/\/conferencias.siua.ac.cr\">https:\/\/conferencias.siua.ac.cr<\/a><\/li><\/ul><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Desinstalar ( Si da error)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Log de error<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/jitsi\/jvb.log\n\/var\/log\/jitsi\/jicofo.log\n\/var\/log\/prosody\/prosody.log<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">SIP-Gateway<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Si tiene una cuenta de SIP, instale jigasi<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get -y install jigasi<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Durante la instalaci\u00f3n le pedir\u00e1 su usuario y contrase\u00f1a de su cuenta SIP<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Habilitar Speaker Stats<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/prosody\/conf.avail\/conferencias.siua.ac.cr.cfg.lua<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificamos que tenga<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"863\" height=\"573\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_102.png\" alt=\"\" class=\"wp-image-6475\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_102.png 863w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_102-300x199.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_102-768x510.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_102-120x80.png 120w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"61\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_103.png\" alt=\"\" class=\"wp-image-6477\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_103.png 693w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_103-300x26.png 300w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"255\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_104.png\" alt=\"\" class=\"wp-image-6478\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_104.png 479w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_104-300x160.png 300w\" sizes=\"(max-width: 479px) 100vw, 479px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar Jibri para live stremming y recording MV Ubuntu 18.04<\/h2>\n\n\n\n<p>GUIA: <a rel=\"noreferrer noopener\" aria-label=\"https:\/\/github.com\/jitsi\/jibri (abre en una nueva pesta\u00f1a)\" href=\"https:\/\/github.com\/jitsi\/jibri\" target=\"_blank\">https:\/\/github.com\/jitsi\/jibri<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">M\u00e1quina virtual<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>NOTA: Debe se m\u00e1quina virtual xq contenedor no sirve por que no se pueden activar los m\u00f3dulos del kernel<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"522\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_112.png\" alt=\"\" class=\"wp-image-6487\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_112.png 715w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_112-300x219.png 300w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"529\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_113.png\" alt=\"\" class=\"wp-image-6488\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_113.png 718w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_113-300x221.png 300w\" sizes=\"(max-width: 718px) 100vw, 718px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"519\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_114.png\" alt=\"\" class=\"wp-image-6489\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_114.png 701w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_114-300x222.png 300w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"515\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_115.png\" alt=\"\" class=\"wp-image-6490\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_115.png 714w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_115-300x216.png 300w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"717\" height=\"522\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_116.png\" alt=\"\" class=\"wp-image-6491\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_116.png 717w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_116-300x218.png 300w\" sizes=\"(max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"515\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_117.png\" alt=\"\" class=\"wp-image-6492\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_117.png 713w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_117-300x217.png 300w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"701\" height=\"514\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_118.png\" alt=\"\" class=\"wp-image-6493\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_118.png 701w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_118-300x220.png 300w\" sizes=\"(max-width: 701px) 100vw, 701px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"333\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_119.png\" alt=\"\" class=\"wp-image-6494\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_119.png 424w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_119-300x236.png 300w\" sizes=\"(max-width: 424px) 100vw, 424px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"421\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_120.png\" alt=\"\" class=\"wp-image-6495\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_120.png 604w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_120-300x209.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"656\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_121.png\" alt=\"\" class=\"wp-image-6496\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_121.png 722w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_121-300x273.png 300w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"727\" height=\"660\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_122.png\" alt=\"\" class=\"wp-image-6497\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_122.png 727w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_122-300x272.png 300w\" sizes=\"(max-width: 727px) 100vw, 727px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"716\" height=\"576\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_123.png\" alt=\"\" class=\"wp-image-6498\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_123.png 716w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_123-300x241.png 300w\" sizes=\"(max-width: 716px) 100vw, 716px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"186\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_124.png\" alt=\"\" class=\"wp-image-6499\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_124.png 779w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_124-300x72.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_124-768x183.png 768w\" sizes=\"(max-width: 779px) 100vw, 779px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"751\" height=\"136\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_125.png\" alt=\"\" class=\"wp-image-6500\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_125.png 751w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_125-300x54.png 300w\" sizes=\"(max-width: 751px) 100vw, 751px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"363\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_126.png\" alt=\"\" class=\"wp-image-6501\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_126.png 536w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_126-300x203.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_126-120x80.png 120w\" sizes=\"(max-width: 536px) 100vw, 536px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"640\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_127.png\" alt=\"\" class=\"wp-image-6502\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_127.png 620w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_127-291x300.png 291w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"235\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_128.png\" alt=\"\" class=\"wp-image-6503\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_128.png 550w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_128-300x128.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"735\" height=\"315\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_129.png\" alt=\"\" class=\"wp-image-6504\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_129.png 735w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_129-300x129.png 300w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"268\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_130.png\" alt=\"\" class=\"wp-image-6505\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_130.png 746w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_130-300x108.png 300w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"728\" height=\"418\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_131.png\" alt=\"\" class=\"wp-image-6506\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_131.png 728w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_131-300x172.png 300w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>login: ugit\n\n#Cambiar password root\nsudo su\nsu root\npasswd root\nNew: CA3\n\n#Actualizar\napt update\napt upgrade\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Firewall<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Debemos habilitar los puertos en firewall<ul><li>SSH (22\/44)<\/li><li>Web 80 y 443 (TCP)<\/li><li>10000:60000 (TCP\/UDP)<\/li><li>5222 y 5347<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"258\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_110-1024x258.png\" alt=\"\" class=\"wp-image-6485\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_110-1024x258.png 1024w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_110-300x75.png 300w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_110-768x193.png 768w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_110.png 1379w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"506\" height=\"454\" src=\"\/wp-content\/uploads\/2022\/02\/Seleccion_111.png\" alt=\"\" class=\"wp-image-6486\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_111.png 506w, https:\/\/sada.services\/wp-content\/uploads\/2022\/02\/Seleccion_111-300x269.png 300w\" sizes=\"(max-width: 506px) 100vw, 506px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Dependencias<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install unzip gnupg2 -y<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>para hacer live stremmming y grabar su conferencias es necesario instalar Jibri<\/li><li>Requisitos el modulo ALSA and Loopback Device deben estar activados<\/li><li>Para probarlos ejecute el comando<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>lsmod | grep snd_aloop<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Si muestra la salida <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>snd-aloop module loaded<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>El m\u00f3dulo esta activado<\/li><li>Sino haga <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install linux-image-extra-virtual -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>hacemos que se cargue el modulo en el arranque<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"snd-aloop\" &gt;&gt; \/etc\/modules<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>cargamos el modulo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>modprobe snd-aloop<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>verificamos que el modulo se cargo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>lsmod | grep snd_aloop<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>resultado<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>snd_aloop              24576  0\nsnd_pcm               106496  1 snd_aloop\nsnd                    86016  3 snd_aloop,snd_timer,snd_pcm<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos la carga de Ffmpeg with X11 capture support<\/li><li>este viene habilitado por defecto en ubuntu 16.04 <\/li><li>Si utiliza  unio anterior debe hacer<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo add-apt-repository ppa:mc3man\/bionic-prop\nsudo apt-get update\nsudo apt-get upgrade\nsudo apt-get install ffmpeg -y<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Google Chrome stable &amp; Chromedriver<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>ahora dentro del servidor debemos instalar la ultima versi\u00f3n de chrome<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -sS -o - https:\/\/dl-ssl.google.com\/linux\/linux_signing_key.pub | apt-key add\necho \"deb &#91;arch=amd64] http:\/\/dl.google.com\/linux\/chrome\/deb\/ stable main\" &gt; \/etc\/apt\/sources.list.d\/google-chrome.list\napt update &amp;&amp; apt install google-chrome-stable -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Para ocultar el Warning que nos sacar\u00e1 Chrome que grabar\u00e1 la sesi\u00f3n: \u201cChrome is being controlled by automated test software\u201d lo indicaremos mediante una preferencia:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/etc\/opt\/chrome\/policies\/managed\necho '{ \"CommandLineFlagSecurityWarningsEnabled\": false }' &gt;&gt;\/etc\/opt\/chrome\/policies\/managed\/managed_policies.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora instalamos el Chromedriver<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com\/LATEST_RELEASE`\nwget -N http:\/\/chromedriver.storage.googleapis.com\/$CHROME_DRIVER_VERSION\/chromedriver_linux64.zip -P ~\/\nunzip ~\/chromedriver_linux64.zip -d ~\/\nrm ~\/chromedriver_linux64.zip\nmv -f ~\/chromedriver \/usr\/local\/bin\/chromedriver\nchown root:root \/usr\/local\/bin\/chromedriver\nchmod 0755 \/usr\/local\/bin\/chromedriver\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos otras dependencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install default-jre-headless ffmpeg curl alsa-utils icewm xdotool xserver-xorg-input-void xserver-xorg-video-dummy xserver-xorg-video-dummy ruby-hocon<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Instalamos java 8<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos java 8 (Jibri solo funciona con java 8)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install openjdk-8-jre -y\nsudo apt-get install openjdk-8-jdk -y<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>java -version\n\n# Resultado (Nos da otra que es la 11)\nopenjdk version \"11.0.13\" 2021-10-19\nOpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)\nOpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Le indicamos al sistema que versi\u00f3n de java vamos a usar java 8<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code> update-alternatives --config java<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>En este caso seleccionamos la 2 java 8<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>There are 2 choices for the alternative java (providing \/usr\/bin\/java).\n\n  Selection    Path                                            Priority   Status\n------------------------------------------------------------\n* 0            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java      1111      auto mode\n  1            \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java      1111      manual mode\n  2            \/usr\/lib\/jvm\/java-8-openjdk-amd64\/jre\/bin\/java   1081      manual mode\n\nPress &lt;enter&gt; to keep the current choice&#91;*], or type selection number: 2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos la variable JAVA_HOME con \u2018nano ~\/.bashrc\u2019, la a\u00f1adimos al final del fichero, y tras grabar el fichero saldremos de sesi\u00f3n y volveremos a cargar para confirmar que la variable se carga (con un simple \u2018echo $JAVA_HOME\u2019).<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>export JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/jre\/bin\/java<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Volvemos a verficar<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>java -version\n\n# Resultado\nopenjdk version \"1.8.0_312\"\nOpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~18.04-b07)\nOpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora copiamos el archivo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cp \/opt\/jitsi\/jibri\/launch.sh \/opt\/jitsi\/jibri\/launch.sh.bak<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos y remplazamos la palabra \u00abjava\u00bb por la ruta completa<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/opt\/jitsi\/jibri\/launch.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Remplazamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\nexec 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\"\n\n\nX\n\n#!\/bin\/bash\n\nexec \/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\"\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Instalaci\u00f3n de jibri<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos el repositorio de Jitsi<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/download.jitsi.org\/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor &gt; \/usr\/share\/keyrings\/jitsi-keyring.gpg'<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ceamos un sources.list.d<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'deb &#91;signed-by=\/usr\/share\/keyrings\/jitsi-keyring.gpg] https:\/\/download.jitsi.org stable\/' | sudo tee \/etc\/apt\/sources.list.d\/jitsi-stable.list &gt; \/dev\/null<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos JIBRI<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install jibri<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Al instalarse se crea el usuario \u00abjibri\u00bb y el grupo \u00abjibri\u00bb por defecto <\/li><li>Debemos incluir este usuario a los siguientes grupos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo usermod -aG adm,audio,video,plugdev jibri<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>por defecto jibri utiliza el siguiente directorio para el log, verifique que se cre\u00f3 <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ls \/var\/log\/jitsi\/jibri<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora respaldamos el archivo de configuraci\u00f3n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cp \/etc\/jitsi\/jibri\/jibri.conf \/etc\/jitsi\/jibri\/jibri.conf.bak<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora abrimos el siguiente archivo para configurarlo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/jitsi\/jibri\/jibri.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Eliminamos todo y agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>jibri {\n  id = \"\"\n  single-use-mode = false\n\n  recording {\n    recordings-directory = \"\/srv\/recordings\"\n    finalize-script = \"\/srv\/recordings\/finalize_recording.sh\"\n  }\n\n  streaming {\n    rtmp-allow-list = &#91;\n      \".*\"\n    ]\n  }\n\n  chrome {\n    flags = &#91;\n      \/\/ \"--ignore-certificate-errors\",\n      \"--use-fake-ui-for-media-stream\",\n      \"--start-maximized\",\n      \"--kiosk\",\n      \"--enabled\",\n      \"--disable-infobars\",\n      \"--autoplay-policy=no-user-gesture-required\"\n    ]\n  }\n\n  ffmpeg {\n    resolution = \"1920x1080\"\n    audio-source = \"alsa\"\n    audio-device = \"plug:bsnoop\"\n  }\n\n  api {\n    http {\n      external-api-port = 2222\n      internal-api-port = 3333\n    }\n\n    xmpp {\n      environments = &#91;{\n        name = \"eb-environment\"\n        xmpp-server-hosts = &#91;\"conferencias.siua.ac.cr\"]\n        xmpp-domain = \"conferencias.siua.ac.cr\"\n\n        control-muc {\n          domain = \"internal.auth.conferencias.siua.ac.cr\"\n          room-name = \"JibriBrewery\"\n          nickname = \"jibri-nickname\"\n        }\n\n        control-login {\n          domain = \"auth.conferencias.siua.ac.cr\"\n          username = \"jibri\"\n          password = \"AC2\"\n        }\n\n        call-login {\n          domain = \"recorder.conferencias.siua.ac.cr\"\n          username = \"recorder\"\n          password = \"AC2\"\n        }\n\n        strip-from-room-domain = \"conference.\"\n        usage-timeout = 0\n        trust-all-xmpp-certs = true\n      }]\n    }\n  }\n\n  stats {\n    enable-stats-d = true\n  }\n\n  call-status-checks {\n    no-media-timeout = 30 seconds\n    all-muted-timeout = 10 minutes\n    default-call-empty-timeout = 30 seconds\n  }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos la carpeta<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/srv\/recordings<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos el archivo que se va ejecutar despu\u00e9s de terminar una grabaci\u00f3n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/srv\/recordings\/finalize_recording.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Le agregamos el siguiente contenido, esto por que jibri crea carpetas con nombres aleatorios, entonces para queden con el nombre de la conferencias, modificamos el nombre de la carpeta al finalizar la grabaci\u00f3n<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\n#Recibimos el directorio donde se almaceno el video\nnombreDirectorioAnterior=$1                               \n\n#Ingresamos al directorio pasado como parametro\ncd $nombreDirectorioAnterior\n\n#Listamos los archivos que tengan extensi\u00f3n .mp4 y se lo asignamos a la variable\nnombreVideo=$(ls *.mp4)\n\n#Cortamos la extesi\u00f3n del archivo\nnombreCarpeta=$(echo \"$nombreVideo\" | cut -f 1 -d '.')\n\n#Nos devolvemos un nivel en los directorio\ncd ..\n\n#Renombramos la carpeta\nmv $nombreDirectorioAnterior \"\/srv\/recordings\/siuaCONFE_\"$nombreCarpeta\n\nexit 0\n\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y le asignamos un due\u00f1o<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown jibri:jitsi \/srv\/recordings\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Le damos permisos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 777 -R \/srv\/recordings\/finalize_recording.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agreamos el usuario www-data al grupo jibri para que se puedan eliminar conferencias desde la web (hay que revisar)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>usermod -a -G www-data jibri\nusermod -a -G jibri www-data\nsetfacl -d -m u:jibri:rwx,u:www-data:rwx \/srv\/recordings\/\nchmod -R 775 \/var\/www\/html\/conferencias\/conferencias\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos el servicio<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service jibri restart \nservice jibri status<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos que el servicio para arranque el iniciar el sistema operativo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable jibri-xorg\nsystemctl enable jibri-icewm\nsystemctl enable jibri\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>para poder descargar los videos instalamos php7.0 y apache2<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># Instalamos php\napt install apache2 php libapache2-mod-php php-mysql\n\n#Para instalar php-mcrypt\nsudo apt-get install gcc make autoconf libc-dev pkg-config\nsudo apt-get install php7.2-dev libmcrypt-dev\n\n# Abrimos\nsudo nano \/etc\/php\/7.2\/apache2\/php.ini\n\n# Buscamos las extensiones y agregamos\nextension=mcrypt.so\n\n#Reiniciamos apache2\nsudo service apache2 restart<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Habilitamos UTF-8<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/conf-available\/charset.conf\n#Descomentamos\nAddDefaultCharset UTF-8<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Como las conferencias pueden pesar bastante es necesario modificar el archivo php.ini para que de soporte a la descarga de archivos grandes, abrimos el archivo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/php\/7.2\/apache2\/php.ini<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos los siguientes valores<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>max_execution_time = 30\nX\nmax_execution_time = 300000\n\nmemory_limit = 128M\nX\nmemory_limit = 1024M<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Instalamos m\u00f3dulos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2enmod ssl\na2enmod headers\nservice apache2 restart<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora creamos las carpetas para almacenar los certificados<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/etc\/apache2\/certificados\/jibri.siua.ac.cr<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Proxy<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora ingresamos a proxy y le pasamos la llave ssh al servidor jibri, seg\u00fan gu\u00eda <a rel=\"noreferrer noopener\" href=\"\/?p=6396\" target=\"_blank\">\/?p=6396<\/a><\/li><li>Ahora pasamos del proxy los certificados <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>scp -P 44 -r \/etc\/letsencrypt\/live\/jibri.siua.ac.cr\/fullchain.pem root@10.20.200.75:\/etc\/apache2\/certificados\/jibri.siua.ac.cr\/fullchain.pem\nscp -P 44 -r \/etc\/letsencrypt\/live\/jibri.siua.ac.cr\/privkey.pem root@10.20.200.75:\/etc\/apache2\/certificados\/jibri.siua.ac.cr\/privkey.pem<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">JIBRI<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>ahora seguimos la guia para crear un dominio con letsencrypt y proxy- reverso y creamos los hvost <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/sites-available\/jibri.siua.ac.cr.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Contenido<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;VirtualHost *:80&gt;\n\n    #************************************************************************\n    #******************* DATOS DEL SITIO WEB ********************************\n    #************************************************************************\n    ServerName jibri.siua.ac.cr\n    ServerAlias www.jibri.siua.ac.cr\n    ErrorLog \/var\/log\/apache2\/jibri_80.siua.ac.cr-error.log\n    CustomLog \/var\/log\/apache2\/jibri_80.siua.ac.cr-access.log common\n\n    #************************************************************************\n    #********************** DATOS DEL WEBMASTER *****************************\n    #************************************************************************\n    ServerAdmin interuniversitariadealajuela@gmail.com\n    Header add Author \"Unidad de Gestion e Innovacion Tecnologica\"\n\n    #************************************************************************\n    #********************* DATOS DEL REDIRECIONAMIENTO **********************\n    #************************************************************************\n    RedirectMatch permanent ^\/(.*) https:\/\/jibri.siua.ac.cr\/$1\n\n\n    #************************************************************************\n    #************************* DATOS DEL SITIO WEB **************************\n    #************************************************************************\n    DocumentRoot \/var\/www\/html\/\n\n&lt;\/VirtualHost&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Luego el ssl<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apache2\/sites-available\/jibri.siua.ac.cr-le-ssl.conf<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Contenido<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;IfModule mod_ssl.c&gt;\n\n   #************************************************************************\n   #HTTPS:\/\/www.jibri.siua.ac.cr\n   #************************************************************************\n   &lt;VirtualHost *:443&gt;\n        ServerName www.jibri.siua.ac.cr\n        RedirectMatch permanent ^\/(.*) https:\/\/jibri.siua.ac.cr\/$1\n        #************************************************************************\n        #*************************** DATOS DEL CERTIFICADO **********************\n        #************************************************************************\n        SSLEngine on\n        SSLCertificateFile \/etc\/apache2\/certificados\/jibri.siua.ac.cr\/fullchain.pem\n        SSLCertificateKeyFile \/etc\/apache2\/certificados\/jibri.siua.ac.cr\/privkey.pem\n   &lt;\/VirtualHost&gt;\n\n   #************************************************************************\n   #HTTPS:\/\/jibri.siua.ac.cr\n   #************************************************************************\n   &lt;VirtualHost *:443&gt;\n\n        #************************************************************************\n        #******************* DATOS DEL SITIO WEB ********************************\n        #************************************************************************\n        ServerName jibri.siua.ac.cr\n        ErrorLog \/var\/log\/apache2\/jibri_443.siua.ac.cr-error.log\n        CustomLog \/var\/log\/apache2\/jibri_443.siua.ac.cr-access.log common\n\n        #************************************************************************\n        #********************** DATOS DEL WEBMASTER *****************************\n        #************************************************************************\n        ServerAdmin interuniversitariadealajuela@gmail.com\n        Header add Author \"Unidad de Gestion e Innovacion Tecnologica\"\n\n\n        #************************************************************************\n        #************************** DATOS DEL CERTIFICADO ***********************\n        #************************************************************************\n        SSLEngine on\n        SSLCertificateFile \/etc\/apache2\/certificados\/jibri.siua.ac.cr\/fullchain.pem\n        SSLCertificateKeyFile \/etc\/apache2\/certificados\/jibri.siua.ac.cr\/privkey.pem\n\n        #************************************************************************\n        #************************** DATOS DEL SITIO WEB *************************\n        #************************************************************************\n        DocumentRoot \/var\/www\/html\/conferencias\/conferencias\n\n\t&lt;Directory \"\/var\/www\/html\/conferencias\/conferencias\"&gt;\n          Options Indexes SymLinksIfOwnerMatch FollowSymLinks\n          AllowOverride All\n          Require all granted\n        &lt;\/Directory&gt;\n  &lt;\/VirtualHost&gt;\n&lt;\/IfModule&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Activamos los sitios <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>a2ensite jibri.siua.ac.cr.conf\na2ensite jibri.siua.ac.cr-le-ssl.conf\nservice apache2 reload<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Creamos la carpeta <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/www\/html\/conferencias<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Luego creamos un enlace simbolico a \/srv\/recordings dentro de conferencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>ln -s \/srv\/recordings\/ \/var\/www\/html\/conferencias\/conferencias<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ingresamos al directorio<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/conferencias\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>cambiamos el usuario del enlace<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>chown -R jibri:www-data conferencias<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Finalmente clonamos el proyecto y lo pegamos dentro de \/var\/www\/html\/conferencias\/conferencias<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/conferencias\/conferencias\ngit clone https:\/\/git.siua.ac.cr\/siua\/jibri.siua.ac.cr.git<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Luego hacemos que los archivos de jibri.siua.ac.cr esten directamente dentro de <\/li><\/ul>\n\n\n\n<pre id=\"block-659883bd-cd10-4eb9-ba11-ee1c77149858\" class=\"wp-block-code\"><code>cd jibri.siua.ac.cr\ncp -R * \/var\/www\/html\/conferencias\/conferencias\ncd ..\nrm -R jibri.siua.ac.cr\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Para descarga de videos: <a href=\"https:\/\/jibri.siua.ac.cr\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/jibri.siua.ac.cr\/<\/a><\/li><li>Para la administraci\u00f3n de videos <a rel=\"noreferrer noopener\" href=\"https:\/\/jibri.siua.ac.cr\/admin.php\" target=\"_blank\">https:\/\/jibri.siua.ac.cr\/admin.php<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Servidor Jitsi-meet<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora vamos a configurar jitsi-meet para soportar jibri<\/li><li>Abrimos el archivo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/prosody\/conf.d\/conferencias.siua.ac.cr.cfg.lua<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos el siguiente codigo al final (cambiar el dominio)<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Component \"internal.auth.conferencias.siua.ac.cr\" \"muc\"\n    modules_enabled = {\n      \"ping\";\n    }\n    storage = \"internal\"\n    muc_room_cache_size = 1000\n\nVirtualHost \"recorder.conferencias.siua.ac.cr\"\n  modules_enabled = {\n    \"ping\";\n  }\n  authentication = \"internal_plain\"<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Recagargamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/prosody reload<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora cremos las cuentas que jibri utilizar\u00e1<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>prosodyctl register jibri auth.conferencias.siua.ac.cr AC2\nprosodyctl register recorder recorder.conferencias.siua.ac.cr AC2<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>La primera cuenta es la que Jibri usar\u00e1 para iniciar sesi\u00f3n en el MUC de control (donde Jibri enviar\u00e1 su estado y esperar\u00e1 comandos). La segunda cuenta es la que Jibri usar\u00e1 como cliente en selenio cuando se una a la llamada para que pueda ser tratada de manera especial por la interfaz de usuario web de Jitsi Meet.<\/li><li>Podemos ver los usuarios creados para auth y recorder  en <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/lib\/prosody\/auth%2econferencias%2esiua%2eac%2ecr\/accounts\/\ncd \/var\/lib\/prosody\/recorder%2econferencias%2esiua%2eac%2ecr\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>A\u00f1adimos estas 2 linas al final de \/etc\/jitsi\/jicofo\/sip-communicator.properties para localizar los controladores Jibri:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/jitsi\/jicofo\/sip-communicator.properties<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos al final<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.conferencias.siua.ac.cr\norg.jitsi.jicofo.jibri.PENDING_TIMEOUT=90\norg.jitsi.jicofo.HEALTH_CHECK_INTERVAL=-1<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/jicofo restart<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora modificamos el archivo para habilitar las grabaciones<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/jitsi\/meet\/conferencias.siua.ac.cr-config.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Descomentamos y modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ fileRecordingsEnabled: false,\nX\nfileRecordingsEnabled: true,\n\n\n\/\/ liveStreamingEnabled: false,\nX\nliveStreamingEnabled: true,\n\n\/\/enableNoisyMicDetection: true,\nX\nenableNoisyMicDetection: false,<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>hiddenDomain: 'recorder.conferencias.siua.ac.cr',<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciamos servicios<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/init.d\/jicofo restart\n\/etc\/init.d\/jitsi-videobridge2 restart\n\/etc\/init.d\/prosody restart<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Actualizamos certificados<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo update-ca-certificates -f<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Personalizaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Para personalizar ingrese a \/usr\/share\/jitsi-meet<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/usr\/share\/jitsi-meet<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Titulo pagina<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/interface_config.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Cambiamos <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>-------------------------------------------\nDEFAULT_LOCAL_DISPLAY_NAME: 'me',\nX\nDEFAULT_LOCAL_DISPLAY_NAME: 'Yo',\n-------------------------------------------\nDEFAULT_REMOTE_DISPLAY_NAME: 'Fellow Jitster',\nX\nDEFAULT_REMOTE_DISPLAY_NAME: 'Nuevo Miembro',\n-------------------------------------------\nJITSI_WATERMARK_LINK: 'https:\/\/jitsi.org',\nX\nJITSI_WATERMARK_LINK: '\/?p=3233',\n-------------------------------------------\nAPP_NAME: 'Jitsi Meet',\nX\nAPP_NAME: 'Conferencias SIUA',\n-------------------------------------------\nNATIVE_APP_NAME: 'Jitsi Meet',\nX\nNATIVE_APP_NAME: 'Conferencias SIUA',\n-------------------------------------------\nPROVIDER_NAME: 'Jitsi',\nX\nPROVIDER_NAME: 'SIUA',\n\n-------------------------------------------\nLIVE_STREAMING_HELP_LINK: 'https:\/\/jitsi.org\/live',\nX\nLIVE_STREAMING_HELP_LINK: 'https:\/\/ugit.siua.ac.cr',\n-------------------------------------------\nSUPPORT_URL: 'https:\/\/community.jitsi.org\/',\nX\nSUPPORT_URL: 'https:\/\/ugit.siua.ac.cr',\n-------------------------------------------\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ARCHIVO QUEDANDO AS\u00cd<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* eslint-disable no-unused-vars, no-var, max-len *\/\n\/* eslint sort-keys: &#91;\"error\", \"asc\", {\"caseSensitive\": false}] *\/\n\nvar interfaceConfig = {\n    APP_NAME: 'Conferencias SIUA',\n    AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',\n    AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',\n\n    \/**\n     * A UX mode where the last screen share participant is automatically\n     * pinned. Valid values are the string \"remote-only\" so remote participants\n     * get pinned but not local, otherwise any truthy value for all participants,\n     * and any falsy value to disable the feature.\n     *\n     * Note: this mode is experimental and subject to breakage.\n     *\/\n    AUTO_PIN_LATEST_SCREEN_SHARE: 'remote-only',\n    BRAND_WATERMARK_LINK: '',\n\n    CLOSE_PAGE_GUEST_HINT: false, \/\/ A html text to be shown to guests on the close page, false disables it\n    \/**\n     * Whether the connection indicator icon should hide itself based on\n     * connection strength. If true, the connection indicator will remain\n     * displayed while the participant has a weak connection and will hide\n     * itself after the CONNECTION_INDICATOR_HIDE_TIMEOUT when the connection is\n     * strong.\n     *\n     * @type {boolean}\n     *\/\n    CONNECTION_INDICATOR_AUTO_HIDE_ENABLED: true,\n\n    \/**\n     * How long the connection indicator should remain displayed before hiding.\n     * Used in conjunction with CONNECTION_INDICATOR_AUTOHIDE_ENABLED.\n     *\n     * @type {number}\n     *\/\n    CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT: 5000,\n\n    \/**\n     * If true, hides the connection indicators completely.\n     *\n     * @type {boolean}\n     *\/\n    CONNECTION_INDICATOR_DISABLED: false,\n\n    DEFAULT_BACKGROUND: '#474747',\n    DEFAULT_LOCAL_DISPLAY_NAME: 'Yo',\n    DEFAULT_LOGO_URL: 'images\/watermark.png',\n    DEFAULT_REMOTE_DISPLAY_NAME: 'Nuevo miembro',\n\n    DISABLE_DOMINANT_SPEAKER_INDICATOR: false,\n\n    DISABLE_FOCUS_INDICATOR: false,\n\n    \/**\n     * If true, notifications regarding joining\/leaving are no longer displayed.\n     *\/\n    DISABLE_JOIN_LEAVE_NOTIFICATIONS: false,\n\n    \/**\n     * If true, presence status: busy, calling, connected etc. is not displayed.\n     *\/\n    DISABLE_PRESENCE_STATUS: false,\n\n    \/**\n     * Whether the ringing sound in the call\/ring overlay is disabled. If\n     * {@code undefined}, defaults to {@code false}.\n     *\n     * @type {boolean}\n     *\/\n    DISABLE_RINGING: false,\n\n    \/**\n     * Whether the speech to text transcription subtitles panel is disabled.\n     * If {@code undefined}, defaults to {@code false}.\n     *\n     * @type {boolean}\n     *\/\n    DISABLE_TRANSCRIPTION_SUBTITLES: false,\n\n    \/**\n     * Whether or not the blurred video background for large video should be\n     * displayed on browsers that can support it.\n     *\/\n    DISABLE_VIDEO_BACKGROUND: false,\n\n    DISPLAY_WELCOME_PAGE_CONTENT: true,\n    DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT: false,\n\n    ENABLE_DIAL_OUT: true,\n\n    ENABLE_FEEDBACK_ANIMATION: false, \/\/ Enables feedback star animation.\n\n    FILM_STRIP_MAX_HEIGHT: 120,\n\n    \/**\n     * Whether to only show the filmstrip (and hide the toolbar).\n     *\/\n    filmStripOnly: false,\n\n    GENERATE_ROOMNAMES_ON_WELCOME_PAGE: true,\n\n    \/**\n     * Hide the invite prompt in the header when alone in the meeting.\n     *\/\n    HIDE_INVITE_MORE_HEADER: false,\n\n    INITIAL_TOOLBAR_TIMEOUT: 20000,\n    JITSI_WATERMARK_LINK: '\/?p=3233',\n\n    LANG_DETECTION: true, \/\/ Allow i18n to detect the system language\n    LIVE_STREAMING_HELP_LINK: 'https:\/\/ugit.siua.ac.cr', \/\/ Documentation reference for the live streaming feature.\n    LOCAL_THUMBNAIL_RATIO: 16 \/ 9, \/\/ 16:9\n\n    \/**\n     * Maximum coefficient of the ratio of the large video to the visible area\n     * after the large video is scaled to fit the window.\n     *\n     * @type {number}\n     *\/\n    MAXIMUM_ZOOMING_COEFFICIENT: 1.3,\n\n    \/**\n     * Whether the mobile app Jitsi Meet is to be promoted to participants\n     * attempting to join a conference in a mobile Web browser. If\n     * {@code undefined}, defaults to {@code true}.\n     *\n     * @type {boolean}\n     *\/\n    MOBILE_APP_PROMO: true,\n\n    NATIVE_APP_NAME: 'Conferencias SIUA',\n\n    \/\/ Names of browsers which should show a warning stating the current browser\n    \/\/ has a suboptimal experience. Browsers which are not listed as optimal or\n    \/\/ unsupported are considered suboptimal. Valid values are:\n    \/\/ chrome, chromium, edge, electron, firefox, nwjs, opera, safari\n    OPTIMAL_BROWSERS: &#91; 'chrome', 'chromium', 'firefox', 'nwjs', 'electron', 'safari' ],\n\n    POLICY_LOGO: null,\n    PROVIDER_NAME: 'SIUA',\n\n    \/**\n     * If true, will display recent list\n     *\n     * @type {boolean}\n     *\/\n    RECENT_LIST_ENABLED: true,\n    REMOTE_THUMBNAIL_RATIO: 1, \/\/ 1:1\n\n    SETTINGS_SECTIONS: &#91; 'devices', 'language', 'moderator', 'profile', 'calendar' ],\n    SHOW_BRAND_WATERMARK: false,\n\n    \/**\n    * Decides whether the chrome extension banner should be rendered on the landing page and during the meeting.\n    * If this is set to false, the banner will not be rendered at all. If set to true, the check for extension(s)\n    * being already installed is done before rendering.\n    *\/\n    SHOW_CHROME_EXTENSION_BANNER: false,\n\n    SHOW_DEEP_LINKING_IMAGE: false,\n    SHOW_JITSI_WATERMARK: true,\n    SHOW_POWERED_BY: false,\n    SHOW_PROMOTIONAL_CLOSE_PAGE: false,\n    SHOW_WATERMARK_FOR_GUESTS: true, \/\/ if watermark is disabled by default, it can be shown only for guests\n\n    \/*\n     * If indicated some of the error dialogs may point to the support URL for\n     * help.\n     *\/\n    SUPPORT_URL: 'https:\/\/ugit.siua.ac.cr',\n\n    TOOLBAR_ALWAYS_VISIBLE: false,\n\n    \/**\n     * The name of the toolbar buttons to display in the toolbar, including the\n     * \"More actions\" menu. If present, the button will display. Exceptions are\n     * \"livestreaming\" and \"recording\" which also require being a moderator and\n     * some values in config.js to be enabled. Also, the \"profile\" button will\n     * not display for users with a JWT.\n     * Notes:\n     * - it's impossible to choose which buttons go in the \"More actions\" menu\n     * - it's impossible to control the placement of buttons\n     * - 'desktop' controls the \"Share your screen\" button\n     *\/\n    TOOLBAR_BUTTONS: &#91;\n        'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen',\n        'fodeviceselection', 'hangup', 'profile', 'chat', 'recording',\n        'livestreaming', 'etherpad', 'sharedvideo', 'settings', 'raisehand',\n        'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts',\n        'tileview', 'videobackgroundblur', 'download', 'help', 'mute-everyone', 'security'\n    ],\n\n    TOOLBAR_TIMEOUT: 4000,\n\n    \/\/ Browsers, in addition to those which do not fully support WebRTC, that\n    \/\/ are not supported and should show the unsupported browser page.\n    UNSUPPORTED_BROWSERS: &#91;],\n\n    \/**\n     * Whether to show thumbnails in filmstrip as a column instead of as a row.\n     *\/\n    VERTICAL_FILMSTRIP: true,\n\n    \/\/ Determines how the video would fit the screen. 'both' would fit the whole\n    \/\/ screen, 'height' would fit the original video height to the height of the\n    \/\/ screen, 'width' would fit the original video width to the width of the\n    \/\/ screen respecting ratio.\n    VIDEO_LAYOUT_FIT: 'both',\n\n    \/**\n     * If true, hides the video quality label indicating the resolution status\n     * of the current large video.\n     *\n     * @type {boolean}\n     *\/\n    VIDEO_QUALITY_LABEL_DISABLED: false,\n\n    \/**\n     * When enabled, the kick participant button will not be presented for users without a JWT\n     *\/\n    \/\/ HIDE_KICK_BUTTON_FOR_GUESTS: false,\n\n    \/**\n     * How many columns the tile view can expand to. The respected range is\n     * between 1 and 5.\n     *\/\n    \/\/ TILE_VIEW_MAX_COLUMNS: 5,\n\n    \/**\n     * Specify custom URL for downloading android mobile app.\n     *\/\n    \/\/ MOBILE_DOWNLOAD_LINK_ANDROID: 'https:\/\/play.google.com\/store\/apps\/details?id=org.jitsi.meet',\n\n    \/**\n     * Specify URL for downloading ios mobile app.\n     *\/\n    \/\/ MOBILE_DOWNLOAD_LINK_IOS: 'https:\/\/itunes.apple.com\/us\/app\/jitsi-meet\/id1165103905',\n\n    \/**\n     * Specify Firebase dynamic link properties for the mobile apps.\n     *\/\n    \/\/ MOBILE_DYNAMIC_LINK: {\n    \/\/    APN: 'org.jitsi.meet',\n    \/\/    APP_CODE: 'w2atb',\n    \/\/    CUSTOM_DOMAIN: undefined,\n    \/\/    IBI: 'com.atlassian.JitsiMeet.ios',\n    \/\/    ISI: '1165103905'\n    \/\/ },\n\n    \/**\n     * Specify mobile app scheme for opening the app from the mobile browser.\n     *\/\n    \/\/ APP_SCHEME: 'org.jitsi.meet',\n\n    \/**\n     * Specify the Android app package name.\n     *\/\n    \/\/ ANDROID_APP_PACKAGE: 'org.jitsi.meet',\n\n    \/**\n     * Override the behavior of some notifications to remain displayed until\n     * explicitly dismissed through a user action. The value is how long, in\n     * milliseconds, those notifications should remain displayed.\n     *\/\n    \/\/ ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT: 15000,\n\n    \/\/ List of undocumented settings\n    \/**\n     INDICATOR_FONT_SIZES\n     PHONE_NUMBER_REGEX\n    *\/\n\n    \/\/ Allow all above example options to include a trailing comma and\n    \/\/ prevent fear when commenting out the last value.\n    \/\/ eslint-disable-next-line sort-keys\n    makeJsonParserHappy: 'even if last key had a trailing comma'\n\n    \/\/ No configuration value should follow this line.\n};\n\n\/* eslint-enable no-unused-vars, no-var, max-len *\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>para modificar lso texto<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/lang\/main-es.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\"title\": \"Videoconferencias seguras, con gran variedad de funcionalidades y completamente gratuitas\"\nX\n\"title\": \"Bienvenido, Conferencias SIUA\"\n\n-----------------------------------------------------\n\"appDescription\": \"Adelante, video chat con todo el equipo. De hecho, invita a todos los que conozcas. {{app}} es una soluci\u00f3n de videoconferencia de c\u00f3digo abierto de 100%, totalmente encriptada, que puede usar todo el d\u00eda, todos los d\u00edas, de forma gratuita, sin necesidad de contar con ninguna cuenta.\",\nX\n\"appDescription\": \"La Sede Interuniversitaria de Alajuela (SIUA) le da la bienvenida. El sistema '{{app}}'  es una soluci\u00f3n de videoconferencias disponible para la comunidad universitaria de la SIUA. Para crear o unirse a una conferencia, simplemente digite el nombre de la conferencia, si esta existe, se unir\u00e1 o en caso contrario se crear\u00e1. Se le recomienda establecer una contrase\u00f1a para la conferencia y compartirla con sus usuarios, de otra forma cualquier persona se podr\u00e1 unir. Para descargar la conferencia ingrese a https:\/\/jibri.siua.ac.cr\",\n\n\n-----------------------------------------------------\n\"enterRoomTitle\": \"Comenzar una reuni\u00f3n\",\nX\n\"enterRoomTitle\": \"Crear o unirse a una conferencia\",\n\n-----------------------------------------------------\n\"setDisplayNameLabel\": \"Establecer nombre a mostrar\",\nX\n\"setDisplayNameLabel\": \"Digite su nombre\",\n-----------------------------------------------------\n\"setEmailInput\": \"Introducir e-mail\",\nX\n\"setEmailInput\": \"Digite su e-mail\",\n-----------------------------------------------------\n\"setEmailLabel\": \"Establecer su gravatar\",\nX\n\"setEmailLabel\": \"Digite su e-mail\",<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ARCHIVO QUEDANDO AS\u00cd:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"addPeople\": {\n        \"add\": \"Invitar\",\n        \"addContacts\": \"Invitar a sus contactos\",\n        \"copyInvite\": \"Copiar la invitaci\u00f3n a la reuni\u00f3n\",\n        \"copyLink\": \"Copiar el link de la reuni\u00f3n\",\n        \"copyStream\": \"Copiar el link de la transmisi\u00f3n en vivo\",\n        \"countryNotSupported\": \"Aun no contamos con soporte a este destino.\",\n        \"countryReminder\": \"\u00bfLlamando fuera de los Estados Unidos? \u00a1Por favor, aseg\u00farese de empezar con el c\u00f3digo de pa\u00eds!\",\n        \"defaultEmail\": \"Direcci\u00f3n de correo por defecto\",\n        \"disabled\": \"No puede invitar a otras personas.\",\n        \"failedToAdd\": \"Error al agregar participantes\",\n        \"footerText\": \"La marcaci\u00f3n est\u00e1 desactivada.\",\n        \"googleEmail\": \"Correo electr\u00f3nico de Google\",\n        \"inviteMoreHeader\": \"Usted se encuentra solo en la reuni\u00f3n\",\n        \"inviteMoreMailSubject\": \"Unirse a la reunion {{appName}}\",\n        \"inviteMorePrompt\": \"Invitar a m\u00e1s personas\",\n        \"linkCopied\": \"Link copiado al portapapeles\",\n        \"loading\": \"Buscando por contacto y n\u00famero telef\u00f3nico\",\n        \"loadingNumber\": \"Validando el n\u00famero telef\u00f3nico\",\n        \"loadingPeople\": \"Buscando contactos a invitar\",        \n        \"noResults\": \"No se encontraron coincidencias\",\n        \"noValidNumbers\": \"Por favor ingrese un n\u00famero de tel\u00e9fono\",\n        \"outlookEmail\": \"Correo de Outlook\",\n        \"searchNumbers\": \"Agregar n\u00fameros telef\u00f3nicos\",\n        \"searchPeople\": \"B\u00fascar personas\",\n        \"searchPeopleAndNumbers\": \"Buscar personas o a\u00f1adir sus n\u00fameros de tel\u00e9fono\",\n        \"shareInvite\": \"Compartir la invitaci\u00f3n a la reuni\u00f3n\",\n        \"shareLink\": \"Compartir el link de la reunion\",\n        \"shareStream\": \"Compartie el link de la transmici\u00f3n en vivo\",\n        \"telephone\": \"Tel\u00e9fono: {{number}}\",\n        \"title\": \"Invitar a otras personas a esta reuni\u00f3n\",\n        \"yahooEmail\": \"Correo de Yahoo\"\n    },\n    \"audioDevices\": {\n        \"bluetooth\": \"Bluetooth\",\n        \"headphones\": \"Auriculares\",\n        \"phone\": \"Tel\u00e9fono\",\n        \"speaker\": \"Altavoz\",\n        \"none\": \"No hay dispositivos de audio disponibles\"\n    },\n    \"audioOnly\": {\n        \"audioOnly\": \"Bajo consumo de Ancho de Banda\"\n    },\n    \"calendarSync\": {\n        \"addMeetingURL\": \"Agregar un v\u00ednculo a la reuni\u00f3n\",\n        \"confirmAddLink\": \"\u00bfQuiere a\u00f1adir un enlace de Jitsi a este evento?\",\n        \"error\": {\n            \"appConfiguration\": \"La integraci\u00f3n del calendario no est\u00e1 configurada correctamente\",\n            \"generic\": \"Se ha producido un error. Compruebe la configuraci\u00f3n del calendario o pruebe cargarlo nuevamente.\",\n            \"notSignedIn\": \"Se ha producido un error de autenticaci\u00f3n para ver los eventos del calendario. Compruebe la configuraci\u00f3n del calendario e intente iniciar sesi\u00f3n de nuevo\"\n        },\n        \"join\": \"Unirse\",\n        \"joinTooltip\": \"Unirse a la reuni\u00f3n\",\n        \"nextMeeting\": \"pr\u00f3xima reuni\u00f3n\",\n        \"noEvents\": \"No hay eventos pr\u00f3ximos programados.\",\n        \"ongoingMeeting\": \"reuni\u00f3n en curso\",\n        \"permissionButton\": \"Abrir ajustes\",\n        \"permissionMessage\": \"Los permisos al calendario son necesarios para ver sus reuniones en la aplicaci\u00f3n.\",\n        \"refresh\": \"Actualizar calendario\",\n        \"today\": \"Hoy\"\n    },\n    \"chat\": {\n        \"error\": \"Error: su mensaje no se env\u00edo. Motivo: {{error}}\",\n        \"fieldPlaceHolder\": \"Escriba su mensaje aqu\u00ed\",\n        \"messagebox\": \"Escriba un mensaje\",\n        \"messageTo\": \"Mensaje privado para {{recipient}}\",\n        \"noMessagesMessage\": \"No hay mensajes en la reuni\u00f3n. \u00a1Inicie una conversaci\u00f3n!\",\n        \"nickname\": {\n            \"popover\": \"Seleccione un apodo\",\n            \"title\": \"Introduzca un apodo para usar el chat\"\n        },\n        \"privateNotice\": \"Mensaje privado para {{recipient}}\",\n        \"title\": \"Chat\",\n        \"you\": \"usted\"\n    },\n    \"chromeExtensionBanner\": {\n        \"installExtensionText\": \"Instalar la extensi\u00f3n para Google Calendar y la integraci\u00f3n con Office 365\",\n        \"buttonText\": \"Instalar extensi\u00f3n de Chrome\",\n        \"dontShowAgain\": \"No mostrar nuevamente\"\n    },\n    \"connectingOverlay\": {\n        \"joiningRoom\": \"Conect\u00e1ndose a su reuni\u00f3n\u2026\"\n    },\n    \"connection\": {\n        \"ATTACHED\": \"Adjunto\",\n        \"AUTHENTICATING\": \"Autenticando\",\n        \"AUTHFAIL\": \"Fallo\u0301 la autenticacio\u0301n\",\n        \"CONNECTED\": \"Conectado\",\n        \"CONNECTING\": \"Conectando\",\n        \"CONNFAIL\": \"Conexi\u00f3n fallida\",\n        \"DISCONNECTED\": \"Desconectado\",\n        \"DISCONNECTING\": \"Desconectando\",\n        \"ERROR\": \"Error\",\n        \"RECONNECTING\": \"Ocurri\u00f3 un problema en la red. Reconectando...\",\n        \"FETCH_SESSION_ID\": \"Obteniendo session-ID\u2026\",\n        \"GET_SESSION_ID_ERROR\": \"Obtener session-id error: {{code}}\",\n        \"GOT_SESSION_ID\": \"Obteniendo session-ID\u2026 Listo\",\n        \"LOW_BANDWIDTH\": \"Video para {{displayName}} ha sido deshabilitado para economizar ancho de banda\"\n    },\n    \"connectionindicator\": {\n        \"address\": \"Direcci\u00f3n:\",\n        \"bandwidth\": \"Ancho de banda estimado:\",\n        \"bitrate\": \"Tasa de transferencia:\",\n        \"bridgeCount\": \"Contador del servidor: \",\n        \"connectedTo\": \"Conectado a:\",\n        \"e2e_rtt\": \"E2E RTT:\",\n        \"framerate\": \"Fotogramas por segundo:\",\n        \"less\": \"Mostrar menos\",\n        \"localaddress\": \"Direcci\u00f3n local:\",\n        \"localaddress_plural\": \"Direcciones locales:\",\n        \"localport\": \"Puerto local:\",\n        \"localport_plural\": \"Puertos locales:\",\n        \"more\": \"Mostrar m\u00e1s\",\n        \"packetloss\": \"P\u00e9rdida de paquetes:\",\n        \"quality\": {\n            \"good\": \"Bueno\",\n            \"inactive\": \"Inactivo\",\n            \"lost\": \"Perdido\",\n            \"nonoptimal\": \"No \u00f3ptimo\",\n            \"poor\": \"Pobre\"\n        },\n        \"remoteaddress\": \"Direcci\u00f3n remota:\",\n        \"remoteaddress_plural\": \"Direcciones remotas:\",\n        \"remoteport\": \"Puerto remoto:\",\n        \"remoteport_plural\": \"Puertos remotos:\",\n        \"resolution\": \"Resolucio\u0301n:\",\n        \"status\": \"Estado:\",\n        \"transport\": \"Transporte:\",\n        \"transport_plural\": \"Transportes:\"\n    },\n    \"dateUtils\": {\n        \"earlier\": \"Anterior\",\n        \"today\": \"Hoy\",\n        \"yesterday\": \"Ayer\"\n    },\n    \"deepLinking\": {\n        \"appNotInstalled\": \"Necesita la aplicaci\u00f3n m\u00f3vil {{app}} para unirse a esta reuni\u00f3n en su tel\u00e9fono.\",\n        \"description\": \"\u00bfNo pas\u00f3 nada? Hemos intentado iniciar su reuni\u00f3n en la aplicaci\u00f3n de escritorio {{app}}. intente de nuevo o inicie en la aplicaci\u00f3n web {{app}}.\",\n        \"descriptionWithoutWeb\": \"\u00bfNo pas\u00f3 nada? Intentamos iniciar su reuni\u00f3n en la aplicaci\u00f3n de escritorio {{app}}.\",\n        \"downloadApp\": \"Descargar la app\",\n        \"launchWebButton\": \"Iniciar en web\",\n        \"ifDoNotHaveApp\": \"Si a\u00fan no tienes la app:\",\n        \"ifHaveApp\": \"Si ya tienes la app:\",\n        \"joinInApp\": \"Unirse a la reunion usando la app\",\n        \"launchWebButton\": \"Iniciar en la Web\",\n        \"openApp\": \"Continuar a la aplicaci\u00f3n\",\n        \"title\": \"Iniciar su reuni\u00f3n en {{app}}\u2026\",\n        \"tryAgainButton\": \"Intentar de nuevo en el escritorio\"\n    },\n    \"defaultLink\": \"ej. {{url}}\",\n    \"defaultNickname\": \"ej. Juana Rosas\",\n    \"deviceError\": {\n        \"cameraError\": \"Error al acceder a su c\u00e1mara\",\n        \"cameraPermission\": \"Error al obtener permiso de la c\u00e1mara\",\n        \"microphoneError\": \"Error al acceder a tu micr\u00f3fono\",\n        \"microphonePermission\": \"Error al obtener permiso del micr\u00f3fono\"\n    },\n    \"deviceSelection\": {\n        \"noPermission\": \"Permiso no concedido\",\n        \"previewUnavailable\": \"Vista previa no disponible\",\n        \"selectADevice\": \"Seleccionar un dispositivo\",\n        \"testAudio\": \"Reproducir un sonido de prueba\"\n    },\n    \"dialog\": {\n        \"accessibilityLabel\": {\n            \"liveStreaming\": \"Transmisi\u00f3n en Vivo\"\n        },\n        \"allow\": \"Permitir\",\n        \"alreadySharedVideoMsg\": \"Otro participante esta compartiendo un video. Esta conferencia solo permite compartir un video a la vez.\",\n        \"alreadySharedVideoTitle\": \"Solo se permite un video compartido a la vez\",\n        \"applicationWindow\": \"Ventana de aplicaci\u00f3n\",\n        \"Back\": \"Anterior\",\n        \"cameraConstraintFailedError\": \"Su c\u00e1mara no satisface algunos de los requerimientos.\",\n        \"cameraNotFoundError\": \"No se encontr\u00f3 la c\u00e1mara.\",\n        \"cameraNotSendingData\": \"No podemos acceder a su c\u00e1mara. Verifique si otra aplicaci\u00f3n est\u00e1 usando este dispositivo, seleccione otro dispositivo en el men\u00fa de configuraci\u00f3n o intente volver a cargar la aplicaci\u00f3n.\",\n        \"cameraNotSendingDataTitle\": \"No se puede acceder a la c\u00e1mara\",\n        \"cameraPermissionDeniedError\": \"No ha otorgado permisos para usar su c\u00e1mara. Puede unirse a la conferencia, pero no lo podr\u00e1n ver. Utilice el bot\u00f3n en la barra de direcci\u00f3n para solucionar esto.\",\n        \"cameraUnknownError\": \"No se puede usar su c\u00e1mara por motivos desconocidos.\",\n        \"cameraUnsupportedResolutionError\": \"Su c\u00e1mara no soporta la resoluci\u00f3n de video.\",\n        \"Cancel\": \"Cancelar\",\n        \"close\": \"Cerrar\",\n        \"conferenceDisconnectMsg\": \"Es posible que desee comprobar la conexi\u00f3n de red. Reconectando en {{seconds}} segundos\u2026\",\n        \"conferenceDisconnectTitle\": \"Ha sido desconectado.\",\n        \"conferenceReloadMsg\": \"Estamos tratando de arreglar esto. Reconectando en {{seconds}} segundos\u2026\",\n        \"conferenceReloadTitle\": \"Desafortunadamente, algo sali\u00f3 mal.\",\n        \"confirm\": \"Confirmar\",\n        \"confirmNo\": \"No\",\n        \"confirmYes\": \"S\u00ed\",\n        \"connectError\": \"\u00a1Oops! Algo salio mal y no fue posible conectarnos a la conferencia.\",\n        \"connectErrorWithMsg\": \"\u00a1Oops! Algo salio mal y no fue posible conectarnos a la conferencia: {{msg}}\",\n        \"connecting\": \"Conectando\",\n        \"contactSupport\": \"Contacte al soporte t\u00e9cnico\",\n        \"copy\": \"Copiar\",\n        \"dismiss\": \"Descartar\",\n        \"displayNameRequired\": \"\u00a1Hola! \u00bfCu\u00e1l es tu nombre?\",\n        \"done\": \"Listo\",\n        \"e2eeDescription\": \"El cifrado Extremo-a-Extremo es actualmente EXPERIMENTAL. Tenga en cuenta que activar el cifrado extremo-a-extremo puede deshabilitar servicios en el servidor como: grabaci\u00f3n, transmisi\u00f3n en vivo y participaci\u00f3n telef\u00f3nica. Sin embargo tenga en cuenta que esta reunion solo funcionar\u00e1 con personas que se unan usando un navegador.\",\n        \"e2eeWarning\": \"ATENCION: No todos los participantes de esta reuni\u00f3n soportan cifrado Extremo-a-Extremo. Si usted habilita el cifrado ellos no podr\u00e1n verlo ni oirlo.\",\n        \"enterDisplayName\": \"Por favor ingresa tu nombre aqu\u00ed\",\n        \"error\": \"Error\",\n        \"externalInstallationMsg\": \"Necesita instalar nuestra extensi\u00f3n para compartir escritorio.\",\n        \"externalInstallationTitle\": \"Extensi\u00f3n requerida\",\n        \"goToStore\": \"Ir al webstore\",\n        \"gracefulShutdown\": \"Nuestro servicio se encuentra en mantenimiento. Por favor, intente m\u00e1s tarde.\",\n        \"IamHost\": \"Yo soy el anfitri\u00f3n\",\n        \"incorrectRoomLockPassword\": \"Contrase\u00f1a incorrecta\",\n        \"incorrectPassword\": \"Nombre de usuario o contrase\u00f1a incorrecta\",\n        \"inlineInstallationMsg\": \"Necesita instalar nuestra extensi\u00f3n para compartir escritorio.\",\n        \"inlineInstallExtension\": \"Instalar ahora\",\n        \"internalError\": \"\u00a1Oops! Algo sali\u00f3 mal. El siguiente error ocurri\u00f3: {{error}}\",\n        \"internalErrorTitle\": \"Error interno\",\n        \"kickMessage\": \"Puede ponerse en contacto con {{participantDisplayName}} para obtener m\u00e1s detalles.\",\n        \"kickParticipantButton\": \"Expulsar\",\n        \"kickParticipantDialog\": \"\u00bfSeguro que quiere expulsar a este participante?\",\n        \"kickParticipantTitle\": \"\u00bfExpulsar a este participante?\",\n        \"kickTitle\": \"\u00a1Ay! {{participantDisplayName}} te expuls\u00f3 de la reuni\u00f3n\",\n        \"liveStreaming\": \"Emisi\u00f3n en Directo\",\n        \"liveStreamingDisabledForGuestTooltip\": \"Los invitados no pueden iniciar transmisiones en vivo.\",\n        \"liveStreamingDisabledTooltip\": \"Iniciar transmisi\u00f3n en vivo deshabilitado.\",\n        \"lockMessage\": \"No se pudo bloquear la conferencia.\",\n        \"lockRoom\": \"Agregar reunion $t(lockRoomPasswordUppercase)\",\n        \"lockTitle\": \"El bloqueo fall\u00f3\",\n        \"logoutQuestion\": \"\u00bfEst\u00e1 seguro que desea salir y detener la conferencia?\",\n        \"logoutTitle\": \"Cerrar sesi\u00f3n\",\n        \"maxUsersLimitReached\": \"El l\u00edmite m\u00e1ximo de participantes ha sido alcanzado. La conferencia est\u00e1 llena. Por favor contacta al organizador o intenta mas tarde.\",\n        \"maxUsersLimitReachedTitle\": \"Se ha alcanzado el l\u00edmite m\u00e1ximo de participantes\",\n        \"micConstraintFailedError\": \"El micr\u00f3fono no satisface algunos de los requerimientos.\",\n        \"micNotFoundError\": \"No se encontr\u00f3 el micr\u00f3fono.\",\n        \"micNotSendingData\": \"Vaya a la configuraci\u00f3n de su computadora para activar el micr\u00f3fono y ajustar su nivel\",\n        \"micNotSendingDataTitle\": \"Su micr\u00f3fono est\u00e1 silenciado en la configuraci\u00f3n de su sistema\",\n        \"micPermissionDeniedError\": \"No ha otorgado permisos para usar su micr\u00f3fono. Puede unirse a la conferencia, pero no lo podr\u00e1n escuchar. Utilice el bot\u00f3n en la barra de direcci\u00f3n para solucionar esto.\",\n        \"micUnknownError\": \"No se puede usar el micr\u00f3fono por motivos desconocidos.\",\n        \"muteEveryoneElseDialog\": \"Una vez silenciados, no podr\u00e1s quitarles el modo silencio, pero ellos podr\u00e1n hacerlo en cualquier momento.\",\n        \"muteEveryoneElseTitle\": \"\u00bfSilenciar a todos los participantes excepto a {{whom}}?\",\n        \"muteEveryoneDialog\": \"\u00bfEst\u00e1s seguro de silenciar a todos los participantes? No podr\u00e1s quitarles el modo en silencio, pero ellos podr\u00e1n hacerlo en cualquier momento.\",\n        \"muteEveryoneTitle\": \"\u00bfSilenciar a todos los participantes?\",\n        \"muteEveryoneSelf\": \"A ti mismo\",\n        \"muteEveryoneStartMuted\": \"Todos los participantes comienzan silenciados a partir de ahora\",\n        \"muteParticipantBody\": \"No podr\u00e1s quitarles el modo en silencio, pero ellos pueden quit\u00e1rselo en cualquier momento.\",\n        \"muteParticipantButton\": \"Silenciar\",\n        \"muteParticipantDialog\": \"\u00bfSeguro que quiere silenciar a este participante? No podr\u00e1 revertir esta acci\u00f3n, pero el participante podr\u00e1 hacerlo en cualquier momento\",\n        \"muteParticipantTitle\": \"\u00bfSilenciar a este participante?\",\n        \"Ok\": \"Aceptar\",\n        \"passwordLabel\": \"$t(lockRoomPasswordUppercase)\",\n        \"passwordNotSupported\": \"No se soporta $t(lockRoomPassword) en la reuni\u00f3n\",\n        \"passwordNotSupportedTitle\": \"$t(lockRoomPasswordUppercase) no es compatible\",\n        \"passwordRequired\": \"$t(lockRoomPasswordUppercase) necesario\",\n        \"popupError\": \"Su navegador est\u00e1 bloqueando las ventanas emergentes de este sitio. Habilite las ventanas emergentes en la configuraci\u00f3n de seguridad de su navegador y vuelva a intentarlo.\",\n        \"popupErrorTitle\": \"Ventana emergente bloqueada\",\n        \"recording\": \"Grabando\",\n        \"recordingDisabledForGuestTooltip\": \"Los hu\u00e9spedes no pueden iniciar grabaciones.\",\n        \"recordingDisabledTooltip\": \"Inicio de grabaci\u00f3n desactivado.\",\n        \"rejoinNow\": \"Reunirse ahora\",\n        \"remoteControlAllowedMessage\": \"{{user}} ha aceptado tu solicitud de control remoto!\",\n        \"remoteControlDeniedMessage\": \"{{user}} ha rechazado tu solicitud de control remoto!\",\n        \"remoteControlErrorMessage\": \"Ha ocurrido un error tratando de solicitar permiso de control remoto de {{user}}!\",\n        \"remoteControlRequestMessage\": \"\u00bfPermitir\u00e1 que {{user}} controle remotamente su escritorio?\",\n        \"remoteControlShareScreenWarning\": \"\u00a1Tenga en cuenta que si presiona \\\"Permitir\\\" usted compartir\u00e1 su pantalla!\",\n        \"remoteControlStopMessage\": \"La sesi\u00f3n de control remoto ha finalizado!\",\n        \"remoteControlTitle\": \"Control de escritorio remoto\",\n        \"Remove\": \"Eliminar\",\n        \"removePassword\": \"Eliminar $t(lockRoomPassword)\",\n        \"removeSharedVideoMsg\": \"\u00bfEst\u00e1 seguro que desea eliminar su v\u00eddeo compartido?\",\n        \"removeSharedVideoTitle\": \"Eliminar video compartido\",\n        \"reservationError\": \"Error del sistema de reservaci\u00f3n\",\n        \"reservationErrorMsg\": \"C\u00f3digo de error: {{code}}, message: {{msg}}\",\n        \"retry\": \"Reintentar\",\n        \"screenSharingAudio\": \"Compartir audio\",\n        \"screenSharingFailedToInstall\": \"Oops! Su extensi\u00f3n de uso compartido de pantalla no se pudo instalar.\",\n        \"screenSharingFailedToInstallTitle\": \"La extensi\u00f3n para compartir la pantalla no se pudo instalar\",\n        \"screenSharingFirefoxPermissionDeniedError\": \"Algo sali\u00f3 mal mientras trat\u00e1bamos de compartir la pantalla. Por favor, aseg\u00farese de que nos ha dado permiso para hacerlo. \",\n        \"screenSharingFirefoxPermissionDeniedTitle\": \"OOPS! \u00a1 No pudimos empezar a compartir la pantalla!\",\n        \"screenSharingPermissionDeniedError\": \"Oops! Algo sali\u00f3 mal con sus permisos de extensi\u00f3n para compartir pantalla. Por favor, vuelva a cargar e intente de nuevo.\",\n        \"sendPrivateMessage\": \"Acaba de recibir un mensaje privado. \u00bfDesea responder de forma privada?, \u00bfDesea responder al grupo?\",\n        \"sendPrivateMessageCancel\": \"Enviar al grupo\",\n        \"sendPrivateMessageOk\": \"Enviar privado\",\n        \"sendPrivateMessageTitle\": \"\u00bfEnviar privado?\",\n        \"serviceUnavailable\": \"Servicio no disponible\",\n        \"sessTerminated\": \"Llamada terminada\",\n        \"Share\": \"Compartir\",\n        \"shareVideoLinkError\": \"Por favor introduzca un enlace correcto de Youtube.\",\n        \"shareVideoTitle\": \"Compartir un v\u00eddeo\",\n        \"shareYourScreen\": \"Compartir su pantalla\",\n        \"shareYourScreenDisabled\": \"Pantalla compartida desactivada.\",\n        \"shareYourScreenDisabledForGuest\": \"Los hu\u00e9spedes no pueden compartir la pantalla.\",\n        \"startLiveStreaming\": \"Iniciar transmisi\u00f3n en vivo\",\n        \"startRecording\": \"Iniciar la grabaci\u00f3n\",\n        \"startRemoteControlErrorMessage\": \"\u00a1Se ha producido un error al intentar iniciar la sesi\u00f3n de control remoto!\",\n        \"stopLiveStreaming\": \"Detener transmisi\u00f3n en vivo\",\n        \"stopRecording\": \"Parar grabaci\u00f3n\",\n        \"stopRecordingWarning\": \"\u00bfEst\u00e1s seguro que quieres parar la grabaci\u00f3n?\",\n        \"stopStreamingWarning\": \"\u00bfEstas seguro que quieres parar la retransmisi\u00f3n en directo?\",\n        \"streamKey\": \"Tecla de transmisi\u00f3n en directo\",\n        \"Submit\": \"Enviar\",\n        \"thankYou\": \"\u00a1Gracias por usar {{appName}}!\",\n        \"token\": \"token\",\n        \"tokenAuthFailed\": \"Lo siento, usted no tiene permiso para unirse a este llamada.\",\n        \"tokenAuthFailedTitle\": \"Fallo\u0301 la autenticacio\u0301n\",\n        \"transcribing\": \"Transcribiendo\",\n        \"unlockRoom\": \"Eliminar reuni\u00f3n $t(lockRoomPassword)\",\n        \"userPassword\": \"contrase\u00f1a del usuario\",\n        \"WaitForHostMsg\": \"La conferencia &lt;b&gt; {{room}} &lt;\/b&gt; a\u00fan no ha comenzado. Si usted es el anfitri\u00f3n, por favor autent\u00edquese. De lo contrario, espere a que llegue el anfitri\u00f3n.\",\n        \"WaitForHostMsgWOk\": \"La conferencia &lt;b&gt; {{room}} &lt;\/b&gt; a\u00fan no ha comenzado. Si usted es el anfitri\u00f3n, presione Ok para autenticar. De lo contrario, espere a que llegue el anfitri\u00f3n.\",\n        \"WaitingForHost\": \"Esperando al anfitri\u00f3n \u2026\",\n        \"Yes\": \"S\u00ed\",\n        \"yourEntireScreen\": \"Su pantalla completa\",\n        \"muteEveryoneDialog\": \"Silenciar a todos\"\n    },\n    \"dialOut\": {\n        \"statusMessage\": \"est\u00e1 {{status}}\"\n    },\n    \"documentSharing\": {\n        \"title\": \"Compartir documento\"\n    },\n    \"e2ee\": {\n        \"labelToolTip\": \"La comunicaci\u00f3n de Audio y Video en esta reuni\u00f3n est\u00e1 cifrada Extremo-a-Extremo\"\n    },\n    \"feedback\": {\n        \"average\": \"Promedio\",\n        \"bad\": \"Malo\",\n        \"detailsLabel\": \"Nos puede decir m\u00e1s al respecto.\",\n        \"good\": \"Bueno\",\n        \"rateExperience\": \"Valore la experiencia de su reuni\u00f3n.\",\n        \"veryBad\": \"Muy Mal\",\n        \"veryGood\": \"Muy Bien\"\n    },\n    \"incomingCall\": {\n        \"answer\": \"Contestar\",\n        \"audioCallTitle\": \"Llamada entrante\",\n        \"decline\": \"Descartar\",\n        \"productLabel\": \"de Jitsi Meet\",\n        \"videoCallTitle\": \"Llamada de v\u00eddeo\"\n    },\n    \"info\": {\n        \"accessibilityLabel\": \"Mostrar Informaci\u00f3n\",\n        \"addPassword\": \"Agregar $t(lockRoomPassword)\",\n        \"cancelPassword\": \"Cancelar $t(lockRoomPassword)\",\n        \"conferenceURL\": \"Enlace:\",\n        \"country\": \"Pa\u00eds\",\n        \"dialANumber\": \"Para unirse a la reuni\u00f3n, marque uno de estos n\u00fameros e introduzca el PIN\",\n        \"dialInConferenceID\": \"PIN:\",\n        \"dialInNotSupported\": \"Lo sentimos, actualmente no se admite la marcaci\u00f3n.\",\n        \"dialInNumber\": \"Marcar:\",\n        \"dialInSummaryError\": \"Se ha producido un error al capturar la informaci\u00f3n de marcaci\u00f3n. Vuelva a intentarlo m\u00e1s tarde\",\n        \"dialInTollFree\": \"N\u00famero gratuito\",\n        \"genericError\": \"Ups, algo sali\u00f3 mal.\",\n        \"inviteLiveStream\": \"Marcado de un solo toque: {{number}},,{{conferenceID}}#\",\n        \"invitePhone\": \"Para unirse por tel\u00e9fono, presione: {{number}},,{{conferenceID}}#\\n\",\n        \"invitePhoneAlternatives\": \"\u00bfBusca un n\u00famero de marcaci\u00f3n diferente?\\nConsulte los n\u00fameros de marcaci\u00f3n de la reuni\u00f3n: {{url}}\\n\\n\\nSi est\u00e1 marcando a trav\u00e9s del tel\u00e9fono de otra reuni\u00f3n, \u00fanase sin conectarse al audio: {{silentUrl}}\",\n        \"inviteURLFirstPartGeneral\": \"Le han invitado a unirse a una reuni\u00f3n\",\n        \"inviteURLFirstPartPersonal\": \"{{name}} te esta invitando a una sesi\u00f3n.\\n\",\n        \"inviteURLSecondPart\": \"\\nUnirse a la reuni\u00f3n:\\n{{url}}\\n\",\n        \"liveStreamURL\": \"Transmisi\u00f3n en vivo:\",\n        \"moreNumbers\": \"M\u00e1s n\u00fameros\",\n        \"noNumbers\": \"Sin n\u00fameros a marcar.\",\n        \"noPassword\": \"Ninguno\",\n        \"noRoom\": \"No se especific\u00f3 la sala a marcar.\",\n        \"numbers\": \"N\u00fameros de marcado\",\n        \"password\": \"$t(lockRoomPasswordUppercase):\",\n        \"title\": \"Compartir\",\n        \"tooltip\": \"Compartir el enlace y acceso telef\u00f3nico para esta reuni\u00f3n\",\n        \"label\": \"Informaci\u00f3n de la reuni\u00f3n\"\n    },\n    \"inviteDialog\": {\n        \"alertText\": \"Se ha producido un error al invitar a algunos participantes\",\n        \"header\": \"Invitar\",\n        \"searchCallOnlyPlaceholder\": \"Introduzca n\u00famero de t\u00e9lefono\",\n        \"searchPeopleOnlyPlaceholder\": \"Buscar participantes\",\n        \"searchPlaceholder\": \"Participante o n\u00famero de tel\u00e9fono\",\n        \"send\": \"Enviar\"\n    },\n    \"inlineDialogFailure\": {\n        \"msg\": \"Tuvimos un peque\u00f1o tropiezo.\",\n        \"retry\": \"Intentar de nuevo\",\n        \"support\": \"Soporte\",\n        \"supportMsg\": \"Si esto sigue ocurriendo, cont\u00e1ctenos para\"\n    },\n    \"keyboardShortcuts\": {\n        \"focusLocal\": \"Enf\u00f3cate en tu video\",\n        \"focusRemote\": \"Centrarse en el v\u00eddeo de otra persona\",\n        \"fullScreen\": \"Ver o salir de pantalla completa\",\n        \"keyboardShortcuts\": \"Atajos de teclado\",\n        \"localRecording\": \"Mostrar u ocultar controles de grabaci\u00f3n locales\",\n        \"mute\": \"Activar o silenciar el micr\u00f3fono\",\n        \"pushToTalk\": \"Presione para hablar\",\n        \"raiseHand\": \"Levantar o bajar la mano\",\n        \"showSpeakerStats\": \"Estad\u00edsticas de participantes\",\n        \"toggleChat\": \"Abrir o cerrar panel de chat\",\n        \"toggleFilmstrip\": \"Mostrar\/Ocultar miniaturas de video\",\n        \"toggleScreensharing\": \"Cambiar entre c\u00e1mara y compartir pantalla\",\n        \"toggleShortcuts\": \"Mostrar\/ocultar atajos del teclado\",\n        \"videoMute\": \"Activar o desactivar tu c\u00e1mara\",\n        \"videoQuality\": \"Administrar la calidad de llamadas\"\n    },\n    \"liveStreaming\": {\n        \"busy\": \"Estamos trabajando para liberar recursos de transmisi\u00f3n. Por favor, int\u00e9ntelo de nuevo en unos minutos.\",\n        \"busyTitle\": \"Todos los streamers est\u00e1n ocupados actualmente\",\n        \"changeSignIn\": \"Cambiar cuentas.\",\n        \"choose\": \"Elija una secuencia en directo\",\n        \"chooseCTA\": \"Elija una opci\u00f3n de streaming. Actualmente est\u00e1 registrado como {{email}}.\",\n        \"enterStreamKey\": \"Ingrese su clave de YouTube live stream aqu\u00ed.\",\n        \"error\": \"La transmisi\u00f3n en vivo fall\u00f3. Por favor, int\u00e9ntelo de nuevo.\",\n        \"errorAPI\": \"Se produjo un error al acceder a las transmisiones de YouTube. Por favor intente iniciando sesi\u00f3n nuevamente.\",\n        \"errorLiveStreamNotEnabled\": \"La transmisi\u00f3n en vivo no est\u00e1 activada en {{email}}. Por favor, active la transmisi\u00f3n en vivo o inicie sesi\u00f3n en una cuenta con transmisi\u00f3n en vivo activada.\",\n        \"expandedOff\": \"La transmisi\u00f3n en vivo se ha detenido\",\n        \"expandedOn\": \"La reuni\u00f3n se est\u00e1 transmitiendo a YouTube.\",\n        \"expandedPending\": \"La transmisi\u00f3n en vivo se est\u00e1 iniciando \u2026\",\n        \"failedToStart\": \"La transmisi\u00f3n en vivo no se puso iniciar\",\n        \"getStreamKeyManually\": \"No pudimos buscar ninguna transmisi\u00f3n en vivo. Trate de obtener su clave de transmisi\u00f3n en vivo de YouTube.\",\n        \"invalidStreamKey\": \"Es posible que la clave de transmisi\u00f3n sea incorrecta\",\n        \"off\": \"Transmisi\u00f3n en vivo detenida\",\n        \"offBy\": \"{{name}} transmisi\u00f3n en directo\",\n        \"on\": \"Emisi\u00f3n en Directo\",\n        \"onBy\": \"{{name}} transmisi\u00f3n en directo iniciada\",\n        \"pending\": \"Iniciando Emisi\u00f3n en Directo\u2026\",\n        \"serviceName\": \"Servicio de streaming en vivo\",\n        \"signedInAs\": \"Actualmente est\u00e1 conectado como:\",\n        \"signIn\": \"Iniciar sesi\u00f3n con Google\",\n        \"signInCTA\": \"Iniciar sesi\u00f3n o ingrese su clave de transmisi\u00f3n en vivo de YouTube.\",\n        \"signOut\": \"Cerrar sesi\u00f3n\",\n        \"start\": \"Iniciar una transmisi\u00f3n en vivo\",\n        \"streamIdHelp\": \"\u00bfQu\u00e9 es esto?\",\n        \"unavailableTitle\": \"Transmisi\u00f3n en vivo no disponible\"\n    },\n    \"localRecording\": {\n        \"clientState\": {\n            \"off\": \"Apagado\",\n            \"on\": \"Encendido\",\n            \"unknown\": \"Desconocido\"\n        },\n        \"dialogTitle\": \"Controles de grabaci\u00f3n local\",\n        \"duration\": \"Duraci\u00f3n\",\n        \"durationNA\": \"N\/A\",\n        \"encoding\": \"Codificaci\u00f3n\",\n        \"label\": \"GLO\",\n        \"labelToolTip\": \"Grabaci\u00f3n local activada\",\n        \"localRecording\": \"Grabaci\u00f3n local\",\n        \"me\": \"Yo\",\n        \"messages\": {\n            \"engaged\": \"Grabaci\u00f3n local activada.\",\n            \"finished\": \"Sesi\u00f3n de grabaci\u00f3n {{token}} terminada. Por favor, env\u00ede el archivo grabado al moderador.\",\n            \"finishedModerator\": \"Sesi\u00f3n de grabaci\u00f3n {{token}} terminado. Se ha guardado la grabaci\u00f3n de la pista local. Por favor pida a los dem\u00e1s participantes que presenten sus grabaciones.\",\n            \"notModerator\": \"Usted no es el moderador. No puede iniciar o detener la grabaci\u00f3n local.\"\n        },\n        \"moderator\": \"Moderador\",\n        \"no\": \"No\",\n        \"participant\": \"Participante\",\n        \"participantStats\": \"Estad\u00edstica de participantes\",\n        \"sessionToken\": \"Token de sesi\u00f3n\",\n        \"start\": \"Iniciar grabaci\u00f3n\",\n        \"stop\": \"Detener grabaci\u00f3n\",\n        \"yes\": \"S\u00ed\"\n    },\n    \"lockRoomPassword\": \"contrase\u00f1a\",\n    \"lockRoomPasswordUppercase\": \"Contrase\u00f1a\",\n    \"me\": \"yo\",\n    \"notify\": {\n        \"connectedOneMember\": \"{{name}} se uni\u00f3 a la sesi\u00f3n \",\n        \"connectedThreePlusMembers\": \"{{name}} and {{count}} otros se unieron a la sesi\u00f3n\",\n        \"connectedTwoMembers\": \"{{first}} and {{second}} se han unido a la sesi\u00f3n\",\n        \"disconnected\": \"desconectado\",\n        \"focus\": \"Enfocar conferencia\",\n        \"focusFail\": \"{{component}} no disponible - reintentar en {{ms}} seg\",\n        \"grantedTo\": \"\u00a1Se otorgaron privilegios de moderador a {{to}}!\",\n        \"invitedOneMember\": \"{{displayName}} ha sido invitado\",\n        \"invitedThreePlusMembers\": \"{{name}} y otros {{count}} fueron invitados\",\n        \"invitedTwoMembers\": \"{{first}} y {{second}} fueron invitados\",\n        \"kickParticipant\": \"{{kicked}} desalojado por {{kicker}}\",\n        \"me\": \"Yo\",\n        \"moderator\": \"\u00a1Se otorgaron privilegios de moderador!\",\n        \"muted\": \"Has iniciado la conversaci\u00f3n silenciado.\",\n        \"mutedTitle\": \"\u00a1Est\u00e1s silenciado!\",\n        \"mutedRemotelyTitle\": \"\u00a1{{Nombre del participante}} te ha silenciado!\",\n        \"mutedRemotelyDescription\": \"Siempre puedes quitar el silencio cuando est\u00e9s listo para hablar. Silencie cuando termine para mantener el ruido alejado de la reuni\u00f3n.\",\n        \"passwordRemovedRemotely\": \"$t(lockRoomPasswordUppercase) eliminado por otro participante\",\n        \"passwordSetRemotely\": \"$t(lockRoomPasswordUppercase) establecido por otro participante\",\n        \"raisedHand\": \"{{name}} quisiera hablar.\",\n        \"somebody\": \"Alguien\",\n        \"startSilentTitle\": \"\u00a1Te uniste sin salida de audio!\",\n        \"startSilentDescription\": \"Vuelva a unirse a la reuni\u00f3n para habilitar el audio\",\n        \"suboptimalBrowserWarning\": \"Tememos que su experiencia en la reuni\u00f3n no sea tan buena. Estamos buscando formas de mejorar esto, pero hasta entonces intente utilizar uno de los &lt;a href='{{recommendedBrowserPageLink}}' target='_blank'&gt;navegadores totalmente compatibles&lt;\/a&gt;.\",\n        \"suboptimalExperienceTitle\": \"Advertencia del Explorador\",\n        \"unmute\": \"Dejar de silenciar\",\n        \"newDeviceCameraTitle\": \"Se ha detectado una nueva c\u00e1mara\",\n        \"newDeviceAudioTitle\": \"Se ha detectado un nuevo dispositivo de audio\",\n        \"newDeviceAction\": \"Usar\",\n        \"OldElectronAPPTitle\": \"Vulnerabilidades de Seguridad!\",\n        \"oldElectronClientDescription1\": \"Aparentemente usted est\u00e1 usuado una versi\u00f3n antigua de Jitsi Meet que tiene problemas de seguridad. Por favor actualice la versi\u00f3n con nuestra \",\n        \"oldElectronClientDescription2\": \"ultima versi\u00f3n\",\n        \"oldElectronClientDescription3\": \" ahora!\"\n    },\n    \"passwordSetRemotely\": \"definida por otro participante\",\n    \"passwordDigitsOnly\": \"Hasta {{number]] cifras\",\n    \"poweredby\": \"con tecnolog\u00eda de\",\n    \"prejoin\": {\n        \"audioAndVideoError\": \"Error en Audio y video:\",\n        \"audioOnlyError\": \"Error en Audio:\",\n        \"audioTrackError\": \"No se pured crear la pista de Audio.\",\n        \"callMe\": \"Ll\u00e1mame\",\n        \"callMeAtNumber\": \"Llamame a este n\u00famero:\",\n        \"configuringDevices\": \"Configurando dispositivos...\",\n        \"connectedWithAudioQ\": \"Usted est\u00e1 conectado con Audio?\",\n        \"copyAndShare\": \"Cipie y comparta el link de la reuini\u00f3n\",\n        \"dialInMeeting\": \"Marcar a la reuni\u00f3n\",\n        \"dialInPin\": \"Marcar a la reuni\u00f3n e ingresarel c\u00f3digo PIN:\",\n        \"dialing\": \"Marcando\",\n        \"doNotShow\": \"No mostrar nuevamente\",\n        \"errorDialOut\": \"Could not dial out\",\n        \"errorDialOutDisconnected\": \"Could not dial out. Disconnected\",\n        \"errorDialOutFailed\": \"Could not dial out. Call failed\",\n        \"errorDialOutStatus\": \"Error getting dial out status\",\n        \"errorStatusCode\": \"Error dialing out, status code: {{status}}\",\n        \"errorValidation\": \"Number validation failed\",\n        \"iWantToDialIn\": \"I want to dial in\",\n        \"joinAudioByPhone\": \"Join with phone audio\",\n        \"joinMeeting\": \"Join meeting\",\n        \"joinWithoutAudio\": \"Join without audio\",\n        \"initiated\": \"Call initiated\",\n        \"linkCopied\": \"Link copied to clipboard\",\n        \"lookGood\": \"It sounds like your microphone is working properly\",\n        \"or\": \"or\",\n        \"calling\": \"Calling\",\n        \"startWithPhone\": \"Start with phone audio\",\n        \"screenSharingError\": \"Screen sharing error:\",\n        \"videoOnlyError\": \"Video error:\",\n        \"videoTrackError\": \"Could not create video track.\",\n        \"viewAllNumbers\": \"view all numbers\"\n    },\n    \"presenceStatus\": {\n        \"busy\": \"Ocupado\",\n        \"calling\": \"Llamando\u2026\",\n        \"connected\": \"Conectado\",\n        \"connecting\": \"Conectando\u2026\",\n        \"connecting2\": \"Conectando*\u2026\",\n        \"disconnected\": \"Desconectado\",\n        \"expired\": \"Expirado\",\n        \"ignored\": \"Ignorado\",\n        \"initializingCall\": \"Iniciando llamada\u2026\",\n        \"invited\": \"Invitado\",\n        \"rejected\": \"Rechazado\",\n        \"ringing\": \"Timbrando\u2026\"\n    },\n    \"profile\": {\n        \"setDisplayNameLabel\": \"Digite su nombre\",\n        \"setEmailInput\": \"Digite su e-mail\",\n        \"setEmailLabel\": \"Digite su e-mail\",\n        \"title\": \"Perfil\"\n    },\n    \"raisedHand\": \"Desea hablar\",\n    \"recording\": {\n        \"authDropboxText\": \"Subir a Dropbox\",\n        \"availableSpace\": \"Espacio disponible: {{spaceLeft}} MB (aproximadamente {{duration}} minutos de grabaci\u00f3n)\",\n        \"beta\": \"BETA\",\n        \"busy\": \"Estamos trabajando para liberar recursos de grabaci\u00f3n. Por favor, int\u00e9ntelo de nuevo en unos minutos.\",\n        \"busyTitle\": \"Todas las grabadoras est\u00e1n actualmente ocupadas\",\n        \"error\": \"Falla de grabaci\u00f3n. Vuelva a intentarlo.\",\n        \"expandedOff\": \"Grabaci\u00f3n detenida\",\n        \"expandedOn\": \"La reuni\u00f3n est\u00e1 siendo grabada.\",\n        \"expandedPending\": \"La grabaci\u00f3n se est\u00e1 inciando\u2026\",\n        \"failedToStart\": \"No se pudo iniciar la grabaci\u00f3n\",\n        \"fileSharingdescription\": \"Compartir la grabaci\u00f3n con los participantes de la reuni\u00f3n\",\n        \"live\": \"Directo\",\n        \"loggedIn\": \"Sesi\u00f3n iniciada como {{userName}}\",\n        \"off\": \"Grabaci\u00f3n detenida\",\n        \"offBy\": \"{{name}} detuvo la grabaci\u00f3n\",\n        \"on\": \"Grabando\",\n        \"onBy\": \"{{name}} comenz\u00f3 la grabaci\u00f3n\",\n        \"pending\": \"Preparando para grabar la reuni\u00f3n\u2026\",\n        \"rec\": \"REC\",\n        \"serviceDescription\": \"El servicio de grabaci\u00f3n guardar\u00e1 la grabaci\u00f3n\",\n        \"serviceName\": \"Servicio de grabaci\u00f3n\",\n        \"signIn\": \"Iniciar sesi\u00f3n\",\n        \"signOut\": \"Cerrar sesi\u00f3n\",\n        \"unavailable\": \"Oops! El {{serviceName}} no est\u00e1 disponible actualmente. Estamos trabajando para resolver la situaci\u00f3n. Por favor intente m\u00e1s tarde.\",\n        \"unavailableTitle\": \"Grabaci\u00f3n no disponible\"\n    },\n    \"sectionList\": {\n        \"pullToRefresh\": \"Actualizar\"\n    },\n    \"security\": {\n        \"about\": \"Usted puede agregar una contrase\u00f1a a la reuni\u00f3n. Los participantes necesitaran la contrase\u00f1a para unirse a la reuni\u00f3n.\",\n        \"insecureRoomNameWarning\": \"El nombre de la sala es inseguro. Participantes no desseados pueden llegar a unirse a la reuni\u00f3n.\",\n        \"securityOptions\": \"Opciones de seguridad\"\n    },\n    \"settings\": {\n        \"calendar\": {\n            \"about\": \"La integraci\u00f3n del calendario {{appName}} se utiliza para acceder de forma segura a su calendario para que pueda leer los pr\u00f3ximos eventos.\",\n            \"disconnect\": \"Desconectar\",\n            \"microsoftSignIn\": \"Iniciar sesi\u00f3n con Microsoft\",\n            \"signedIn\": \"Actualmente accediendo a eventos de calendario para {{email}}. Haga clic en el bot\u00f3n desconectar de abajo para detener el acceso a eventos de calendario.\",\n            \"title\": \"Calendario\"\n        },\n        \"devices\": \"Dispositivos\",\n        \"followMe\": \"Todos me siguen\",\n        \"language\": \"Idioma\",\n        \"loggedIn\": \"Sesi\u00f3n iniciada como {{name}}\",\n        \"microphones\": \"Micr\u00f3fono\",\n        \"moderator\": \"Moderador\",\n        \"more\": \"M\u00e1s\",\n        \"name\": \"Nombre\",\n        \"noDevice\": \"Ninguno\",\n        \"selectAudioOutput\": \"Salida de audio\",\n        \"selectCamera\": \"Ca\u0301mara\",\n        \"selectMic\": \"Micr\u00f3fono\",\n        \"startAudioMuted\": \"Todos inician silenciados\",\n        \"startVideoMuted\": \"Todos inician con c\u00e1mara desactivada\",\n        \"title\": \"Ajustes\"\n    },\n    \"settingsView\": {\n        \"advanced\": \"Avanzado\",\n        \"alertOk\": \"OK\",\n        \"alertCancel\": \"Cancelar\",\n        \"alertTitle\": \"Aviso\",\n        \"alertURLText\": \"La direcci\u00f3n URL del servidor no es v\u00e1lida\",\n        \"buildInfoSection\": \"Informaci\u00f3n de la compilaci\u00f3n\",\n        \"conferenceSection\": \"Conferencia\",\n        \"disableCallIntegration\": \"Deshabilitar la integraci\u00f3n nativa de llamadas\",\n        \"disableP2P\": \"Deshabilitar el modo punto a punto\",\n        \"displayName\": \"Nombre a mostrar\",\n        \"email\": \"Email\",\n        \"header\": \"Ajustes\",\n        \"email\": \"Correo electr\u00f3nico\",\n        \"header\": \"Configuraci\u00f3n\",\n        \"profileSection\": \"Perfil\",\n        \"serverURL\": \"URL del servidor\",\n        \"showAdvanced\": \"Mostrar configuraci\u00f3n avanzada\",\n        \"startWithAudioMuted\": \"Inicio con audio en silencio\",\n        \"startWithVideoMuted\": \"Iniciar con el v\u00eddeo en silencio\",\n        \"version\": \"Versi\u00f3n\"\n    },\n    \"share\": {\n        \"dialInfoText\": \"\\n\\n=====\\n\\n\u00bfSolo quieres marcar en tu tel\u00e9fono?\\n\\n{{defaultDialInNumber}} Haga clic en este enlace para ver el marcado en los n\u00fameros de tel\u00e9fono de esta reuni\u00f3n\\n{{dialInfoPageUrl}}\",\n        \"mainText\": \"Presione en el siguiente enlace para unirse a la reuni\u00f3n:\\n{{roomUrl}}\"\n    },\n    \"speaker\": \"Participante\",\n    \"speakerStats\": {\n        \"hours\": \"{{count}}h\",\n        \"minutes\": \"{{count}}m\",\n        \"name\": \"Nombre\",\n        \"seconds\": \"{{count}}s\",\n        \"speakerStats\": \"Estad\u00edsticas de participantes\",\n        \"speakerTime\": \"Tiempo hablado\"\n    },\n    \"startupoverlay\": {\n        \"policyText\": \" \",\n        \"title\": \"La video llamada se interrumpi\u00f3 porque se detuvo este equipo.\"\n    },\n    \"suspendedoverlay\": {\n        \"rejoinKeyTitle\": \"Volver\",\n        \"text\": \"Presione el bot\u00f3n &lt;i&gt;Reunir&lt;\/i&gt; para reconectarse.\",\n        \"title\": \"La video llamada se interrumpi\u00f3 porque se detuvo este equipo.\"\n    },\n    \"toolbar\": {\n        \"accessibilityLabel\": {\n            \"audioOnly\": \"Alternar s\u00f3lo audio\",\n            \"audioRoute\": \"Seleccione el dispositivo de sonido\",\n            \"callQuality\": \"Administrar la calidad del video\",\n            \"cc\": \"Alternar subt\u00edtulos\",\n            \"chat\": \"Alternar ventana de chat\",\n            \"document\": \"Alternar documento compartido\",\n            \"download\": \"Descarga nuestras aplicaciones\",\n            \"e2ee\": \"Cifrado Extremo-a-Extremo\",\n            \"feedback\": \"Dejar comentarios\",\n            \"fullScreen\": \"Alternar pantalla completa\",\n            \"hangup\": \"Dejar la llamada\",\n            \"help\": \"Ayuda\",\n            \"invite\": \"Invitar personas\",\n            \"kick\": \"Expulsar participante\",\n            \"localRecording\": \"Alternar controles de grabaci\u00f3n locales\",\n            \"lockRoom\": \"Activar o desactivar contrase\u00f1a de la reuni\u00f3n\",\n            \"moreActions\": \"Men\u00fa alternar m\u00e1s acciones\",\n            \"moreActionsMenu\": \"Men\u00fa m\u00e1s acciones\",\n            \"mute\": \"Alternar audio mudo\",\n            \"pip\": \"Alternar modo de Picture-in-Picture\",\n            \"privateMessage\": \"Enviar mensaje privado\",\n            \"profile\": \"Editar tu perfil\",\n            \"raiseHand\": \"Levantar \/ Bajar tu mano\",\n            \"recording\": \"Activar grabaci\u00f3n\",\n            \"remoteMute\": \"Silenciar participante\",\n            \"security\": \"Opciones de seguridad\",\n            \"Settings\": \"Alternar configuraci\u00f3n\",\n            \"sharedvideo\": \"Alternar compartir un v\u00eddeo de YouTube\",\n            \"shareRoom\": \"Invitar a alguien\",\n            \"shareYourScreen\": \"Alternar compartir pantalla\",\n            \"shortcuts\": \"Alternar accesos directos\",\n            \"show\": \"Mostrar en escena\",\n            \"speakerStats\": \"Alternar estad\u00edsticas del orador\",\n            \"tileView\": \"Alternar vista de mosaico\",\n            \"toggleCamera\": \"Alternar c\u00e1mara\",\n            \"toggleFilmstrip\": \"Alternar mosaicos\",\n            \"videomute\": \"Alternar silencio de video\",\n            \"videoblur\": \"Alternar desenfoque de video\"\n        },\n        \"addPeople\": \"Agregar personas a su llamada\",\n        \"audioOnlyOff\": \"Deshabilitar el modo de ancho de banda bajo\",\n        \"audioOnlyOn\": \"Habilitar el modo de ancho de banda bajo\",\n        \"audioRoute\": \"Seleccione el dispositivo de sonido\",\n        \"authenticate\": \"Autenticar\",\n        \"callQuality\": \"Administrar la calidad del video\",\n        \"chat\": \"Abrir \/ cerrar sala de charla\",\n        \"closeChat\": \"Cerrar chat\",\n        \"documentClose\": \"Cerrar documento compartido\",\n        \"documentOpen\": \"Abrir documento compartido\",\n        \"download\": \"Descarga nuestras aplicaciones\",\n        \"e2ee\": \"Cifrado Extremo-a-Extremo\",\n        \"enterFullScreen\": \"Ver pantalla completa\",\n        \"enterTileView\": \"Entrar en vista de mosaico\",\n        \"exitFullScreen\": \"Salir de pantalla completa\",\n        \"exitTileView\": \"Salir de vista de mosaico\",\n        \"feedback\": \"Dejar comentarios\",\n        \"hangup\": \"Salir\",\n        \"help\": \"Ayuda\",\n        \"invite\": \"Invitar personas\",\n        \"login\": \"Inicio de sesi\u00f3n\",\n        \"logout\": \"Cerrar sesi\u00f3n\",\n        \"lowerYourHand\": \"Bajar la mano\",\n        \"moreActions\": \"M\u00e1s acciones\",\n        \"moreOptions\": \"M\u00e1s opciones\",\n        \"mute\": \"Activar o silenciar el micr\u00f3fono\",\n        \"muteEveryone\": \"Silenciar a todos\",\n        \"noAudioSignalTitle\": \"\u00a1No hay entrada proveniente de su micr\u00f3fono!\",\n        \"noAudioSignalDesc\": \"Si no lo silenci\u00f3 a prop\u00f3sito desde la configuraci\u00f3n del sistema o el dispositivo, considere cambiar el dispositivo.\",\n        \"noAudioSignalDescSuggestion\": \"Si no lo silenci\u00f3 a prop\u00f3sito desde la configuraci\u00f3n del sistema o el dispositivo, considere usar el siguiente dispositivo:\",\n        \"noAudioSignalDialInDesc\": \"Usted puede adem\u00e1s llamar usando:\",\n        \"noAudioSignalDialInLinkDesc\": \"N\u00fameros de llamada\",\n        \"noisyAudioInputTitle\": \"Su micr\u00f3fono parece estar ruidoso\",\n        \"noisyAudioInputDesc\": \"Parece que su micr\u00e1fono est\u00e1 haciendo ruido, por favor considere silenciarlo o cambiar de dispositivo.\",\n        \"openChat\": \"Abrir chat\",\n        \"pip\": \"Entra en el modo Picture-in-Picture\",\n        \"privateMessage\": \"Enviar mensaje privado\",\n        \"profile\": \"Editar tu perfil\",\n        \"raiseHand\": \"Levantar \/ Bajar tu mano\",\n        \"raiseYourHand\": \"Alzar la mano\",\n        \"security\": \"Opciones de seguridad\",\n        \"Settings\": \"Ajustes\",\n        \"sharedvideo\": \"Compartir un v\u00eddeo de YouTube\",\n        \"shareRoom\": \"Invitar a alguien\",\n        \"shortcuts\": \"Ver accesos directos\",\n        \"speakerStats\": \"Estad\u00edsticas del locutor\",\n        \"startScreenSharing\": \"Comenzar a compartir pantalla\",\n        \"startSubtitles\": \"Iniciar subt\u00edtulos\",\n        \"stopScreenSharing\": \"Dejar de compartir pantalla\",\n        \"stopSubtitles\": \"Detener subt\u00edtulos\",\n        \"stopSharedVideo\": \"Detener v\u00eddeo de YouTube\",\n        \"talkWhileMutedPopup\": \"\u00bfTratas de hablar? Est\u00e1s silenciado.\",\n        \"tileViewToggle\": \"Alternar vista de mosaico\",\n        \"toggleCamera\": \"Alternar c\u00e1mara\",\n        \"videomute\": \"Iniciar \/ detener c\u00e1mara\",\n        \"startvideoblur\": \"Desenfocar mi fondo\",\n        \"stopvideoblur\": \"Desactivar desenfoque de fondo\"\n    },\n    \"transcribing\": {\n        \"ccButtonTooltip\": \"Iniciar \/ Detener subt\u00edtulos\",\n        \"error\": \"La Transcripci\u00f3n fall\u00f3. Por favor, int\u00e9ntelo nuevamente.\",\n        \"expandedLabel\": \"Transcripci\u00f3n encendida\",\n        \"failedToStart\": \"No es posible iniciar la transcripci\u00f3n\",\n        \"labelToolTip\": \"La reuni\u00f3n se esta transcribiendo\",\n        \"off\": \"Transcripci\u00f3n detenida\",\n        \"pending\": \"Preparando la transcripci\u00f3n de la reuni\u00f3n\u2026\",\n        \"start\": \"Mostrar subt\u00edtulos\",\n        \"stop\": \"Dejar de mostrar subt\u00edtulos\",\n        \"tr\": \"TR\"\n    },\n    \"userMedia\": {\n        \"androidGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;Permitir&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"chromeGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;Permitir&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"edgeGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;S\u00ed&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"electronGrantPermissions\": \"Por favor, conceda permisos para utilizar su c\u00e1mara y micr\u00f3fono\",\n        \"firefoxGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;Compartir Dispositivo Seleccionado&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"iexplorerGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;OK&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"nwjsGrantPermissions\": \"Por favor, conceda permisos para utilizar su c\u00e1mara y micr\u00f3fono\",\n        \"operaGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;Permitir&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"react-nativeGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;Permitir&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\",\n        \"safariGrantPermissions\": \"Seleccione &lt;b&gt;&lt;i&gt;OK&lt;\/i&gt;&lt;\/b&gt; cuando su navegador pida permisos.\"\n    },\n    \"videoSIPGW\": {\n        \"busy\": \"Estamos trabajando en liberar recursos. Por favor intente nuevamente en unos minutos.\",\n        \"busyTitle\": \"El servicio de las salas est\u00e1 actualmente ocupado\",\n        \"errorAlreadyInvited\": \"{{displayName}} ya ha sido invitado\",\n        \"errorInvite\": \"La conferencia no se ha establecido aun. Por favor intente m\u00e1s tarde.\",\n        \"errorInviteFailed\": \"Estamos trabajando en resolver la situaci\u00f3n. Por favor intente de nuevo m\u00e1s tarde.\",\n        \"errorInviteFailedTitle\": \"Invitar a {{displayName}} fall\u00f3\",\n        \"errorInviteTitle\": \"Error al invitar a la sala\",\n        \"pending\": \"{{displayName}} ha sido invitado\"\n    },\n    \"videoStatus\": {\n        \"audioOnly\": \"AUD\",\n        \"audioOnlyExpanded\": \"Est\u00e1s en modo de ancho de banda bajo. En este modo, solo recibir\u00e1 audio y pantalla compartida.\",\n        \"callQuality\": \"Calidad de video\",\n        \"hd\": \"HD\",\n        \"hdTooltip\": \"Visualizando v\u00eddeo en alta definici\u00f3n\",\n        \"highDefinition\": \"Alta definici\u00f3n\",\n        \"labelTooiltipNoVideo\": \"No hay v\u00eddeo\",\n        \"labelTooltipAudioOnly\": \"Modo de ancho de banda bajo habilitado\",\n        \"ld\": \"LD\",\n        \"ldTooltip\": \"Visualizando v\u00eddeo en baja definici\u00f3n\",\n        \"lowDefinition\": \"Baja definici\u00f3n\",\n        \"onlyAudioAvailable\": \"Solo hay audio disponible\",\n        \"onlyAudioSupported\": \"Solo soportamos audio en este navegador.\",\n        \"sd\": \"SD\",\n        \"sdTooltip\": \"Visualizando v\u00eddeo en definici\u00f3n est\u00e1ndar\",\n        \"standardDefinition\": \"Definici\u00f3n est\u00e1ndar\"\n    },\n    \"videothumbnail\": {\n        \"domute\": \"Silenciar\",\n        \"domuteOthers\": \"Silenciar a todos\",\n        \"flip\": \"Voltear\",\n        \"kick\": \"Expulsar\",\n        \"moderator\": \"Moderador\",\n        \"mute\": \"Participante est\u00e1 silenciado\",\n        \"muted\": \"Silenciado\",\n        \"remoteControl\": \"Control remoto\",\n        \"show\": \"Mostrar en escena\",\n        \"videomute\": \"El participante ha detenido la c\u00e1mara.\"\n    },\n    \"welcomepage\": {\n        \"accessibilityLabel\": {\n            \"join\": \"Toque para unirse\",\n            \"roomname\": \"Introduzca un nombre de sala\"\n        },\n        \"appDescription\": \"La Sede Interuniversitaria de Alajuela (SIUA) le da la bienvenida. El sistema '{{app}}'  es una soluci\u00f3n de videoconferencias disponible para la comunidad universitaria de la SIUA. Para crear o unirse a una conferencia, simplemente digite el nombre de la conferencia, si esta existe, se unir\u00e1 o en caso contrario se crear\u00e1. Se le recomienda establecer una contrase\u00f1a para la conferencia y compartirla con sus usuarios, de otra forma cualquier persona se podr\u00e1 unir. Para descargar la conferencia ingrese a https:\/\/jibri.siua.ac.cr\",\n        \"audioVideoSwitch\": {\n            \"audio\": \"Voz\",\n            \"video\": \"Video\"\n        },\n        \"calendar\": \"Calendario\",\n        \"connectCalendarButton\": \"Conecte su calendario\",\n        \"connectCalendarText\": \"Conecte su calendario para ver todas sus reuniones en {{app}}. Plus, add {{provider}}reuniones a tu calendario e iniciarlas con un solo clic.\",\n        \"enterRoomTitle\": \"Crear o unirse a una conferencia\",\n        \"getHelp\": \"Obtener ayuda\",\n        \"roomNameAllowedChars\": \"El nombre de la reuni\u00f3n no debe contener ninguno de estos caracteres: ?, &amp;, :, ', \\\", %, #.\",\n        \"go\": \"IR\",\n        \"goSmall\": \"IR\",\n        \"join\": \"CREAR \/ UNIRSE\",\n        \"info\": \"Informaci\u00f3n\",\n        \"privacy\": \"Privacidad\",\n        \"recentList\": \"Reciente\",\n        \"recentListDelete\": \"Borrar\",\n        \"recentListEmpty\": \"Su lista de recientes est\u00e1 actualmente vac\u00eda. Chatea con tu equipo y encontrar\u00e1s todas tus reuniones aqu\u00ed.\",\n        \"reducedUIText\": \"\u00a1Bienvenido a {{app}}!\",\n        \"roomname\": \"Introduzca un nombre de sala\",\n        \"roomnameHint\": \"Introduce el nombre o URL de la sala a la que quieres unirte. Puedes crear un nombre nuevo, s\u00f3lo tienes que hacer llegar este nombre al resto de participantes para que puedan unirse a esta sala.\",\n        \"sendFeedback\": \"Enviar comentarios\",\n        \"terms\": \"T\u00e9rminos\",\n        \"title\": \"Bienvenido, Conferencias SIUA\"\n    },\n    \"lonelyMeetingExperience\": {\n        \"button\": \"Invitar a otros\",\n        \"youAreAlone\": \"Eres el \u00fanico en la reuni\u00f3n\"\n    },\n    \"helpView\": {\n        \"header\": \"Centro de ayuda\"\n    }\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modifiicar la imagen<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"272\" src=\"\/wp-content\/uploads\/2020\/08\/watermark.png\" alt=\"\" class=\"wp-image-3387\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/watermark.png 612w, https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/watermark-300x133.png 300w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Y remplazar la \/usr\/share\/jitsi-meet\/images\/watermark.png<\/li><li>Para modificar los meta data abra<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/title.html<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modifique<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;title&gt;Jitsi Meet&lt;\/title&gt;\n&lt;meta property=\"og:title\" content=\"Jitsi Meet\"\/&gt;\n&lt;meta property=\"og:image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;meta property=\"og:description\" content=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta description=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta itemprop=\"name\" content=\"Jitsi Meet\"\/&gt;\n&lt;meta itemprop=\"description\" content=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta itemprop=\"image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;link rel=\"icon\" type=\"image\/png\" href=\"images\/favicon.ico?v=1\"\/&gt;\nX\n&lt;title&gt;Conferencias SIUA&lt;\/title&gt;\n&lt;meta property=\"og:title\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta property=\"og:image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;meta property=\"og:description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta description=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"name\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;link rel=\"icon\" type=\"image\/png\" href=\"images\/favicon.ico?v=1\"\/&gt;\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>ARCHIVO QUEDANDO AS\u00cd<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;title&gt;Conferencias SIUA&lt;\/title&gt;\n&lt;meta property=\"og:title\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta property=\"og:image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;meta property=\"og:description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta description=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"name\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;link rel=\"icon\" type=\"image\/png\" href=\"images\/favicon.ico?v=1\"\/&gt;\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Adicionales<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Verificar los servicios<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service prosody status\nservice jitsi-videobridge2 status\nservice jicofo status\nservice jibri status<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Reiniciar servicios<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service prosody restart\nservice jitsi-videobridge2 restart\nservice jicofo restart\nservice jibri restart<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Errores en prosody<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>si el estado de prosody dice<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service prosody status<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code> modulemanager: Unable to load module 'storage_memory': \/usr\/lib\/prosody\/modules\/mod_storage_memory.lua:<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Correcci\u00f3n, modificar memory x internal<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Component \"internal.auth.conferencias.siua.ac.cr\" \"muc\"\n    modules_enabled = {\n      \"ping\";\n    }\n    storage = \"memory\"\n    muc_room_cache_size = 1000\n\nVirtualHost \"recorder.conferencias.siua.ac.cr\"\n  modules_enabled = {\n    \"ping\";\n  }\n  authentication = \"internal_plain\"\n\n\nX\n\n\nComponent \"internal.auth.conferencias.siua.ac.cr\" \"muc\"\n    modules_enabled = {\n      \"ping\";\n    }\n    storage = \"internal\"\n    muc_room_cache_size = 1000\n\nVirtualHost \"recorder.conferencias.siua.ac.cr\"\n  modules_enabled = {\n    \"ping\";\n  }\n  authentication = \"internal_plain\"\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Si el error dice<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>portmanager: Error binding encrypted port for https: No key present in SSL\/TLS configuration for https port 5281<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abirmos el archivo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/prosody\/conf.d\/conferencias.siua.ac.cr.cfg.lua<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Y despues de esta l\u00ednea<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>consider_bosh_secure = true;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Agregamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>bosh_ports = {\n                 {\n                    port = 5280;\n                    path = \"http-bind\";\n                 },\n                 {\n                    port = 5281;\n                    path = \"http-bind\";\n                    ssl = {\n                                certificate = \"\/etc\/prosody\/certs\/conferencias.siua.ac.cr.crt\";\n                                key = \"\/etc\/prosody\/certs\/conferencias.siua.ac.cr.key\";\n                          }\n                 }\n              }\nhttp_ports = { 5280 }\nhttp_interfaces = { \"localhost\" }\n\nhttps_ports = { 5281 }\nhttps_interfaces = { \"localhost\" }\n\nhttps_ssl = {\n   certificate = \"\/etc\/prosody\/certs\/conferencias.siua.ac.cr.crt\";\n   key = \"\/etc\/prosody\/certs\/conferencias.siua.ac.cr.key\";\n}\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Aplicamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>service prosody restart\nservice prosody status<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Comprobaci\u00f3n de contrase\u00f1as<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Usuario jvb<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#Verificar en:\ngrep JVB_SECRET \/etc\/jitsi\/videobridge\/config \n\n#RESULTADO\nJVB_SECRET=anzz9aLK\n\n#Comparar con:\ngrep password \/var\/lib\/prosody\/auth%2econferencias%2esiua%2eac%2ecr\/accounts\/jvb.dat\n\n#RESULTADO:\n&#91;\"password\"] = \"anzz9aLK\";\n\n\nnano \/etc\/jitsi\/videobridge\/sip-communicator.properties\n\norg.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb\norg.jitsi.videobridge.xmpp.user.shard.PASSWORD=anzz9aLK<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Usuario focus<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/prosody\/conf.d\/conferencias.siua.ac.cr.cfg.lua\n\n#RESULTADO:\nComponent \"focus.conferencias.siua.ac.cr\"\n    component_secret = \"YHZt2RZt\"\n\nnano \/etc\/jitsi\/jicofo\/config \n\nJICOFO_AUTH_PASSWORD=YHZt2RZt<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Otros<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>scp -P 44 -r \/etc\/letsencrypt\/live\/jibri.siua.ac.cr\/fullchain.pem root@10.20.200.75:\/etc\/apache2\/certificados\/jibri.siua.ac.cr\/fullchain.pem\nscp -P 44 -r \/etc\/letsencrypt\/live\/jibri.siua.ac.cr\/privkey.pem root@10.20.200.75:\/etc\/apache2\/certificados\/jibri.siua.ac.cr\/privkey.pem\n\n\nERRO#\n\nsystemctl status prosody.service jitsi-videobridge2.service\n\nAug 18 15:06:53 conferencias prosody&#91;36633]: portmanager: Error binding encrypted port for https: No certificate present in SSL\/TLS configuration for https port 5281\nAug 18 15:06:53 conferencias prosody&#91;36633]: portmanager: Error binding encrypted port for https: No certificate present in SSL\/TLS configuration for https port 5281\nAug 18 15:07:15 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:19 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:23 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:24 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:29 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:34 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:39 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\nAug 18 15:07:44 conferencias prosody&#91;36633]: internal.auth.conferencias.siua.ac.cr:muc: Error restoring room jvbbrewery@internal.auth.conferencias.siua.ac.cr from storage: no data storage active\n\n\n\n\n******************************************\nERROR2: \n******************************************\nnano \/var\/log\/jitsi\/jicofo.log\n\n*Error presentado:\norg.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.\n\n* Si ejecutamos \n-----------------------------------------------\ngrep JVB_SECRET \/etc\/jitsi\/videobridge\/config \nDa:\nJVB_SECRET=anzz9aLK\n\n* Si ejecutamos\n-------------------------------------------------\ngrep 'org.jitsi.videobridge.xmpp.user.shard.PASSWORD' \/etc\/jitsi\/videobridge\/sip-communicator.properties\nDa:\norg.jitsi.videobridge.xmpp.user.shard.PASSWORD=anzz9aLK\n\n* Si ejecutamos\n-------------------------------------------------\ngrep password \/var\/lib\/prosody\/auth%2econferencias%2esiua%2eac%2ecr\/accounts\/jvb.dat\nDA:\n&#91;\"password\"] = \"anzz9aLK\";\n\n\n\nComponent \"focus.conferencias.siua.ac.cr\"\n    component_secret = \"YHZt2RZt\"\n\n\nY vemos que los usuarios son focus y jvb \n\nComponent \"internal.auth.conferencias.siua.ac.cr\" \"muc\"\n    storage = \"memory\"\n    modules_enabled = {\n      \"ping\";\n    }\n    admins = { \"focus@auth.conferencias.siua.ac.cr\", \"jvb@auth.conferencias.siua.ac.cr\" }\n    muc_room_locking = false\n    muc_room_default_public_jids = true\n\n\ndentro de este archivo agregamos\nnano \/etc\/jitsi\/jicofo\/sip-communicator.properties\n*Y modificamos\n\n#org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.conferencias.siua.ac.cr\nX\norg.jitsi.jicofo.jibri.BREWERY=jvb@internal.auth.conferencias.siua.ac.cr\n\n\n\n\nVerificamos el archivo\n\/etc\/prosody\/conf.d\/conferencias.siua.ac.cr.cfg.lua\n\nEN:\n\n\n\n*******************************\nSe puede forza con\nprosodyctl passwd jvb@auth.mydomain.org\n*******************************\n\nnano \/etc\/prosody\/conf.d\/videoconf-test.mydomain.cfg.lua\n\n\n\nError\njitsi meet CONFERENCE FAILED: conference.videobridgeNotAvailable\n\n\nhttps:&#47;&#47;community.jitsi.org\/t\/saslerror-using-scram-sha-1-not-authorized-on-debian-buster-system-with-existing-prosody\/26775\/9\n\nPaso1: Comprobar que \n--------------------------------------------------------------\nnano \/etc\/prosody\/conf.d\/conferencias.siua.ac.cr.cfg.lua\n\nen Component \"focus.conferencias.siua.ac.cr\"\n    component_secret = \"YHZt2RZt\"\n\n--------------------------------------------------------------\nTenga la misma contrase\u00f1a que\n--------------------------------------------------------------\nnano \/etc\/jitsi\/jicofo\/config \n\nJICOFO_AUTH_PASSWORD=YHZt2RZt\n\n\n---------------------------\nPASO2: comprobar que \n---------------------------\nnano \/etc\/jitsi\/videobridge\/sip-communicator.properties\n-----\norg.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb\norg.jitsi.videobridge.xmpp.user.shard.PASSWORD=anzz9aLK\n-----\n\nTegan la misma contase\u00f1a que\nnano \/etc\/jitsi\/videobridge\/config\n\n# sets the shared secret used to authenticate to the XMPP server\nJVB_SECRET=anzz9aLK\n\nMODIFICAMOS\nnano \/etc\/jitsi\/videobridge\/config\n\nJVB_OPTS=\"--apis=,\"\nX\nJVB_OPTS=\"--apis=xmpp,rest\"\n\n\n---------------------------\nPASO3: comprobar que \n---------------------------\nnano \/etc\/jitsi\/jicofo\/config \n\n# sets the password to use for XMPP user logins\nJICOFO_AUTH_PASSWORD=vjnxpdkV\n\nTenga la misma contrase\u00f1a que\n\nnano \/var\/lib\/prosody\/auth%2econferencias%2esiua%2eac%2ecr\/accounts\/focus.dat \n\nreturn {\n        &#91;\"password\"] = \"vjnxpdkV\";\n};\n\n\nY que \nnano \/var\/lib\/prosody\/auth%2econferencias%2esiua%2eac%2ecr\/accounts\/jvb.dat \n\n\n\nreturn {\n        &#91;\"password\"] = \"fq0aFMqd\";\n};\n\n\n\n\n cat \/etc\/jitsi\/videobridge\/config | grep JVB_SECRET\nJVB_SECRET=MySecretIsHere\n\nthan:\nprosodyctl passwd jvb@auth.your.domain.com\nEnter JVB_SECRET twice here\n\nfollowed by\nprosodyctl restart\n\n\n \n \n\n\n\/etc\/init.d\/jicofo restart\n\/etc\/init.d\/jitsi-videobridge2 restart\n\/etc\/init.d\/prosody restart<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>NUEVA VERSION el archivo de idioma se cambia en libs\/app.bundle.min.js<\/li><li>Corregir errores de jibri<\/li><li>https:\/\/community.jitsi.org\/t\/tutorial-jibri-overview-troubleshooting-tips-tricks-solve-your-jibri-problems-quickly\/86054<\/li><li>Error al grabar con jibri el driver de chrome estaba viejo para actualilzarlo<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><code>sudo apt-get install unzip &amp;&amp; a=$(uname -m) &amp;&amp; rm -r \/tmp\/chromedriver\/ mkdir \/tmp\/chromedriver\/ &amp;&amp; wget -O \/tmp\/chromedriver\/LATEST_RELEASE http:\/\/chromedriver.storage.googleapis.com\/LATEST_RELEASE &amp;&amp; if &#91; $a == i686 ]; then b=32; elif &#91; $a == x86_64 ]; then b=64; fi &amp;&amp; latest=$(cat \/tmp\/chromedriver\/LATEST_RELEASE) &amp;&amp; wget -O \/tmp\/chromedriver\/chromedriver.zip 'http:\/\/chromedriver.storage.googleapis.com\/'$latest'\/chromedriver_linux'$b'.zip' &amp;&amp; sudo unzip \/tmp\/chromedriver\/chromedriver.zip chromedriver -d \/usr\/local\/bin\/ &amp;&amp; echo 'success?'<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Personalizaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Para personalizar ingrese a \/usr\/share\/jitsi-meet<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/usr\/share\/jitsi-meet<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos el archivo <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/interface_config.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>--------------------------------------\nAPP_NAME: 'Jitsi Meet',\nX\nAPP_NAME: 'Conferencias SIUA',\n--------------------------------------\nBRAND_WATERMARK_LINK: '',\nX\nBRAND_WATERMARK_LINK: 'https:\/\/www.siua.ac.cr',\n\n--------------------------------------\nDEFAULT_BACKGROUND: '#040404',\nX\nDEFAULT_BACKGROUND: '#0F2742',\n--------------------------------------\nDEFAULT_LOGO_URL: 'images\/watermark.svg',\nDEFAULT_WELCOME_PAGE_LOGO_URL: 'images\/watermark.svg',\nX\nDEFAULT_LOGO_URL: 'images\/watermark.png',\nDEFAULT_WELCOME_PAGE_LOGO_URL: 'images\/watermark.png',\n\n--------------------------------------\nJITSI_WATERMARK_LINK: 'https:\/\/jitsi.org',\nX\nJITSI_WATERMARK_LINK: '\/?p=3233',\n--------------------------------------\nNATIVE_APP_NAME: 'Jitsi Meet',\nX\nNATIVE_APP_NAME: 'Conferencias SIUA',\n--------------------------------------\nPROVIDER_NAME: 'Jitsi',\nX\nPROVIDER_NAME: 'SIUA',\n--------------------------------------\nSUPPORT_URL: 'https:\/\/community.jitsi.org\/',\nX\nSUPPORT_URL: 'https:\/\/ugit.siua.ac.cr',\n--------------------------------------\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos el archivo <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/jitsi\/meet\/conferencias.siua.ac.cr-config.js<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>--------------------------------------\n\/\/sendMultipleVideoStreams: false\nX\nsendMultipleVideoStreams: true\n--------------------------------------\nscreenshotCapture : {\n    \/\/      Enables the screensharing capture feature.\n            enabled: false,\n    \/\/\n    \/\/      The mode for the screenshot capture feature.\n    \/\/      Can be either 'recording' - screensharing screenshots are taken\n    \/\/      only when the recording is also on,\n    \/\/      or 'always' - screensharing screenshots are always taken.\n            mode: 'recording'\n     }\n--------------------------------------\n\/\/ defaultLocalDisplayName: 'me',\nX\ndefaultLocalDisplayName: 'yo',\n--------------------------------------\n\/\/ defaultRemoteDisplayName: 'Fellow Jitster',\nX\ndefaultRemoteDisplayName: 'Nuevo Miembro',\n--------------------------------------\n\/\/ defaultLanguage: 'en',\nX\ndefaultLanguage: 'es',\n--------------------------------------\n\/\/ enableCalendarIntegration: false,\nX\nenableCalendarIntegration: true,\n--------------------------------------\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Ahora abrimos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/lang\/main-es.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>--------------------------------------\n\"defaultNickname\": \"ej. Juan P\u00e9rez\",\nX\n\"defaultNickname\": \"ej. Gustavo Matamoros\",\n--------------------------------------\n\"productLabel\": \"de Jitsi Meet\",\nX\n\"productLabel\": \"de Conferencias SIUA\",\n--------------------------------------\n\"headerTitle\": \"Jitsi Meet\",\nX\n\"headerTitle\": \"Conferencias SIUA\",\n--------------------------------------\n\"logoDeepLinking\": \"Logotipo de la reuni\u00f3n de Jitsi\",\nX\n\"logoDeepLinking\": \"Logotipo de la reuni\u00f3n de Conferencias SIUA\",\n--------------------------------------\n\"headerSubtitle\": \"Reuniones seguras y de alta calidad\",\nX\n\"headerSubtitle\": \"La Sede Interuniversitaria de Alajuela (SIUA) le da la bienvenida. El sistema 'Conferencias SIUA'  es una soluci\u00f3n de videoconferencias disponible para la comunidad universitaria de la SIUA. Para crear o unirse a una conferencia, simplemente digite el nombre de la conferencia, si esta existe, se unir\u00e1 o en caso contrario se crear\u00e1. Se le recomienda establecer una contrase\u00f1a para la conferencia y compartirla con sus usuarios, de otra forma cualquier persona se podr\u00e1 unir. Para descargar la conferencia ingrese a https:\/\/jibri.siua.ac.cr\",\n--------------------------------------\n\"confirmAddLink\": \"\u00bfQuiere a\u00f1adir un enlace de Jitsi a este evento?\",\nX\n\"confirmAddLink\": \"\u00bfQuiere a\u00f1adir un enlace de Conferencias SIUA a este evento?\",\n--------------------------------------\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/lang\/main-esUS.json<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>--------------------------------------\n\"defaultNickname\": \"ej. Juan P\u00e9rez\",\nX\n\"defaultNickname\": \"ej. Gustavo Matamoros\",\n--------------------------------------\n\"productLabel\": \"de Jitsi Meet\",\nX\n\"productLabel\": \"de Conferencias SIUA\",\n--------------------------------------\n\"headerTitle\": \"Jitsi Meet\",\nX\n\"headerTitle\": \"Conferencias SIUA\",\n--------------------------------------\n\"logoDeepLinking\": \"Logotipo de la reuni\u00f3n de Jitsi\",\nX\n\"logoDeepLinking\": \"Logotipo de la reuni\u00f3n de Conferencias SIUA\",\n--------------------------------------\n\"headerSubtitle\": \"Reuniones seguras y de alta calidad\",\nX\n\"headerSubtitle\": \"La Sede Interuniversitaria de Alajuela (SIUA) le da la bienvenida. El sistema 'Conferencias SIUA'  es una soluci\u00f3n de videoconferencias disponible para la comunidad universitaria de la SIUA. Para crear o unirse a una conferencia, simplemente digite el nombre de la conferencia, si esta existe, se unir\u00e1 o en caso contrario se crear\u00e1. Se le recomienda establecer una contrase\u00f1a para la conferencia y compartirla con sus usuarios, de otra forma cualquier persona se podr\u00e1 unir. Para descargar la conferencia ingrese a https:\/\/jibri.siua.ac.cr\"\n--------------------------------------\n\"confirmAddLink\": \"\u00bfQuiere a\u00f1adir un enlace de Jitsi a este evento?\",\nX\n\"confirmAddLink\": \"\u00bfQuiere a\u00f1adir un enlace de Conferencias SIUA a este evento?\",\n--------------------------------------<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Abrimos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/css\/all.css<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>--------------------------------------\nbackground-image:linear-gradient(0deg,rgba(0,0,0,.2),rgba(0,0,0,.2)),url(..\/images\/welcome-background.png);\nX\nbackground-image:none;\n--------------------------------------\nbackground-color:#131519;\nX\nbackground-color:#0F2742;\n--------------------------------------\n.welcome .header{background-image:none;background-position:center;background-repeat:none;background-size:cover;padding-bottom:0;background-color:#131519\nX\n.welcome .header{background-image:none;background-position:center;background-repeat:none;background-size:cover;padding-bottom:0;background-color:#0F2742\n--------------------------------------\n.welcome .welcome-watermark .watermark.leftwatermark{width:71px;height:32px}\nX\n.welcome .welcome-watermark .watermark.leftwatermark{width:60px;height:60px}\n--------------------------------------\n.watermark{display:block;position:absolute;top:15;width:71px;height:32px;\nX\n.watermark{display:block;position:absolute;top:15;width:60px;height:60px;\n--------------------------------------<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Para modificar el logo descargamos el siguientes archivo<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"272\" src=\"\/wp-content\/uploads\/2020\/08\/watermark.png\" alt=\"\" class=\"wp-image-3387\" srcset=\"https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/watermark.png 612w, https:\/\/sada.services\/wp-content\/uploads\/2020\/08\/watermark-300x133.png 300w\" sizes=\"(max-width: 612px) 100vw, 612px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Y remplazar la \/usr\/share\/jitsi-meet\/images\/watermark.png<\/li><li>Para modificar los meta data abra, abrimos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/usr\/share\/jitsi-meet\/title.html<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Modificamos<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;title&gt;Jitsi Meet&lt;\/title&gt;\n&lt;meta property=\"og:title\" content=\"Jitsi Meet\"\/&gt;\n&lt;meta property=\"og:image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;meta property=\"og:description\" content=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta description=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta itemprop=\"name\" content=\"Jitsi Meet\"\/&gt;\n&lt;meta itemprop=\"description\" content=\"Join a WebRTC video conference powered by the Jitsi Videobridge\"\/&gt;\n&lt;meta itemprop=\"image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;link rel=\"icon\" type=\"image\/png\" href=\"images\/favicon.ico?v=1\"\/&gt;\n\n\nX\n\n&lt;title&gt;Conferencias SIUA&lt;\/title&gt;\n&lt;meta property=\"og:title\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta property=\"og:image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;meta property=\"og:description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta description=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"name\" content=\"Conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"description\" content=\"Sistema de video conferencias SIUA\"\/&gt;\n&lt;meta itemprop=\"image\" content=\"images\/jitsilogo.png?v=1\"\/&gt;\n&lt;link rel=\"icon\" type=\"image\/png\" href=\"images\/favicon.ico?v=1\"\/&gt;\n\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Instalaci\u00f3nde Jitsi Meet en debian 9<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[209],"tags":[216,211,17],"class_list":["post-6455","post","type-post","status-publish","format-standard","hentry","category-jitsi","tag-20-04","tag-jitsi","tag-ubuntu"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/6455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6455"}],"version-history":[{"count":43,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/6455\/revisions"}],"predecessor-version":[{"id":9324,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/6455\/revisions\/9324"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}