Code Monkey home page Code Monkey logo

handbook's Introduction

The Jitsi Handbook

This is The Jitsi Handbook. Your one-stop shop for Jitsi documentation. It's powered by Docusaurus. The documentation website can be found here.

Building the site

The site is built automatically with every push thanks to a GH Actions.

NOTE: You need to have Node.Js(>=16) installed in your system to build this site. NodeJs can be downloaded from here

If you want to build it locally, follow these simple steps:

  1. Clone the repository
git clone https://github.com/jitsi/handbook.git
  1. Move to the folder where the repository is cloned
cd handbook
  1. Install the dependencies
npm install
  1. Start the website
npm start

The website will be running at http://127.0.0.1:3000/handbook/

You can now edit the files in the docs folder and the site will reflect the changes immediately thanks to live reloading.

Contributing

We appreciate all contributions to this repository. Please make a Pull Request, no matter how small, all contributions are valuable!

Please follow the given Contributing Guidelines before submitting a pull request.

handbook's People

Contributors

andrei-gavrilescu avatar bgrozev avatar calinteodor avatar csett86 avatar damencho avatar dandv avatar danielhabenicht avatar daxiondi avatar dependabot[bot] avatar emrahcom avatar gabiborlea avatar h2entwicklung avatar horymury avatar hristoterezov avatar jallamsetty1 avatar krishnakumarp avatar kurt8x8 avatar luixxiul avatar magicfab avatar mihhu avatar neilzone avatar quitrk avatar rasos avatar robertpin avatar ryuno-ki avatar saghul avatar shawnchin avatar tmoldovan8x8 avatar toby63 avatar tosteiner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

handbook's Issues

Typo in FAQ

Not sure if this is the right repo, but I couldn't find one for the website.

At https://jitsi.org/user-faq/, under "What are the features...", there's a typo:

Play a YouTube video to all attendees call

Also, under the 2nd FAQ, "What are the major Jitsi projects", is Jitsi Videobridge included in Jitsi Meet? I'm not really new to Jitsi any more, but I still don't understand this :-/

Suggestion: When chat is open, allow the main image to fit between the margins

I used Jitsi on a conference call over the two days recently. Excellent.

One relatively minor issue was that with the chat active, it will hide (the left hand) part of the main screen area, so one can't see part of the presentations, or some of the participants if in gallery view.

It would be nice if their was a 'shrink to fit', or similar, so that the chat can be held open as well as seeing the full conference image, likewise for anything showing on the right hand margin. The chat bar could be detached, to be free-floated, if that was easier.

Thanks.

Can not compse docker image.

From the documentation you tell the last step is a docker-compose. Unfortunately this does not work.

root@ubuntu-8gb-fsn1-2:~/docker-jitsi-meet# docker-compose up -d
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 387, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.8/http/client.py", line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1301, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1250, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1010, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 950, in send
    self.connect()
  File "/usr/lib/python3/dist-packages/docker/transport/unixconn.py", line 43, in connect
    sock.connect(self.unix_socket)
