How to configure Jitsi Videobridge with ejabberd

Edit the configuration file ejabberd.cfg, find the section that starts with

 {listen,

and add the following:

 {5275, ejabberd_service, [{host, "jitsi-videobridge.example.com", [{password, "xxxxx"}]}]},

The port number could be different, of course. Please, note that the ‘jitsi-videobridge’ part is mandatory and the rest of the domain (‘example.com’) has to match the domain passed to the jitsi videobridge when started on the command line. If any of these is changed, everything seems to work fine, but when a conference starts only the focus is audible/visible, and the only errors seen are those in the ejabberd logs.

With this configuration, starting Jitsi Videobridge from the console would look like this:

 jvb.sh --secret=xxxxx --domain='example.com' --port=5275
The domain used should be one of the domains hosted by ejabberd, and only clients connected to this domain will be able to use the videobridge.

If you are using the .yml file (and not the .cfg file) for the configuration, the relevant part should instead look something like this:

    port: 5275
    module: ejabberd_service
    hosts:
      "jitsi-videobridge.example.com":
        password: "xxxxx"
ejabberd has a default traffic shaper configured with a term like this:
 {access, c2s_shaper, [{none, admin}, {normal, all}]}.

Here the ‘normal’ shaper is used for users. This can be set to ‘none’, or to the name of another shaper defined with, e.g.

 {shaper, normal2, {maxrate, 100000}}. %%100 000 B/s

The default ‘normal’ one uses 1000 B/s which is way too low for the focus to initialize a conference without delays/failures.