sábado, 11 de abril de 2020

Cómo instalo el servidor de videoconferencia cifrada Jitsi Meet en Ubuntu?

En una monumental exposición ofrecida el 24 de enero de 1954 ante representantes de la Unión de Docentes Argentinos, Juan Perón explicó como montar un servidor de videoconferencia cifrada punto a punto con Jitsi en Ubuntu, para ofrecer al Pueblo videoenlaces libres con la mayor calidad.


(...)
¡Compañeros!

Es elevando a los maestros, dignificándolos, como vamos nosotros a elevar y dignificar a nuestro propio pueblo. Ellos son el reflejo de todas las actividades presentes y futuras y de lo más noble que la Nación tiene: su juventud. Es a los maestros a quienes les está confiado el futuro del país. En consecuencia, ese futuro debe estar confiado a hombres  y mujeres cuya condición de dignidad los eleve al magisterio extraordinario que ellos realizan en beneficio del futuro de la Nación. Quien olvida a los maestros también olvida un poco el futuro del país.

En las era que vivimos, requerimos comunicarnos por una telemática que incluya también multimedia. Nadie duda que este será el futuro que potenciará a la educación de los Argentinos. Esto implica imagen en movimiento, audio, pero también - como dicen ahora los niños - el chat. Y no sólo ha de ser esto de acceso masivo, irrestricto, y toda vez que gratuito, sino que también es cardinal que puedan realizarse sobre plataformas libres y controladas por el docente. Ustedes han de poder estudiarlas y darlas a estudiar, e incluso modificarlas en pos de las necesidades de sus educandos.

Pero nos encontramos en tiempos de una lucha enconada entre el Capital y el Trabajo. Indudablemente el Capital iba a proponer un servicio privativo como Zoom. Si bien gratuito, no podía dejar de ser un oprobio para los  Pueblos. Su mediocre implementación de seguridad, sumada a un código fuente envenenado y no disponible provocaron que en pocas horas fuese víctima del hackeo masivo. Además de aquello debemos decir que sus autores guardaban anhelos inconfesables con el uso de su software mal engendrado. Todo esto lo torna prohibitivo para la educación que todos anhelamos.
¡Pues bien señores! Nuestra doctrina es clara: ¡tales servicios del Capital han de ser combatidos sin cuartel, a todo tiempo y en todo lugar!

Hemos puesto manos a la obra en búsqueda de un reemplazo, desarrollando un servidor libre de videoconferencias capaz de ofrecer a la Nación mucha mayor performance. ¡Lo hemos realizado y estamos dispuestos a desplegarlo masivamente! Se trata de Jitsi y su aplicación para servidor web Jitsi Meet. Este stack de programas liberados bajo licencia Apache pueden instalarse en un sistema GNU como Ubuntu con el fin de estaablecer directamente una web de acceso a videoconferencias privadas o públicas y que eventualmente pueden ser masivas (podremos utilizar unas 80 conexiones o más si lo deseamos).

El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/
„El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/frases/88661-juan-domingo-peron-el-exito-no-le-sale-al-paso-por-suerte-ni-por-casu/
„El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/
El éxito no le sale al paso por suerte ni por casualidad. Esto se concibe, se prepara, se ejercita, y después recién se realiza. Es decir el éxito depende de toda esa acción, de toda esa preparación, y de toda esa organización, el éxito a nadie le sale al paso, no es obra de la casualidad, el éxito es obra de la previsión, de la organización y la realización.“

Fuente: https://citas.in/autores/juan-domingo-peron/

Usar Jitsi Meet desde una web ya hecha


Si deseamos realizar videoconferencia ahora mismo sin tener que desplegar infraestructura de servidor alguna - bien porque no sabemos hacerlo, o no tenemos un servidor web bajo nuestro control, o no queremos - podremos hacer uso de nuestro navegador apuntado a una web para videoconferencia de Jitsi Meet que ya esté creada de antemano.

Un ejemplo es el serviidor de videoconferencias oficial del proyecto, localizado en meet.hit.si.  En él podremos crear canales de videoconferencias. Sin embargo, os recomiendo también probar la instancia nacional de excelente velocidad presente en el servidor de Arsat, que está en https://jitsi.dcarsat.com.ar/, ya que nos ofrece su propia infraestructura computadaque es la del Pueblo Argentino, con mayor velocidad por estar a escasos kilometritos.
Con solo dirigirnos allí, se cargará en nuestro navegador el excelente cliente libre web de Jitsi Meet, y sin necesidad alguna de armar nada por nuestra cuenta.


El uso del cliente es sumamente sencillo y brilla por ser software libre. Naturalmente, el navegador nos planteará compartir nuestro micrófono y cámara web con motivo de establecernos como cliente de videoconferencia. En el caso particular de Arsat también podremos crear nuestro propio canal y protegerlo con contraseña alfanumérica.

