Coder Social home page Coder Social logo

jitsi / jicofo Goto Github PK

View Code? Open in Web Editor NEW
314.0 42.0 347.0 38.88 MB

JItsi COnference FOcus is a server side focus component used in Jitsi Meet conferences.

License: Apache License 2.0

Shell 0.43% Python 0.47% Java 21.26% Batchfile 0.04% Kotlin 77.78% DTrace 0.01%

jicofo's Introduction

Jicofo

JItsi COnference FOcus is a signaling server, one of the backend components in the Jitsi Meet stack.

Overview

Jitsi Meet conferences are associated with an XMPP Multi-User Chat (MUC) room. The MUC functionality is provided by the XMPP server (prosody).

Jicofo joins the conference MUC and is then responsible for initiating a Jingle session with each participant (in this sense it is the "focus" of the conference, which is where its name comes from). While Jicofo manages and terminates Jingle sessions, it does not process any of the media (audio/video). Instead, it uses one or more Jitsi Videobridge instances.

Jicofo is responsible for selecting a Jitsi Videobridge for each participant, and manages the set of videobridges for the conference with the COLIBRI protocol (colibri version 2 is now used, the format in XEP-0340 is now deprecated).

In general the conference participants and videobridge instances are accessed through different XMPP connections -- the configured Client and Service connections, respectively, though they may coincide.

Connection between Jicofo and the other components in the Jitsi Meet stack.

Configuration

Jicofo takes its configuration from a hocon config file, usually installed in /etc/jitsi/jicofo/jicofo.conf. See the reference.conf file for the available options.

Installation

Debian

The recommended way to install Jicofo and Jitsi Meet is to follow the Quick Install Guide for debian-based systems.

Binaries

You can download Debian/Ubuntu binaries here:

Docker

Jicofo is available as a docker image as part of docker-jitsi-meet.

Manual

This section is only required for a manual setup, not necessary when using Quick Install or other methods.

Prosody configuration

Jicofo needs privileges to create Multi-User Chat rooms. To grant these privileges we create an account for it and add it to the global admins list. We create a new virtual host, because the one used by clients only supports anonymous authentication. We add this to Prosody's config file (/etc/prosody/prosody.cfg.lua by default):

admins = { [email protected] }
VirtualHost "auth.jitsi.example.com"
    authentication = "internal_hashed"

Then restart Prosody and create the user account:

sudo prosodyctl restart
sudo prosodyctl register focus auth.jitsi.example.com focuspassword

Building Jicofo

Build using maven with:

mvn install

This will create a package in jicofo/target/jicofo-1.1-SNAPSHOT-archive.zip

Running Jicofo

Extract the distribution package and run with jicofo.sh.

Certificates

Jicofo uses an XMPP user connection (on port 5222 by default), and since the upgrade to smack4 it verifies the server's certificate. In a default installation the debian installation scripts take care of generating a self-signed certificate and adding it to the keystore.

For situations in which the certificate is not trusted you can add it to the store by:

On Linux

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

On MacOS X

On Mac java uses its own keystore, so adding the certificate to the system one does not work. Add it to the java keystore with:

sudo keytool -importcert -file cert.pem -keystore /Library/Java//JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/security/cacerts

Note that if the XMPP server you are connecting to is a prosody instance configured with the jitsi-meet scripts, then you can find the certificate in:

/var/lib/prosody/$JICOFO_AUTH_DOMAIN.crt 

jicofo's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jicofo's Issues

Bridges are not re-discovered

Available jitsi-videobridges are discovered only once on startup. This means that if some of them will go up after Jicofo startup they will never be discovered. This also applies to PubSub nodes to which bridges send their stats - if they don't exist on startup then Jicofo will never subscribe.

Forgetting to pass --user_domain leads to a NPE

Here is the stack trace:

Exception in thread "main" java.lang.NullPointerException
        at java.util.Hashtable.put(Hashtable.java:459)
        at java.util.Properties.setProperty(Properties.java:166)
        at java.lang.System.setProperty(System.java:796)
        at org.jitsi.jicofo.Main.main(Main.java:166)

Cross domain problem

I need to use jitsi in my webapp, and the webapp was served on different server, if I call jitsi from the webapp, the http-bind return cross domain problem.

jicofo cross domain problem
jicofo cross domain netowrk tab

in real world, the Jicofo and client may served on multiple servers, Can we set the jicofo to support CORS as default? or anyone can tell me how to set the jicofo support cross domain?

Make unmuting of participants allowed via config

It is hardcoded into the system that the moderator can mute, but not unmute, participants. Furthermore the participant can allways mute and unmute himself.
https://github.com/jitsi/jicofo/blob/master/src/main/java/org/jitsi/jicofo/JitsiMeetConferenceImpl.java#L1539

It would be nice if these hardcoded decisions were configurable. We are building a conference system in which we do not want the participants to be able to unmute themselves - only the moderator is allowed to give "talk time" to a specific participant.

Would a pullrequest for such a feature be welcomed or is it out of scope for this project?

Can't set process on background

Hello Everyone,
When I am trying start focus as background process it just dies with error on file descriptor.

12:32:07.197 FINE: [9] plugin.reconnectplugin.ReconnectPluginActivator.start().238 Found 0 already installed providers.
12:32:07.517 SEVERE: [20] org.jitsi.jicofo.Main.run().315 java.io.IOException: Bad file descriptor
java.io.IOException: Bad file descriptor
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:272)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
    at org.jitsi.jicofo.Main$2.run(Main.java:308)
    at java.lang.Thread.run(Thread.java:745)

Off topic
I posting problem here, because my emails never got posted in dev mailing list. Not sure where the problem.
Here mail server log when I sent last email.