FileNotFoundError: [Errno 2] No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 719, in urlopen
    retries = retries.increment(
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/lib/python3/dist-packages/six.py", line 702, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 665, in urlopen
    httplib_response = self._make_request(
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 387, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.8/http/client.py", line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1301, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1250, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.8/http/client.py", line 1010, in _send_output
    self.send(msg)
  File "/usr/lib/python3.8/http/client.py", line 950, in send
    self.connect()
  File "/usr/lib/python3/dist-packages/docker/transport/unixconn.py", line 43, in connect
    sock.connect(self.unix_socket)
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/compose/cli/errors.py", line 45, in handle_connection_errors
    yield
  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 151, in get_project
    return Project.from_config(
  File "/usr/lib/python3/dist-packages/compose/project.py", line 102, in from_config
    service_networks = get_networks(service_dict, networks)
  File "/usr/lib/python3/dist-packages/compose/network.py", line 320, in get_networks
    networks[network.true_name] = netdef
  File "/usr/lib/python3/dist-packages/compose/network.py", line 125, in true_name
    self._set_legacy_flag()
  File "/usr/lib/python3/dist-packages/compose/network.py", line 146, in _set_legacy_flag
    data = self.inspect(legacy=True)
  File "/usr/lib/python3/dist-packages/compose/network.py", line 106, in inspect
    return self.client.inspect_network(self.legacy_full_name)
  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/docker/api/network.py", line 212, in inspect_network
    res = self._get(url, params=params)
  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46, in inner
    return f(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 230, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 546, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 11, in <module>
    load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
    command()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 125, in perform_command
    project = project_from_options('.', options)
  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 53, in project_from_options
    return get_project(
  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 151, in get_project
    return Project.from_config(
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3/dist-packages/compose/cli/errors.py", line 53, in handle_connection_errors
    exit_with_error(get_conn_error_message(client.base_url))
  File "/usr/lib/python3/dist-packages/compose/cli/errors.py", line 123, in get_conn_error_message
    return docker_not_found_msg("Couldn't connect to Docker daemon.")
  File "/usr/lib/python3/dist-packages/compose/cli/errors.py", line 137, in docker_not_found_msg
    problem, docker_install_url())
  File "/usr/lib/python3/dist-packages/compose/cli/errors.py", line 143, in docker_install_url
    elif is_ubuntu():
  File "/usr/lib/python3/dist-packages/compose/cli/utils.py", line 76, in is_ubuntu
    return platform.system() == 'Linux' and platform.linux_distribution()[0] == 'Ubuntu'
AttributeError: module 'platform' has no attribute 'linux_distribution'
root@ubuntu-8gb-fsn1-2:~/docker-jitsi-meet#```

Marketing suggestion: highlight key Jitsi features and benefits on handbook homepage (?)

There are frequent conversations at the moment about how to determine what videoconferencing solution to use, in various social and work environments.

  • People aren't sure what operating systems / browsers different conferencing services work on (or sometimes what the names of those environments and platforms are)
  • System and business decision-makers may have little time to assess each service they're evaluating -- and are more likely to have heard of market-leading products, due to their relative ability to perform passive and inbound marketing
  • People aren't sure about the security and privacy properties of the services available

Would the homepage of the Jitsi handbook be a good place to locate some 'marketing-like' summary information to aid decision-making?

Since it's on my mind currently, I'd like to leave some notes on a suggested approach, involving a single sentence for each talking point -- concise, correct and true -- for a number of potentially-relevant items:

  • Completely free videoconferencing for groups
  • Supported by all major web browsers
  • Single-click-to-join meetings using standard web hyperlinks
  • No user accounts required
  • Creation and entry to meetings can be restricted
  • Cloud-hosted or on-premise deployment options
  • Built upon widely-deployed and well-tested secure videoconferencing technology
  • Is open source and incorporates software, documentation and translation improvements from a large community

Create/link to page for Configuring Jitsi

At the end of the Quickstart guide, the user should be directed to a page about configuring some Jitsi basics (e.g. the brand image from the upper-left corner).

Right now, the next page in the process is the Docker page, but presumably if the user has followed the quickstart guide, they don't want to read about Docker.

Same for the end of the Docker page - the user doesn't want to read about Manual Installation.

[Request] Rename the DevOps-Guide

At least I was confused what "DevOps" should be about and where I find the information about setting up a server.
To avoid confusion, I recommend changing the Name to either:

  • Server-Guide
  • Administration-Guide (or Admin-Guide)

or similar.

UDP port 4446

I just followed the tutorial on a fresh Ubuntu 20.04. Found issues using the Android app that were resolved when I opened UDP port 4446, not mentioned in the tutorial.

The issues were only when connecting via the mobile network, Wi-Fi seemed fine.
UDP port 4446 is mentioned in /etc/turnserver.conf as listening-port=4446.

Jicofo configuration

In Jicofo configuration it says to set a value in /etc/jitsi/jicofo/sip-communicator.properties and for Debian systems add some lines to /etc/jitsi/jicofo/jicofo.conf.

Do I need to make both changes or either depending on the distribution?

Confusing information on the configuration of the firewall

Page DevOps Guide (dedicated server)
Chapter Setup and configure your firewall

Confusing information on the configuration of the firewall:
https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart#setup-and-configure-your-firewall
Source:
https://github.com/jitsi/handbook/blob/master/docs/devops-guide/quickstart.md

In the text port 4443 is not mentioned, in the UFW configuration below port 4443/tcp suddenly appears.
Is port 4443 needed or not?
What is the function of port 4443?
Please compare text and ufw configuration and adjust it.

Outdated Quickstart

I was following along the quickstart guide until i ran into an error:

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

stopped with a python ImportError when creating a new virtual environment

[...]
Creating virtual environment...
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 7, in <module>
    from virtualenv import main
ImportError: cannot import name main
Traceback (most recent call last):
  File "<stdin>", line 27, in <module>
  File "<stdin>", line 19, in create_venv
  File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['virtualenv', '--no-site-packages', '--python', '/usr/bin/python2.7', '/opt/eff.org/certbot/venv']' returned non-zero exit status 1

pip show virtualenv revealed i am using version 20.0.26 which is the current up-to-date version.

My guess is I either need to downgrade my virtualenv (to which version?) or the code needs some modification.

Include prosody .11 in Self-Hosting Guide - Debian/Ubuntu server

Ubuntu 18.04 has Prosody .10 in the repos.

This forum post explains how to update to .11, which is required for certain features, including the lobby feature.

I haven't tested below on installing from fresh OS, but I think the following should work for new installs:

At line 79, insert:

### For Ubuntu 18.04, add Prosody package repository

This will add the Prosody repository so that Prosody .11 will be installed, which is necessary for features including the lobby feature.

```sh
echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
```

Confusing instructions for /etc/hosts

Hi,

the comment "..., associating it with the loopback address" in Debian/Ubuntu server guide is a bit confusing. Why should the entry to resolve the FQDN to the public IP specifically be written next to the default localhost line? I don't see any obvious need for this "association" and would rather add this to the end of the file. Furthermore, is this local FQDN to public IP resolution really optional, i.e. would Jitsi also work without this and / or setting the correct name in /etc/hostname?

Thx
Andreas

Default values of docker env vars are not correct

In the "Default value" column of the env var table the values are not correct or in some cases even just example values.
I think we should fix the default values and should introduce a new column for examples.

Transfer documentation from Jitsi projects

Now that files under doc/ on jitsi-meet have been transferred to this handbook, I think documentation of the other projects should also be transferred.

Here are the projects on which are worked actively:

Some of them would be under dev-guide/, the others under devops-guide/. For example, documentation of lib-jitsi-meet would be transferred under dev-guide/.

[Request] Rename some documents

I recommend renaming some documents to have a better structure and readability.

I would like to change the following names:

  • folder: docs/devops-guide to self-hosting-guide or server-guide
  • devops-guide.md to self-hosting-guide or server-guide
  • secure-domain.md to access control or something similar
  • quickstart.md to debian guide or debian/ubuntu guide

I would like to change the ids as well, because their names are also a bit confusing.

We would need to change all the links (internal and external) as well to fit the new structure.
In addition it might be possible to redirect the old links for some time, to guarantee accessability.

Avoid using + in version numbers

In your handbook for Android, you recommend defining the gradle dependency as follows:

org.jitsi.react:jitsi-meet-sdk:2.+

Source: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk

This is very dangerous, especially when semantic versioning is not used properly. It means that projects depending on jitsi-meet will automatically update to the latest version, without any changes in the code.

This happened to me, the same code that built just fine few weeks ago is failing to build today.

It's because in your 2.10.0 update, you introduced this change:
Bump minimum API level to 23 and target API level to 29

This is a breaking change which breaks all the Android builds which use API lower than 23 as minimum supported API (e.g: I'm using 21).

I recommend two approaches to avoid this in the future:

  1. You should update the major version for breaking changes like this one (this should've been a 3.0.0).
  2. Discourage the usage of 2.+ dependency format in your documentation.

[Request] Changes to Dedicated Server Guide

Right now it is a bit confusing, so I would suggest some changes:

  1. Rename "Dedicated Server"-Page to Installation on Debian/Ubuntu or something similar, so people can directly see what this page will be about.
  2. You could add a general introduction for "Installation" or "Deployment" that clarifies the different methods (Debian, Docker, Manual) and when to use them.

Broken link at Jitsi FAQ to installation

On the Jitsi FAQ at https://jitsi.org/user-faq/ in the How do I setup my own Jitsi installation? section where it says For other systems, or if you wish to install all components manually, see the detailed manual installation instructions. it links to this URL

https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md

which 404's

I suspect the link should be updated to this URL

https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual

Add troubleshooting guides

Since the community forum is unfortunately full of posts about installation errors that occur again and again, it would be very helpful to have a kind of troubleshooting checklist to systematically check for all causes.

Instead of helping everyone in the forum with troubleshooting, you could instead refer to the Troubleshooting Checklist to identify the 90% most common problems.

This would also be a great help for those who are not very experienced in Linux administration and may not even know the necessary tools, e.g. netstat, ps, dig, ufw, tcpdump...

In this forum post there are a few suggestions for the checklist, which of course need to be extended:
https://community.jitsi.org/t/cannot-see-anyone-but-me-and-error-message-in-jvb-log-on-a-nated-vm-on-debian-10/59325/4

I think we would need one checklist for the "Easy Installation" and one for the Docker Installation.

Token based authentication?

In secure-domain I am told that

When using token based authentication, the type must use JWT as the scheme instead:

At least to me it is unclear what "token based authentication" is and if I'm using it at that point.

Perhaps it'll help to explain that in more detail or link somewhere?

Remove localhost-Line from DevOps Guide

The DevOps-Guide asks you to add
127.0.0.1 localhost meet.example.org
to your /etc/hosts file.

From my experience, this is not required. (If you think, it is required so the videobridge can find the TURN-server, I'd recommend to use the public IP for that.)

Clarify that building the applications is not supported on Windows in Developer Guide (Web)

The Developer Guide (Mobile) clarifies that building the applications is not supported on Windows but this is not mentioned in the Developer Guide (Web).

This confused me as I'm only looking at the Web guide.

Others in the community seem confused too, e.g. Deploying and installing Jitsi-meet on WINDOWS xampp/htdocs.

I propose to put the same note under Building the sources on the Start page of Developer Guide (Web).

Curl package missing in the requirements

Just a minor one. By default Debian Buster does not include the curl package, thus this should be mentioned in the prerequisites / requirements for installation.

Dubious responsive images code on the download page for the app logos

The code at https://jitsi.org/downloads/ has this markup for responsive images, which doesn't seem to make sense:

  • max-width: 148px will pretty much never be true
  • the default width is equal to the max-width
  • the default width is 148px, but the smallest image width is 300w
  • the second image in the srcSet will never be used
  • the width="xxx" and height="50" are forced anyway
<a href="https://itunes.apple.com/us/app/jitsi-meet/id1165103905">
  <img src="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/appstore-badge-300x101.png"
    alt="" width="148" height="50"
    srcSet="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/appstore-badge-300x101.png 300w,
    https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/appstore-badge.png 498w"
    sizes="(max-width: 148px) 100vw, 148px"
  />
</a>
<a href="https://play.google.com/store/apps/details?id=org.jitsi.meet">
  <img src="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/google-play-badge-300x89.png"
    alt="" width="169" height="50"
    srcSet="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/google-play-badge-300x89.png 300w,
    https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/google-play-badge.png 563w"
    sizes="(max-width: 169px) 100vw, 169px"
  />
</a>
<a href="https://f-droid.org/en/packages/org.jitsi.meet/">
  <img src="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/f-droid-badge-300x89.png"
    alt="" width="169" height="50"
    srcSet="https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/f-droid-badge-300x89.png 300w,
    https://335wvf48o1332cksy23mw1pj-wpengine.netdna-ssl.com/wp-content/uploads/2019/11/f-droid-badge.png 563w"
    sizes="(max-width: 169px) 100vw, 169px"
  />
</a>

Also, the alt attribute is empty.

Rewrite README.md

It should maybe contain more useful information:

  1. Introduction:
    • Link to handbook page (The handbook website can be found here:)
    • If you want to contribute follow the instructions below
  2. Describe how to contribute:
    • git clone
    • install necessary software
    • how to edit it (language used is markdown etc.)
    • test your changes by building the website & check for the changes in your own browser
    • create a pull request
  3. Link to contribution guidelines:
    • language and style
    • allowed tags
    • signed commits(?)
    • etc.

Need to add authdomain to /etc/jitsi/meet/[your-hostname]-config.js

Right under:

var config = {
hosts: {
domain: 'jitsi-meet.example.com',
anonymousdomain: 'guest.jitsi-meet.example.com',
add
authdomain: 'jitsi-meet.example.com',

The line is autogenerated but commented out by default, but if you are describing how to allow host authorization, I think this line is needed. Thanks saghul for pointing it out to me!

Please improve clean-up instructions / config files affected

Quite a few times I had issues with a clean installation start , after previously triggering the suggested "apt purge ...", including even prosody and coturn packages there. The two most frequent problems during / after subsequent installations were either:

  1. Everything seemed to work fine, but in the end couldn't see / hear each other's audio / video, even after completely disabling the firewall and rechecking host names
  2. Couldn't change to a new domain name on an existing system

In either cases pretty sure there have been some orphaned config files causing the issues, but my overall Jitsi and Java understanding is too limited to follow-up there with reasonable effort. Thus it would be good to provide some more details on the requirements / dependencies there in the instructions.

FAQ - What does the JITSI acronym stand for?

Hi, coming in from cognitive sciences.
People's brains need "mental, instructional scaffolding" help to remember this new and bizarre acronym, word "JITSI".
E.g.: JITSI video collaboration application
and inspired by [[(https://en.wikipedia.org/wiki/Jitsi#Jitsi_Desktop)]]
I got:
J = JavaScript application,
I = Interface
T = Talk & Video & Conference & Stream & More
S = Secure
I = Instant Encrypted

:) Cheers

Is this site dead ?

Its seems this site is not maintained..

As a new user and wanting to contrib, but lots of PR's and issues.

TURN on port 443 with ssl_preread_server_name not working with firefox

I just tested a few scenarios. Apparently "sharing" port 443 between nginx and coturn with the ssl_preread_server_name method is not working with two firefox browsers, both in a restricted network. It works with chrome base browsers (and jitsi meet desktop app).
I don't know exactly where the problem is. Firefox probably doesn't send server name request upon establishing a turns connection or Firefox just can't establish true turns connections, only turn.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.