Utilice Jami en una LAN
Debido a la naturaleza distribuida de Jami, es posible usarlo a través de una [red de área local (LAN)] (https://en.wikipedia.org/wiki/Local_area_network), sin conexión a Internet. Esto le permite continuar comunicándose con otras personas en la empresa/edificio/país sin acceso global a Internet. Sin embargo, algunos servicios son externos, por lo que en este documento explicaremos algunos ajustes que puede necesitar.
Arranque
¿Qué es una correa de arranque?
Jami usa la [tabla hash distribuida (DHT)] (https://en.wikipedia.org/wiki/Distributed_hash_table) tecnología para encontrar otros usuarios. Por lo tanto, todos los usuarios con los que desee contactar deben estar accesibles en la misma red DHT (por ejemplo, si Internet se divide entre dos edificios, los usuarios de los primeros edificios no podrán comunicarse con el segundo edificio). Para ingresar a una red DHT, uno debe poder alcanzar al menos otro nodo. Este nodo se llama bootstrap, es el punto de entrada de la red. Por defecto, bootstrap.jami.net está configurado, pero cualquier nodo en el público DHT puede ser un bootstrap (es un nodo clásico, generalmente siempre en línea).
Así que, si Internet está cortado, se necesita otra banda de arranque para crear una red. En una LAN, hay dos formas de configurarlo en Jami:
Configuración de arranque
En las configuraciones avanzadas de la cuenta, el usuario puede configurar múltiples arranques. bootstrap.jami.net es generalmente el predeterminado, bootstrap.jami.net;your.bootstrap.tld será válido. El IP:port de otro nodo DHT se puede especificar como arranque.
Ejecutando un bootstrap
Es posible ejecutar un nodo DHT para que sirva como programa de arranque para los clientes Jami. En este caso, el campo bootstrap en la configuración debe reemplazarse por el nuevo bootstrap. La documentación para ejecutar un nodo DHT se encuentra en la wiki de OpenDHT: https://github.com/savoirfairelinux/opendht/wiki/Running-a-node-with-dhtnode.
Descubrimiento de pares locales
Otra forma es habilitar el descubrimiento por pares. Esto anunciará la salida en la red mediante la emisión de paquetes UDP (como una impresora). Por lo tanto, la emisión UDP debe ser compatible con la red para que funcione. Sin embargo, este método no necesita especificar un ip:port en las configuraciones, por lo que se puede preferir.
El tiempo
Otro servicio externo es el servidor TURN, que se utiliza como alternativa para las conexiones si la NAT bloquea todas las conexiones posibles. Generalmente es turn.jami.net pero puede ser cualquier TURN (usamos coturn).
En una LAN, puede ser ignorado (porque no habrá NAT), pero no debería ser necesario desactivarlo (porque no se utilizará si no es accesible).
En móvil (DHT Proxy)
Un proxy DHT se usa con dispositivos móviles para ahorrar batería al evitar la sincronización. Generalmente es **dhtproxy.jami.net * * pero puede ser cualquier nodo DHT con la API REST habilitada. Sin embargo, si el proxy DHT usa notificaciones push, dependerá de otro servicio externo (Firebase o APN o una instancia de UnifiedPush). En este caso, solo el tercero puede ser autohospedado.
En iOS es básicamente imposible trabajar sin push, ya que el sistema operativo de Apple eliminará cualquier aplicación tan pronto como esté en segundo plano. Por lo tanto, no puede deshabilitar el uso de notificaciones automáticas. Sin embargo, para Android, es posible que desee autohospedar su proxy( con o sin soporte UnifiedPush), o puede deshabilitar el proxy DHT y habilitar «Ejecutar en segundo plano» para usar su DHT local.
Nombre del servidor
Finalmente, el último servicio externo que puede necesitar es un servidor de nombres. Esto se usa para traducir direcciones (la identificación de huellas de 40 caracteres) a nombres de usuario. Es posible que no tenga acceso a ns.jami.net, pero puede autohospedar uno ([protocolo del servidor de nombres] (/developer/jami-concepts/protocol)) o usar solo ID.