Dec 19 12:39:18 camailsrv01 smtp-skillsearch/smtp[1530]: E41AA427E1: to=<[email protected]>, relay=ASPMX.L.GOOGLE.COM[64.233.171.26]:25, delay=1.7, delays=0.01/0.02/0.78/0.85, dsn=2.0.0, status=sent (250 2.0.0 OK 1419010758 t5si12390172qak.118 - gsmtp)

Secure domain Eror

Installed on the installation: https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md
I made the following instructions: https://github.com/jitsi/jicofo#secure-domain

After that, I have a message when I try to create a room:
"Oops! Something went wrong and we could not connect to the conference: connection.otherError"
And in the log (/var/log/jitsi/jicofo.log) is empty (It is not empty, but there will not appear during this time of recording.)

Here is my config (where x.x.x.x = ip adress (I do not have a domain))
/etc/prosody/conf.avail/x.x.x.x.cfg.lua https://pastebin.com/Bq0mYsF0
/etc/jitsi/meet/x.x.x.x-config.js (Excerpt) https://pastebin.com/0sD03J3U
/etc/jitsi/jicofo/sip-communicator.properties https://pastebin.com/DL3xzaXg

Tell me I'm doing this wrong, or I have to do something else?

Improve UX for conference restart

When we have conference in progress and new participant joins the room Jicofo allocates Colibri channels and tries to establish Jingle session with new peer. In case of allocation failure Jicofo leaves the room and aborts whole conference(currently used JVB is considered faulty). Jitsi-meet will reload the page in order to have the conference restarted on new bridge, but the user will be confused and have no idea what's going on. This scenario must be improved.

H264 doesn't work in Chrome

Recently I noticed that h264 conferences don't work in Google Chrome. It seems this issue has been known for a while and is caused by a case sensitivity issue with Chrome.

Steps to reproduce:

  1. Set up a Jitsi Meet environment using the Quick Install guide
  2. In /etc/jitsi/meet/jitsi.example.com-config.js, add preferH264: true
  3. Using two browsers, at least one of them Google Chrome (tested in 60.0.3112.113), navigate to the Jitsi Meet domain and observe that the video call never starts.

I'm happy to contribute a fix for this myself, but I'm not sure where Constants.H264 is defined. I'm very new to Java.

EDIT: I found it in jitsi/libjitsi /src/org/jitsi/service/neomedia/codec/Constants.java. Maybe this issue should be against that project instead?

focus.domain.com not available

Please help me with this. I try with many ways but i can't. How is the correct set up of jicofo? Last time when i install jitsi meet i don't had this problem, i don't know happens now.

Local signaling

I would like to know if it's possible for jicofo to maintain a single Jingle connection for all conference rooms and participants to a localhost server

The way my app is architected, the clients send their SDP through a secure websocket channel and the app then sends this SDP to a custom MCU which then returns an SDP which the app broadcasts out to all intended receivers. Then the receivers proceed to stream directly from the MCU over DTLS-SRTP.

My tests with Jitsi Videobridge in Jitsi Meet have shown greater stability and quality than our in-house MCU and therefore, I'd like to try to integrate it into the app.

Thanks

Question

When does jicofo send first IQ packet to videobridge ?

jicofo focus error

trying jitsi meet setup exactly according to official documentation. I noticed jicofo component is not starting properly. Tried most of the suggestions from mailing list. error is as follow

15:47:23.794 INFO: [9] impl.netaddr.NetworkAddressManagerServiceImpl.start().81 Network Address Manager ...[ STARTED ]
15:47:23.795 INFO: [9] impl.netaddr.NetworkAddressManagerServiceImpl.start().87 Network Address Manager Service ...[REGISTERED]
15:47:23.841 INFO: [9] impl.netaddr.NetworkConfigurationWatcher.checkNetworkInterfaces().387 Currently Active eth0:[/128.199.185.133]
15:47:23.845 FINE: [9] plugin.reconnectplugin.ReconnectPluginActivator.start().238 Found 0 already installed providers.
15:47:24.155 SEVERE: [19] org.jitsi.jicofo.util.RegisterThread.run().42 net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:161)
at org.jitsi.jicofo.util.RegisterThread.run(RegisterThread.java:38)
Caused by: service-unavailable(-1)
at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:77)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:217)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:156)

Any patch for that.

systemd start up file

On Debian, using the sysv init script, I discovered that jicofo failed to start without any output or reason.

To fix the problem, I wrote a new systemd service file which seems to work without a hitch:

[Unit]
Description=Jitsi conference Focus
After=local-fs.target remote-fs.target
Conflicts=shutdown.target

[Service]
Restart=always
EnvironmentFile=/etc/jitsi/jicofo/config
User=jicofo
WorkingDirectory=/usr/share/jicofo
ExecStart=/usr/share/jicofo/jicofo.sh --host=${JICOFO_HOST} --domain=${JICOFO_HOSTNAME} --port=${JICOFO_PORT} --secret=${JICOFO_SECRET} --user_domain=${JICOFO_AUTH_DOMAIN} --user_password=${JICOFO_AUTH_PASSWORD}

[Install]
WantedBy=multi-user.target

Closes the connection temporary stream:error

I've just retrieved the newest jitsi meet by git and have installed jicofo (Redhat) since it seems to be required. The build using 'ant' was successfull.

I've followed the steps in the howto and it seems to work; when I join the channel, I become a moderator. However, the video stream doesn't work. Jicofo was started with the following parameters:
./jicofo.sh --host=localhost --domain=bl17-15-test.xxxxxxxx.be --port=5447 --secret=qgN2Nau4jA9REbSMf9z2 --user_domain=auth.bl17-15-test.xxxxxxxx.be --user_name=focus --user_password=blabla

Note: port 5447 is the component_port in my prosody.

