Hello, I just upgraded to 19 RC 3 which contains talk 9.0.0-rc.1. On administration/talk I can add external signaling servers and it is recommended to use one if there are more than 4 participants. Is this still a requirement? From the announcement I expected this to be obsolete.
Marketing-speak is Talk 9 can handle 5 to 10 video conference participants.
If this is the discrepancy you are talking about, then itâs just because the docs havenât been updated.
If you need more than 10 people, youâll need to install - now open-sourced! - signaling server
Hmm I tried a lot but still have issues to make it work with my testcloud.
Is there a good howto anywhere?
It is a little bit challenging to set this up (signaling + janus + nats + coturn + proxy + firewall).
My signaling is running but nextcloud talk has issues, even when everything is green in the settings.
Maybe this one: https://morph027.gitlab.io/blog/nextcloud-spreed-signaling/
I have the same issue. Signaling server was compiled and configured according to https://github.com/strukturag/nextcloud-spreed-signaling readme). It starts without problems, runs on its own host, is configured with secure websockets.
curl -i https://[my-signaling-server]:8443/api/v1/welcome
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: nextcloud-spreed-signaling/8d9c9cc1cd9aa1b18b1cbf8c0d7e8a8b6fbe9738
Date: Fri, 29 May 2020 17:31:23 GMT
Content-Length: 94
{ânextcloud-spreed-signalingâ:âWelcomeâ,âversionâ:â8d9c9cc1cd9aa1b18b1cbf8c0d7e8a8b6fbe9738â}
Nextcloud configuration: wss://[my-signaling-server]:8443
But the communication with Nextcloud 18 fails. When I start the Talk app, the JS console logs the following errors:
talk.js?v=c3a127c1-3:116 WebSocket connection to 'wss://[my-signaling-server]:8443/spreed' failed: Unknown reason
h.Standalone.connect @ talk.js?v=c3a127c1-3:116
(anonymous) @ talk.js?v=c3a127c1-3:116
talk.js?v=c3a127c1-3:116 Error Event {isTrusted: true, type: "error", target: WebSocket, currentTarget: WebSocket, eventPhase: 2, âŚ}
(anonymous) @ talk.js?v=c3a127c1-3:116
error (async)
h.Standalone.connect @ talk.js?v=c3a127c1-3:116
(anonymous) @ talk.js?v=c3a127c1-3:116
setTimeout (async)
h.Standalone.reconnect @ talk.js?v=c3a127c1-3:116
(anonymous) @ talk.js?v=c3a127c1-3:116
error (async)
h.Standalone.connect @ talk.js?v=c3a127c1-3:116
v @ talk.js?v=c3a127c1-3:116
createConnection @ talk.js?v=c3a127c1-3:116
(anonymous) @ talk.js?v=c3a127c1-3:239
Promise.then (async)
(anonymous) @ talk.js?v=c3a127c1-3:239
(anonymous) @ talk.js?v=c3a127c1-3:239
c @ talk.js?v=c3a127c1-3:583
(anonymous) @ talk.js?v=c3a127c1-3:583
forEach.e.<computed> @ talk.js?v=c3a127c1-3:583
oe @ talk.js?v=c3a127c1-3:219
a @ talk.js?v=c3a127c1-3:219
(anonymous) @ talk.js?v=c3a127c1-3:219
(anonymous) @ talk.js?v=c3a127c1-3:219
he @ talk.js?v=c3a127c1-3:239
pe @ talk.js?v=c3a127c1-3:239
beforeMount @ talk.js?v=c3a127c1-3:1626
He @ talk.js?v=c3a127c1-3:27
Kt @ talk.js?v=c3a127c1-3:27
e @ talk.js?v=c3a127c1-3:27
Mn.$mount @ talk.js?v=c3a127c1-3:27
init @ talk.js?v=c3a127c1-3:27
(anonymous) @ talk.js?v=c3a127c1-3:27
l @ talk.js?v=c3a127c1-3:27
(anonymous) @ talk.js?v=c3a127c1-3:27
e._update @ talk.js?v=c3a127c1-3:27
r @ talk.js?v=c3a127c1-3:27
dn.get @ talk.js?v=c3a127c1-3:27
dn @ talk.js?v=c3a127c1-3:27
e @ talk.js?v=c3a127c1-3:27
Mn.$mount @ talk.js?v=c3a127c1-3:27
e._init @ talk.js?v=c3a127c1-3:27
Mn @ talk.js?v=c3a127c1-3:27
(anonymous) @ talk.js?v=c3a127c1-3:1650
n @ talk.js?v=c3a127c1-3:1
(anonymous) @ talk.js?v=c3a127c1-3:1
(anonymous) @ talk.js?v=c3a127c1-3:1
Show 11 more frames
talk.js?v=c3a127c1-3:116 Reconnect in 1955.4251047645466
signaling-server doesnât log, just listens to [my-signaling-server:8443]
Is there any additional documentation how to configure nginx, Nextcloud and this signaling server?
Nextcloud 18.0.4
nginx 1.14.2
janus 0.10.0
nats 2.1.7
Guys,
I am very sorry but here are my 2 cents about Talk in NextCloud.
If it is so complicated to make Talk working why not to use other ready services for Collaboration and just make integration with NextCloud.
I am not a programmer but very much interested to integrate https://linkchat.io to integrate with NextCloud. I contacted owner and he told that it can b easily done with WebHooks
Is there anybody who can help or at least interested to do the same?
PS. I am using NextCloud for many years in my projects.
It isnât.
Talk works fine for one to one video communication.
If your version is up to date, it should (allegedly) do 5 to 10 participant video conference a breeze.
If you want to accommodate people from behind NAT/Firewall - install a STUN/TURN server.
And thatâs already done
Nextcloud 19 will have another option - the high performance backend from Struktur
Here is the point - video conferencing with 10+ people is complicated.
It primarily revolves around feeding synced video/audio streams to each participant.
If your system uses nothing but WebRTC, you - as a participant - must send your webcam stream to (N-1) participants and receive N of them. In other words, doubling the number of participants quadruples the bandwidth need. Add to that video compression, NAT traversing, stream encryption, etc. - it quickly becomes too much for the clientâŚ
Hence, there will never be a install it and forget it video conference app for all use cases.
Unless you have a contract with Nextcloud and ask them to do it for youâŚ
Over time there might be docker images will all the components - GO, NATS, Janus, TURN, etc. - built-in.But setting it up and making it work for the end user like Zoom or Teams will take workâŚ
Thanks.
Lets see, Nextcloud 19 release date is soon It is something to test for me.
And please share your experience when you do.
Iâd be surprised if it does 10, but even 6-7-8 would be huge improvement over originalâŚ
I am also skeptical because Media Server is needed more than a Signalling one to increase amount of people in the room. Especially for mobile users.
It can be traditional media server with transcoding or SFU.
BigBlueButton is too heavy for the integration with NextCloud. Something more simple is needed, jitsi or Linkchat are more interesting, at least in my opinion.
I managed to connect to the standalone signaling server from my browser. I had to adjust the nextcloud signaling configuration to: wss://[my-nextcloud-server]:8443/standalone-signaling and adjust the nginx configuration according to https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/
Now clients can invite each other, but a video/audio connection is not yet established, unfortunately⌠debugging furtherâŚ
It works - except that it doesnât work. If I start a call from the desktop or iOS app, both parties are âwaiting for others to joinâŚâ, or âwaiting for to join callâŚâ and the call is not established. During that phase, I see a lot of 400 BAD_REQUEST in nginx access log, i.e. âGET /ocs/v2.php/apps/spreed/api/v1/signaling/74k8hk5g HTTP/2.0â 400 107 â-â âMozilla/5.0 (iOS) Nextcloud-Talk v9.0.0â. WTF?
I donât see client connections in the nats server. Should I? This seems suspicious to me - hmmm. Might this be related to the nats server? There is not much information about nats in https://github.com/strukturag/nextcloud-spreed-signaling ⌠still trying to understand the big picture of the HPB. Any help is welcome.
It looks like the other party is not getting the information that this party has joined the call and vice versa.
Do you also use a Janus gateway? I had some problems at first until I opened the UDP ports used by it.
Iâm using janus, but I just configured the turn_rest_api_key. Iâve switched to setting up turn_server, _port, _type ⌠but it didnât help so far.
I didnât find the proper setup yet. It is more like try-and-error at the moment, as there arenât complete tutorials, unfortunately.
Hey there. I finally got i t to work. I will make some tutorial in the near future. For now, iâll tell you what i did.
In my set up a have 2 vmware vms. One for nextcloud and the other for signaling. Both are running ubuntu 18.04. Initially i base my configurations in tow tutorials:
- https://github.com/strukturag/nextcloud-spreed-signaling
- https://morph027.gitlab.io/blog/nextcloud-spreed-signaling/
I did not use caddy nor the .deb packages for janus. I compiled everything by hand.
I struggle a bit with libnice. But cheking out the the branch latest-release did the trick. Then i ran:
./autogen.sh
./configure --prefix=/usr
make && sudo make install
Once a i had everythin in place, i hardcoded the internal ips for the signaling server and nextcloud in each host file (nextcloud and signaling):
10.1.1.1 nextcloud.example.com
10.1.1.2 signaling.example.com
I configured the RTP port range in janus (20000-40000), the min and max ports for coturn (49152-65535), and opened the folowing ports in my firewall (doin DNAT):
- Janus: UDP: 20000-40000
- coturn:
-
- UDP 3478, 49152-65535
-
- TCP 3478
-
- SCTP: 3478
- Signaling: TCP 443 (through nginx).
What i did not:
- Configured the external ip in coturn nor janus. Thatâs only for 1:1 nat.
- I did not use the udp endpoint for turn in the signaling configuration.
Now everything works fine.
Perhaps you could post a link to your tutorial here so google can easily find it. Thanks and looking forward to it.
that would be really great . thanks
The problem with those nginx 400 errors (see above) was a missing trailing slash in my proxy_pass configuration. Aaaahrrg, my fault.
The connection was established successfully after Iâve removed and re-installed the Nextcloud Talk app! I donât know why but it solved the issue. Existing conversations in the Talk app didnât establish connections, both sides were just waiting for each other to connect⌠Strange, but true.
Iâve written some notes here: Nextcloud Talk Signaling
There is a tutorial for Debian to be found here:
Itâs in German, but pretty straight forward.
Hello,
Thanks to all for your good job.
I have try this tutorial : https://morph027.gitlab.io/blog/nextcloud-spreed-signaling/
and this one : https://nichteinschalten.de/signalisierungsserver-fuer-nextcloud-aufsetzen-how-to/
In the signaling configuration on nextcloud it seem to be ok, I have no message, contrary to Pisoko.
The logs are ok.
curl -i http://127.0.0.1:8080/api/v1/welcome
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: nextcloud-spreed-signaling/9206a56113064b8e44b0de12d5128f8e88617679
Date: Sun, 15 Nov 2020 16:52:33 GMT
Content-Length: 94
{ânextcloud-spreed-signalingâ:âWelcomeâ,âversionâ:â9206a56113064b8e44b0de12d5128f8e88617679â}
But when I launch the test client :
/etc/nextcloud-spreed-signaling# ./bin/client -addr localhost:8080
2020-11-13 14:29:42.744255 I | Using a maximum of 4 CPUs
2020-11-13 14:29:42.746439 I | Backend server running on http://[IP]:33249
2020-11-13 14:29:42.747624 I | Connecting to [ws://localhost:8080/spreed]
2020-11-13 14:29:42.748099 I | Starting 100 clients
2020-11-13 14:29:42.962092 I | Clients created
2020-11-13 14:29:52.753822 I | Unsupported message type: {Id: Type:error Error:context deadline exceeded Hello: Bye: Room: Message: Control: Event:}
2020-11-13 14:29:52.755354 I | Unsupported message type: {Id: Type:error Error:context deadline exceeded Hello: Bye: Room: Message: Control: Event:}
2020-11-13 14:29:52.758737 I | Unsupported message type: {Id: Type:error Error:context deadline exceeded Hello: Bye: Room: Message: Control: Event:}
a lot of time and after :
2020-11-13 14:29:52.929880 I | Unsupported message type: {Id: Type:error Error:Post âhttp://[IP]:33249/authâ: dial tcp [IP]:33249: i/o timeout Hello: Bye: Room: Message: Control: Event:}
2020-11-13 14:29:55.557264 I | Received bye: &{Reason:hello_timeout}
2020-11-13 14:29:55.558455 I | Received bye: &{Reason:hello_timeout}
2020-11-13 14:29:55.559967 I | Received bye: &{Reason:hello_timeout}
When I go on http://[IP]:33249, I have a 404 error.
It is the same with the 2 tutorial and on this computer and in a VM.
With nextcloud 19 up to date.
Do you have any idea ?
It is working ?
Thanks in advance
Have a good day.