Help! Setup docker-jitsi-meet with coTURN

Dear,

I tried to setup jitsi meet with docker compose(GitHub - jitsi/docker-jitsi-meet: Jitsi Meet on Docker) with coTURN by following this material Settingup a Turn Server for Jitsi Meet - Meetrix.IO, but I still meet some problems.
When I have 2 or more people in meeting it shows connection: Lost.
Here is the information of my setup:

  • jitsi meet version: stable-7439-2
  • environment: VirtualMachines in GCP VPC with public IP address
  • Server(Virtual Machine):
    • coTURN
      • Hostname: coturn-waynechung.ddns.net (35.229.144.167)
      • IP Address: 35.229.144.167/10.140.0.12
      • Firewall:
        • ALLOW 3478/UDP, 10000-20000/UDP
        • ALLOW ANY from 10.140.0.0/24
      • Configuration:
        /etc/turnserver.conf
        external-ip=35.229.144.167/10.140.0.12
        realm=coturn-waynechung.ddns.net
        listening-ip=0.0.0.0
        listening-port=3478
        min-port=10000
        max-port=20000
        no-tcp
        no-tls
        no-dtls
        verbose
        fingerprint
        use-secret-auth
        static-auth-secret=my-secret
        
    • docker-jitsi-meet
      • Hostname: jitimeet-wayne.ddns.net (34.81.219.38)
      • IP Address: 34.81.219.38/10.140.0.13
      • Firewall:
        • ALLOW 443/TCP from 0.0.0.0/0
        • ALLOW ANY from 10.140.0.0/24
      • Configurations:
        • prosody:
          /config/prosody.cfg.lua
          ...
          module_enabled = {
              ...
              "turncredentials";
          }
          ...
          
          /config/conf.d/turncredentials.cfg.lua
          turncredentials_secret = "my-secret"
          turncredentials_port = 3478;
          turncredentials_ttl = 86400;
          turncredentials = {
              { type = "stun", host = "coturn-waynechung.ddns.net", port = 3478, transport = "udp" },
              { type = "turn", host = "coturn-waynechung.ddns.net", port = 3478, transport = "udp" }
          }
          modules_enabled = {
              "turncredentials";
          }
          
        • web
          settings-config.js
          config.p2p.useStunTurn = true;
          config.p2p.stunServers = [ { urls: 'stun:coturn-waynechung.ddns.net:3478' } ];
          config.p2p.preferH264 = true;
          config.useStunTurn = true;
          
      • Clients:
        • 3 Chrome Tabs
        • IP address: 35.194.157.150
          Here are the log I got from docker-jitsi-meet web container and coTURN server:
  • docker-jitsi-meet containers:
    docker-jitsi-meet log
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:37.264 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.updateParticipant#463: Updating Participant[test-whchungj@muc.meet.jitsi/fbaa3fe5]@548805688 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@f9dbac9, sources=null
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG] DtlsTransport.setSetupAttribute#120: The remote side is acting as DTLS client, we'll act as server
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b] IceTransport.startConnectivityEstablishment#198: Starting the Agent without remote candidates.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.startConnectivityEstablishment#736: Start ICE connectivity establishment.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.initCheckLists#972: Init checklist for stream stream-fbaa3fe5
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.setState#946: ICE state changed from Waiting to Running.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b] IceTransport.iceStateChanged#341: ICE state changed old=Waiting new=Running
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] ConnectivityCheckClient.startChecks#147: Start connectivity checks.
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.onSessionTerminate#1030: Received session-terminate from Participant[test-whchungj@muc.meet.jitsi/c1889f0d]@1626290271, bridge-session ID: 0d2ff42a-996e-4cf6-8c62-a278181b57cc, restart: true
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.terminateParticipant#828: Terminating c1889f0d, reason: null, send session-terminate: false
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] AbstractOperationSetJingle.terminateSession#509: Terminate session: test-whchungj@muc.meet.jitsi/c1889f0d, reason: null, send terminate: false
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.955 WARNING: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.removeSources#1361: No sources or groups to be removed from c1889f0d. The requested sources to remove: [audio=[], video=[], groups=[]]
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.956 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.terminateParticipant#851: Removed participant c1889f0d removed=true
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.956 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.removeParticipant#125: Removing c1889f0d
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.957 INFO: [39] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.allocate#252: Allocating for c1889f0d
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.958 INFO: [39] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.allocate#295: Selected 33779f3bb039, session exists: true
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.962 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] AbstractEndpoint.expire#316: Expiring.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.963 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] Endpoint.expire#1073: Spent 0 seconds oversending
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.966 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] Transceiver.teardown#351: Tearing down
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.966 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] RtpReceiverImpl.tearDown#347: Tearing down
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.967 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] RtpSenderImpl.tearDown#318: Tearing down
    docker-jitsi-meet-stable-7439-2-web-1      | 35.194.157.150 - - [30/Jun/2022:05:54:41 +0000] "GET /colibri-ws/172.21.0.4/8b58b064f2909c03/c1889f0d?pwd=79ifcarl2ddoka6ecd3fh2ljao HTTP/1.1" 101 291 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.970 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] DtlsTransport.stop#186: Stopping
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:37.264 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.updateParticipant#463: Updating Participant[test-whchungj@muc.meet.jitsi/fbaa3fe5]@548805688 with transport=org.jitsi.xmpp.extensions.jingle.IceUdpTransportPacketExtension@f9dbac9, sources=null
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG] DtlsTransport.setSetupAttribute#120: The remote side is acting as DTLS client, we'll act as server
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b] IceTransport.startConnectivityEstablishment#198: Starting the Agent without remote candidates.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.269 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.startConnectivityEstablishment#736: Start ICE connectivity establishment.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.initCheckLists#972: Init checklist for stream stream-fbaa3fe5
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] Agent.setState#946: ICE state changed from Waiting to Running.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b] IceTransport.iceStateChanged#341: ICE state changed old=Waiting new=Running
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:37.270 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=fbaa3fe5 stats_id=Tate-kyG local_ufrag=cmja71g6pipt0b ufrag=cmja71g6pipt0b] ConnectivityCheckClient.startChecks#147: Start connectivity checks.
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.onSessionTerminate#1030: Received session-terminate from Participant[test-whchungj@muc.meet.jitsi/c1889f0d]@1626290271, bridge-session ID: 0d2ff42a-996e-4cf6-8c62-a278181b57cc, restart: true
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.terminateParticipant#828: Terminating c1889f0d, reason: null, send session-terminate: false
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.954 INFO: [37] AbstractOperationSetJingle.terminateSession#509: Terminate session: test-whchungj@muc.meet.jitsi/c1889f0d, reason: null, send terminate: false
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.955 WARNING: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.removeSources#1361: No sources or groups to be removed from c1889f0d. The requested sources to remove: [audio=[], video=[], groups=[]]
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.956 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] JitsiMeetConferenceImpl.terminateParticipant#851: Removed participant c1889f0d removed=true
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.956 INFO: [37] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.removeParticipant#125: Removing c1889f0d
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.957 INFO: [39] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.allocate#252: Allocating for c1889f0d
    docker-jitsi-meet-stable-7439-2-jicofo-1   | Jicofo 2022-06-30 05:54:41.958 INFO: [39] [room=test-whchungj@muc.meet.jitsi meeting_id=217b3d72-2460-4c23-9cfd-7788437679e5] ColibriV2SessionManager.allocate#295: Selected 33779f3bb039, session exists: true
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.962 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] AbstractEndpoint.expire#316: Expiring.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.963 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] Endpoint.expire#1073: Spent 0 seconds oversending
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.966 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] Transceiver.teardown#351: Tearing down
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.966 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] RtpReceiverImpl.tearDown#347: Tearing down
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.967 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] RtpSenderImpl.tearDown#318: Tearing down
    docker-jitsi-meet-stable-7439-2-web-1      | 35.194.157.150 - - [30/Jun/2022:05:54:41 +0000] "GET /colibri-ws/172.21.0.4/8b58b064f2909c03/c1889f0d?pwd=79ifcarl2ddoka6ecd3fh2ljao HTTP/1.1" 101 291 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:54:41.970 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] DtlsTransport.stop#186: Stopping
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.534 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG local_ufrag=vl051g6pir4vg ufrag=vl051g6pir4vg] Agent.setState#946: ICE state changed from Running to Terminated.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.535 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG local_ufrag=vl051g6pir4vg ufrag=vl051g6pir4vg name=stream-c1889f0d componentId=1] MergingDatagramSocket.close#142: Closing.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.535 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi epId=c1889f0d stats_id=Tate-kyG] Endpoint.expire#1091: Expired.
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.545 INFO: [54] [confId=8b58b064f2909c03 conf_name=test-whchungj@muc.meet.jitsi] Conference.updateStatisticsOnExpire#677: expire_conf,duration=79,has_failed=false,has_partially_failed=false
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.551 WARNING: [37] ColibriWebSocketServlet.createWebSocket#154: Received request for an nonexistent conference: 8b58b064f2909c03
    docker-jitsi-meet-stable-7439-2-web-1      | 35.194.157.150 - - [30/Jun/2022:05:55:35 +0000] "GET /colibri-ws/172.21.0.4/8b58b064f2909c03/fbaa3fe5?pwd=63jnicstoao8dkamk2t1gv0sr3 HTTP/1.1" 403 382 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
    docker-jitsi-meet-stable-7439-2-jvb-1      | JVB 2022-06-30 05:55:35.571 WARNING: [40] ColibriWebSocketServlet.createWebSocket#154: Received request for an nonexistent conference: 8b58b064f2909c03
    docker-jitsi-meet-stable-7439-2-web-1      | 35.194.157.150 - - [30/Jun/2022:05:55:35 +0000] "GET /colibri-ws/172.21.0.4/8b58b064f2909c03/2b0131aa?pwd=3jjjlbkncucdibgkg7f5rp5vp3 HTTP/1.1" 403 381 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
    
  • coTURN:
    coTURN log
    0: : Domain name:
    0: : Default realm: coturn-waynechung.ddns.net
    0: : ERROR:
    CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!
    0: : WARNING: cannot find certificate file: turn_server_cert.pem (1)
    0: : WARNING: cannot start TLS and DTLS listeners because certificate file is not set properly
    0: : WARNING: cannot find private key file: turn_server_pkey.pem (1)
    0: : WARNING: cannot start TLS and DTLS listeners because private key file is not set properly
    0: : Relay address to use: 0.0.0.0
    0: : pid file created: /var/run/turnserver.pid
    0: : IO method (main listener thread): epoll (with changelist)
    0: : WARNING: I cannot support STUN CHANGE_REQUEST functionality because only one IP address is provided
    0: : Wait for relay ports initialization...
    0: :   relay 0.0.0.0 initialization...
    0: :   relay 0.0.0.0 initialization done
    0: : Relay ports initialization done
    0: : IO method (general relay thread): epoll (with changelist)
    0: : turn server id=0 created
    0: : IO method (general relay thread): epoll (with changelist)
    0: : turn server id=1 created
    0: : IPv4. UDP listener opened on: 0.0.0.0:3478
    0: : Total General servers: 2
    0: : IO method (auth thread): epoll (with changelist)
    0: : IO method (auth thread): epoll (with changelist)
    0: : IO method (admin thread): epoll (with changelist)
    0: : SQLite DB connection success: /var/lib/turn/turndb
    25: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <>: incoming packet BINDING processed, success
    25: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <>: incoming packet 
    message processed, error 401: Unauthorized
    25: : IPv4. Local relay addr: 10.140.0.12:19711
    25: : session 000000000000000001: new, realm=<coturn-waynechung.ddns.net>, username= <1656653375>, lifetime=600 
    25: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <1656653375>: incoming packet ALLOCATE processed, success
    26: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <>: incoming packet BINDING processed, success
    26: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <>: incoming packet message processed, error 401: Unauthorized
    26: : IPv4. Local relay addr: 10.140.0.12:16779
    26: : session 001000000000000001: new, realm=<coturn-waynechung.ddns.net>, username=<1656653372>, lifetime=600
    26: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656653372>: incoming packet ALLOCATE processed, success
    26: : session 001000000000000001: peer 35.194.157.150 lifetime updated: 300
    26: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656653372>: incoming packet CREATE_PERMISSION processed, success
    26: : session 001000000000000001: peer 10.140.0.12 lifetime updated: 300
    26: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656653372>: incoming packet CREATE_PERMISSION processed, success
    27: : session 000000000000000001: peer 35.194.157.150 lifetime updated: 300
    27: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <1656653375>: incoming packet CREATE_PERMISSION processed, success
    27: : session 000000000000000001: peer 10.140.0.12 lifetime updated: 300
    27: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <1656653375>: incoming packet CREATE_PERMISSION processed, success
    29: : session 000000000000000001: peer 10.140.0.12 lifetime updated: 600
    29: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <1656653375>: incoming packet CHANNEL_BIND processed, success
    29: : session 000000000000000001: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656653375>, lifetime=0
    29: : session 000000000000000001: realm <coturn-waynechung.ddns.net> user <1656653375>: incoming packet REFRESH processed, success
    29: : session 001000000000000001: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656653372>, lifetime=0
    29: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656653372>: incoming packet REFRESH processed, success
    30: : session 001000000000000001: usage: realm=<coturn-waynechung.ddns.net>, username=<1656653372>, rp=17, rb=1860, sp=11, sb=1380
    30: : session 001000000000000001: peer usage: realm=<coturn-waynechung.ddns.net>, username=<1656653372>, rp=5, rb=439, sp=11, sb=928
    30: : session 001000000000000001: closed (2nd stage), user <1656653372> realm <coturn-waynechung.ddns.net> origin <>, local 0.0.0.0:3478, remote 35.194.157.150:2369, reason: allocation timeout
    30: : session 001000000000000001: delete: realm=<coturn-waynechung.ddns.net>, username=<1656653372>
    30: : session 001000000000000001: peer 35.194.157.150 deleted
    30: : session 001000000000000001: peer 10.140.0.12 deleted
    30: : session 000000000000000001: usage: realm=<coturn-waynechung.ddns.net>, username=<1656653375>, rp=15, rb=1696, sp=11, sb=1204
    30: : session 000000000000000001: peer usage: realm=<coturn-waynechung.ddns.net>, username=<1656653375>, rp=7, rb=544, sp=8, sb=739
    30: : session 000000000000000001: closed (2nd stage), user <1656653375> realm <coturn-waynechung.ddns.net> origin <>, local 0.0.0.0:3478, remote 35.194.157.150:2368, reason: allocation timeout
    30: : session 000000000000000001: delete: realm=<coturn-waynechung.ddns.net>, username=<1656653375>
    30: : session 000000000000000001: peer 35.194.157.150 deleted
    30: : session 000000000000000001: peer 10.140.0.12 deleted
    

