Nextcloud wanting TURN server despite using tailscale?

Nextcloud version (eg, 24.0.1): Nextcloud Hub 9 (30.0.6)
Reverse proxy and version: * caddy-tailscale latest
Talk Server version (eg, 14.0.2): 20.1.4

Custom Signaling server configured: no: /standalone-signaling/
Custom TURN server configured: no, turn:only UDP/TCP, only server showing unhealthy
Custom STUN server configured: no, nextcloud.wallaby-gopher.ts.net:3478

In case the web version of Nextcloud Talk is involved:
Operating system (eg, Windows/Ubuntu/…): Linux, Windows 10
Browser name and version (eg, Chrome v101): Librewolf 135.0.1-1, Chrome

In case mobile Nextcloud Talk apps are involved:
Talk Android version (eg, 14.0.2): v21.0.0

The issue you are facing:
Hello, I am having an issue where nextcloud talk works perfectly on the the same wifi, but as soon as they’re not, it never loads. Technically talk instances should always be seen as on the same wifi due to my tailscale routing method so TURN should not be necessary. I tried removing the TURN server due to an error, but it comes right back.

Is this the first time you’ve seen this error? (N): I think it is related to my cannot create shared album issue here: https://help.nextcloud.com/t/cannot-create-shared-albums-or-share-prexisting-albums/212635

Steps to replicate it:

  1. Make a talk call to a remote location, even with strong connection.
  2. Both Parties see the other as muted and loading, forever.
  3. Sometimes one party will ‘drop’ and stop loading but they are not actually connected.

The output of your Nextcloud log in Admin > Logging or errors in nextcloud.log in /var/www/:

No errors

The output of your Apache/nginx/system log in /var/log/____:

No errors

Talk logs:

client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (777.664µs)
hub.go:2673: Could not send MCU message &{Type:requestoffer Sid: RoomType:video Payload:map[] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} for session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== to aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: context deadline exceeded
[ERR] [plugins/janus_videoroom.c:janus_videoroom_access_room:4690] No such room (3470089695538862)

s_subscriber.go:200: Publisher aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= not created yet for video, wait and retry to join room 3470089695538862 as subscriber
hub.go:2673: Could not send MCU message &{Type:requestoffer Sid: RoomType:video Payload:map[] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} for session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== to aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: context deadline exceeded
[ERR] [plugins/janus_videoroom.c:janus_videoroom_access_room:4690] No such room (3470089695538862)

s_subscriber.go:200: Publisher aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= not created yet for video, wait and retry to join room 3470089695538862 as subscriber
clientsession.go:505: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= left call vdo3wymj
hub.go:2673: Could not send MCU message &{Type:requestoffer Sid: RoomType:video Payload:map[] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} for session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== to aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: context deadline exceeded
room.go:789: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= joined call vdo3wymj
[ERR] [plugins/janus_videoroom.c:janus_videoroom_access_room:4690] No such room (3470089695538862)

s_subscriber.go:200: Publisher aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= not created yet for video, wait and retry to join room 3470089695538862 as subscriber
mcu_janus.go:563: Attached video as publisher 2475855228754183 to plugin janus.plugin.videoroom in session 6932329141783181
mcu_janus.go:549: Created room 345785197485421 {janus.plugin.videoroom map[permanent:false room:345785197485421 videoroom:created]}
mcu_janus.go:630: Publisher aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= is using handle 2475855228754183
clientsession.go:946: Publishing video as 15 for session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=
mcu_janus.go:685: Attached subscriber to room 613065366342889 of publisher MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== in plugin janus.plugin.videoroom in session 6932329141783181 as 2068856651527716
clientsession.go:1024: Subscribing video from MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== as 16 in session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=
mcu_janus_client.go:165: Started listener &{{janus.plugin.videoroom map[room:613065366342889 started:ok videoroom:event]} map[] 6932329141783181 2068856651527716}
capabilities.go:129: Capabilities expired for https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities, updating
capabilities.go:173: Capabilities map[config:map[attachments:map[allowed:false] call:map[blur-virtual-background:false breakout-rooms:true can-enable-sip:false can-upload-background:false enabled:true max-duration:0 predefined-backgrounds:[1_office.jpg 2_home.jpg 3_abstract.jpg 4_beach.jpg 5_park.jpg 6_theater.jpg 7_library.jpg 8_space_station.jpg] recording:true recording-consent:0 sip-dialout-enabled:false sip-enabled:false start-without-media:false supported-reactions:[❤️ 🎉 👏 👋 👍 👎 🔥 😂 🤩 🤔 😲 😥]] chat:map[has-translation-providers:false max-length:32000 read-privacy:0 summary-threshold:100 typing-privacy:0] conversations:map[can-create:false] federation:map[enabled:false incoming-enabled:false only-trusted-servers:true outgoing-enabled:false] previews:map[max-gif-size:3.145728e+06] signaling:map[hello-v2-token-key:-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPleEDPpF3aqkr4xFv8iS5/P9mWyO
gmjH09i8OpH2OS33s0UMxWD/pKMm+V5aK5lyyQdX1Z8GvVbaRN2VFSEKfg==
-----END PUBLIC KEY-----
 session-ping-limit:200]] config-local:map[attachments:[allowed folder] call:[predefined-backgrounds can-upload-background start-without-media blur-virtual-background] chat:[read-privacy has-translation-providers typing-privacy summary-threshold] conversations:[can-create] federation:[enabled incoming-enabled outgoing-enabled only-trusted-servers] previews:[max-gif-size] signaling:[session-ping-limit hello-v2-token-key]] features:[audio video chat-v2 conversation-v4 guest-signaling empty-group-room guest-display-names multi-room-users favorites last-room-activity no-ping system-messages delete-messages mention-flag in-call-flags conversation-call-flags notification-levels invite-groups-and-mails locked-one-to-one-rooms read-only-rooms listable-rooms chat-read-marker chat-unread webinary-lobby start-call-flag chat-replies circles-support force-mute sip-support sip-support-nopin chat-read-status phonebook-search raise-hand room-description rich-object-sharing temp-user-avatar-api geo-location-sharing voice-message-sharing signaling-v3 publishing-permissions clear-history direct-mention-flag notification-calls conversation-permissions rich-object-list-media rich-object-delete unified-search chat-permission silent-send silent-call send-call-notification talk-polls breakout-rooms-v1 recording-v1 avatar chat-get-context single-conversation-status chat-keep-notifications typing-privacy remind-me-later bots-v1 markdown-messages media-caption session-state note-to-self recording-consent sip-support-dialout delete-messages-unlimited edit-messages silent-send-state chat-read-last federation-v1 federation-v2 ban-v1 chat-reference-id mention-permissions edit-messages-note-to-self archived-conversations-v2 talk-polls-drafts download-call-participants email-csv-import call-notification-state-api message-expiration reactions] features-local:[favorites chat-read-status listable-rooms phonebook-search temp-user-avatar-api unified-search avatar remind-me-later note-to-self archived-conversations-v2 chat-summary-api call-notification-state-api] version:20.1.4] from https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities have not changed
[WARN] [2475855228754183] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
[WARN] [2068856651527716] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
clientsession.go:505: Session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== left call vdo3wymj
clientsession.go:505: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= left call vdo3wymj
janus_client.go:480: Unable to deliver message {
   "janus": "detached",
   "session_id": 6932329141783181,
   "sender": 5302425711663011
}. Handle 5302425711663011 gone?
janus_client.go:480: Unable to deliver message {
   "janus": "detached",
   "session_id": 6932329141783181,
   "sender": 2068856651527716
}. Handle 2068856651527716 gone?
mcu_janus_publisher.go:64: Publisher 2475855228754183: associated room has been destroyed, closing
mcu_janus_publisher.go:145: Room 345785197485421 destroyed
mcu_janus_publisher.go:64: Publisher 7531856357187504: associated room has been destroyed, closing
mcu_janus_publisher.go:145: Room 613065366342889 destroyed
janus_client.go:480: Unable to deliver message {
   "janus": "detached",
   "session_id": 6932329141783181,
   "sender": 2475855228754183
}. Handle 2475855228754183 gone?
janus_client.go:480: Unable to deliver message {
   "janus": "detached",
   "session_id": 6932329141783181,
   "sender": 7531856357187504
}. Handle 7531856357187504 gone?
clientsession.go:505: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= left call vdo3wymj
clientsession.go:505: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= left call vdo3wymj
clientsession.go:505: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= left call vdo3wymj
clientsession.go:569: Removed room session Y98wTo6+MTxXXGgQZYuVFUQMR41y7+nChuOpfICpqpQnri663jrqEThn9g5+Fw60MJjNl0SdCXV3qpkyxE4LxoZg53mGYtKjJoQqTV/XRtS2rHkFPVfl5tFAdEH9IQEP2W94+dvwC14jad4BQdmFXz/+VxPrKGt2vvFnjCrEk+9Okv2hiBqNPYIkR/yAmcQaYNQ4/ks9clkbrJImBWK0nRcxXwf0cdbHwS1991/Ihs+Y0slfzEKmX1Ay4sBdVxI: map[error:map[code:no_such_room message:The user is not invited to this room.] type:error]
hub.go:2673: Could not send MCU message &{Type:requestoffer Sid: RoomType:video Payload:map[] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} for session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== to aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: context deadline exceeded
mcu_janus_subscriber.go:73: Subscriber 4470465355754608 received detached, closing
client.go:353: Client aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= has RTT of 143 ms (143.572555ms)
client.go:375: Error reading from client aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:960: Unregister aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
hub.go:1211: Resume session from 100.109.65.127 in unknown-country (Mozilla/5.0 (Android) Nextcloud-Talk v21.0.0) aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
client.go:353: Client aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= has RTT of 79 ms (79.06324ms)
clientsession.go:491: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= joined room vdo3wymj with room session id Ie84xw9KGxXoZ2iZXDUzXsDJ1dS8HP3Itpq2Y5l5LuEGOt8Etrt0g4nc2oJI6I45klUJOu9FVaynm7YqUKDqLd2W0RGC1h8iNV4KosJ+8tuoQN2AChT5NCNF+0iO7M9IZs7zzD8GG8kBWMvKIPMu/LgA9APr2IC5XU2S1wOVDE7U5/QEA9qQy8hddqLQ2GiFqp5fyeVpvq92PIHXy6kqX/08AZt8EmHwcChlLOkodBFMyVJqBXJ8HVtxf9jPebB
client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (840.202µs)
capabilities.go:129: Capabilities expired for https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities, updating
capabilities.go:173: Capabilities map[config:map[attachments:map[allowed:false] call:map[blur-virtual-background:false breakout-rooms:true can-enable-sip:false can-upload-background:false enabled:true max-duration:0 predefined-backgrounds:[1_office.jpg 2_home.jpg 3_abstract.jpg 4_beach.jpg 5_park.jpg 6_theater.jpg 7_library.jpg 8_space_station.jpg] recording:true recording-consent:0 sip-dialout-enabled:false sip-enabled:false start-without-media:false supported-reactions:[❤️ 🎉 👏 👋 👍 👎 🔥 😂 🤩 🤔 😲 😥]] chat:map[has-translation-providers:false max-length:32000 read-privacy:0 summary-threshold:100 typing-privacy:0] conversations:map[can-create:false] federation:map[enabled:false incoming-enabled:false only-trusted-servers:true outgoing-enabled:false] previews:map[max-gif-size:3.145728e+06] signaling:map[hello-v2-token-key:-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPleEDPpF3aqkr4xFv8iS5/P9mWyO
gmjH09i8OpH2OS33s0UMxWD/pKMm+V5aK5lyyQdX1Z8GvVbaRN2VFSEKfg==
-----END PUBLIC KEY-----
 session-ping-limit:200]] config-local:map[attachments:[allowed folder] call:[predefined-backgrounds can-upload-background start-without-media blur-virtual-background] chat:[read-privacy has-translation-providers typing-privacy summary-threshold] conversations:[can-create] federation:[enabled incoming-enabled outgoing-enabled only-trusted-servers] previews:[max-gif-size] signaling:[session-ping-limit hello-v2-token-key]] features:[audio video chat-v2 conversation-v4 guest-signaling empty-group-room guest-display-names multi-room-users favorites last-room-activity no-ping system-messages delete-messages mention-flag in-call-flags conversation-call-flags notification-levels invite-groups-and-mails locked-one-to-one-rooms read-only-rooms listable-rooms chat-read-marker chat-unread webinary-lobby start-call-flag chat-replies circles-support force-mute sip-support sip-support-nopin chat-read-status phonebook-search raise-hand room-description rich-object-sharing temp-user-avatar-api geo-location-sharing voice-message-sharing signaling-v3 publishing-permissions clear-history direct-mention-flag notification-calls conversation-permissions rich-object-list-media rich-object-delete unified-search chat-permission silent-send silent-call send-call-notification talk-polls breakout-rooms-v1 recording-v1 avatar chat-get-context single-conversation-status chat-keep-notifications typing-privacy remind-me-later bots-v1 markdown-messages media-caption session-state note-to-self recording-consent sip-support-dialout delete-messages-unlimited edit-messages silent-send-state chat-read-last federation-v1 federation-v2 ban-v1 chat-reference-id mention-permissions edit-messages-note-to-self archived-conversations-v2 talk-polls-drafts download-call-participants email-csv-import call-notification-state-api message-expiration reactions] features-local:[favorites chat-read-status listable-rooms phonebook-search temp-user-avatar-api unified-search avatar remind-me-later note-to-self archived-conversations-v2 chat-summary-api call-notification-state-api] version:20.1.4] from https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities have not changed