It appears that there are a lot of 'Failed to connect' errors.

16:05:32.566 FINE: [9] plugin.reconnectplugin.ReconnectPluginActivator.start().238 Found 0 already installed providers. 16:05:33.124 SEVERE: [22] org.jivesoftware.smack.PacketReader.notifyConnectionError() Closes the connection temporary stream:error (text) at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:264) at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45) at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:74) 16:05:36.984 INFO: [25] org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet().222 Focus request for room: [email protected] 16:05:36.993 INFO: [25] org.jitsi.jicofo.FocusManager.createConference().230 Created new focus for [email protected]@auth.bl17-15-test.xxxxxxxx.be conferences count: 1 options: channelLastN: -1 adaptiveLastN: false adaptiveSimulcast: false bridge: jitsi-videobridge.bl17-15-test.xxxxxxxx.be enableFirefoxHacks: false openSctp: true 16:05:37.153 SEVERE: [28] org.jivesoftware.smack.PacketReader.notifyConnectionError() Closes the connection temporary stream:error (text) at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:264) at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45) at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:74) 16:05:52.891 INFO: [18] org.jitsi.jicofo.FocusManager.expireLoop().458 Focus idle timeout for [email protected] 16:05:52.891 INFO: [18] org.jitsi.impl.protocol.xmpp.OperationSetColibriConferenceImpl.expireConference().334 Nothing to expire - no conference allocated yet 16:05:52.891 SEVERE: [18] org.jitsi.jicofo.JitsiMeetConference.leaveTheRoom().360 Chat room already left! 16:05:52.987 SEVERE: [19] org.jitsi.jicofo.util.RegisterThread.run().42 net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:161) at org.jitsi.jicofo.util.RegisterThread.run(RegisterThread.java:38) Caused by: No response from the server.: at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73) at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:217) at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:156) ... 1 more 16:05:57.002 SEVERE: [26] org.jitsi.jicofo.util.RegisterThread.run().42 net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:161) at org.jitsi.jicofo.util.RegisterThread.run(RegisterThread.java:38) Caused by: No response from the server.: at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73) at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:217) at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:156) ... 1 more 16:05:57.153 INFO: [18] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.info() XMPP provider Jabber:[email protected]/focus8924008725472057@localhost disconnected 16:05:57.155 INFO: [18] org.jitsi.jicofo.FocusManager.conferenceEnded().252 Disposed conference for room: [email protected] conference count: 0 16:09:10.815 INFO: [34] org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet().222 Focus request for room: [email protected] 16:09:10.815 INFO: [34] org.jitsi.jicofo.FocusManager.createConference().230 Created new focus for [email protected]@auth.bl17-15-test.xxxxxxxx.be conferences count: 1 options: channelLastN: -1 adaptiveLastN: false adaptiveSimulcast: false bridge: jitsi-videobridge.bl17-15-test.xxxxxxxx.be enableFirefoxHacks: false openSctp: true 16:09:10.976 SEVERE: [37] org.jivesoftware.smack.PacketReader.notifyConnectionError() Closes the connection temporary stream:error (text) at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:264) at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45) at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:74) 16:09:27.162 INFO: [18] org.jitsi.jicofo.FocusManager.expireLoop().458 Focus idle timeout for [email protected] 16:09:27.163 INFO: [18] org.jitsi.impl.protocol.xmpp.OperationSetColibriConferenceImpl.expireConference().334 Nothing to expire - no conference allocated yet 16:09:27.163 SEVERE: [18] org.jitsi.jicofo.JitsiMeetConference.leaveTheRoom().360 Chat room already left! 16:09:30.820 SEVERE: [35] org.jitsi.jicofo.util.RegisterThread.run().42 net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect net.java.sip.communicator.service.protocol.OperationFailedException: Failed to connect at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:161) at org.jitsi.jicofo.util.RegisterThread.run(RegisterThread.java:38) Caused by: No response from the server.: at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:73) at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:217) at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.register(XmppProtocolProvider.java:156) ... 1 more 16:09:30.970 INFO: [18] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.info() XMPP provider Jabber:[email protected]/focus8924222548382055@localhost disconnected 16:09:30.971 INFO: [18] org.jitsi.jicofo.FocusManager.conferenceEnded().252 Disposed conference for room: [email protected] conference count: 0

Implementing OpenID Connect authentication

Dear All,

As I mentioned in the mailing list http://lists.jitsi.org/pipermail/dev/2017-July/034204.html I would like to implement a new authentication feature using OpenID Connect in order to make it work with the OIDC provider FranceConnect.

Before starting this work, I'd like to have some clarifications about developing and adding a new module. Thus I have a couple of questions :

  • Which files should I exactly modify to make it work ?
  • Is there any documentation on how to add new features to Jitsi Meet/Jicofo?

Any help would be greatly appreciated.

Hamza

Secure domains do not work if prosody uses Cyrus-SASL authentication

Hi,

We are trying to setup jistimeet with LDAP-backed secure domains, using prosody as XMPP server.
If prosody is configured to use sasl as an authentication provider, the authentication dialog on jitsimeet is stuck on "Connecting".
Prosody does not log any authentication request, so i'm guessing the problem is with Jicofo, but i'm not sure, since the architecture behind this is quite complex.

Authentication does work if i use a random XMPP client, like Empathy or Gajim, so i don't think it's a configuration issue with prosody.

Do you have any idea why is the authentication failing?

Thanks.

Error in init script - JICOFO_AUTH_USER is ignored

There is a bug in the init.d scripts of the jicofo Debian package. The JICOFO_AUTH_USER variable is not used in the init script. So Jicofo will always try to login to the XMPP server as "focus" even if you define a different user name.

Patch:

diff --git a/init.d/jicofo b/init.d/jicofo
index adc06a6..6c405e5 100755
--- a/init.d/jicofo
+++ b/init.d/jicofo
@@ -32,7 +32,7 @@ USER=jicofo
 PIDFILE=/var/run/jicofo.pid
 LOGFILE=/var/log/jitsi/jicofo.log
 DESC=jicofo
-DAEMON_OPTS=" --host=$JICOFO_HOST --domain=$JICOFO_HOSTNAME --port=$JICOFO_PORT --secret=$JICOFO_SECRET --user_domain=$JICOFO_AUTH_DOMAIN --user_password=$JICOFO_AUTH_PASSWORD $JICOFO_OPTS"
+DAEMON_OPTS=" --host=$JICOFO_HOST --domain=$JICOFO_HOSTNAME --port=$JICOFO_PORT --secret=$JICOFO_SECRET --user_name=$JICOFO_AUTH_USER --user_domain=$JICOFO_AUTH_DOMAIN --user_password=$JICOFO_AUTH_PASSWORD $JICOFO_OPTS"

State introspection (via REST?)

We are interested in retrieving the state information of Jicofo, that is, which conferences are running and who are participating (and how long). Currently, we are trying to use the reservation system to tackle this issue by at least registering reservations, i.e. conference creations and destructions, but this is not ideal (since it works in the other direction).

Since the JVB also has a REST API (Colibri) on a lower layer, would it not be useful to have a REST API on the Jicofo level as well?

Send of authentication data does not work with Firefox ESR

Hi!

I just set up user authentication based on this [1] document (Secure domain). The installation of Jitsi Meet was made with the Debian packages provided by you.

I am testing on Debian Jessie with Chromium 55.0.2883.75. Here I can send the authentication data (JID and password) and then I can enter to the conference room. But in Firefox ESR 45.6.0, the button to send the data does not seems to work.

Can you replicate this behavior?

Thanks in advance.

Kind regards,
Daniel

[1] https://github.com/jitsi/jicofo

Reservation is not revoked when conference ends

The reservation system REST API documentation mentions the following about conference (reservation) deletion: "Jicofo deletes conferences in the reservation system in two cases. First when all users leave XMPP Multi User Chat room. Second when conference duration limit is exceeded."

I am only experiencing the latter. With the duration set to 10 minutes, the conference is never deleted before the 10 minutes expire, even if everyone leaves within the minute.

(I see no call to deleteConference except from within the ConferenceExpireTask.)

Health check failed on: jitsi-videobridge(Too many open files)

I use jicofo in jitsi-meet.But I get error bellow an random when the service is up and running on
idle for a few days.After run the command of "/etc/init.d/jicofo restart" it working order again :

Jicofo 2017-02-13 16:40:05.754 WARNING: [96] org.jitsi.jicofo.JvbDoctor.log() Health check failed on: jitsi-videobridge.129.1.5.161 error: java.net.SocketException: Too many open files (Error creating socket)
Jicofo 2017-02-13 16:40:05.756 INFO: [55] org.jitsi.jicofo.BridgeSelector.removeJvbAddress().192 Removing JVB: jitsi-videobridge.129.1.5.161
Jicofo 2017-02-13 16:40:05.756 INFO: [55] org.jitsi.jicofo.JvbDoctor.log() Stopping health-check task for: jitsi-videobridge.129.1.5.161

When start a jitsi meeting it fails and get exception bellow:
Jicofo 2017-02-14 08:14:41.574 SEVERE: [91] org.jitsi.jicofo.ChannelAllocator.log() Failed to allocate channels for [email protected]/e7040df2
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to allocate channels - no bridge configured
at org.jitsi.jicofo.ChannelAllocator.allocateChannels(ChannelAllocator.java:372)
at org.jitsi.jicofo.ChannelAllocator.createOffer(ChannelAllocator.java:307)
at org.jitsi.jicofo.ChannelAllocator.discoverFeaturesAndInvite(ChannelAllocator.java:166)
at org.jitsi.jicofo.ChannelAllocator.run(ChannelAllocator.java:135)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

jicofo-log.zip

Discover features fails in case Jicofo connected to openfire

After focus successfully allocated in the conference room and all participants connected to the jitsi meet conference in the log I see :

INFO: [38] org.jitsi.jicofo.ChatRoomRoleAndPresence.memberPresenceChanged().123 Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@65e4122f member=org.jitsi.impl.protocol.xmpp.ChatMemberImpl@484d7bbe]
INFO: [38] org.jitsi.jicofo.JitsiMeetConference.onMemberJoined().383 Member [email protected]/14c51793475 joined.
INFO: [38] org.jitsi.jicofo.JitsiMeetConference.inviteChatMember().432 Added participant for: [email protected]/14c51793475
SEVERE: [45] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.error() No response from the server.:
No response from the server.:
at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:445)
at net.java.sip.communicator.impl.protocol.jabber.ScServiceDiscoveryManager.discoverInfo(ScServiceDiscoveryManager.java:569)
at net.java.sip.communicator.impl.protocol.jabber.ScServiceDiscoveryManager.discoverInfo(ScServiceDiscoveryManager.java:494)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.getEntityFeatures(XmppProtocolProvider.java:425)
at org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.getFeatures(OpSetSimpleCapsImpl.java:60)
at org.jitsi.jicofo.util.DiscoveryUtil.discoverParticipantFeatures(DiscoveryUtil.java:82)
at org.jitsi.jicofo.JitsiMeetConference.discoverFeaturesAndInvite(JitsiMeetConference.java:462)
at org.jitsi.jicofo.JitsiMeetConference.access$000(JitsiMeetConference.java:42)
at org.jitsi.jicofo.JitsiMeetConference$1.run(JitsiMeetConference.java:447)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
SEVERE: [45] org.jitsi.jicofo.util.DiscoveryUtil.discoverParticipantFeatures().85 Failed to discover features for [email protected]/14c51793475 assuming default feature set.