Si contamos con smartphones, podremos descargar clientes oficiales desde la web del proyecto. y apuntar a tales servidores públicos, conectarnos a estos servidores o permitir que otros usuarios nos contacten a través de ellos compartiendo el enlace por algún medio electrónico.

Ya no será entonces problema ofrecer clasee virtuales, establecer enlaces cifrados con terceros, presentar el contenido de nuestra pantalla o aplicaciones en él, "dar la palabra"autorizando el uso del micrófono (o "cerrar " micrófono o cámara).  Indudablemente podremos amenizar/amenazar a los educandos como antaño y si somos ingeniosos, ¡formar una habilidosa comunidad libre de todo intento injerencista de Googl€!

Esto es - de por sí - ya poderoso y Justicialista. Sin embargo, podríamos querer armar nuestro propio servidor de Jitsi Meet, y hacerlo público para que otros lo usen o dejarlo privado sólo para nosotros.  ¡Podríamos así ejercer la verdadera independencia de la Patria, que es aquella en la cual mandamos con nuestro propio software libre en nuestra propia infraestructura computada, sin hincar la cerviz ante imperio alguno! ¡Este es uno de los logros que he legado al Pueblo desde el Justicialismo!

Instalación de Jitsi Meet


Esta valiente decisión implica ensuciarnos las manos y operar bajo el capot de nuestro sistema GNU con Linux, pero como didacta que soy, os instruiré para que lleguen a buen puerto TCP. Gracias a este proceder, potenciaremos con infraestructura de videoconferencia cifrada propia nuestras tareas, la de una agrupación o empresa del Pueblo, una página web que ya teníamos montada, etc.  Proveeremos así en Justicia Social un servicio público para que quienquiera pueda crear un canal de videoconferencias privadas y cifradas.

Emplearemos para ello el hardware de nuestro servidor dotado con Ubuntu 18.04LTS Bionic Beaver en su versión Server. Sin embargo, también podríamos ejecutar Jitsi Meet en un sistema dotado con Ubuntu 18.04LTS para Escritorio (Desktop)... En caso de usar una versión para Escritorio, naturalmente debemos asegurarnos de elevar nuestros privilegios de Usuario común al de Administrador de Sistema mediante la orden sudo (el sistema nos solicitará nuestra contraseña de Administrador ("root") en tales casos).

Previo a dar inicio a la clase de instalación, es menester preparar específicamente a Ubuntu para utilizar el repositorio de paquetes "Universe", la cual es requerida por Jitsi. Lo hacemos abriendo una terminal (con Ctrl+Alt+t en la versión de escritorio) e ingresando en la terminal el siguiente comando de organización:

sudo apt-add-repository universe

Instalación básica de Jitsi Meet

1. Configuramos en el servidor el Nombre de Dominio Completamente Calificado FQDN (Opcional)

Si nuestro Ubuntu Server que emplearemos para desplegar el servidor de Jitsi Meet contaba previamente en los DNS con un FQDN (Nombre de Dominio Completamente Calificado o "Full Qualified Domain Name"), por ejemplo, si usábamos la URL peron.pirulo.org), nuestro archivo de configuración /etc/hostname ya debería contener la línea de este FODN. Si este no es el caso, debemos cambiar el hostname.

Acto seguido, debemos agregar tal FODN al archivo /etc/hosts, asociándolo con la dirección loopback del localhost. Por ejemplo, esto se lograría de la siguiente manera:

127.0.0.1 localhost peron.pirulo.org

Una vez configurado el FQDN revisamos en la misma máquina que es posible el contacto y que el DNS da cuenta de él. Esto lo logramos haciendo realidad efectiva una serie de pings a dicho FODN. El comando en la terminal sería:

ping "$(hostname)"

...con lo cual deberíamos recibir pings exitosos. Lo interrumpimos mediante Ctrl+c.

2. Agregamos el repositorio de paquetes de Jitsi

Esto nos permitirá instalar y actualizar Jitsi con el repositorio oficial del mismo, y facilitará la actualización automatizada de versiones nuevas del mismo. Para ello ingresamos los siguientes comandos en la Terminal:

sudo echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -


3. Abrir los puertos de nuestro cortafuegos

Para que se establezcan los enlaces bidireccionales debemo abrir los siguientes puertos en nuestro cortafuegos, a fin de que el tráfico lleguen a la máquina que corre Jitsi:
  • Puerto 80/TCP
  • Puerto 443/TCP
  • Puerto 10000/UDP

En ubuntu contamos con Ufw (el "Cortafuegos No complicado"). Por lo tanto podríamos permitir la recepción de dichos puertos introduciendo los siguientes comandos de la terminal:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp

sudo ufw allow 22/tcp
sudo ufw allow 3478/tcp
sudo ufw allow 5349/udp

Nota: Recordemos que si por algún motivo quisiéramos deshacer esto y cerrar los puertos como estaban, deberíamos eliminar estas reglas de cortafuegos que le creamos. Ello se hace con: sudo ufw delete allow 80/tcp ; sudo ufw delete allow 443/tcp ; sudo ufw delete allow 10000/udp

Lo activamos con:

sudo ufw enable

También debemos abrir dichos puertos en nuestro Router desde el exterior hacia la IP del equipo local en el que instalaremos el servidor de Jitsi, naturalmente. Para ello recurriremos a la web de administración de nuestro router, la cual normalmente se puede acceder desde un navegador web a la IP del mismo, que suele ser 192.168.0.1 o 192.168.1.0, o 10.0.0.1. Normalmente encontrarán la opción de permitir tráfico entre la WAN (o "Internet") y la red interna ("LAN"), o bien realizar un "port forwarding" a una IP específica en la red LAN. Habran de consultar la documentación del router para mayor información.

3. Instalamos el Jitsi Meet

Para proceder a instalar Jitsi Meet utilizaremos tres comandos. Primero nos aseguramos que exista soporte disponible para el repositorio apt servido a través de HTTPS:

sudo apt-get install apt-transport-https 

...en segundo lugar recogemos las últimas versiones de la paquetería por medio través de todos los repositorios:

sudo apt-get update ;

---y en tercer lugar realizamos finalmente la instalación de jisti-meet:

sudo apt-get -y install jitsi-meet

El instalador revisará si se encuentran presentes en nuestro sistema los conocidos servidores web Nginx o Apache (en dicho orden). En caso afirmativo (lo cual suele ser el caso en Ubuntu Server), el instalador nos autoconfigurará un virtualhost dentro del servidor encontrado, el cual operará a fin de servir Jitsi Meet. Si no encuentra ninguno de estos dos servidores web ya instalados en el sistema, entonces procederá a instalar una instancia del servidor web Nginx. Esto es importante, porque en el caso de ya tener una instancia de Nginx en el puerto 443/TCP en ejecución en nuestro sistema , se omitirá la configuración de turnserver ya que entraría en conflicto con el puerto 443/TCP utilizado. Se utilizaría entonces el puerto 4443/TCP, el cual habremos de abrir como se explicó en el paso 2.



Pues bien, durante la instalación, se nos pedirá ingresar el hostname para la instancia de Jitsi Meet. Si ya tenemos un FODN para la instancia ya configurado en los DNS, lo ingresaremos aquí. Si no tenemos aún un hostname capaz de ser resuelto, podremos ingresar directamente la dirección IP de la máquina (siempre que se trate de una IP estática o no cambie).

Este hostname (o dirección IP estática) será utilizada para la configuración del virtualhost dentro de Jitsi Meet, y tanto usted como sus remitentes utilizarán esta dirección para acceder a las conferencias web.

4. Generar un certificado de Let's Encrypt (opcional y recomendado)

Para poder lograr comunicaciones encriptadas, necesitamos contar con un certificado TLS. Este cumple la función de un carnet de afiliación al Partido Justicialista. La manera más sencilla para obtenerlo es emplear para ello los servicios de Let's Encrypt como autoridad competente.

Podremos ejecutar el script específico para instalar Let's Encrypt en nuestro Ubuntu Server mediante:

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

...o bien en Ubuntu para Escritorio con:

sudo ./usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh


Al ejecutarse este script empleará un acceso tipo HTTP-01, y es este el motivo por el cual nuestra instancia de servidor ha ser accesible desde la internet pública (puerto 80/TCP). Si deseamos emplear un tipo de conexionado distinto, hemos de evitar este script y en su lugar escoger "Quiero usar mi propio certificado" durante la instalación de jitsi-meet.