As you can see in logs the clients and coTURN server seems connected but later coTURN log shows connections closed and peers deleted. In the docker-jitsi-meet log shows lots of 403 error after DtlsTransport.stop#186: Stopping.
In there any incorrect or missing of my environment and configuration? I have rebuild my environment many times but always got same problem.
Please help me.
Thank you so much!

Best regards,
Wayne Chung

[Update]
I had tested the connectivity between google cloud shell and docker-jitsi-meet instance with turnutils_peer and turnutils_uclient, it works will.

docker-jitsi-meet host - turnutils_peer
user@jitsi-meet-server:~$ turnutils_stunclient coturn-waynechung.ddns.net
0: : IPv4. UDP reflexive addr: 34.81.219.38:45006
0: : IPv4. UDP reflexive addr: 34.81.219.38:45006
user@jitsi-meet-server:~$ turnutils_peer coturn-waynechung.ddns.net -p 3480 -v
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:66:start
0: : udp_create_server_socket:98:end
0: : udp_create_server_socket:98:end
google cloud shell
user@cloudshell:~$ turnutils_uclient -u '1656659849:any' -w 'my-secret' -p 3478 -r 3480 -e 34.81.219.38 coturn-waynechung.ddns.net
0: : Total connect time is 1
0: : Total connect time is 1
0: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
0: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
1: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
1: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
2: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
2: : start_mclient: msz=2, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
3: : start_mclient: msz=2, tot_send_msgs=5, tot_recv_msgs=5, tot_send_bytes ~ 500, tot_recv_bytes ~ 500
3: : start_mclient: msz=2, tot_send_msgs=5, tot_recv_msgs=5, tot_send_bytes ~ 500, tot_recv_bytes ~ 500
3: : start_mclient: tot_send_msgs=10, tot_recv_msgs=10
3: : start_mclient: tot_send_msgs=10, tot_recv_msgs=10
3: : start_mclient: tot_send_bytes ~ 1000, tot_recv_bytes ~ 1000
3: : start_mclient: tot_send_bytes ~ 1000, tot_recv_bytes ~ 1000
3: : Total transmit time is 3
3: : Total transmit time is 3
3: : Total lost packets 0 (0.000000%), total send dropped 0 (0.000000%)
3: : Total lost packets 0 (0.000000%), total send dropped 0 (0.000000%)
3: : Average round trip delay 1.500000 ms; min = 1 ms, max = 2 ms
3: : Average round trip delay 1.500000 ms; min = 1 ms, max = 2 ms
3: : Average jitter 0.200000 ms; min = 0 ms, max = 1 ms
3: : Average jitter 0.200000 ms; min = 0 ms, max = 1 ms
user@cloudshell:~$ turnutils_stunclient coturn-waynechung.ddns.net
0: : IPv4. UDP reflexive addr: 35.185.158.240:45626
0: : IPv4. UDP reflexive addr: 35.185.158.240:45626
coTURN log
38: : session 000000000000000002: realm <coturn-waynechung.ddns.net> user <>: incoming packet message processed, error 401: Unauthorized
38: : IPv4. Local relay addr: 10.140.0.12:10822
38: : IPv4. Local reserved relay addr: 10.140.0.12:10823
38: : session 000000000000000002: new, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=777
38: : session 000000000000000002: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet ALLOCATE processed, success
38: : session 000000000000000002: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=777
38: : session 000000000000000002: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet REFRESH processed, success
38: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <>: incoming packet message processed, error 401: Unauthorized
38: : IPv4. Local relay addr (RTCP): 10.140.0.12:10823
38: : session 001000000000000001: new, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=777
38: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet ALLOCATE processed, success
38: : session 001000000000000001: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=777
38: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet REFRESH processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CHANNEL_BIND processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CHANNEL_BIND processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CHANNEL_BIND processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CHANNEL_BIND processed, success
39: : session 001000000000000001: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet REFRESH processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 300
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CREATE_PERMISSION processed, success
39: : session 001000000000000001: peer 34.81.219.38:3481 lifetime updated: 600
39: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet CHANNEL_BIND processed, success
40: : session 001000000000000001: refreshed, realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, lifetime=0
40: : session 001000000000000001: realm <coturn-waynechung.ddns.net> user <1656659849:any>: incoming packet REFRESH processed, success
41: : session 001000000000000001: usage: realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, rp=16, rb=1980, sp=16, sb=1504
41: : session 001000000000000001: peer usage: realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>, rp=5, rb=500, sp=5, sb=500
41: : session 001000000000000001: closed (2nd stage), user <1656659849:any> realm <coturn-waynechung.ddns.net> origin <>, local 0.0.0.0:3478, remote 35.185.158.240:55655, reason: allocation timeout
41: : session 001000000000000001: delete: realm=<coturn-waynechung.ddns.net>, username=<1656659849:any>
41: : session 001000000000000001: peer 34.81.219.38:3481 deleted

Is there something like from zero to hero for integration of self-host jitsi/turn server? Cause every tutorial from internet is not quiet complete.

1 Like

https://jitsi.org/qi

1 Like

Dear @damencho ,

Thank for your reply.
I checked link you gave but I’m setting up my jitsi meet by Docker(Self-Hosting Guide - Docker | Jitsi Meet).
And, it seems doesn’t include “TURN setup” in the documents.

Thank you.

Best,
Wayne

Thanks for reply @damencho , self-host jitsi is fine, but how to integrate it with self-host TURN/STUN server is the problem. We had follow every tutorial we could found on internet but still can’t make it work. Just wondering whether there is a golden step by step tutorial to enable jitsi-meet with self-host TURN. We’ve checked the ‘TURN Setup’ section on official handbook, but we feel that it’s not quiet complete. Need guiding from the mighty community!

If you have turnserver already up and running all you need is enabling the turnserver config in prosody.

1 Like

Dear @damencho ,

I use “external_services” instead of “turncredentials” and remove stunServers: [{urls: 'turn:...:3478'}] in web config config.js. Now, it works.

Thank you so much.

Best regards,
Wayne Chung