as result Jicofo don't get rtcp-mux feature and ssltcp candidates can't be generated. This happens only when Jicofo as component connected to openfire, with prosody works as expecped.

p.s.
Was applied hack in src/org/jitsi/jicofo/util/DiscoveryUtil.java

static public List getDefaultParticipantFeatureSet()
.....
features.add(FEATURE_SCTP);

  •    //
    
  •    features.add(FEATURE_RTCP_MUX);
    
  •    features.add(FEATURE_RTP_BUNDLE);
    
  •    //
     return features;
    

and now ssltcp candidates generated, but jigasi won't work in this case

Any suggestions to get focus discover features

Jicofo crashes occasionally saying "Focus must be an owner"

2015-08-25 14:00:48.331 SEVERE: [25] org.jitsi.jicofo.ChatRoomRoleAndPresence.verifyFocusRole().299 Focus must be an owner!
2015-08-25 14:00:48.339 INFO: [43] org.jitsi.jicofo.FocusManager.createConference().312 Exception while trying to start the conference
net.java.sip.communicator.service.protocol.OperationFailedException: Failed to join the room
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.joinAs(ChatRoomImpl.java:235)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.join(ChatRoomImpl.java:156)
at org.jitsi.jicofo.JitsiMeetConference.joinTheRoom(JitsiMeetConference.java:308)
at org.jitsi.jicofo.JitsiMeetConference.start(JitsiMeetConference.java:277)
at org.jitsi.jicofo.FocusManager.createConference(FocusManager.java:308)
at org.jitsi.jicofo.FocusManager.conferenceRequest(FocusManager.java:244)
at org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq(FocusComponent.java:412)
at org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet(FocusComponent.java:248)
at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:515)
at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: forbidden(-1) Only owners can configure rooms
at org.jivesoftware.smackx.muc.MultiUserChat.getConfigurationForm(MultiUserChat.java:577)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.joinAs(ChatRoomImpl.java:193)
... 15 more

Bridge selector fails on 371

Jicofo 2017-09-21 14:50:18.742 SEVERE: [10] org.jitsi.jicofo.BridgeSelector.createBridgeSelectionStrategy().206 Failed to instantiate org.jitsi.jicofo.BridgeSelector$SingleBridgeSelectionStrategy. Falling back to SingleBridgeSelectionStrategy.
media_focus.1.55249q6eaf1t@proficonf5    | java.lang.IllegalAccessException: Class org.jitsi.jicofo.BridgeSelector can not access a member of class org.jitsi.jicofo.BridgeSelector$SingleBridgeSelectionStrategy with modifiers "private"
media_focus.1.55249q6eaf1t@proficonf5    | 	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:110)
media_focus.1.55249q6eaf1t@proficonf5    | 	at java.lang.Class.newInstance(Class.java:377)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.jicofo.BridgeSelector.createBridgeSelectionStrategy(BridgeSelector.java:202)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.jicofo.BridgeSelector.<init>(BridgeSelector.java:167)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.jicofo.JitsiMeetServices.<init>(JitsiMeetServices.java:190)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.jicofo.FocusManager.start(FocusManager.java:220)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.jicofo.FocusBundleActivator.start(FocusBundleActivator.java:113)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.BundleImpl.start(BundleImpl.java:293)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.launch.FrameworkImpl.startLevelChanged(FrameworkImpl.java:460)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.startlevel.FrameworkStartLevelImpl$Command.run(FrameworkStartLevelImpl.java:126)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.AsyncExecutor.runInThread(AsyncExecutor.java:111)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.AsyncExecutor.access$000(AsyncExecutor.java:17)
media_focus.1.55249q6eaf1t@proficonf5    | 	at org.jitsi.impl.osgi.framework.AsyncExecutor$1.run(AsyncExecutor.java:220)
media_focus.1.55249q6eaf1t@proficonf5    | Jicofo 2017-09-21 14:50:18.743 INFO: [10] org.jitsi.jicofo.BridgeSelector.<init>().169 Using org.jitsi.jicofo.BridgeSelector$SingleBridgeSelectionStrategy

.ComponentMain.call().278 java.net.ConnectException: Connection refused

when i run "./jicofo-linux-x64-1.0-SNAPSHOT/jicofo.sh --domain=2.61.25.227 --secret=jicofo_password --user_domain=auth.182.61.25.227 --user_name=focus --user_password=auth_password"

Jicofo 2016-04-29 16:26:43.058 SEVERE: [30] org.jitsi.meet.ComponentMain.call().278 java.net.ConnectException: Connection refused, host:xx.xxx.xx.xx, port:5347
org.xmpp.component.ComponentException: java.net.ConnectException: Connection refused
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:272)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:221)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:201)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:270)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:255)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:151)
... 12 more