Nota: Las aplicaciones móviles Jitsi Meet son delicadas y requieren  obligatoriamente un certificado válido firmado por una Autoridad de Certificación válida (tal como Let's Encrypt) y no podrán conectarse si escogemos utilizar un certificado autofirmado.

5. Configuraciones avanzadas adicionales

Si la instalación se encuentra en una máquina detrás de una máquina NAT (un módem o algún router intermedio), jitsi-videobridge debería autoconfigurarse toda vez que arrancamos el sistema a fin de que los datos "salten el charco" a través del NAT. Se trata de un software encargado de puentear y retransmitir en ambos sentidos el flujo audiovisual.

Si sucediese que una llamada de tres vías no funciona, habremos de configurar adicionalmente algunos aspectos de jitsi-videobridge con el sentido de que éste sea accesible desde el exterior. Suponiendo que todos los puertos requeridos son ruteados hacia la máquina que lo ejecutan (estos puertos son TCP/443 o TCP/4443 y UDP/10000), le agregaremos unas líneas de configuración extra al fichero de configuración sip-communication.properties. Para ello ingresamos:


sudo nano /etc/jitsi/videobridge/sip-communicator.properties

.esto nos abrirá el editor GNU Nano con dicho archivo de configuración, el cual ya debería tener contenido.

Le agregamos las siguientes líneas:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>

Acto seguido procederemos a desactivar una línea existente: la comentaremos con "#" para que jitsi-videobridge no la ejecute. Usamos la función Buscar de Nano (Ctrl+w) para encontrar la línea:

org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES

...y le anteponemos "#", de modo que que nos quede:

#org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES

...finalmente guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+x.

Es muy útil saber que las instalaciones por defecto de Jitsi en sistemas que utilizan systemd están limitadas por defecto a unos valores reducidos en cuanto a la cantidad de procesos máximos y archivos abiertos simultáneos que pueden operar los clientes. Esto está regulado así a fin de dar cabida un flujo de servicio relativamente bajo para todo tipo de acciones telemáticas, incluidas las de videoconferencia.

Si se espera que jitsi-videobridge sea capaz de servir a un número mayor de participantes, habremos de elevar los valores que viene por defecto, ya que estos son buenos para entre sesenta o cien participantes simultáneos. Para actualizar los valores usamos Nano para editar el archivo de configuración de sistema /etc/systemd/system.conf:

sudo nano /etc/systemd/system.conf

Nos aseguramos que tenemos los siguientes valores:

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

Para recargar los valores nuevos y revisar su resultado debemos realizar lo indicado en el apartado "Detalles de systemd" que os describiré a continuación.

Detalles de Systemd 

Para hacer efectivos los cambios en systemd en un sistema GNU con Linux que está en ejecución, simplemente debemos ejecutar:

sudo systemctl daemon-reload
sudo service jitsi-videobridge2 restart

Para revisar el parte de tareas ejecutaremos:

sudo service jitsi-videobridge2 status

...a lo cual, nuestro sistema GNU con Linux debería devolvermos:

Tasks: XX (limit: 65000).

Para comprobar la cantidad máxima de ficheros abiertos y límites impuestos a los procesos debemos ingresar:

sudo cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits
...a lo cual GNU con Linux debería devolvernos:

Max processes             65000                65000                processes
Max open files            65000                65000                files

6. Confirme que su instalación base de la plataforma funciona

Abrimos un navegador web (Chrome, Chromiun o un Opera) e ingresamos el hostname o la dirección IP del paso anterior en la barra de direcciones.
Naturalmente, si habñiamos empleado un certificado autofirmado en lugar de utilizar Let's Encrypt, nuestro navegador desconfiará y nos pedirá que confirmemos que estamos seguros de utilizar tal certificado.

Debería ver una página web pidiéndonos crear una nueva conferencia (New Meeting). Asegúrese de que pueda crear exitosamente una nueva conferencia, y que otros participantes con capaces de unirse a la sesión.

Si todo funcionó ¡enhorabuena! Hemos logrado poner en órbita un servicio de conferencia Jitsi peronista, el cual podrá ofrecerse ya como un servicio agregado y peronista.

(Fin de la Instalación Básica de Jitsi Meet)

7. Agregar SIP a Jitsi Meet

Instalar Jigasi

Jigasi es una aplicación accesoria que se carga en el servidor de Jigsi, y opera como una puerta de enlace para conferencias SIP con Jitsi Meet. La función de Jigasi entonces es oficiar de "traductor" para el protocolo SIP (utilizado en telefonía de voz por IP (VoIP ), softphones SIP o clientes de software compatible tales como Ekiga y muchísimos clientes de chat). Gracias a Jigasi, estos difundidos clientes de chat y videoconferencia previamente incompatibles podrán unirse a las videoconferencias de Jitsi y lograrán la capacidad de transcripción entre un formato y el otro, sin que sus usuarios tengan que hacer nada ni aprender nada.

Podremos instalar el "traductor de formato" Jigasi a partir de su repositorio utilizaremos el siguiente comando:

sudo apt-get -y install jigasi

...o bien podremos instalarlo descargando el último paquete estable oficial. Por ejemplo:
 
wget https://download.jitsi.org/stable/jigasi_1.1-101-g3b2a0e5-1_amd64.deb ;
sudo dpkg -i jigasi_1.1-101-g3b2a0e5-1_amd64.deb


Durante la instalación, se nos pedirá que ingresemos una cuenta SIP y la contraseña de dicha cuenta SIP. Esta cuenta será la empleada para poder invitar a otros contactos SIP.

Refrescar Jitsi-Meet para que tome Jigasi

Abrimos nuevamente un navegador con la URL de Jitsi Meet (o refrescamos la página con F5) y si la instalación de Jigasi funcionó bien, veremos que apareció ahora un ícono de un teléfono en la parte derecha de la barra de herramientas. Ahora podremos utilizar este ícono para invitar a otras contactos SIP a que se unan a la conferencia actual.


¡Podremos emprender la lucha por la Liberación junto a quienes usen el protocolo SIP!


Resolver problemas

Si nos encontramos con problemas, conviene siempre comprobar con un navegador diferente. Algunas versiones de navegadores específicos son conocidas por tener algunos problemas con Jitsi Meet. También podríamos visitar https://test.webrtc.org para comprobar el estado de soporte de WebRTC de nuestro navegador.

Asimismo, podríamos echar un vistazo a los archivos de bitácora ("logs") de Jitsi en la carpeta /var/log/ en nuestro sistema GNU con Linux. Específicamente, los archivos de logs los podremos revisar con los comando cat o less, y son /var/log/jitsi/jvb.log, /var/log/jitsi/jicofo.log y /var/log/prosody/prosody.log

8. Convertir a Jitsi Meet en Servidor Privado de Dominio Seguro

En cuanto a la operatoria por parte del servidor de Jitsi, debemos saber que - por defecto quienquiera que tenga acceso a nuestra instancia de jitsi a través de internet será capaz de abrir un canal para videoconferencias. Esto significa que si nuestro servidor está abierto al mundo, y así cualquier compañer@ podrá tener una conversación con otr@ utilizando nuestra instancia particular de Jitsi: proveemos un servicio inclusivo para que todo público pueda crear videoconfencias privadas y cifradas.

Si noptamos por una visión enajenada y exclusivista y deseamos limitar la capacidad de terceros de iniciar una videoconferencia en nuestro servidor Jitsi Meet y permitirla sólo a usuarios autorizados debemos obligatoriamente configurar un "Dominio Seguro".

Es posible permitir que sólo usuarios autenticados por el servidor creen nuevas salas de videoconferencia. Toda vez que alguien quiera crear un canal de videoconferencia, Jitsi Meet perguntará por un nombre de usuario y una contraseña. Luego de que se haya creado el Canal de Videoconferencias, otros usuarios podrán unirse a él desde un dominio anónimo. Os indicaré aquí cómo configurarlo.

1 En Prosody:
(Si hemos instalado desde el paquete para Debian/Ubuntu, estos cambios deben realizarse en el archivo /etc/prosody/conf.avail/su-hostname.cfg.lua)

a) Activamos la autenticación para su dominio principal:
VirtualHost "jitsi-peron.pirulo.com"
    authentication = "internal_plain"