client.go:375: Error reading from client aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:960: Unregister aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (823.834µs)
client.go:355: Client from 100.109.65.127 has RTT of 16 ms (16.901828ms)
hub.go:1211: Resume session from 100.109.65.127 in unknown-country (Mozilla/5.0 (Android) Nextcloud-Talk v21.0.0) aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
clientsession.go:569: Removed room session Ie84xw9KGxXoZ2iZXDUzXsDJ1dS8HP3Itpq2Y5l5LuEGOt8Etrt0g4nc2oJI6I45klUJOu9FVaynm7YqUKDqLd2W0RGC1h8iNV4KosJ+8tuoQN2AChT5NCNF+0iO7M9IZs7zzD8GG8kBWMvKIPMu/LgA9APr2IC5XU2S1wOVDE7U5/QEA9qQy8hddqLQ2GiFqp5fyeVpvq92PIHXy6kqX/08AZt8EmHwcChlLOkodBFMyVJqBXJ8HVtxf9jPebB: map[error:map[code:no_such_room message:The user is not invited to this room.] type:error]
clientsession.go:491: Session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= joined room vdo3wymj with room session id qkYhD0BX3I8g/9eWQVqcM5cb3px6o+d2bliszeScVn2KqbhI/J2/OoLoohtakPNNTwb8d5ubHTDs54wP1AMTXVeytbCPNT7voAGHt1SckCstNjfQUKpDUKei4HSNkmXyKzWNCMcs2AG6gecHcbRGZi2glwPrrq+ZhY/jeVvli3ebOQwoLZxCKvZlsjT77vz6g5swlYSyfNauDIjn7oQrh/8ZDW0mR7Y8rSNZf7uQV534ZFTj7RO3DyRx6ll8xW5
clientsession.go:569: Removed room session qkYhD0BX3I8g/9eWQVqcM5cb3px6o+d2bliszeScVn2KqbhI/J2/OoLoohtakPNNTwb8d5ubHTDs54wP1AMTXVeytbCPNT7voAGHt1SckCstNjfQUKpDUKei4HSNkmXyKzWNCMcs2AG6gecHcbRGZi2glwPrrq+ZhY/jeVvli3ebOQwoLZxCKvZlsjT77vz6g5swlYSyfNauDIjn7oQrh/8ZDW0mR7Y8rSNZf7uQV534ZFTj7RO3DyRx6ll8xW5: map[error:map[code:no_such_room message:The user is not invited to this room.] type:error]
clientsession.go:569: Removed room session 80+W6UVf+nHou/4+mEMnzKvxXne0+pOQdN3Q/GQJlSMzRXuiXl66ZL48/J0oiI7Pn8ScBM/hfo3cSPAtRQ3vZrYBWf0Upj74RlHO82gEmO08PZoydx/0Nhljgma6sv2D7r9Psy1JiL3sBCfwEVT07gDf4qbz2GFybQdxIYuBshMd+aA3P+Y9A/I+VGYZ1vH+4PiXZBxEP4UYUsSGTC873fm9Sdjeuz9gU6NWQoYe0zZb1yQK0iEt87o9GGDCLO+: map[room:map[permissions:[publish-audio publish-video publish-screen control] properties:map[active-since:<nil> description: listable:0 lobby-state:0 lobby-timer:<nil> name:test read-only:0 sip-enabled:0 type:2] roomid:vdo3wymj version:1.0] type:room]
clientsession.go:491: Session MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== joined room r3hk95gc with room session id +Wi9P7irFiChVkrWemhsGguDWLfpG15zeprkLOtAFiaoLpQBFQQzQbzANecMU+2wAAByTTndwMWLZXDXRNR0husdpCSP8YRUVbFhRzgZh1eFa1QDeXeQ7sp7DfpAt0fr/ZQ4Nti+LO8YwIICsNNkz2Th+s/qPusuiNzIRbMsLLqP4kU6+U4ZEkwC4iaUIjSeUj6VCZne9QleWe4BApakz26WoSThWRSIqNEt0OporweV8hLxQWmYOOPf3fpUV6I
client.go:375: Error reading from client aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:960: Unregister aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
hub.go:664: Closing expired session aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= (private=MTc0MTAxODcyOXw5eGp5MGpJa3l1eDVBdGE2S21ySk52VmZXRHg3UEpBRFM0MHpOQzZYaDNWOVBmYnRYZzNCRy0xVTZnPT18pYH2vR6ZjRLYS7EU5tFvsa2sBYaEsGgWf0gRGSFVNYg=)
capabilities.go:129: Capabilities expired for https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities, updating
capabilities.go:173: Capabilities map[config:map[attachments:map[allowed:false] call:map[blur-virtual-background:false breakout-rooms:true can-enable-sip:false can-upload-background:false enabled:true max-duration:0 predefined-backgrounds:[1_office.jpg 2_home.jpg 3_abstract.jpg 4_beach.jpg 5_park.jpg 6_theater.jpg 7_library.jpg 8_space_station.jpg] recording:true recording-consent:0 sip-dialout-enabled:false sip-enabled:false start-without-media:false supported-reactions:[❤️ 🎉 👏 👋 👍 👎 🔥 😂 🤩 🤔 😲 😥]] chat:map[has-translation-providers:false max-length:32000 read-privacy:0 summary-threshold:100 typing-privacy:0] conversations:map[can-create:false] federation:map[enabled:false incoming-enabled:false only-trusted-servers:true outgoing-enabled:false] previews:map[max-gif-size:3.145728e+06] signaling:map[hello-v2-token-key:-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPleEDPpF3aqkr4xFv8iS5/P9mWyO
gmjH09i8OpH2OS33s0UMxWD/pKMm+V5aK5lyyQdX1Z8GvVbaRN2VFSEKfg==
-----END PUBLIC KEY-----
 session-ping-limit:200]] config-local:map[attachments:[allowed folder] call:[predefined-backgrounds can-upload-background start-without-media blur-virtual-background] chat:[read-privacy has-translation-providers typing-privacy summary-threshold] conversations:[can-create] federation:[enabled incoming-enabled outgoing-enabled only-trusted-servers] previews:[max-gif-size] signaling:[session-ping-limit hello-v2-token-key]] features:[audio video chat-v2 conversation-v4 guest-signaling empty-group-room guest-display-names multi-room-users favorites last-room-activity no-ping system-messages delete-messages mention-flag in-call-flags conversation-call-flags notification-levels invite-groups-and-mails locked-one-to-one-rooms read-only-rooms listable-rooms chat-read-marker chat-unread webinary-lobby start-call-flag chat-replies circles-support force-mute sip-support sip-support-nopin chat-read-status phonebook-search raise-hand room-description rich-object-sharing temp-user-avatar-api geo-location-sharing voice-message-sharing signaling-v3 publishing-permissions clear-history direct-mention-flag notification-calls conversation-permissions rich-object-list-media rich-object-delete unified-search chat-permission silent-send silent-call send-call-notification talk-polls breakout-rooms-v1 recording-v1 avatar chat-get-context single-conversation-status chat-keep-notifications typing-privacy remind-me-later bots-v1 markdown-messages media-caption session-state note-to-self recording-consent sip-support-dialout delete-messages-unlimited edit-messages silent-send-state chat-read-last federation-v1 federation-v2 ban-v1 chat-reference-id mention-permissions edit-messages-note-to-self archived-conversations-v2 talk-polls-drafts download-call-participants email-csv-import call-notification-state-api message-expiration reactions] features-local:[favorites chat-read-status listable-rooms phonebook-search temp-user-avatar-api unified-search avatar remind-me-later note-to-self archived-conversations-v2 chat-summary-api call-notification-state-api] version:20.1.4] from https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities have not changed