Jicofo 2016-04-29 16:26:43.913 INFO: [15] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.info() XMPP reconnection successful
Jicofo 2016-04-29 16:26:43.913 SEVERE: [15] org.jitsi.jicofo.ProtocolProviderHandler.registrationStateChanged().142 null
java.lang.NullPointerException
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.discoverItems(XmppProtocolProvider.java:499)
at org.jitsi.impl.protocol.xmpp.OpSetSimpleCapsImpl.getItems(OpSetSimpleCapsImpl.java:53)
at org.jitsi.jicofo.ComponentsDiscovery.discoverServices(ComponentsDiscovery.java:238)
at org.jitsi.jicofo.ComponentsDiscovery.firstTimeDiscovery(ComponentsDiscovery.java:308)
at org.jitsi.jicofo.ComponentsDiscovery.registrationStateChanged(ComponentsDiscovery.java:343)
at org.jitsi.jicofo.ProtocolProviderHandler.registrationStateChanged(ProtocolProviderHandler.java:138)
at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:187)
at net.java.sip.communicator.service.protocol.AbstractProtocolProviderService.fireRegistrationStateChanged(AbstractProtocolProviderService.java:141)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.notifyConnected(XmppProtocolProvider.java:265)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.access$300(XmppProtocolProvider.java:49)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$XmppConnectionListener.reconnectionSuccessful(XmppProtocolProvider.java:580)
at org.jivesoftware.smack.PacketReader.notifyReconnection(PacketReader.java:193)
at org.jivesoftware.smack.XMPPConnection.initConnection(XMPPConnection.java:589)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:532)
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:968)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:220)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.access$000(XmppProtocolProvider.java:49)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:201)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:196)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Jicofo 2016-04-29 16:26:43.916 INFO: [15] org.jitsi.jicofo.FocusManager.registrationStateChanged().531 XMPP provider reg state: RegistrationState=Registered
Jicofo 2016-04-29 16:26:43.925 SEVERE: [15] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.error() Failed to connect: SASL authentication DIGEST-MD5 failed: text
SASL authentication DIGEST-MD5 failed: text:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:341)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:208)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:233)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.access$000(XmppProtocolProvider.java:49)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:201)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:196)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Jicofo 2016-04-29 16:26:48.031 SEVERE: [29] org.jitsi.xmpp.component.ComponentBase.run().370 Failed to send ping
java.lang.NullPointerException
at org.xmpp.component.AbstractComponent.send(AbstractComponent.java:925)
at org.jitsi.xmpp.component.ComponentBase.access$400(ComponentBase.java:34)
at org.jitsi.xmpp.component.ComponentBase$PingTask.run(ComponentBase.java:358)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Jicofo 2016-04-29 16:26:48.062 SEVERE: [30] org.jitsi.meet.ComponentMain.call().278 java.net.ConnectException: Connection refused, host:xx.xxx.xx.xx, port:5347
org.xmpp.component.ComponentException: java.net.ConnectException: Connection refused
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:272)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:221)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:201)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:270)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:255)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:151)
... 12 more
Jicofo 2016-04-29 16:26:49.020 INFO: [39] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.info() XMPP reconnection successful
Jicofo 2016-04-29 16:26:49.021 SEVERE: [39] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.error() Failed to connect: SASL authentication DIGEST-MD5 failed: text
SASL authentication DIGEST-MD5 failed: text:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:341)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:208)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:233)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.access$000(XmppProtocolProvider.java:49)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:201)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:196)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Jicofo 2016-04-29 16:26:53.066 SEVERE: [30] org.jitsi.meet.ComponentMain.call().278 java.net.ConnectException: Connection refused, host:xx.xxx.xx.xx, port:5347
org.xmpp.component.ComponentException: java.net.ConnectException: Connection refused
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:272)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:221)
at org.jivesoftware.whack.ExternalComponentManager.addComponent(ExternalComponentManager.java:201)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:270)
at org.jitsi.meet.ComponentMain$3.call(ComponentMain.java:255)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.jivesoftware.whack.ExternalComponent.connect(ExternalComponent.java:151)
... 12 more
Jicofo 2016-04-29 16:26:54.125 INFO: [34] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.info() XMPP reconnection successful
Jicofo 2016-04-29 16:26:54.125 SEVERE: [34] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.error() Failed to connect: SASL authentication DIGEST-MD5 failed: text
SASL authentication DIGEST-MD5 failed: text:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:341)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:208)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:233)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.access$000(XmppProtocolProvider.java:49)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:201)
at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider$1.call(XmppProtocolProvider.java:196)
at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Jicofo 2016-04-29 16:26:54.136 SEVERE: [46] org.jivesoftware.smack.PacketWriter.writePackets() Error writing packet
java.io.IOException: Stream closed
at java.io.BufferedWriter.ensureOpen(BufferedWriter.java:116)
at java.io.BufferedWriter.write(BufferedWriter.java:221)
at java.io.Writer.write(Writer.java:157)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:210)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:42)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:80)
Jicofo 2016-04-29 16:26:54.136 SEVERE: [56] org.jivesoftware.smack.PacketWriter.writePackets() Error writing packet
java.io.IOException: Stream closed
at java.io.BufferedWriter.ensureOpen(BufferedWriter.java:116)
at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:126)
at java.io.BufferedWriter.flush(BufferedWriter.java:253)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:212)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:42)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:80)
Jicofo 2016-04-29 16:26:54.285 SEVERE: [57] org.jivesoftware.smack.PacketReader.notifyConnectionError() Closes the connection temporary
java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.read(InputRecord.java:480)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:891)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.read1(BufferedReader.java:205)
at java.io.BufferedReader.read(BufferedReader.java:279)
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2992)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:329)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:74)
Jicofo 2016-04-29 16:26:54.287 SEVERE: [57] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.error() XMPP connection closed on error: Socket closed
Jicofo 2016-04-29 16:26:54.287 INFO: [57] org.jitsi.jicofo.FocusManager.registrationStateChanged().531 XMPP provider reg state: RegistrationState=Unregistered

Jicofo deadlock detected

We detected deadlock on beta. We were unable to create conferences till jicofo was restarted.

Java stack information for the threads listed above:

"pool-4-thread-17":
at org.jitsi.jicofo.FocusManager.conferenceRequest(FocusManager.java:236)
- waiting to lock <0x0000000775bc70d0> (a org.jitsi.jicofo.FocusManager)
at org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq(FocusComponent.java:400)
at org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet(FocusComponent.java:246)
at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:515)
at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
"pool-4-thread-4":
at org.jitsi.jicofo.JitsiMeetConference.stop(JitsiMeetConference.java:1222)
- waiting to lock <0x0000000775fae078> (a org.jitsi.jicofo.JitsiMeetConference)
at org.jitsi.jicofo.FocusManager.createConference(FocusManager.java:302)
at org.jitsi.jicofo.FocusManager.conferenceRequest(FocusManager.java:244)
- locked <0x0000000775bc70d0> (a org.jitsi.jicofo.FocusManager)
at org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq(FocusComponent.java:400)
at org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet(FocusComponent.java:246)
at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:515)
at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
"Smack Listener Processor (0)":
at org.jitsi.jicofo.FocusManager.conferenceEnded(FocusManager.java:333)
- waiting to lock <0x0000000775bc70d0> (a org.jitsi.jicofo.FocusManager)
at org.jitsi.jicofo.JitsiMeetConference.stop(JitsiMeetConference.java:1242)
- locked <0x0000000775fae078> (a org.jitsi.jicofo.JitsiMeetConference)
at org.jitsi.jicofo.ChatRoomRoleAndPresence.verifyFocusRole(ChatRoomRoleAndPresence.java:296)
at org.jitsi.jicofo.ChatRoomRoleAndPresence.localUserRoleChanged(ChatRoomRoleAndPresence.java:313)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.fireLocalUserRoleEvent(ChatRoomImpl.java:401)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl.setLocalUserRole(ChatRoomImpl.java:412)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl$ParticipantListener.processOwnPresence(ChatRoomImpl.java:1159)
at org.jitsi.impl.protocol.xmpp.ChatRoomImpl$ParticipantListener.processPacket(ChatRoomImpl.java:1116)
at org.jivesoftware.smack.Connection$ListenerWrapper.notifyListener(Connection.java:819)
at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:457)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Found 1 deadlock.

H264 doesn't work in Firefox

Video in H264 doesn't work in Firefox (at least 57 on macOS) in jvb mode. It works fine in p2p with Safari using H264. The root cause is that it seems Firefox doesn't consider H264 if there is no a=fmtp set of it.

Valid SDP with working H264 should contain something like this

a=fmtp:107 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1

Original issue is here jitsi/lib-jitsi-meet#647

Build failed

Hello,
I have a problem building the latest version. At first I tried to build as I was used to with 'ant dist.lin64'. I got a maven error and afterwards saw the comment in build.xml to download maven ant tasks.

I tried running the given 'mvn dependency...' command but got lots of error messages. These are also described here: http://lists.jitsi.org/pipermail/dev/2015-October/025520.html (seems to be the same issue with jitsi videobridge)

Then I downloaded 'maven-ant-tasks-2.1.3.jar' directly from apache website and run:
'ant -lib maven-ant-tasks-2.1.3.jar dist.lin64'

Result was:
...
Not a v4.0.0 POM. for project org.sonatype.oss:oss-parent at /home/jitsi/.m2/repository/org/sonatype/oss/oss-parent/3/oss-parent-3.pom

BUILD FAILED
/home/jitsi/jicofo-master/build.xml:54: Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar': Cannot find parent: org.sonatype.oss:oss-parent for project: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5 for project com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5
com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:jar:1.0_jdk5

from the specified remote repositories:
jitsi-maven-repository-snapshots (https://github.com/jitsi/jitsi-maven-repository/raw/master/snapshots/),
central (http://repo1.maven.org/maven2),
sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots),
jitsi-maven-repository-releases (https://github.com/jitsi/jitsi-maven-repository/raw/master/releases/)

Path to dependency:
1) org.jitsi:jicofo:jar:1.0-SNAPSHOT
2) org.igniterealtime:tinder:jar:1.2.3

I am running Ubuntu Server 14.04. Did I miss something obvious?

Thanks in advance

jicofo fails to respond to server pings

it seems that jicofo has 2 channels to the XMPP server. the first as component, and the second as a regular XMPP user (username: focus).

in the latter case I am seeing the focus user getting kicked due to failure to respond to server pings when the server is ejabberd. it looks to me that there is no code in jicofo to respond to pings on that XMPP channel (there is however on the component channel).

I realize that jicofo is by default deployed with prosody and I have ascertained that prosody does not send server-to-client pings, it responds only to client pings, which would explain why users using prosody as the XMPP server would not have this problem.

ejabberd, however, sends server-to-client pings as well as responding to client-to-server pings.

since the connection is closed cleanly by ejabberd (i.e. when the server-to-client ping is not responded to and ejabberd deems that the user has gone away and closes the connection) in this case smack/jicofos reconnection logic does not trigger and so jicofo just stays disconnected indefinitly.

I have attached a sketch of a patch to add responses to server pings. I realize there is a KeepAliveManager I could have leveraged here but I had a mismatch with the serviceName so it was simpler in my case to just add a patch inline. it is more to give a general idea than a final proposed patch.

have I missed anything obvious here? is this handled by some setting I've missed?

ASIDE: a quick note on why this problem only started happeneing / came to light: in ejabberd versions less than 16.04 there was a bug in ejabberd whereby it failed to send the stream trailer before closing the connection (when stream management was disabled, as it is in smack 3.x used by jicofo). I was previously using a version of ejabberd with the missing trailer bug but due to the bug the connection was closed without the stream trailer this caused an exception to be caught by Smack (in PacketReader) and seemed like a "close with error" scenario which allowed jicofos reconnection logic to kick-in and so the ejabberd bug and the jicofo lack of ping responses conspired to allow focus to mostly be connected to the server, albeit with frequent kicks/reconnects. since this (ejabberd trailer) bug has been fixed the connection is no longer deemed to have been closed in error and so now jicofo/smack sees no need to try to reconnect.