b) Agregamos un nuevo host virtual con el método de logueo anónimo para invitados:

VirtualHost "guest.jitsi-peron.pirulo.com"
    authentication = "anonymous"
    c2s_require_encryption = false
(tenga presente que guest.jitsi-peron.pirulo.com es interno para Jitsi, y no debemos ni necesitamos crearle un enlace DNS, ni generarle un certificado SSL/TLS, ni realizar ninguna configuración web específica para él).
 2 En el archivo de configuración config.js de Jitsi Meet configuramos la sección 'anonymousdomain':

(Si instalamos jitsi-meet desde los paquetes para Debian/Ubuntu, estos cambios deberán realizarse en el archivo /etc/jitsi/meet/su-hostname-config.js)

var config = {
    hosts: {
            domain: 'jitsi-peron.pirulo.com',
            anonymousdomain: 'guest.jitsi-peron.pirulo.com',
            ...
        },
        ...
}

3 Cuando ejecutamos Jicofo especificamos nuestro dominio principal en las propiedades adicionales de configuración. Jicofo aceptará los pedidos de alocación de conferencia sólo desde un dominio autenticado.
 
-Dorg.jitsi.jicofo.auth.URL=XMPP:jitsi-peron.pirulo.com

Si instalamos Jicofo desde un paquete Debian/Ubuntu, esto debe ir directamente en una línea nueva en el archivo /etc/jitsi/jicofo/sip-communicator.properties:

org.jitsi.jicofo.auth.URL=XMPP:jitsi-peron.pirulo.com

4 Para registrar usuarios autorizados, utilizaremos este comando en el servidor:

prosodyctl register <nombre_del_usuario_autorizado> jitsi-peron.pirulo.com <contraseña>

prosodyctl register <username> jitsi-meet.example.com <password>

5 Si estamos usando Jigasi:

a) Configurarmos Jigasi para que pueda autenticar editando las siguientes líneas en el archivo /etc/jitsi/jigasi/sip-communicator.properties:

org.jitsi.jigasi.xmpp.acc.USER_ID=ALGUN_USUARIO@ALGUN_DOMINIO
org.jitsi.jigasi.xmpp.acc.PASS=ALGUNA_CONTRASEÑA
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

La contraseña ALGUNA_CONTRASEÑA es una contraseña real en texto plano no un codificado base64.

b) Si experimentamos problemas con la cadena de certificación, podríamos requerir descomentar la siguiente línea de /etc/jitsi/jigasi/sip-communicator.properties:

net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true

...de modo que quede así: 
#net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true


Nota: Esto debe ser sólo realizado  únicamente con propósitos de prueba o resolución de problemas en estado controlado. Si se confirma que ésta era la causa del problma, debería resolverlo de otra manera (por ejemplo, obtener un certificado firmado para prosody, o agregar un certificado particular a la tienda de confianza de jigasi.

Certificados

Jicofo usa una conexión de usuario de chat XMPP (normalmente en puerto 5222) y verifica el certificado del servidor. En una instalación por defecto, el script de la instalación se encarga de generar un certificado autofirmado y lo agrega al Anillo de Contraseñas. En situaciones donde el certificado no sea confiable, podremos agregarlo igual al anillo copiándolo al directorio /usr/local/share/ca-certificates/, mediante los siguientes comandos de organización:

sudo cp cert.pem /usr/local/share/ca-certificates/ 
sudo update-ca-certificates


9. Desinstalar

Si por algún motivo necesitamos desinstalar la aplicación , podremos utilizar este comando de organización:
 
sudo apt-get purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2

Podría suceder que los paquetes jigasi y jitsi-videobridge no se desinstalen de manera correcta al primer intento. Esto sucede sobre todo cuando el servidor estaba en servicio, y se debe a que, dependiendo la carga del sistema, la acción de remoción de servicios podría no ser lo suficientemente veloz... En tal caso, simplemente debemos ejecutar el comando de desinstalación por una segunda vez y - ya con los demonios detenidos y removidos de la memoria de nuestro sistema - la desinstalación será efectiva y completa.

21 comentarios:

  1. Hola te hago una corrección, el servidor de arsat es solo para uso autorizado por ellos (por el momento), no esta abierto a todo el mundo.

    ResponderEliminar
  2. Hola buen dia, muchas gracias por tu ayuda. Ya hice todos los pasos que colocaste hasta la instalacion de SIP, sin embargo cuando le doy comenzar la reunion, entra y veo la pantalla. Sin embargo no se activan ni la camara ni el microfono, tampoco el compartir pantalla. Sin embargo entro a la pagina de meet.jit.si, y en este si me funciona todo. Me puedes ayudar por favor?

    ResponderEliminar
    Respuestas
    1. Estimado Diego:

      En el caso de armar el servidor de Jitsi, significa que debes abrir el firewall de tu router y en tu equipo servidor con Ubuntu. En Ubuntu, deberías usar estos comandos:

      sudo ufw allow 80/tcp
      sudo ufw allow 443/tcp
      sudo ufw allow 10000/udp

      En tu router debes hacer lo mismo (para que el servicio pueda acceder a tu equipo. Los routers no suelen traer comandos de terminal (aunque algunos si). Normalmente debes ingresar a una web interna del router con tu navegador (normalmente, poniendo la IP del mismo, por ejemplo 192.168.0.1 en la barra de direcciones de tu navegador. Refiérete al manual de tu router, o indícanos su modelo para más ayuda.
      En muchos routers encontrarás una opción de "port forwarding", o "abrir puertos". En otros routers puede decir algo como "rules/reglas" y debes crear una regla que permita datos de la WAN (internet) a la LAN (red local).

      En tal caso, debes permitir el puerto 80 TCP de la WAN a la LAN, el puerto 443 TCP de la WAN a la LAN, y el puerto 10000 UDP de la WAN a la LAN y viceversa (en algunos routers, el sentido se indica como "in" para entrada, "out" para salida", y BOTH para ambos sentidos. Asegúrate de utilizar apertura en ambos sentidos.

      Otros routers cuentan con una función llamada DMZ, que abre todos los puertos. Sin embargo, ten cuidado al utilizar esto pues puede crear agujeros de seguridad.

      Si tu no tienes acceso a tu router pues está en comodato por parte de una compañía, debes comunicarte con ellos y pedirle que te abran los puertos 80/TCP, 443/TCP y 10000/UDP. Algunos proveedores de internet pretenden hacer esto para vender un servicio "comercial", pero esta práctica está dejándose de lado.

      Atte.

      Juan Perón

      Eliminar
    2. Hola, mi nombre es Hugo Grasci, soy técnico y me pidieron instalar esto en una escuela.
      Me pasó lo mismo que refieren muchos me podía conectar y probarlo desde ADENTRO de la red local, pero para hacerlo con quienes estaban desde internet, tuve que instalar VideoBridge y en ningún otro lado explicaban cómo hacerlo.

      Ahora, en otro lugar, aún instalando videoBridge no surtía efecto con el puerto 10000 de entrada, así que tuve que llamar a FIBERTEL y ellos si abrieron, pero pretendieron cobrar "USO COMERCIAL" y no me lo querían dar. Al final lyuego de discutir un rato con el representante técnico lo hicieron y anduvo fenómeno. Pero los router cerrados desde el exterior tienen ese problema. Los de FIBERTEL SON APROVECHADOS, mas en estos tiempos de pandemia.

      Muchas gracias por el artículo, es algo difícil de instalar pero la guía con colores me ayudaron a ponerlo en debian.

      Eliminar
    3. Estimado Hugo Grasci:

      Gracias por su aporte. Es indudable que una institución no debe tener tal limitación. En el caso particular, bien se puede optar por realizar en el router del ciente un "port forwarding" desde el puerto 10.000. Hemos notados que es común que las empresas proveedoras cierren ciertos puertos como medida precautoria o como medida de cobro de un adicional a los privados (privados de sus derechos).

      El ejemplo que ofrece es claro, y también sucede en Claro, donde su sistema Claro Fibra presenta cerrado todos los puertos. Finalmente peuden abrirse pero debe realizarse una gestión comercial. Su derecho e poder abrir tales puertos. Generalmente abren una sola dirección IP interna, la que dejan abierta.

      Lamentablemente este predicamento dificulta la instalación al no iniciado, sobre todo en condiciones de pandemia. Esto debe ser corregido.

      Atte.

      Juan Perón

      Eliminar
  3. Muy buen tutorial, pero tengo un problema, el servidor lo tengo detrás de un router, se logran conectar, pero no ni imagen,ni vdeo y menos sonido, que pueda ser eso. Necesito de su ayuda enormemente.
    Saludos
    Victor

    ResponderEliminar
    Respuestas
    1. Estimado Victor:

      En el caso de armar el servidor de Jitsi, significa que debes abrir el firewall de tu router y en tu equipo servidor. En Ubuntu, deberías usar estos comandos:

      sudo ufw allow 80/tcp
      sudo ufw allow 443/tcp
      sudo ufw allow 10000/udp

      En tu router debes hacer lo mismo (para que el servicio pueda acceder a tu equipo. Normalmente encontrarás una opción de "port forwarding", o "abrir puertos". En otros routers puede decir algo como "rules/reglas" y debes crear una regla que permita datos de la WAN (internet) a la LAN (red local).

      En tal caso, debes permitir el puerto 80 TCP de la WAN a la LAN, el puerto 443 TCP de la WAN a la LAN, y el puerto 10000 UDP de la WAN a la LAN y viceversa (en algunos routers, el sentido se indica como "in" para entrada, "out" para salida", y BOTH para ambos sentidos. Asegúrate de utilizar apertura en ambos sentidos.

      Otros routers cuentan con una función llamada DMZ, que abre todos los puertos. Sin embargo, ten cuidado al utilizar esto pues puede crear agujeros de seguridad.

      Atte.

      Juan Perón

      Eliminar
    2. Hola! Tenía el mismo problema, pero lo pude resolver instalando el Jigasi y configurándolo como dice acá, Tuve que pedir a telecentro cómo abrir el puerto 10000 y ellos lo hicieron desde la central, y ahi anduvo como piña. Pudimos hacer videoconferencia entre veintiuno.!!! Muy bueno gracias general Peron.

      Eliminar
  4. Muy buenos días. Estoy tratando de instalarlo en una máquina virtual, tanto ubuntu de escritorio como server. En ambos casos cuanto trato de descargar el paquete me dice: unable to locate package jitsi-meet
    ¿alguien más tuvo ese error? tal vez me estoy pasando por alto algo muy básico.
    Seguí religiosamente los pasos, tanto aca como en la página.

    Thaiel

    ResponderEliminar
    Respuestas
    1. Estimado Thaiael:

      Jitsi.Meet es el servidor de videoconferencias cifrada, si no te descarga puede deberse a que no incluiste la llave de cifrado del repositorio de Jisti Meet en tu lista de repositorios local.

      Asegúrese de agregar el respositorio (con su llave GPG de seguridad). Lo harás con:

      sudo echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

      wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

      sudo apt-get install apt-transport-https

      sudo apt-get update

      sudo apt-get -y install jitsi-meet

      Atte.

      Juan Perón

      Eliminar
    2. Muchas gracias por tu respuesta.
      Al final era un problema más basico que eso, más para gente que no está acostumbrada a linux.
      hay veces que no permite hacer esta linea:
      sudo echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
      Mi solución pindonga es crear un archivo de texto directamente.
      $ sudo /etc/apt/sources.list.d/jitsi-stable.list
      y adentro pegarle: deb https://download.jitsi.org stable/

      Reinicio la máquina y me puede instalar jitsi.

      Eliminar
  5. Hola, muchas gracias por la ayuda, tengo el servidor instalado y funciona, pero al securizarlo para entrar con usuario y contraseña he realizado lo que has indicado, excepto lo de jicofo y jigasi, no lo tengo instalado, he creado los usuarios y todo, pero al entrar al servidor sigue todo igual.

    ¿A que puede ser debido?

    ResponderEliminar
    Respuestas
    1. Estimado Unknown:

      Debes reiniciar el servicio y el cliente para que surtan efecto las últimas configuraciones.

      Atte.

      Juan Perón

      Eliminar
  6. Error: Account creation/modification not supported

    Por favor alguien que le de este error a la hora de registral los usuarios

    Gracias

    ResponderEliminar
    Respuestas
    1. Estimado Oreste:

      En el caso de que el servidor sea ajeno, significa que no tiene autorización en el servidor para crear usuarios o modificarlos (en otras palabras, intenta utilizar un servidor cerrado).

      Si el servidor es propio, se debe a que no tiene permisos de acceso para hacer las modificaciones. En el caso de hacerlo en un equipo que no es servidor, debes anteponer la orden sudo su antes del comando de creación, luego ingresar tu contraseña de administración, y luego continuar con la creación del usuario/s que deseas utilizar.

      Atte.

      Juan Perón

      Eliminar
  7. Buenos días. Una consulta. Cuando estoy en el proceso de instalación, me da error al procesar prosody y turnserver, y no se como continuar. Saludos.

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Se suele deber a que no has iniciado el servidor o el mismo no conecta remotamente. Por favor debes indicarnos el mensaje de error específico, o revisar el fichero de bitácora con:

      cat /var/log/prosody/prosody.log

      Atte.

      Juan Perón

      Eliminar
  8. Hola.
    He seguido el hilo y logre instalar el servidor jitsi pero no logro ingresar al sitio desde un navegador. (meet.axonico.ar)

    El prosody me tira este error:
    Oct 20 00:23:05 portmanager error Error binding encrypted port for https: No certificate present in SSL/TLS configuration for https port 5281

    Algo que peuda mirar?

    gracias

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      De un tiempo a esta parte la oligarquía centrada en Google Chrome ha decidido imponer la necesidad de los crtificados firmados, lo cual puede llegar a dificultar el deployment de los servidores Jitsi Meet, y el conexionado de las aplicaciones (clientes remotos) al servidor.

      Los certificados son archivos que garantizan de una manera específica que la persona realmente es válida. Normalmente usamos certificados "autofirmados", lo que significa que nosotros mismos certificamos a quien queremos y listo. Pero los derivados de Google ahora pretenden erigirse en certificadores, o bien rechazar con reservas las certificaciones autofirmadas "hechas a la que te criaste".

      Esto no deja de ser un incordio, pero puede solucionarse mediante una autoridad de certificación abierta como Let's Ecnrypt. Para ello debe seguir el procedimiento en pantalla que solicita el guión de programación ejecutable con:

      sudo ./usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

      Normalmente le solicitará completar los datos básicos. Afortunadamente, puede poner cualquier información en let's encrypt, al menos era el caso hasta hace unas semanas atrás. Con ello puede permitirse gran anonimato, lo cual es siempre útil.

      Si ya tiene certificados emitidos por Let's Encrypt, podrá agregarlos al directorio indicado del servidor, y podrá establecer la comunicación anhelada que merece por Justo Derecho.

      Atte.

      Juan Perón

      Eliminar
  9. Hola, genial este blog, lo encontré después de instalar, Una consulta a todos, cual es el limite de conexiones concurrentes que han logrado en una instalación de jitsi. Nosotros tenemos un servidor 3 nucleos 5 giga ram con 50 mega dedicado y llegamos a que funciones estable con 60 conexiones concurrentes. Pregunta, si en la misma maquina agrego mas núcleos y ms memoria, podre aumentar esos 60 usuarios concurrentes?

    Viva Peron, Nestor y Cristina!!

    ResponderEliminar
    Respuestas
    1. Es probable, con un i7 con 16GB llegamos a 90 y es posible que diera para más, pero no tuvimos más usuarios concurrentes como para probarlo.
      El cuello de carga no está tanto en la memoria ni velocidad de procesamiento del servidor (que es bastante "aerodinámico"), sino en la velocidad de conexión.
      Naturalmente, en LAN no tiene estos problemas y se consiguen muy buenos resultados.

      Eliminar