client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (719.674µs)
client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (646.127µs)
capabilities.go:129: Capabilities expired for https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities, updating
capabilities.go:173: Capabilities map[config:map[attachments:map[allowed:false] call:map[blur-virtual-background:false breakout-rooms:true can-enable-sip:false can-upload-background:false enabled:true max-duration:0 predefined-backgrounds:[1_office.jpg 2_home.jpg 3_abstract.jpg 4_beach.jpg 5_park.jpg 6_theater.jpg 7_library.jpg 8_space_station.jpg] recording:true recording-consent:0 sip-dialout-enabled:false sip-enabled:false start-without-media:false supported-reactions:[❤️ 🎉 👏 👋 👍 👎 🔥 😂 🤩 🤔 😲 😥]] chat:map[has-translation-providers:false max-length:32000 read-privacy:0 summary-threshold:100 typing-privacy:0] conversations:map[can-create:false] federation:map[enabled:false incoming-enabled:false only-trusted-servers:true outgoing-enabled:false] previews:map[max-gif-size:3.145728e+06] signaling:map[hello-v2-token-key:-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPleEDPpF3aqkr4xFv8iS5/P9mWyO
gmjH09i8OpH2OS33s0UMxWD/pKMm+V5aK5lyyQdX1Z8GvVbaRN2VFSEKfg==
-----END PUBLIC KEY-----
 session-ping-limit:200]] config-local:map[attachments:[allowed folder] call:[predefined-backgrounds can-upload-background start-without-media blur-virtual-background] chat:[read-privacy has-translation-providers typing-privacy summary-threshold] conversations:[can-create] federation:[enabled incoming-enabled outgoing-enabled only-trusted-servers] previews:[max-gif-size] signaling:[session-ping-limit hello-v2-token-key]] features:[audio video chat-v2 conversation-v4 guest-signaling empty-group-room guest-display-names multi-room-users favorites last-room-activity no-ping system-messages delete-messages mention-flag in-call-flags conversation-call-flags notification-levels invite-groups-and-mails locked-one-to-one-rooms read-only-rooms listable-rooms chat-read-marker chat-unread webinary-lobby start-call-flag chat-replies circles-support force-mute sip-support sip-support-nopin chat-read-status phonebook-search raise-hand room-description rich-object-sharing temp-user-avatar-api geo-location-sharing voice-message-sharing signaling-v3 publishing-permissions clear-history direct-mention-flag notification-calls conversation-permissions rich-object-list-media rich-object-delete unified-search chat-permission silent-send silent-call send-call-notification talk-polls breakout-rooms-v1 recording-v1 avatar chat-get-context single-conversation-status chat-keep-notifications typing-privacy remind-me-later bots-v1 markdown-messages media-caption session-state note-to-self recording-consent sip-support-dialout delete-messages-unlimited edit-messages silent-send-state chat-read-last federation-v1 federation-v2 ban-v1 chat-reference-id mention-permissions edit-messages-note-to-self archived-conversations-v2 talk-polls-drafts download-call-participants email-csv-import call-notification-state-api message-expiration reactions] features-local:[favorites chat-read-status listable-rooms phonebook-search temp-user-avatar-api unified-search avatar remind-me-later note-to-self archived-conversations-v2 chat-summary-api call-notification-state-api] version:20.1.4] from https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities have not changed
client.go:353: Client MBVT35i2EMeJkZuivwPVt4xR7upRGCh6YVCsFGObOnx8dmJiVmFiVXJEZXhSdjByZ2ZGdm1jbjl2aGFudi1kOUFPRUtHbG4xbE9oZ3l2TU51LVEzSXdPN2p8NjI1ODEwMTQ3MQ== has RTT of 0 ms (605.495µs)

Your browser log if relevant (javascript console log, network log, etc.):

No offer received for new peer, request offer again aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= talk-main.js:26490:21003
Request offer from aHc6hTzLkG2o4DbRk0PuOFBKepziNZ5lj_bJeVNnZ8Z8PT1nNFktRGpGS3R4T2hOUExxa0FBZ3pxYlU1YXdnTE9tRkZOUmt0Mk9ydC1WeWRhWERmZXo4LUpXZ3Q3fDkyNzgxMDE0NzE= undefined talk-main.js:26490:66061
[DEBUG] spreed: vdo3wymj | long polling | 30 083.93 ms status 304 talk-main.js:26467:49520

Error: Attempt to postMessage on disconnected port (8) undefined
Error: Attempt to postMessage on disconnected port undefined
An error occurred processing the signaling message, please ask your server administrator to check the log file talk-main.js:26490:52497

Error I didn’t get but the call receiver did about TURN:

Could not establish a connection with at least one participant. A TURN server might be needed for your scenario. Please ask your administrator to set one up.

This exactly the proof TURN is required. Trust my many years experience in VOIP systems - there almost no scenario when you don’t need TURN… and to be honest why should avoid using it?

Oh, I have 0 years experience :joy: I read they open a lot of ports and are insecure because of that. Could you offer some guidance on how to open one in a contained environment?

this is a common misconception - the application is not more or less secure just because it opens many ports.

TURN is not about isolating system - it the complete opposite it connects users through firewalls. Many tutorials exist - just keep in mind don’t do any security voodoo - TURN requires straight connection without NAT, firewall reverse proxy etc.

Okay, coming back to this after being busy for a while, apparently nextcloud AIO-talk comes bundled with coturn already (hence the prepopulated turn server, although unfortunately after recently deleting it’s not coming back). That said, it wasn’t working. I’m having trouble finding documentation on how to use the existing TURN server, especially with my tailscale-caddy configuration. Can you steer me in the right path? I notice in the talk log it mentions there’s no trusted proxies but I’m not sure how to add those.

Exec: /opt/eturnal/erts-15.1.2/bin/erlexec -noinput +Bd -boot /opt/eturnal/releases/1.12.1/start -mode embedded -boot_var SYSTEM_LIB_DIR /opt/eturnal/lib -config /opt/eturnal/releases/1.12.1/sys.config -args_file /opt/eturnal/releases/1.12.1/vm.args -erl_epmd_port 3470 -start_epmd false -- foreground
Root: /opt/eturnal
/opt/eturnal
natsclient.go:108: Connection established to nats://127.0.0.1:4222 (NDB5B6SH5FADINZRG6GLYKUVVHOS73DRWE23B6GUBNETHH65TLD2BDXC)
grpc_common.go:176: WARNING: No GRPC server certificate and/or key configured, running unencrypted
grpc_common.go:178: WARNING: No GRPC CA configured, expecting unencrypted connections
backend_storage_static.go:73: Backend backend-1 added for https://nextcloud.wallaby-gopher.ts.net/
hub.go:227: Using a maximum of 8 concurrent backend connections per host
hub.go:234: Using a timeout of 10s for backend connections
hub.go:267: No trusted proxies configured, only allowing for [127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16]
hub.go:309: Not using GeoIP database
mcu_common.go:110: Maximum bandwidth 1048576 bits/sec per publishing stream
mcu_common.go:117: Maximum bandwidth 2097152 bits/sec per screensharing stream
mcu_janus.go:161: Using a timeout of 10s for MCU requests
mcu_janus.go:343: Connected to Janus WebRTC Server 1.3.1 by Meetecho s.r.l.
mcu_janus.go:351: Found JANUS VideoRoom plugin 0.0.10 by Meetecho s.r.l.
mcu_janus.go:356: Data channels are supported
mcu_janus.go:360: Full-Trickle is enabled
mcu_janus.go:367: Created Janus session 26355142326769
mcu_janus.go:374: Created Janus handle 3017425577036574
main.go:301: Using janus MCU
hub.go:416: Using a timeout of 10s for MCU requests
backend_server.go:116: No IPs configured for the stats endpoint, only allowing access from 127.0.0.1
main.go:382: Listening on 0.0.0.0:8081
++ head -1
++ hostname -i
++ grep -oP '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'
+ IPv4_ADDRESS_TALK_RELAY=172.19.0.11
++ head -n1
++ ++ grep '^[0-9.]\+$'
dig nextcloud-aio-talk IN A +short +search
++ sort
+ IPv4_ADDRESS_TALK=172.19.0.11
++ dig nextcloud-aio-talk AAAA +short +search
++ sort
++ grep '^[0-9a-f:]\+$'++ 
head -n1
+ IPv6_ADDRESS_TALK=
+ set +x
+ IP_BINDING=::
+ grep -q 1 /sys/module/ipv6/parameters/disable
+ grep -q 1 /proc/sys/net/ipv6/conf/all/disable_ipv6
+ grep -q 1 /proc/sys/net/ipv6/conf/default/disable_ipv6
+ set +x
Janus version: 1301 (1.3.1)
Janus commit: 8d4a7b1e162ffb0cee5968184c07abaa301162e4
Compiled on:  Mon May 19 13:00:05 UTC 2025
Logger plugins folder: /usr/local/lib/janus/loggers
---------------------------------------------------
  Starting Meetecho Janus (WebRTC Server) v1.3.1
---------------------------------------------------
Checking command line arguments...
Debug/log level is 3
Debug/log timestamps are disabled
Debug/log colors are disabled
[WARN] Janus is deployed on a private address (172.19.0.11) but you didn't specify any STUN server! Expect trouble if this is supposed to work over the internet and not just in a LAN...
[36] 2025/06/10 08:03:27.149408 [INF] Starting nats-server
[36] 2025/06/10 08:03:27.149462 [INF]   Version:  2.11.3
[36] 2025/06/10 08:03:27.149465 [INF]   Git:      [a82cfda]
[36] 2025/06/10 08:03:27.149467 [INF]   Name:     NAQWNHPF7D75NHRGUOFT7R3QDTF7WAEXYUP2HFRTJBDMBSVYWC356ZZC
[36] 2025/06/10 08:03:27.149470 [INF]   ID:       NAQWNHPF7D75NHRGUOFT7R3QDTF7WAEXYUP2HFRTJBDMBSVYWC356ZZC
[36] 2025/06/10 08:03:27.149489 [INF] Using configuration file: /etc/nats.conf (sha256:bfa037b94ac399931a51e64559d5b8b099a1777b0832b8f5c14fee855e33b59c)
[36] 2025/06/10 08:03:27.151458 [INF] Listening for client connections on 127.0.0.1:4222
[36] 2025/06/10 08:03:27.151477 [INF] Server is ready
Exec: /opt/eturnal/erts-15.1.2/bin/erlexec -noinput +Bd -boot /opt/eturnal/releases/1.12.1/start -mode embedded -boot_var SYSTEM_LIB_DIR /opt/eturnal/lib -config /opt/eturnal/releases/1.12.1/sys.config -args_file /opt/eturnal/releases/1.12.1/vm.args -erl_epmd_port 3470 -start_epmd false -- foreground
Root: /opt/eturnal
/opt/eturnal
[WARN] libcurl not available, Streaming plugin will not have RTSP support
[WARN] libogg not available, Streaming plugin will not have file-based Opus streaming
main.go:162: Starting up version 2.0.3~docker/go1.24.3 as pid 75
main.go:169: Using a maximum of 20 CPUs
natsclient.go:108: Connection established to nats://127.0.0.1:4222 (NAQWNHPF7D75NHRGUOFT7R3QDTF7WAEXYUP2HFRTJBDMBSVYWC356ZZC)
grpc_common.go:176: WARNING: No GRPC server certificate and/or key configured, running unencrypted
grpc_common.go:178: WARNING: No GRPC CA configured, expecting unencrypted connections
backend_storage_static.go:73: Backend backend-1 added for https://nextcloud.wallaby-gopher.ts.net/
hub.go:227: Using a maximum of 8 concurrent backend connections per host
hub.go:234: Using a timeout of 10s for backend connections
hub.go:267: No trusted proxies configured, only allowing for [127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16]
hub.go:309: Not using GeoIP database
mcu_common.go:110: Maximum bandwidth 1048576 bits/sec per publishing stream
mcu_common.go:117: Maximum bandwidth 2097152 bits/sec per screensharing stream
mcu_janus.go:161: Using a timeout of 10s for MCU requests
main.go:266: Could not initialize janus MCU (dial tcp 127.0.0.1:8188: connect: connection refused) will retry in 1s
[WARN] No Unix Sockets server started, giving up...
[WARN] The 'janus.transport.pfunix' plugin could not be initialized
mcu_common.go:110: Maximum bandwidth 1048576 bits/sec per publishing stream
mcu_common.go:117: Maximum bandwidth 2097152 bits/sec per screensharing stream
mcu_janus.go:161: Using a timeout of 10s for MCU requests
mcu_janus.go:343: Connected to Janus WebRTC Server 1.3.1 by Meetecho s.r.l.
mcu_janus.go:351: Found JANUS VideoRoom plugin 0.0.10 by Meetecho s.r.l.
mcu_janus.go:356: Data channels are supported
mcu_janus.go:360: Full-Trickle is enabled
mcu_janus.go:367: Created Janus session 2067939846400065
mcu_janus.go:374: Created Janus handle 6782817069743890
main.go:301: Using janus MCU
hub.go:416: Using a timeout of 10s for MCU requests
backend_server.go:116: No IPs configured for the stats endpoint, only allowing access from 127.0.0.1
main.go:382: Listening on 0.0.0.0:8081