jicofo_ping_patch.txt

Is there a document about jicofo protocol?

Hi, I want to use jitsi-videobridge to develop my application. And I think jicofo is a great focus.
I'm currently learning how to comunicate with jicofo by reading the source code of jitsi-meet.
But I want some document. Is there something like that?

Leaking JitsiMeetConference instances

From meet.jit.si heapdump it seems that JitsiMeetConference instances are leaking here. No exceptions in the logs, although part of them is missing due to disk being full in the meantime.

Do a periodic check when JVB has been lost

Hi,

Yesterday my JVB had an error (too many open file descriptors, which I will investigate), after which Jicofo stopped any communication with it, as per these logs:

Jicofo 2017-01-27 18:41:58.015 AVERTISSEMENT: [98] org.jitsi.jicofo.JvbDoctor.log() Health check failed on: videobridge.jabberfr.org error: <error code="500" type="WAIT"><internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><
text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Failed to acquire DatagramSocket specific to STUN communication</text></error>
Jicofo 2017-01-27 18:41:58.015 INFOS: [38] org.jitsi.jicofo.BridgeSelector.removeJvbAddress().192 Removing JVB: videobridge.jabberfr.org
Jicofo 2017-01-27 18:41:58.016 INFOS: [38] org.jitsi.jicofo.JvbDoctor.log() Stopping health-check task for: videobridge.jabberfr.org

I also noticed that if I restart JVB without then restarting Jicofo, it will also remove this component and then do absolutely nothing.

Retrying after a few seconds (or exponentially and capped) would be a nice improvement to prevent that kind of issue from taking down the service.

Broken rooms

Sometimes Jicofo stops inviting new participants who join the room. From the logs it's looks like it does not receive MUC events. The room stops "working" permanently and new room name must be used.

Focus fails to connect when other SASL Mechs are offered by Openfire

I'm using GSSAPI and PLAIN. focus fails to connect with invalid username/password. If GSSAPI is disabled, the focus user connects as expected. It appears that focus is trying to connected using GSSAPI.
To work around this, I have added SASLAuthentication.supportSASLMechanism("PLAIN"); to the connConfig within src/main/java/org/jitsi/impl/protocol/xmpp/XmppProtocolProvider.java

I'm unsure if this is the best way to work around this issue. It maybe better to use blacklist/unsupported, but I'll leave that up to the experts.

jicofo.xmpp.FocusComponent.handleIQSet NullPointerException

I'm unable to connect as jitsi-meet says "focus.xxx.โ€ฆ is not available, trying again in 2 szconds".

The jifoco log file shows the following trace:

Jicofo 2016-09-19 14:06:06.503 SEVERE: [149] org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet().340 java.lang.NullPointerException
java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
        at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
        at org.jitsi.jicofo.auth.AbstractAuthAuthority.getSession(AbstractAuthAuthority.java:290)
        at org.jitsi.jicofo.auth.XMPPDomainAuthAuthority.processAuthLocked(XMPPDomainAuthAuthority.java:86)
        at org.jitsi.jicofo.auth.AbstractAuthAuthority.processAuthentication(AbstractAuthAuthority.java:415)
        at org.jitsi.jicofo.xmpp.FocusComponent.processExtensions(FocusComponent.java:368)
        at org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq(FocusComponent.java:429)
        at org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet(FocusComponent.java:274)
        at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:515)
        at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
        at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
        at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
        at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Jicofo 2016-09-19 14:06:06.504 WARNING: [149] org.jitsi.jicofo.xmpp.FocusComponent.processIQ() (serving component 'Jitsi Meet Focus') Unexpected exception while processing IQ stanza: <iq type="set" to="focus.example.fr" from="[email protected]/39f81d04-a9e4-44ab-b8cf-3887e0c2c2c7" id="688bafe0-87d2-4280-91f6-e7faf367573c:sendIQ"><conference xmlns="http://jitsi.org/protocol/focus" room="[email protected]" machine-uid="2363a378543129e36b01bf050861ec3b"><property value="-1" name="channelLastN"/><property value="false" name="adaptiveLastN"/><property value="true" name="disableRtx"/><property value="true" name="enableLipSync"/><property value="true" name="openSctp"/><property value="rewriting" name="simulcastMode"/></conference></iq>
java.lang.NullPointerException
        at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
        at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
        at org.jitsi.jicofo.auth.AbstractAuthAuthority.getSession(AbstractAuthAuthority.java:290)
        at org.jitsi.jicofo.auth.XMPPDomainAuthAuthority.processAuthLocked(XMPPDomainAuthAuthority.java:86)
        at org.jitsi.jicofo.auth.AbstractAuthAuthority.processAuthentication(AbstractAuthAuthority.java:415)
        at org.jitsi.jicofo.xmpp.FocusComponent.processExtensions(FocusComponent.java:368)
        at org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq(FocusComponent.java:429)
        at org.jitsi.jicofo.xmpp.FocusComponent.handleIQSet(FocusComponent.java:274)
        at org.xmpp.component.AbstractComponent.processIQRequest(AbstractComponent.java:515)
        at org.xmpp.component.AbstractComponent.processIQ(AbstractComponent.java:289)
        at org.xmpp.component.AbstractComponent.processQueuedPacket(AbstractComponent.java:239)
        at org.xmpp.component.AbstractComponent.access$100(AbstractComponent.java:81)
        at org.xmpp.component.AbstractComponent$PacketProcessor.run(AbstractComponent.java:1051)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

No moderator in the room

When we work without any form of authentication moderator is granted to the first user who enters. When moderator leaves the role is passed to the next user. Currently it does not always work.

Distribute tar files

Would it be possible to distribute signed tar files as well as deb packages?

This would ease some deployment options like docker.

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.