while details can be tricky general mechanics are simple - TURN server must be reachable (and from my experience it should be excluded from voodoo things like VPN and security snakeoil) - as this components works as relay for clients which can not connect to each other.

I found pretty cool architecture drawing which explains the use of TURN very well

or maybe this references:

So far in my self-hosting journey I have only engaged in vpn tomfoolery :skull_and_crossbones:
I think because nextcloud was reverse proxied then the domain these articles want would be no good? (I got back the turn server by restarting in the :8080 port)


is there a way to expose the AIO turn server to the internet otherwise? Something like ddns-updater (to deal with the server machine’s unavoidable dynamic IP) to a domain I purchased (not sure about settings on the Porkbun side) that I’m not sure how to point to the AIO-talk without reverse proxying. For reference I had already tried using the metered free TURN but got stuck beyond hitting in the domain/secret because there was nowhere to enter the API that I think was necessary. Thank you for your help, this is new territory for me.

the answer is: “no reverse proxy at all”. each client must have direct connection to the TURN server - in SOHO environment this more or less always direct port forwarding. one can not reverse proxy TURN protocol (media like voice and video in general)

1 Like

Okay so as I was working on port forwarding I check that the IP/port is correct on the host and it only shows service as stun and tcp, is that the problem, AIO-talk isn’t actually making the TURN?

$ nmap -p 3478 0.0.0.0
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-11 08:56 CDT
Nmap scan report for 0.0.0.0
Host is up (0.000066s latency).

PORT     STATE SERVICE
3478/tcp open  stun

Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

Anyway, I don’t think I’m port forwarding right, I got the nextcloud talk local ip here

$ docker exec -it nextcloud-aio-talk sh
/ $ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0@if28: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 3e:d0:8a:a0:a0:a1 brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.5/16 brd 172.19.255.255 scope global eth0
       valid_lft forever preferred_lft forever

But it won’t accept it


It took the host pc’s address but the turn continues to not connect which I think may be because the TURN isn’t started at all as above

IMO AiO runs integrated TRUN server.. you should see it running docker ps - open ports are listed there.
Please look at How to debug problems with Collabora and/or Talk · nextcloud/all-in-one · Discussion #1358 · GitHub as well.

Okay so following @szaimen’s steps
it didn’t get into hosts

$ cat /etc/hosts
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1        localhost
::1              localhost

I’m not on Synology.
I’m not behind cloudflare. BUT I notice there was a tailscale mention there, and they had some caddy configs I don’t

{
    layer4 {
        127.0.0.1:3478 {
            route {
                proxy {
                    upstream nextcloud-aio-talk:3478
                }
            }
        }
        127.0.0.1:3479 {
            route {
                proxy {
                    upstream nextcloud-aio-talk:3479
                }
            }
        }
    }
}

I changed the 127.0.0.1 to 0.0.0.0 per my setup because their “hardening” never worked for me. I had to add
–with github.com/mholt/caddy-l4@87e3e5e2c7f986b34c0df373a5799670d7b8ca03 to xcaddy

build:
        dockerfile_inline: |
          FROM docker.io/caddy:2.9-builder AS builder
          RUN xcaddy build \
            --with github.com/tailscale/caddy-tailscale \
            --with github.com/mholt/caddy-l4@87e3e5e2c7f986b34c0df373a5799670d7b8ca03
          FROM docker.io/caddy:2.9
          COPY --from=builder /usr/bin/caddy /usr/bin/caddy

but TURN still has that red exclamation.

Anyway, back to @szaimen’s steps, I’m not sure how to check if caddy has websockets are enabled
according to this on v1 they just sort of threw in a ‘websocket’ but on v2 that’s not there, so it might be automatic or something? If it’s the header_up I’m not sure what to make of that.

myserver.domain.invalid {
  route /standalone-signaling/* {
    uri strip_prefix /standalone-signaling
    reverse_proxy http://127.0.0.1:8080
    header_up X-Real-IP {remote_host}
  }
}

now the output of the commands:

3c824c1d8ca8:/var/www/html# curl -vvv https://$NC_DOMAIN:443/standalone-signaling/api/v1/welcome
exit
19:38:40.579128 [0-x] == Info: [READ] client_reset, clear readers
19:38:40.580217 [0-0] == Info: Host nextcloud.wallaby-gopher.ts.net:443 was resolved.
19:38:40.580273 [0-0] == Info: IPv6: (none)
19:38:40.580302 [0-0] == Info: IPv4: 100.96.243.61
19:38:40.580335 [0-0] == Info: [HTTPS-CONNECT] created with 1 ALPNs -> 0
19:38:40.580389 [0-0] == Info: [HTTPS-CONNECT] added
19:38:40.580428 [0-0] == Info: [HTTPS-CONNECT] connect, init
19:38:40.580485 [0-0] == Info:   Trying 100.96.243.61:443...
19:38:40.580562 [0-0] == Info: [HTTPS-CONNECT] connect -> 0, done=0
19:38:40.580618 [0-0] == Info: [HTTPS-CONNECT] adjust_pollset -> 1 socks
19:38:40.581752 [0-0] == Info: [SSL] cf_connect()
19:38:40.583226 [0-0] == Info: ALPN: curl offers h2,http/1.1
19:38:40.583369 [0-0] => Send SSL data, 5 bytes (0x5)
0000: .....
19:38:40.583421 [0-0] == Info: TLSv1.3 (OUT), TLS handshake, Client hello (1):
19:38:40.583497 [0-0] => Send SSL data, 512 bytes (0x200)
0000: .......&...!.[.C.[.,.~N&9EH_......e..q .....C..Q.0vN..Q..-.\....
0040: .^.%<.V.>.......,.0.........+./...$.(.k.#.'.g.....9.....3.....=.
0080: <.5./.....u...$."...nextcloud.wallaby-gopher.ts.net.............
00c0: ............................h2.http/1.1.........1.....0.........
0100: ........................................+........-.....3.&.$... 
0140: ..;J..k..........[.!*......v....................................
0180: ................................................................
01c0: ................................................................
19:38:40.584087 [0-0] == Info: [SSL] ossl_bio_cf_out_write(len=517) -> 517, err=0
19:38:40.584169 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> -1, err=81
19:38:40.584236 [0-0] == Info: [SSL] ossl_populate_x509_store, path=/etc/ssl/cert.pem, blob=0
19:38:40.593222 [0-0] == Info:  CAfile: /etc/ssl/cert.pem
19:38:40.593259 [0-0] == Info:  CApath: /etc/ssl/certs
19:38:40.593305 [0-0] == Info: [SSL] SSL_connect() -> err=-1, detail=2
19:38:40.593368 [0-0] == Info: [SSL] SSL_connect() -> want recv
19:38:40.593422 [0-0] == Info: [SSL] cf_connect() -> 0, done=0
19:38:40.593480 [0-0] == Info: [HTTPS-CONNECT] connect -> 0, done=0
19:38:40.593542 [0-0] == Info: [SSL] adjust_pollset, POLLIN fd=4
19:38:40.593597 [0-0] == Info: [HTTPS-CONNECT] adjust_pollset -> 1 socks
19:38:40.593662 [0-0] == Info: [SSL] cf_connect()
19:38:40.593712 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.593777 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....z
19:38:40.593833 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=122) -> 122, err=0
19:38:40.593898 [0-0] == Info: TLSv1.3 (IN), TLS handshake, Server hello (2):
19:38:40.593952 [0-0] <= Recv SSL data, 122 bytes (0x7a)
0000: ...v.......[......-.......{wM..+..s... .....C..Q.0vN..Q..-.\....
0040: .^.%<.V......+.....3.$... .-....I....R...4.z..[ )i.......E
19:38:40.594246 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.594301 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .....
19:38:40.594354 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=1) -> 1, err=0
19:38:40.594424 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.594494 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .... 
19:38:40.594543 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=32) -> 32, err=0
19:38:40.594603 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.594647 [0-0] == Info: TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
19:38:40.594705 [0-0] <= Recv SSL data, 15 bytes (0xf)
0000: .............h2
19:38:40.594768 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.594824 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....,
19:38:40.594870 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=2092) -> 2092, err=0
19:38:40.594933 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.594976 [0-0] == Info: TLSv1.3 (IN), TLS handshake, Certificate (11):
19:38:40.595033 [0-0] <= Recv SSL data, 2075 bytes (0x81b)
0000: ...........0...0..0.........b...A..^.....k.30...*.H.=...021.0...
0040: U....US1.0...U....Let's Encrypt1.0...U....E50...250528015558Z..2
0080: 50826015557Z0*1(0&..U....nextcloud.wallaby-gopher.ts.net0Y0...*.
00c0: H.=....*.H.=....B.../....v..e.~d..9..2!z..O0.+.kz........a...y..
0100: .M?.7.w?...x.....^....,0..(0...U...........0...U.%..0...+.......
0140: ..+.......0...U.......0.0...U...........S#..s..v.....X.0...U.#..
0180: 0....+_.<!O....+,..p....02..+........&0$0"..+.....0...http://e5.
01c0: i.lencr.org/0*..U...#0!..nextcloud.wallaby-gopher.ts.net0...U. .
0200: .0.0...g.....0-..U...&0$0". ....http://e5.c.lencr.org/52.crl0...
0240: ..+.....y............u..<K.......W..$.8..Q/....p. ..>?..........
0280: ....F0D. ut...>%.k...{.../PI.......k...... *....&.#.. ...J..}e..
02c0: .4....o.?.#.v....j.q.e...S...|"..\.....~T..L...............G0E.!
0300: ....*......x.a...%..s...z..C..'./. -.@(...E[)...+.f.5.:..he.0...
0340: .H.0...*.H.=....h.0e.1....).D...Vi....Q...y.}.....K..aMJ...Z.h..
0380: .h.4./S.0,.......f<...I...ZQ.h.A2.VoK....u+.2#./.s....U......[0.
03c0: .W0..?..........lc..9.b.b.....0...*.H........0O1.0...U....US1)0'
0400: ..U... Internet Security Research Group1.0...U....ISRG Root X10.
0440: ..240313000000Z..270312235959Z021.0...U....US1.0...U....Let's En
0480: crypt1.0...U....E50v0...*.H.=....+...".b....:.ka...._X..BET.c.fa
04c0: H..Yu...7P.?.y....(.r .,..|R NTx[..k......QA<Z...M..`..l-.}.....
0500: T...L........0..0...U...........0...U.%..0...+.........+.......0
0540: ...U.......0.......0...U.......+_.<!O....+,..p....0...U.#..0...y
0580: .Y.{....s.....X...n02..+........&0$0"..+.....0...http://x1.i.len
05c0: cr.org/0...U. ..0.0...g.....0'..U... 0.0.......http://x1.c.lencr
0600: .org/0...*.H..............r.4EBA.......&L.Q%.B..6H......c../....
0640: g........U...C..F........(q...m..d..L2...............q...r......
0680: ......R....I8..sE .o|.`..L?*#..H..[..v.[.....'#..5......A._8\.\.
06c0: .l..j..s..XoL;...Z...WDgU[....Q......0MY.i.........#fi^........\
0700: Q.l......z.W.w....b0.......y.jrm..,X .zq..aSI.g.Z..C.XJ.2.{..<.S
0740: .....'..qd....._....*...b}.................:...T4..t.......^..+P
0780: \h..%.&n4`..w.....P3....4.v..b9.q...Go......W..h.i....O......:..
07c0: .x...U.....ccX.)...''..*...n...W.K....dxU.5..<F....{.G>.k..6....
0800: ?..d..&.P...b]U....Z...\'..
19:38:40.597585 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.597633 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....`
19:38:40.597684 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=96) -> 96, err=0
19:38:40.597736 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.597784 [0-0] == Info: TLSv1.3 (IN), TLS handshake, CERT verify (15):
19:38:40.597843 [0-0] <= Recv SSL data, 79 bytes (0x4f)
0000: ...K...G0E.!....;.G..<..~........l..7.e._..6|. S9,GaZ......WT.*q
0040: |...y\..2......
19:38:40.598042 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.598094 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....5
19:38:40.598140 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=53) -> 53, err=0
19:38:40.598200 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.598244 [0-0] == Info: TLSv1.3 (IN), TLS handshake, Finished (20):
19:38:40.598299 [0-0] <= Recv SSL data, 36 bytes (0x24)
0000: ... Q.$...V>n..4.)VA....D...f.......
19:38:40.598401 [0-0] => Send SSL data, 5 bytes (0x5)
0000: .....
19:38:40.598449 [0-0] == Info: TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
19:38:40.598513 [0-0] => Send SSL data, 1 bytes (0x1)
0000: .
19:38:40.598591 [0-0] => Send SSL data, 5 bytes (0x5)
0000: ....5
19:38:40.598634 [0-0] => Send SSL data, 1 bytes (0x1)
0000: .
19:38:40.598681 [0-0] == Info: TLSv1.3 (OUT), TLS handshake, Finished (20):
19:38:40.598731 [0-0] => Send SSL data, 36 bytes (0x24)
0000: ... .h..xc;..r.6c.."......"n.`....8.
19:38:40.598815 [0-0] == Info: [SSL] ossl_bio_cf_out_write(len=64) -> 64, err=0
19:38:40.598934 [0-0] == Info: SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / x25519 / id-ecPublicKey
19:38:40.599018 [0-0] == Info: ALPN: server accepted h2
19:38:40.599065 [0-0] == Info: Server certificate:
19:38:40.599114 [0-0] == Info:  subject: CN=nextcloud.wallaby-gopher.ts.net
19:38:40.599176 [0-0] == Info:  start date: May 28 01:55:58 2025 GMT
19:38:40.599223 [0-0] == Info:  expire date: Aug 26 01:55:57 2025 GMT
19:38:40.599274 [0-0] == Info:  subjectAltName: host "nextcloud.wallaby-gopher.ts.net" matched cert's "nextcloud.wallaby-gopher.ts.net"
19:38:40.599379 [0-0] == Info:  issuer: C=US; O=Let's Encrypt; CN=E5
19:38:40.599428 [0-0] == Info:  SSL certificate verify ok.
19:38:40.599481 [0-0] == Info:   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
19:38:40.599571 [0-0] == Info:   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
19:38:40.599681 [0-0] == Info:   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
19:38:40.599780 [0-0] == Info: [SSL] cf_connect() -> 0, done=1
19:38:40.599823 [0-0] == Info: [HTTPS-CONNECT] connect+handshake h2: 19ms, 1st data: 13ms
19:38:40.599906 [0-0] == Info: [HTTP/2] [0] created h2 session
19:38:40.599955 [0-0] == Info: [HTTP/2] [0] -> FRAME[SETTINGS, len=18]
19:38:40.600003 [0-0] == Info: [HTTP/2] [0] -> FRAME[WINDOW_UPDATE, incr=1048510465]
19:38:40.600064 [0-0] == Info: [HTTP/2] cf_connect() -> 0, 1, 
19:38:40.600109 [0-0] == Info: [HTTPS-CONNECT] connect -> 0, done=1
19:38:40.600161 [0-0] == Info: Connected to nextcloud.wallaby-gopher.ts.net (100.96.243.61) port 443
19:38:40.600232 [0-0] == Info: using HTTP/2
19:38:40.600280 [0-0] == Info: [HTTP/2] [1] OPENED stream for https://nextcloud.wallaby-gopher.ts.net:443/standalone-signaling/api/v1/welcome
19:38:40.600381 [0-0] == Info: [HTTP/2] [1] [:method: GET]
19:38:40.600426 [0-0] == Info: [HTTP/2] [1] [:scheme: https]
19:38:40.600494 [0-0] == Info: [HTTP/2] [1] [:authority: nextcloud.wallaby-gopher.ts.net]
19:38:40.600554 [0-0] == Info: [HTTP/2] [1] [:path: /standalone-signaling/api/v1/welcome]
19:38:40.600623 [0-0] == Info: [HTTP/2] [1] [user-agent: curl/8.12.1]
19:38:40.600675 [0-0] == Info: [HTTP/2] [1] [accept: */*]
19:38:40.600720 [0-0] == Info: [HTTP/2] [1] submit -> 128, 0
19:38:40.600767 [0-0] == Info: [HTTP/2] [1] -> FRAME[HEADERS, len=70, hend=1, eos=1]
19:38:40.600847 [0-0] => Send SSL data, 5 bytes (0x5)
0000: .....
19:38:40.600898 [0-0] => Send SSL data, 1 bytes (0x1)
0000: .
19:38:40.600956 [0-0] == Info: [SSL] ossl_bio_cf_out_write(len=165) -> 165, err=0
19:38:40.601016 [0-0] == Info: [HTTP/2] [0] egress: wrote 143 bytes
19:38:40.601066 [0-0] == Info: [HTTP/2] [1] cf_send(len=128) -> 128, 0, eos=1, h2 windows 65535-65535 (stream-conn), buffers 0-0 (stream-conn)
19:38:40.601174 [0-0] => Send header, 128 bytes (0x80)
0000: GET /standalone-signaling/api/v1/welcome HTTP/2
0031: Host: nextcloud.wallaby-gopher.ts.net
0058: User-Agent: curl/8.12.1
0071: Accept: */*
007e: 
19:38:40.601385 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.601447 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .....
19:38:40.601509 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=139) -> 139, err=0
19:38:40.601585 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.601653 [0-0] == Info: TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
19:38:40.601713 [0-0] <= Recv SSL data, 122 bytes (0x7a)
0000: ...v..:...n...i......l.PS.^.... L..c.K..}Q^.{.D.........o(">..EP
0040: .#"...1X..y.5.....W....,.J+H..q+Z.E...m.[%....6....n..2...
19:38:40.601924 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.601991 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....>
19:38:40.602052 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=62) -> 62, err=0
19:38:40.602122 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.602173 [0-0] == Info: [SSL] cf_recv(len=16384) -> 45, 0
19:38:40.602241 [0-0] == Info: [HTTP/2] [0] ingress: read 45 bytes
19:38:40.602308 [0-0] == Info: [HTTP/2] [0] <- FRAME[SETTINGS, len=36]
19:38:40.602363 [0-0] == Info: [HTTP/2] [0] MAX_CONCURRENT_STREAMS: 250
19:38:40.602430 [0-0] == Info: [HTTP/2] [0] ENABLE_PUSH: TRUE
19:38:40.602488 [0-0] == Info: [HTTP/2] [0] notify MAX_CONCURRENT_STREAMS: 250
19:38:40.602560 [0-0] == Info: [HTTP/2] [1] DRAIN select_bits=1
19:38:40.602622 [0-0] == Info: [HTTP/2] [0] progress ingress: inbufg=0
19:38:40.602692 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.602752 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .....
19:38:40.602810 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=30) -> 30, err=0
19:38:40.602878 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.602939 [0-0] == Info: [SSL] cf_recv(len=16384) -> 13, 0
19:38:40.603000 [0-0] == Info: [HTTP/2] [0] ingress: read 13 bytes
19:38:40.603057 [0-0] == Info: [HTTP/2] [0] <- FRAME[WINDOW_UPDATE, incr=983041]
19:38:40.603133 [0-0] == Info: [HTTP/2] [0] progress ingress: inbufg=0
19:38:40.603201 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.603276 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .....
19:38:40.603339 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=26) -> 26, err=0
19:38:40.603409 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.603501 [0-0] == Info: [SSL] cf_recv(len=16384) -> 9, 0
19:38:40.603565 [0-0] == Info: [HTTP/2] [0] ingress: read 9 bytes
19:38:40.603623 [0-0] == Info: [HTTP/2] [0] <- FRAME[SETTINGS, ack=1]
19:38:40.603672 [0-0] == Info: [HTTP/2] [0] progress ingress: inbufg=0
19:38:40.603718 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.603795 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: .....
19:38:40.603858 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=275) -> 275, err=0
19:38:40.603938 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.604000 [0-0] == Info: [SSL] cf_recv(len=16384) -> 258, 0
19:38:40.604062 [0-0] == Info: [HTTP/2] [0] ingress: read 258 bytes
19:38:40.604128 [0-0] <= Recv header, 13 bytes (0xd)
0000: HTTP/2 200 
19:38:40.604190 [0-0] == Info: [WRITE] cw_out, wrote 13 header bytes -> 13
19:38:40.604256 [0-0] == Info: [WRITE] download_write header(type=c, blen=13) -> 0
19:38:40.604333 [0-0] == Info: [WRITE] client_write(type=c, len=13) -> 0
19:38:40.604397 [0-0] == Info: [HTTP/2] [1] local window update by 10420224
19:38:40.604458 [0-0] == Info: [HTTP/2] [1] status: HTTP/2 200
19:38:40.604516 [0-0] <= Recv header, 32 bytes (0x20)
0000: alt-svc: h3=":443"; ma=2592000
19:38:40.604591 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=32) -> 0
19:38:40.604651 [0-0] == Info: [WRITE] cw_out, wrote 32 header bytes -> 32
19:38:40.604703 [0-0] == Info: [WRITE] download_write header(type=4, blen=32) -> 0
19:38:40.604758 [0-0] == Info: [WRITE] client_write(type=4, len=32) -> 0
19:38:40.604808 [0-0] == Info: [HTTP/2] [1] header: alt-svc: h3=":443"; ma=2592000
19:38:40.604875 [0-0] <= Recv header, 47 bytes (0x2f)
0000: content-type: application/json; charset=utf-8
19:38:40.604953 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=47) -> 0
19:38:40.605009 [0-0] == Info: [WRITE] cw_out, wrote 47 header bytes -> 47
19:38:40.605060 [0-0] == Info: [WRITE] download_write header(type=4, blen=47) -> 0
19:38:40.605129 [0-0] == Info: [WRITE] client_write(type=4, len=47) -> 0
19:38:40.605180 [0-0] == Info: [HTTP/2] [1] header: content-type: application/json; charset=utf-8
19:38:40.605244 [0-0] <= Recv header, 37 bytes (0x25)
0000: date: Thu, 12 Jun 2025 19:38:40 GMT
19:38:40.605317 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=37) -> 0
19:38:40.605372 [0-0] == Info: [WRITE] cw_out, wrote 37 header bytes -> 37
19:38:40.605431 [0-0] == Info: [WRITE] download_write header(type=4, blen=37) -> 0
19:38:40.605495 [0-0] == Info: [WRITE] client_write(type=4, len=37) -> 0
19:38:40.605556 [0-0] == Info: [HTTP/2] [1] header: date: Thu, 12 Jun 2025 19:38:40 GMT
19:38:40.605643 [0-0] <= Recv header, 15 bytes (0xf)
0000: server: Caddy
19:38:40.605692 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=15) -> 0
19:38:40.605770 [0-0] == Info: [WRITE] cw_out, wrote 15 header bytes -> 15
19:38:40.605834 [0-0] == Info: [WRITE] download_write header(type=4, blen=15) -> 0
19:38:40.605907 [0-0] == Info: [WRITE] client_write(type=4, len=15) -> 0
19:38:40.605973 [0-0] == Info: [HTTP/2] [1] header: server: Caddy
19:38:40.606031 [0-0] <= Recv header, 16 bytes (0x10)
0000: via: 1.1 Caddy
19:38:40.606095 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=16) -> 0
19:38:40.606165 [0-0] == Info: [WRITE] cw_out, wrote 16 header bytes -> 16
19:38:40.606229 [0-0] == Info: [WRITE] download_write header(type=4, blen=16) -> 0
19:38:40.606303 [0-0] == Info: [WRITE] client_write(type=4, len=16) -> 0
19:38:40.606367 [0-0] == Info: [HTTP/2] [1] header: via: 1.1 Caddy
19:38:40.606430 [0-0] <= Recv header, 217 bytes (0xd9)
0000: x-spreed-signaling-features: audio-video-permissions, dialout, f
0040: ederation, hello-v2, incall-all, join-features, mcu, offer-codec
0080: s, recipient-call, serverinfo, simulcast, switchto, transient-da
00c0: ta, update-sdp, welcome
19:38:40.606716 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=217) -> 0
19:38:40.606790 [0-0] == Info: [WRITE] cw_out, wrote 217 header bytes -> 217
19:38:40.606861 [0-0] == Info: [WRITE] download_write header(type=4, blen=217) -> 0
19:38:40.606935 [0-0] == Info: [WRITE] client_write(type=4, len=217) -> 0
19:38:40.607005 [0-0] == Info: [HTTP/2] [1] header: x-spreed-signaling-features: audio-video-permissions, dialout, federation, hello-v2, incall-all, join-features, mcu, offer-codecs, recipient-call, serverinfo, simulcast, switchto, transient-data, update-sdp, welcome
19:38:40.607251 [0-0] <= Recv header, 20 bytes (0x14)
0000: content-length: 66
19:38:40.607330 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=20) -> 0
19:38:40.607408 [0-0] == Info: [WRITE] cw_out, wrote 20 header bytes -> 20
19:38:40.607474 [0-0] == Info: [WRITE] download_write header(type=4, blen=20) -> 0
19:38:40.607547 [0-0] == Info: [WRITE] client_write(type=4, len=20) -> 0
19:38:40.607611 [0-0] == Info: [HTTP/2] [1] header: content-length: 66
19:38:40.607673 [0-0] == Info: [HTTP/2] [1] <- FRAME[HEADERS, len=249, hend=1, eos=0]
19:38:40.607751 [0-0] <= Recv header, 2 bytes (0x2)
0000: 
19:38:40.607800 [0-0] == Info: [WRITE] header_collect pushed(type=1, len=2) -> 0
19:38:40.607874 [0-0] == Info: [WRITE] cw_out, wrote 2 header bytes -> 2
19:38:40.607937 [0-0] == Info: [WRITE] download_write header(type=4, blen=2) -> 0
19:38:40.608011 [0-0] == Info: [WRITE] client_write(type=4, len=2) -> 0
19:38:40.608067 [0-0] == Info: [HTTP/2] [0] progress ingress: inbufg=0
19:38:40.608127 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=5) -> 5, err=0
19:38:40.608199 [0-0] <= Recv SSL data, 5 bytes (0x5)
0000: ....\
19:38:40.608260 [0-0] == Info: [SSL] ossl_bio_cf_in_read(len=92) -> 92, err=0
19:38:40.608340 [0-0] <= Recv SSL data, 1 bytes (0x1)
0000: .
19:38:40.608396 [0-0] == Info: [SSL] cf_recv(len=16384) -> 75, 0
19:38:40.608454 [0-0] == Info: [HTTP/2] [0] ingress: read 75 bytes
19:38:40.608515 [0-0] <= Recv data, 66 bytes (0x42)
0000: {"nextcloud-spreed-signaling":"Welcome","version":"2.0.3~docker"
0040: }.
{"nextcloud-spreed-signaling":"Welcome","version":"2.0.3~docker"}
19:38:40.608640 [0-0] == Info: [WRITE] cw_out, wrote 66 body bytes -> 66
19:38:40.608705 [0-0] == Info: [WRITE] download_write body(type=1, blen=66) -> 0
19:38:40.608762 [0-0] == Info: [WRITE] client_write(type=1, len=66) -> 0
19:38:40.608824 [0-0] == Info: [WRITE] xfer_write_resp(len=66, eos=0) -> 0
19:38:40.608893 [0-0] == Info: [HTTP/2] [1] <- FRAME[DATA, len=66, eos=1, padlen=0]
19:38:40.608972 [0-0] == Info: [HTTP/2] [1] DATA, window=66/10485760
19:38:40.609040 [0-0] == Info: [HTTP/2] [1] CLOSED
19:38:40.609088 [0-0] == Info: [HTTP/2] [1] DRAIN select_bits=1
19:38:40.609152 [0-0] == Info: [HTTP/2] [0] progress ingress: inbufg=0
19:38:40.609215 [0-0] == Info: [HTTP/2] [1] DRAIN select_bits=1
19:38:40.609266 [0-0] == Info: [HTTP/2] [0] progress ingress: done
19:38:40.609330 [0-0] == Info: [HTTP/2] [1] returning CLOSE
19:38:40.609384 [0-0] == Info: [HTTP/2] handle_stream_close -> 0, 0
19:38:40.609444 [0-0] == Info: [HTTP/2] [0] -> FRAME[SETTINGS, ack=1]
19:38:40.609515 [0-0] => Send SSL data, 5 bytes (0x5)
0000: .....
19:38:40.609574 [0-0] => Send SSL data, 1 bytes (0x1)
0000: .
19:38:40.609646 [0-0] == Info: [SSL] ossl_bio_cf_out_write(len=31) -> 31, err=0
19:38:40.609721 [0-0] == Info: [HTTP/2] [0] egress: wrote 9 bytes
19:38:40.609781 [0-0] == Info: [HTTP/2] [1] cf_recv(len=102400) -> 0 0, window=-1/-1, connection 1048575934/1048576000
19:38:40.609877 [0-0] == Info: abort upload
19:38:40.609916 [0-0] <= Recv data, 0 bytes (0x0)
19:38:40.609954 [0-0] == Info: [WRITE] download_write body(type=81, blen=0) -> 0
19:38:40.610026 [0-0] == Info: [WRITE] client_write(type=81, len=0) -> 0
19:38:40.610082 [0-0] == Info: [WRITE] xfer_write_resp(len=0, eos=1) -> 0
19:38:40.610145 [0-0] == Info: [WRITE] cw-out is notpaused
19:38:40.610196 [0-0] == Info: [WRITE] cw-out done
19:38:40.610246 [0-0] == Info: [READ] client_reset, clear readers
19:38:40.610306 [0-0] == Info: Connection #0 to host nextcloud.wallaby-gopher.ts.net left intact
exit

I was thinking about how recently the docker default network stopped working and I had to start adding my own and look at this:

but it still seems to have not added that network, strangely. Possibly it’s not meant to,
especially because it broke the connection with collabora so that it hangs


so I had to remove nextcloud-aio from the mastercontainer again.

Talk, TURN, “Talk HPB”, CODE are all different things please don’t mix them.

  • Talk (Nextcloud) must reach TURN to show the green checkmark
    • clients must reach TURN to make calls work
    • talk-hpb must reach TURN to scale Talk calls above 4-5 participants (and additional features)
  • /signalling part of talk-hpb is AFAIK https-only and has more or less nothing to do with TURN
    • it uses TURN as well bit it is not mandatory for Talk itself so I would let it be for the time being
  • CODE is https-only as well and completely unrelated to Talk+HPB
  • mastercontainer only controls the “workers” and ships no NC functionality

AIO in home network behind reverse proxy

look at this picture - it should visualize the connections little better - adopt to your tailscale setup
it looks little different if your reverse proxy is in docker as well - then you should create a common network and send traffic to apache container using APACHE_ADDITIONAL_NETWORKvariable

flowchart LR

  internet-->fritz.box
   fritz.box(router);
   subgraph intLAN[home network]
                        fritz.box-- port-forward<br>tcp/80<br>tcp/443 -->RP;
			RP[reverse proxy<br>https:\//your-nc-domain.com] 
			subgraph docker
				master[mastercontainer<br><br>https\://internal.ip.address.of.server:8080:<br>AIO-interface with self-signed cert];
				NC[APACHE_PORT<br>:11000];
				TALK[TALK_PORT<br>tcp/3478<br>udp/3478];
			end
			management[user]-- local -->master
		end
		RP--http-->NC
		fritz.box--port forward<br>tcp/3478<br>udp/3478-->TALK

I think for the layman they had might as well be synonymous because they’ve been abstracted into a single talk container. Along those lines is the diagram also incorrect because it shows talk port entirely separate from mastercontainer when it is launching that server, or is NO internal traffic possible and it HAS to exit and go through the router to pass traffic between and the TURN inside nextcloud-aio-talk?

Okay so with that in mind I added the network I span between containers ‘backend_network’ to nextcloud:

networks:
      - bridge_network
      - backend_network
      - nextcloud-aio
environment:
  - APACHE_ADDITIONAL_NETWORK=backend_network

I had added netcloud-aio back in and was surprised that this time it doesn’t cause collabora to hang? I think it might be because I also added it to caddy in case that was what I needed. Anyway, it still doesn’t connect to TURN :frowning:

this is the reason everybody trying to self-host a system must familiarize with at least basics of networking and computer technologies 101: Self-hosting information for beginners.

Talk, TURN, “Talk HPB” are different applications which in fact belong together and unfortunately AiO integrates them into one container hiding the real system architecture (but simplification is the goal of AiO) but CODE is definitely separated.

Running complicated things like VPN and reverse proxy in front of AiO definitely requires deeper understanding and will never work for a layman. If you want a turnkey solution choose a managed solution or maybe standard AIO without customization - otherwise learn how setup and especially troubleshoot and fix your setup. and one of the first learnings - even if some things are part of a bigger puzzle each part has different requirements. for me the drawing I saw shortly was a real eye-opener how complicated even such a simple thing like browsing an URL is:

well I was aware of all steps but never spend a second to put together how many moving parts are involved

I was spinning my wheels and tried changing nextcloud’s settings to this:

networks:
  nextcloud-aio:
    name: nextcloud-aio
    external: true
    driver: bridge
    enable_ipv6: false
    driver_opts:
      com.docker.network.driver.mtu: "1280" # You can set this to 9001 etc. to use jumbo frames, but packets may be dropped.
      com.docker.network.bridge.host_binding_ipv4: "127.0.0.1" # Harden aio
      com.docker.network.bridge.enable_icc: "true"
      com.docker.network.bridge.default_bridge: "false"
      com.docker.network.bridge.enable_ip_masquerade: "true"
services:
  nextcloud:
    image: nextcloud/all-in-one
    init: true #not sure what this does
    restart: always
    networks:
      - bridge_network
      - backend_network
      - nextcloud-aio

    container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
      - /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
    ports:
      - 8080:8080 #added 0.0.0.0: before 8080 broke?
    environment: # Is needed when using any of the options below
      # - AIO_DISABLE_BACKUP_SECTION=false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
      #- SKIP_DOMAIN_VALIDATION=true #might not be helping?
      - APACHE_PORT=11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - APACHE_IP_BINDING=127.0.0.1 #was 0.0.0.0 trying 127.0.0.1# Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - APACHE_ADDITIONAL_NETWORK=backend_network
      # - BORG_RETENTION_POLICY=--keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
      # - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
      # - NEXTCLOUD_MOUNT=/mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
      - NEXTCLOUD_UPLOAD_LIMIT=1G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
      - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
      - NEXTCLOUD_MEMORY_LIMIT=1024M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
      # - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
      # - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
      # - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
      # - NEXTCLOUD_ENABLE_DRI_DEVICE=true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
      - TALK_PORT=3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
      # - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
    depends_on:
      - caddy

again it did not break anything like it had previously (yey!)
and now we get a green check when I manually add this to TURN


how do I check the health of STUN? There’s no checkmark?
Also, unfortunately, non connection continues when not on the same network and now I have noticed voice calls fail regardless, but plenty of logs that I hope you may understand?

clientsession.go:491: Session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= joined room 3nsvo7hg with room session id 9AZ43O+kwjF2g4Xqv6OPMbkpSSqLWbl6f63MExx2DG4faKvofT9pV0lpw7vUvS1JcWMKNMqA6w8y/2iYtgaDeNKsTyTnt8om1AG942YYeZde5Rg4YCv9qVcGxi+M2aEIFp9ABsb9G1D8KYMbWjgWb7uBB8z7EJ+ZA8+z8rbNNFftn6oZ5ESYNqGkmCivEI0q3j7SksLRNlziISILYwq5JVbqmjY6M6kFHGhk7+yvbTgXXl4uG9jpumFx+ci7v5d
clientsession.go:295: Permissions of session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= changed: [publish-audio publish-video publish-screen control]
client.go:352: Client from 100.76.104.89 has RTT of 7 ms (7.838653ms)
client.go:352: Client from 100.76.104.89 has RTT of 6 ms (6.74896ms)
hub.go:867: Register user example@backend-1 from 100.76.104.89 in unknown-country (Mozilla/5.0 (Android) Nextcloud-Talk v21.1.0) bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= (private=MTc1MDAzODQ5Nnx0RkFRTnVmUGVObGt1ZXlOZVFoZ1ExUGtpbS1mZy0wMWJsVDlkeEgxM21kRzVhWnIwUlJRS2E5U1JBPT1817GEH6Bf3dvFNVSss5pXrEH3kd4L3UAWPptCRyOxNqo=)
room.go:789: Session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= joined call 3nsvo7hg
mcu_janus.go:606: Attached video as publisher 4490804539820504 to plugin janus.plugin.videoroom in session 4003464753221766
mcu_janus.go:592: Created room 2279611057251019 {janus.plugin.videoroom map[permanent:false room:2279611057251019 videoroom:created]}
mcu_janus.go:673: Publisher jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= is using handle 4490804539820504
clientsession.go:946: Publishing video as 22 for session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
[WARN] [4490804539820504] ICE failed for component 1 in stream 1, but we're still waiting for some info so we don't care... (trickle pending, answer received, alert not set)
clientsession.go:505: Session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= left call 3nsvo7hg
mcu_janus_publisher.go:149: Room 2279611057251019 destroyed
janus_client.go:481: Unable to deliver message {
   "janus": "detached",
   "session_id": 4003464753221766,
   "sender": 4490804539820504
}. Handle 4490804539820504 gone?
room.go:789: Session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= joined call 3nsvo7hg
client.go:352: Client from 100.109.65.127 has RTT of 104 ms (104.423588ms)
hub.go:867: Register user admin@backend-1 from 100.109.65.127 in unknown-country (Mozilla/5.0 (Android) Nextcloud-Talk v21.1.0) q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= (private=MTc1MDAzODUxM3xjaHF0T1FMSnAxVDJPZWlURVl5V0JYZmZPZ181azBNOFZTdG9RN0l4UmxXSXdyTmNaMDQycHB1WWZ3PT18JtRDNZu-NSlDcw-YsbqMy74f_4AgZxnpndLOV9sKnto=)
mcu_janus.go:606: Attached video as publisher 2999054273921045 to plugin janus.plugin.videoroom in session 4003464753221766
mcu_janus.go:592: Created room 9002272997250378 {janus.plugin.videoroom map[permanent:false room:9002272997250378 videoroom:created]}
mcu_janus.go:673: Publisher q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= is using handle 2999054273921045
clientsession.go:946: Publishing video as 23 for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1410251288 1 udp 2122194687 127.0.0.1 43242 typ host generation 0 ufrag FG4j network-id 1 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1159899280 1 udp 2122267903 ::1 45688 typ host generation 0 ufrag FG4j network-id 2 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1410251288 1 udp 2122194687 127.0.0.1 58196 typ host generation 0 ufrag FG4j network-id 1 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1159899280 1 udp 2122267903 ::1 43383 typ host generation 0 ufrag FG4j network-id 2 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1410251288 1 udp 2122194687 127.0.0.1 43757 typ host generation 0 ufrag FG4j network-id 1 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1159899280 1 udp 2122267903 ::1 54682 typ host generation 0 ufrag FG4j network-id 2 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2783183843 1 udp 2122194687 192.0.0.2 36061 typ host generation 0 ufrag FG4j network-id 3 network-cost 900 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:975255484 1 udp 2122262783 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 36290 typ host generation 0 ufrag FG4j network-id 4 network-cost 900 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2783183843 1 udp 2122194687 192.0.0.2 57800 typ host generation 0 ufrag FG4j network-id 3 network-cost 900 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:975255484 1 udp 2122262783 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 58272 typ host generation 0 ufrag FG4j network-id 4 network-cost 900 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2783183843 1 udp 2122194687 192.0.0.2 47034 typ host generation 0 ufrag FG4j network-id 3 network-cost 900 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:975255484 1 udp 2122262783 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 58423 typ host generation 0 ufrag FG4j network-id 4 network-cost 900 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 43937 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 60369 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 40191 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 45163 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 53997 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 57159 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 44553 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 43875 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 39443 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 51945 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 50071 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 60675 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1531893623 1 tcp 1518214911 192.0.0.2 9 typ host tcptype active generation 0 ufrag FG4j network-id 5 network-cost 900 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 46339 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3297501992 1 tcp 1518283007 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 9 typ host tcptype active generation 0 ufrag FG4j network-id 6 network-cost 900 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 59917 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:0 sdpMid:0] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1531893623 1 tcp 1518214911 192.0.0.2 9 typ host tcptype active generation 0 ufrag FG4j network-id 5 network-cost 900 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 40243 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3297501992 1 tcp 1518283007 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 9 typ host tcptype active generation 0 ufrag FG4j network-id 6 network-cost 900 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 45793 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:1 sdpMid:1] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:1531893623 1 tcp 1518214911 192.0.0.2 9 typ host tcptype active generation 0 ufrag FG4j network-id 5 network-cost 900 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:2862902924 1 tcp 1517952767 127.0.0.1 52693 typ host tcptype passive generation 0 ufrag FG4j network-id 1 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3297501992 1 tcp 1518283007 2607:fb91:22e8:4c4c:28fc:12ff:fe98:81c8 9 typ host tcptype active generation 0 ufrag FG4j network-id 6 network-cost 900 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:2671: No MCU subscriber found for session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= to send &{Type:candidate Sid: RoomType:video Payload:map[candidate:map[candidate:candidate:3146284036 1 tcp 1518025983 ::1 40539 typ host tcptype passive generation 0 ufrag FG4j network-id 2 sdpMLineIndex:2 sdpMid:2] type:candidate] Bitrate:0 AudioCodec: VideoCodec: VP9Profile: H264Profile: offerSdp:<nil> answerSdp:<nil>} to jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE=
hub.go:1519: Closing session jYnoGFCKusp7VFWEneULiq-MmTEC41skR8CGN8nl5St8PT13ajU2cHZ0UlVGamdPaGZ1X3hxaEFqUWhVMWZieW9CRktnY00wS3RnT29uRzU0d0wtTm90b2ZudmRPfDU4NDgzMDA1NzE= because same room session 9AZ43O+kwjF2g4Xqv6OPMbkpSSqLWbl6f63MExx2DG4faKvofT9pV0lpw7vUvS1JcWMKNMqA6w8y/2iYtgaDeNKsTyTnt8om1AG942YYeZde5Rg4YCv9qVcGxi+M2aEIFp9ABsb9G1D8KYMbWjgWb7uBB8z7EJ+ZA8+z8rbNNFftn6oZ5ESYNqGkmCivEI0q3j7SksLRNlziISILYwq5JVbqmjY6M6kFHGhk7+yvbTgXXl4uG9jpumFx+ci7v5d connected
clientsession.go:491: Session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= joined room 3nsvo7hg with room session id 9AZ43O+kwjF2g4Xqv6OPMbkpSSqLWbl6f63MExx2DG4faKvofT9pV0lpw7vUvS1JcWMKNMqA6w8y/2iYtgaDeNKsTyTnt8om1AG942YYeZde5Rg4YCv9qVcGxi+M2aEIFp9ABsb9G1D8KYMbWjgWb7uBB8z7EJ+ZA8+z8rbNNFftn6oZ5ESYNqGkmCivEI0q3j7SksLRNlziISILYwq5JVbqmjY6M6kFHGhk7+yvbTgXXl4uG9jpumFx+ci7v5d
clientsession.go:295: Permissions of session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= changed: [publish-audio publish-video publish-screen control]
room.go:789: Session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= joined call 3nsvo7hg
(janus:35): libnice-CRITICAL **: 01:48:34.386: nice_agent_get_local_candidates: assertion 'component_id >= 1' failed
[WARN] [2999054273921045] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
clientsession.go:505: Session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= left call 3nsvo7hg
mcu_janus_publisher.go:149: Room 9002272997250378 destroyed
janus_client.go:481: Unable to deliver message {
   "janus": "detached",
   "session_id": 4003464753221766,
   "sender": 2999054273921045
}. Handle 2999054273921045 gone?
clientsession.go:505: Session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= left call 3nsvo7hg
client.go:372: Error reading from client bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:965: Unregister bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= (private=MTc1MDAzODQ5Nnx0RkFRTnVmUGVObGt1ZXlOZVFoZ1ExUGtpbS1mZy0wMWJsVDlkeEgxM21kRzVhWnIwUlJRS2E5U1JBPT1817GEH6Bf3dvFNVSss5pXrEH3kd4L3UAWPptCRyOxNqo=)
client.go:372: Error reading from client q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:965: Unregister q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= (private=MTc1MDAzODUxM3xjaHF0T1FMSnAxVDJPZWlURVl5V0JYZmZPZ181azBNOFZTdG9RN0l4UmxXSXdyTmNaMDQycHB1WWZ3PT18JtRDNZu-NSlDcw-YsbqMy74f_4AgZxnpndLOV9sKnto=)
hub.go:1216: Resume session from 100.76.104.89 in unknown-country (Mozilla/5.0 (Android) Nextcloud-Talk v21.1.0) bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= (private=MTc1MDAzODQ5Nnx0RkFRTnVmUGVObGt1ZXlOZVFoZ1ExUGtpbS1mZy0wMWJsVDlkeEgxM21kRzVhWnIwUlJRS2E5U1JBPT1817GEH6Bf3dvFNVSss5pXrEH3kd4L3UAWPptCRyOxNqo=)
client.go:350: Client bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= has RTT of 9 ms (9.63448ms)
capabilities.go:128: Capabilities expired for https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities, updating
capabilities.go:171: Capabilities map[config:map[attachments:map[allowed:false] call:map[blur-virtual-background:false breakout-rooms:true can-enable-sip:false can-upload-background:false enabled:true end-to-end-encryption:false max-duration:0 predefined-backgrounds:[1_office.jpg 2_home.jpg 3_abstract.jpg 4_beach.jpg 5_park.jpg 6_theater.jpg 7_library.jpg 8_space_station.jpg] predefined-backgrounds-v2:[/custom_apps/spreed/img/backgrounds/1_office.jpg /custom_apps/spreed/img/backgrounds/2_home.jpg /custom_apps/spreed/img/backgrounds/3_abstract.jpg /custom_apps/spreed/img/backgrounds/4_beach.jpg /custom_apps/spreed/img/backgrounds/5_park.jpg /custom_apps/spreed/img/backgrounds/6_theater.jpg /custom_apps/spreed/img/backgrounds/7_library.jpg /custom_apps/spreed/img/backgrounds/8_space_station.jpg] recording:true recording-consent:0 sip-dialout-enabled:false sip-enabled:false start-without-media:false supported-reactions:[❤️ 🎉 👏 👋 👍 👎 🔥 😂 🤩 🤔 😲 😥]] chat:map[has-translation-providers:false has-translation-task-providers:false max-length:32000 read-privacy:0 summary-threshold:100 typing-privacy:0] conversations:map[can-create:false description-length:2000 force-passwords:false list-style:two-lines retention-event:28 retention-instant-meetings:1 retention-phone:7] experiments:map[enabled:0] federation:map[enabled:false incoming-enabled:false only-trusted-servers:true outgoing-enabled:false] previews:map[max-gif-size:3.145728e+06] signaling:map[hello-v2-token-key:-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPleEDPpF3aqkr4xFv8iS5/P9mWyO
gmjH09i8OpH2OS33s0UMxWD/pKMm+V5aK5lyyQdX1Z8GvVbaRN2VFSEKfg==
-----END PUBLIC KEY-----
n-ping-limit:200]] config-local:map[attachments:[allowed folder] call:[predefined-backgrounds predefined-backgrounds-v2 can-upload-background start-without-media blur-virtual-background] chat:[read-privacy has-translation-providers has-translation-task-providers typing-privacy summary-threshold] conversations:[can-create list-style description-length retention-event retention-phone retention-instant-meetings] experiments:[enabled] federation:[enabled incoming-enabled outgoing-enabled only-trusted-servers] previews:[max-gif-size] signaling:[session-ping-limit hello-v2-token-key]] features:[audio video chat-v2 conversation-v4 guest-signaling empty-group-room guest-display-names multi-room-users favorites last-room-activity no-ping system-messages delete-messages mention-flag in-call-flags conversation-call-flags notification-levels invite-groups-and-mails locked-one-to-one-rooms read-only-rooms listable-rooms chat-read-marker chat-unread webinary-lobby start-call-flag chat-replies circles-support force-mute sip-support sip-support-nopin chat-read-status phonebook-search raise-hand room-description rich-object-sharing temp-user-avatar-api geo-location-sharing voice-message-sharing signaling-v3 publishing-permissions clear-history direct-mention-flag notification-calls conversation-permissions rich-object-list-media rich-object-delete unified-search chat-permission silent-send silent-call send-call-notification talk-polls breakout-rooms-v1 recording-v1 avatar chat-get-context single-conversation-status chat-keep-notifications typing-privacy remind-me-later bots-v1 markdown-messages media-caption session-state note-to-self recording-consent sip-support-dialout delete-messages-unlimited edit-messages silent-send-state chat-read-last federation-v1 federation-v2 ban-v1 chat-reference-id mention-permissions edit-messages-note-to-self archived-conversations-v2 talk-polls-drafts download-call-participants email-csv-import conversation-creation-password call-notification-state-api schedule-meeting edit-draft-poll conversation-creation-all important-conversations unbind-conversation sip-direct-dialin dashboard-event-rooms mutual-calendar-events upcoming-reminders sensitive-conversations message-expiration reactions call-end-to-end-encryption] features-local:[favorites chat-read-status listable-rooms phonebook-search temp-user-avatar-api unified-search avatar remind-me-later note-to-self archived-conversations-v2 chat-summary-api call-notification-state-api schedule-meeting conversation-creation-all important-conversations sip-direct-dialin dashboard-event-rooms mutual-calendar-events upcoming-reminders] version:21.1.0] from https://nextcloud.wallaby-gopher.ts.net/ocs/v2.php/cloud/capabilities have not changed
client.go:372: Error reading from client bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE=: websocket: close 1006 (abnormal closure): unexpected EOF
hub.go:965: Unregister bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= (private=MTc1MDAzODQ5Nnx0RkFRTnVmUGVObGt1ZXlOZVFoZ1ExUGtpbS1mZy0wMWJsVDlkeEgxM21kRzVhWnIwUlJRS2E5U1JBPT1817GEH6Bf3dvFNVSss5pXrEH3kd4L3UAWPptCRyOxNqo=)
hub.go:669: Closing expired session q-7es3M_LKgzcQakdvVdU4pzFH4wPhZuEXAia0fz2ml8PT1BUmNKX01MU2cwRFg1LTlITENXQTczUXU2RmlEbVRVdEx3MHZ6cWFnSFBtTVhHNzBTR2hMNHdxSHdWfDMxNTgzMDA1NzE= (private=MTc1MDAzODUxM3xjaHF0T1FMSnAxVDJPZWlURVl5V0JYZmZPZ181azBNOFZTdG9RN0l4UmxXSXdyTmNaMDQycHB1WWZ3PT18JtRDNZu-NSlDcw-YsbqMy74f_4AgZxnpndLOV9sKnto=)
clientsession.go:569: Removed room session 9AZ43O+kwjF2g4Xqv6OPMbkpSSqLWbl6f63MExx2DG4faKvofT9pV0lpw7vUvS1JcWMKNMqA6w8y/2iYtgaDeNKsTyTnt8om1AG942YYeZde5Rg4YCv9qVcGxi+M2aEIFp9ABsb9G1D8KYMbWjgWb7uBB8z7EJ+ZA8+z8rbNNFftn6oZ5ESYNqGkmCivEI0q3j7SksLRNlziISILYwq5JVbqmjY6M6kFHGhk7+yvbTgXXl4uG9jpumFx+ci7v5d: map[room:map[permissions:[publish-audio publish-video publish-screen control] properties:map[active-since:<nil> description: listable:0 lobby-state:0 lobby-timer:<nil> name:example <3 read-only:0 sip-enabled:0 type:1] roomid:3nsvo7hg version:1.0] type:room]
hub.go:669: Closing expired session bl-F4uoievw35Isejij-or9FyC9A0TTa_lA64za1bN58PT1nRUZqUTAwN1poMzQtcEs0aGlVWUZsc3pDY25HSC1qdTMxZWlHUl9SdjNUYThxamJmcHAtc2JYSFZpfDY5NDgzMDA1NzE= (private=MTc1MDAzODQ5Nnx0RkFRTnVmUGVObGt1ZXlOZVFoZ1ExUGtpbS1mZy0wMWJsVDlkeEgxM21kRzVhWnIwUlJRS2E5U1JBPT1817GEH6Bf3dvFNVSss5pXrEH3kd4L3UAWPptCRyOxNqo=)

setting TURN to 127.0.0.1 lead you to nowhere. This host/ip must be reachable from every client - which is obviously not the case for localhost.

I wasn’t getting anywhere with nextcloud’s built-in talk, so I thought I’d try spinning up eturnal. I am able to reach it with turn:[machine’s public ip]:port via (Trickle ICE):


but nextcloud remains obstinately unconnected.

docker-compose:

networks:
  bridge_network:
    name: bridge_network
    external: true
  backend_network:
    name: backend_network
    external: true
  nextcloud-aio:
    name: nextcloud-aio
    external: true

services:
  #for nextcloud talk to work outside of network
  eturnal:
    image: ghcr.io/processone/eturnal:latest
    networks:
      - backend_network
      - nextcloud-aio
    hostname: eturnal
    container_name: eturnal
    restart: unless-stopped
    user: 9000:9000

    ### security options
    read_only: true
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE
    ### Note: if eturnal binds to privileged ports (<1024) directly, the option "security_opt" below must be commented out.
    security_opt:
      - no-new-privileges:true

    ### networking options
    ports:
      - 3480:3478     # STUN/TURN non-TLS | 3478 already in use by nextcloud backend?
      - 3480:3478/udp # STUN/TURN non-TLS | 3478 already in use by nextcloud backend?
      # - 5349:5349   # STUN/TURN TLS
      # - 49152-65535:49152-65535/udp # TURN relay range
    # network_mode: "host"

    ### Environment variables - information on https://eturnal.net/doc/#Environment_Variables
    # environment:
    #   - ETURNAL_RELAY_IPV4_ADDR="203.0.113.4" ##might need and change to tailscale ip?
    #   - ETURNAL_RELAY_IPV6_ADDR="2001:db8::4"
    #   - STUN_SERVICE="false"
    # env_file:
    #   - eturnal.env

    ### Volume mounts - Note: directories/files must be (at least) readable by the eturnal user (9000:9000)
    volumes:
      - /media/server/server/turn/eturnal.yml:/etc/eturnal.yml:ro # for custom config file
    #   - /path/to/tls-files:/opt/eturnal/tls      # for custom tls files

config:

#https://nextcloud-talk.readthedocs.io/en/latest/eturnal/
eturnal:
  ## Shared secret for deriving temporary TURN credentials (default: $RANDOM):
  secret: "[snip]"     # Shared secret

  ## The server's public IPv4 address (default: autodetected):
  #relay_ipv4_addr: "203.0.113.4"
  ## The server's public IPv6 address (optional):
  #relay_ipv6_addr: "2001:db8::4"

  listen:
    -
      ip: "::"
      port: 3480
      transport: udp
    -
      ip: "::"
      port: 3480
      transport: tcp