Hi there,
Talk looks absolutely promising to me.
However, I'm facing issues setting it up.
I'm running a server on my local network that runs talk inside a docker container.
Talk itself is setup via reverse proxy to run at meet.mydomain.com.
The reverse proxy is setup in apache2:
# ...
ProxyPass / http://talk:3000/
ProxyPassReverse / http://talk:3000/
# ...
Here's my docker-compose.yml file:
version: "2.0"
services:
talk:
container_name: talk
restart: always
build: .
ports:
- "3110:3000"
networks:
- mynetwork
networks:
mynetwork:
external: true
I can access meet.mydomain.com perfectly fine both through my local network and through foreign networks.
However, I can't see any video from users connecting through a different network (i.e. mobile networks), Talk keeps showing up a white screen. Same the other way around: when connecting via a foreign network, I can see my own video but not the local network users'.
Here's the log:
talk |
talk | > [email protected] start
talk | > node server.js
talk |
talk | Listening on port 3000
talk | [9pb6NiRRZBQF7tb0AAAC] connection accepted
talk | [PDMR5plp37T3XNmeAAAD] connection accepted
talk | [PDMR5plp37T3XNmeAAAD] join { channel: 'sr0kde', userdata: {} }
talk | [MI2VrYyfnOPRsnEOAAAG] connection accepted
talk | [XVDVRNv66i1bz59MAAAH] connection accepted
talk | [XVDVRNv66i1bz59MAAAH] join { channel: 'sr0kde', userdata: {} }
talk | [XVDVRNv66i1bz59MAAAH] relay SessionDescription to [PDMR5plp37T3XNmeAAAD] {
talk | sdp: 'v=0\r\n' +
talk | 'o=- 1363208844026884119 2 IN IP4 127.0.0.1\r\n' +
talk | 's=-\r\n' +
talk | 't=0 0\r\n' +
talk | 'a=group:BUNDLE 0 1 2\r\n' +
talk | 'a=extmap-allow-mixed\r\n' +
talk | 'a=msid-semantic: WMS vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i\r\n' +
talk | 'm=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:VZrD\r\n' +
talk | 'a=ice-pwd:rRHLS1+kvMvLPFmqTUICzHyf\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 38:98:E1:1C:2C:BF:80:81:F4:65:B6:94:27:F9:96:FE:28:66:4A:C6:63:01:DC:F9:D4:22:F3:AB:8A:00:E3:50\r\n' +
talk | 'a=setup:actpass\r\n' +
talk | 'a=mid:0\r\n' +
talk | 'a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n' +
talk | 'a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n' +
talk | 'a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n' +
talk | 'a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n' +
talk | 'a=sendrecv\r\n' +
talk | 'a=msid:vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i 4147ff4e-1a87-43f7-93b0-43164ef3a6f4\r\n' +
talk | 'a=rtcp-mux\r\n' +
talk | 'a=rtpmap:111 opus/48000/2\r\n' +
talk | 'a=rtcp-fb:111 transport-cc\r\n' +
talk | 'a=fmtp:111 minptime=10;useinbandfec=1\r\n' +
talk | 'a=rtpmap:63 red/48000/2\r\n' +
talk | 'a=fmtp:63 111/111\r\n' +
talk | 'a=rtpmap:103 ISAC/16000\r\n' +
talk | 'a=rtpmap:104 ISAC/32000\r\n' +
talk | 'a=rtpmap:9 G722/8000\r\n' +
talk | 'a=rtpmap:0 PCMU/8000\r\n' +
talk | 'a=rtpmap:8 PCMA/8000\r\n' +
talk | 'a=rtpmap:106 CN/32000\r\n' +
talk | 'a=rtpmap:105 CN/16000\r\n' +
talk | 'a=rtpmap:13 CN/8000\r\n' +
talk | 'a=rtpmap:110 telephone-event/48000\r\n' +
talk | 'a=rtpmap:112 telephone-event/32000\r\n' +
talk | 'a=rtpmap:113 telephone-event/16000\r\n' +
talk | 'a=rtpmap:126 telephone-event/8000\r\n' +
talk | 'a=ssrc:3757238080 cname:YDeOexBl0yN2H1P0\r\n' +
talk | 'a=ssrc:3757238080 msid:vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i 4147ff4e-1a87-43f7-93b0-43164ef3a6f4\r\n' +
talk | 'm=video 9 UDP/TLS/RTP/SAVPF 96 97 102 123 127 122 125 107 108 109 124 121 39 40 45 46 98 99 100 101 120 119 114\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:VZrD\r\n' +
talk | 'a=ice-pwd:rRHLS1+kvMvLPFmqTUICzHyf\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 38:98:E1:1C:2C:BF:80:81:F4:65:B6:94:27:F9:96:FE:28:66:4A:C6:63:01:DC:F9:D4:22:F3:AB:8A:00:E3:50\r\n' +
talk | 'a=setup:actpass\r\n' +
talk | 'a=mid:1\r\n' +
talk | 'a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n' +
talk | 'a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n' +
talk | 'a=extmap:13 urn:3gpp:video-orientation\r\n' +
talk | 'a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n' +
talk | 'a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\n' +
talk | 'a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\n' +
talk | 'a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\n' +
talk | 'a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\n' +
talk | 'a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n' +
talk | 'a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n' +
talk | 'a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n' +
talk | 'a=sendrecv\r\n' +
talk | 'a=msid:vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i 502dade1-1d14-4013-816f-1dde64e2425e\r\n' +
talk | 'a=rtcp-mux\r\n' +
talk | 'a=rtcp-rsize\r\n' +
talk | 'a=rtpmap:96 VP8/90000\r\n' +
talk | 'a=rtcp-fb:96 goog-remb\r\n' +
talk | 'a=rtcp-fb:96 transport-cc\r\n' +
talk | 'a=rtcp-fb:96 ccm fir\r\n' +
talk | 'a=rtcp-fb:96 nack\r\n' +
talk | 'a=rtcp-fb:96 nack pli\r\n' +
talk | 'a=rtpmap:97 rtx/90000\r\n' +
talk | 'a=fmtp:97 apt=96\r\n' +
talk | 'a=rtpmap:102 H264/90000\r\n' +
talk | 'a=rtcp-fb:102 goog-remb\r\n' +
talk | 'a=rtcp-fb:102 transport-cc\r\n' +
talk | 'a=rtcp-fb:102 ccm fir\r\n' +
talk | 'a=rtcp-fb:102 nack\r\n' +
talk | 'a=rtcp-fb:102 nack pli\r\n' +
talk | 'a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f\r\n' +
talk | 'a=rtpmap:123 rtx/90000\r\n' +
talk | 'a=fmtp:123 apt=102\r\n' +
talk | 'a=rtpmap:127 H264/90000\r\n' +
talk | 'a=rtcp-fb:127 goog-remb\r\n' +
talk | 'a=rtcp-fb:127 transport-cc\r\n' +
talk | 'a=rtcp-fb:127 ccm fir\r\n' +
talk | 'a=rtcp-fb:127 nack\r\n' +
talk | 'a=rtcp-fb:127 nack pli\r\n' +
talk | 'a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f\r\n' +
talk | 'a=rtpmap:122 rtx/90000\r\n' +
talk | 'a=fmtp:122 apt=127\r\n' +
talk | 'a=rtpmap:125 H264/90000\r\n' +
talk | 'a=rtcp-fb:125 goog-remb\r\n' +
talk | 'a=rtcp-fb:125 transport-cc\r\n' +
talk | 'a=rtcp-fb:125 ccm fir\r\n' +
talk | 'a=rtcp-fb:125 nack\r\n' +
talk | 'a=rtcp-fb:125 nack pli\r\n' +
talk | 'a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n' +
talk | 'a=rtpmap:107 rtx/90000\r\n' +
talk | 'a=fmtp:107 apt=125\r\n' +
talk | 'a=rtpmap:108 H264/90000\r\n' +
talk | 'a=rtcp-fb:108 goog-remb\r\n' +
talk | 'a=rtcp-fb:108 transport-cc\r\n' +
talk | 'a=rtcp-fb:108 ccm fir\r\n' +
talk | 'a=rtcp-fb:108 nack\r\n' +
talk | 'a=rtcp-fb:108 nack pli\r\n' +
talk | 'a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f\r\n' +
talk | 'a=rtpmap:109 rtx/90000\r\n' +
talk | 'a=fmtp:109 apt=108\r\n' +
talk | 'a=rtpmap:124 H264/90000\r\n' +
talk | 'a=rtcp-fb:124 goog-remb\r\n' +
talk | 'a=rtcp-fb:124 transport-cc\r\n' +
talk | 'a=rtcp-fb:124 ccm fir\r\n' +
talk | 'a=rtcp-fb:124 nack\r\n' +
talk | 'a=rtcp-fb:124 nack pli\r\n' +
talk | 'a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f\r\n' +
talk | 'a=rtpmap:121 rtx/90000\r\n' +
talk | 'a=fmtp:121 apt=124\r\n' +
talk | 'a=rtpmap:39 H264/90000\r\n' +
talk | 'a=rtcp-fb:39 goog-remb\r\n' +
talk | 'a=rtcp-fb:39 transport-cc\r\n' +
talk | 'a=rtcp-fb:39 ccm fir\r\n' +
talk | 'a=rtcp-fb:39 nack\r\n' +
talk | 'a=rtcp-fb:39 nack pli\r\n' +
talk | 'a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f\r\n' +
talk | 'a=rtpmap:40 rtx/90000\r\n' +
talk | 'a=fmtp:40 apt=39\r\n' +
talk | 'a=rtpmap:45 AV1/90000\r\n' +
talk | 'a=rtcp-fb:45 goog-remb\r\n' +
talk | 'a=rtcp-fb:45 transport-cc\r\n' +
talk | 'a=rtcp-fb:45 ccm fir\r\n' +
talk | 'a=rtcp-fb:45 nack\r\n' +
talk | 'a=rtcp-fb:45 nack pli\r\n' +
talk | 'a=rtpmap:46 rtx/90000\r\n' +
talk | 'a=fmtp:46 apt=45\r\n' +
talk | 'a=rtpmap:98 VP9/90000\r\n' +
talk | 'a=rtcp-fb:98 goog-remb\r\n' +
talk | 'a=rtcp-fb:98 transport-cc\r\n' +
talk | 'a=rtcp-fb:98 ccm fir\r\n' +
talk | 'a=rtcp-fb:98 nack\r\n' +
talk | 'a=rtcp-fb:98 nack pli\r\n' +
talk | 'a=fmtp:98 profile-id=0\r\n' +
talk | 'a=rtpmap:99 rtx/90000\r\n' +
talk | 'a=fmtp:99 apt=98\r\n' +
talk | 'a=rtpmap:100 VP9/90000\r\n' +
talk | 'a=rtcp-fb:100 goog-remb\r\n' +
talk | 'a=rtcp-fb:100 transport-cc\r\n' +
talk | 'a=rtcp-fb:100 ccm fir\r\n' +
talk | 'a=rtcp-fb:100 nack\r\n' +
talk | 'a=rtcp-fb:100 nack pli\r\n' +
talk | 'a=fmtp:100 profile-id=2\r\n' +
talk | 'a=rtpmap:101 rtx/90000\r\n' +
talk | 'a=fmtp:101 apt=100\r\n' +
talk | 'a=rtpmap:120 red/90000\r\n' +
talk | 'a=rtpmap:119 rtx/90000\r\n' +
talk | 'a=fmtp:119 apt=120\r\n' +
talk | 'a=rtpmap:114 ulpfec/90000\r\n' +
talk | 'a=ssrc-group:FID 1732459890 3056472878\r\n' +
talk | 'a=ssrc:1732459890 cname:YDeOexBl0yN2H1P0\r\n' +
talk | 'a=ssrc:1732459890 msid:vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i 502dade1-1d14-4013-816f-1dde64e2425e\r\n' +
talk | 'a=ssrc:3056472878 cname:YDeOexBl0yN2H1P0\r\n' +
talk | 'a=ssrc:3056472878 msid:vhKRZ7QQhBqyg5zMqURPsCQHuDXKa1dGZr5i 502dade1-1d14-4013-816f-1dde64e2425e\r\n' +
talk | 'm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:VZrD\r\n' +
talk | 'a=ice-pwd:rRHLS1+kvMvLPFmqTUICzHyf\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 38:98:E1:1C:2C:BF:80:81:F4:65:B6:94:27:F9:96:FE:28:66:4A:C6:63:01:DC:F9:D4:22:F3:AB:8A:00:E3:50\r\n' +
talk | 'a=setup:actpass\r\n' +
talk | 'a=mid:2\r\n' +
talk | 'a=sctp-port:5000\r\n' +
talk | 'a=max-message-size:262144\r\n',
talk | type: 'offer'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:2624540037 1 udp 2122262783 s0m3:ip:v6:4ddr:3sss 52918 typ host generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:220119444 1 udp 2122194687 192.168.1.141 44365 typ host generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 1,
talk | candidate: 'candidate:2624540037 1 udp 2122262783 s0m3:ip:v6:4ddr:3sss 35338 typ host generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 1,
talk | candidate: 'candidate:220119444 1 udp 2122194687 192.168.1.141 36590 typ host generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 2,
talk | candidate: 'candidate:2624540037 1 udp 2122262783 s0m3:ip:v6:4ddr:3sss 54928 typ host generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 2,
talk | candidate: 'candidate:220119444 1 udp 2122194687 192.168.1.141 36340 typ host generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 1,
talk | candidate: 'candidate:2354497312 1 udp 1685987071 12.34.5.67 36590 typ srflx raddr 192.168.1.141 rport 36590 generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:2354497312 1 udp 1685987071 12.34.5.67 44365 typ srflx raddr 192.168.1.141 rport 44365 generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 2,
talk | candidate: 'candidate:2354497312 1 udp 1685987071 12.34.5.67 36340 typ srflx raddr 192.168.1.141 rport 36340 generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:3538727285 1 tcp 1518283007 s0m3:ip:v6:4ddr:3sss 9 typ host tcptype active generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:1134378340 1 tcp 1518214911 192.168.1.141 9 typ host tcptype active generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 1,
talk | candidate: 'candidate:3538727285 1 tcp 1518283007 s0m3:ip:v6:4ddr:3sss 9 typ host tcptype active generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 1,
talk | candidate: 'candidate:1134378340 1 tcp 1518214911 192.168.1.141 9 typ host tcptype active generation 0 ufrag VZrD network-id 1'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 2,
talk | candidate: 'candidate:3538727285 1 tcp 1518283007 s0m3:ip:v6:4ddr:3sss 9 typ host tcptype active generation 0 ufrag VZrD network-id 2'
talk | }
talk | [XVDVRNv66i1bz59MAAAH] relay ICE-candidate to [PDMR5plp37T3XNmeAAAD] {
talk | sdpMLineIndex: 2,
talk | candidate: 'candidate:1134378340 1 tcp 1518214911 192.168.1.141 9 typ host tcptype active generation 0 ufrag VZrD network-id 1'
talk | }
talk | [PDMR5plp37T3XNmeAAAD] relay SessionDescription to [XVDVRNv66i1bz59MAAAH] {
talk | sdp: 'v=0\r\n' +
talk | 'o=- 6761066972811642662 2 IN IP4 127.0.0.1\r\n' +
talk | 's=-\r\n' +
talk | 't=0 0\r\n' +
talk | 'a=group:BUNDLE 0 1 2\r\n' +
talk | 'a=extmap-allow-mixed\r\n' +
talk | 'a=msid-semantic: WMS Ezp82rfnGrKNOcDTF37V4gESQpFyoYv1hvfO\r\n' +
talk | 'm=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:yzKP\r\n' +
talk | 'a=ice-pwd:3dyBgBalqHYO+2zQvT8Mmp4C\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 4D:FF:F4:FD:51:64:54:90:6B:7E:67:97:FC:8C:A9:8E:82:C2:6C:2D:75:46:B9:FF:6E:EB:FE:00:34:48:80:B8\r\n' +
talk | 'a=setup:active\r\n' +
talk | 'a=mid:0\r\n' +
talk | 'a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n' +
talk | 'a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n' +
talk | 'a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n' +
talk | 'a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n' +
talk | 'a=sendrecv\r\n' +
talk | 'a=msid:Ezp82rfnGrKNOcDTF37V4gESQpFyoYv1hvfO aa8ec5bc-547b-4f04-aa82-9d78c8beeeaf\r\n' +
talk | 'a=rtcp-mux\r\n' +
talk | 'a=rtpmap:111 opus/48000/2\r\n' +
talk | 'a=rtcp-fb:111 transport-cc\r\n' +
talk | 'a=fmtp:111 minptime=10;useinbandfec=1\r\n' +
talk | 'a=rtpmap:63 red/48000/2\r\n' +
talk | 'a=fmtp:63 111/111\r\n' +
talk | 'a=rtpmap:103 ISAC/16000\r\n' +
talk | 'a=rtpmap:104 ISAC/32000\r\n' +
talk | 'a=rtpmap:9 G722/8000\r\n' +
talk | 'a=rtpmap:0 PCMU/8000\r\n' +
talk | 'a=rtpmap:8 PCMA/8000\r\n' +
talk | 'a=rtpmap:106 CN/32000\r\n' +
talk | 'a=rtpmap:105 CN/16000\r\n' +
talk | 'a=rtpmap:13 CN/8000\r\n' +
talk | 'a=rtpmap:110 telephone-event/48000\r\n' +
talk | 'a=rtpmap:112 telephone-event/32000\r\n' +
talk | 'a=rtpmap:113 telephone-event/16000\r\n' +
talk | 'a=rtpmap:126 telephone-event/8000\r\n' +
talk | 'a=ssrc:3952065710 cname:YHWHGCZzcnTVioen\r\n' +
talk | 'm=video 9 UDP/TLS/RTP/SAVPF 96 97 125 107 124 121 98 99 120 119 114\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=rtcp:9 IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:yzKP\r\n' +
talk | 'a=ice-pwd:3dyBgBalqHYO+2zQvT8Mmp4C\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 4D:FF:F4:FD:51:64:54:90:6B:7E:67:97:FC:8C:A9:8E:82:C2:6C:2D:75:46:B9:FF:6E:EB:FE:00:34:48:80:B8\r\n' +
talk | 'a=setup:active\r\n' +
talk | 'a=mid:1\r\n' +
talk | 'a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n' +
talk | 'a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n' +
talk | 'a=extmap:13 urn:3gpp:video-orientation\r\n' +
talk | 'a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n' +
talk | 'a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\n' +
talk | 'a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\n' +
talk | 'a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\n' +
talk | 'a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\n' +
talk | 'a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\n' +
talk | 'a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n' +
talk | 'a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n' +
talk | 'a=sendrecv\r\n' +
talk | 'a=msid:Ezp82rfnGrKNOcDTF37V4gESQpFyoYv1hvfO 30d66fc6-4af7-4368-ad94-169d5d3f090c\r\n' +
talk | 'a=rtcp-mux\r\n' +
talk | 'a=rtcp-rsize\r\n' +
talk | 'a=rtpmap:96 VP8/90000\r\n' +
talk | 'a=rtcp-fb:96 goog-remb\r\n' +
talk | 'a=rtcp-fb:96 transport-cc\r\n' +
talk | 'a=rtcp-fb:96 ccm fir\r\n' +
talk | 'a=rtcp-fb:96 nack\r\n' +
talk | 'a=rtcp-fb:96 nack pli\r\n' +
talk | 'a=rtpmap:97 rtx/90000\r\n' +
talk | 'a=fmtp:97 apt=96\r\n' +
talk | 'a=rtpmap:125 H264/90000\r\n' +
talk | 'a=rtcp-fb:125 goog-remb\r\n' +
talk | 'a=rtcp-fb:125 transport-cc\r\n' +
talk | 'a=rtcp-fb:125 ccm fir\r\n' +
talk | 'a=rtcp-fb:125 nack\r\n' +
talk | 'a=rtcp-fb:125 nack pli\r\n' +
talk | 'a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n' +
talk | 'a=rtpmap:107 rtx/90000\r\n' +
talk | 'a=fmtp:107 apt=125\r\n' +
talk | 'a=rtpmap:124 H264/90000\r\n' +
talk | 'a=rtcp-fb:124 goog-remb\r\n' +
talk | 'a=rtcp-fb:124 transport-cc\r\n' +
talk | 'a=rtcp-fb:124 ccm fir\r\n' +
talk | 'a=rtcp-fb:124 nack\r\n' +
talk | 'a=rtcp-fb:124 nack pli\r\n' +
talk | 'a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f\r\n' +
talk | 'a=rtpmap:121 rtx/90000\r\n' +
talk | 'a=fmtp:121 apt=124\r\n' +
talk | 'a=rtpmap:98 VP9/90000\r\n' +
talk | 'a=rtcp-fb:98 goog-remb\r\n' +
talk | 'a=rtcp-fb:98 transport-cc\r\n' +
talk | 'a=rtcp-fb:98 ccm fir\r\n' +
talk | 'a=rtcp-fb:98 nack\r\n' +
talk | 'a=rtcp-fb:98 nack pli\r\n' +
talk | 'a=fmtp:98 profile-id=0\r\n' +
talk | 'a=rtpmap:99 rtx/90000\r\n' +
talk | 'a=fmtp:99 apt=98\r\n' +
talk | 'a=rtpmap:120 red/90000\r\n' +
talk | 'a=rtpmap:119 rtx/90000\r\n' +
talk | 'a=fmtp:119 apt=120\r\n' +
talk | 'a=rtpmap:114 ulpfec/90000\r\n' +
talk | 'a=ssrc-group:FID 2387096027 4186039440\r\n' +
talk | 'a=ssrc:2387096027 cname:YHWHGCZzcnTVioen\r\n' +
talk | 'a=ssrc:4186039440 cname:YHWHGCZzcnTVioen\r\n' +
talk | 'm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\n' +
talk | 'c=IN IP4 0.0.0.0\r\n' +
talk | 'a=ice-ufrag:yzKP\r\n' +
talk | 'a=ice-pwd:3dyBgBalqHYO+2zQvT8Mmp4C\r\n' +
talk | 'a=ice-options:trickle\r\n' +
talk | 'a=fingerprint:sha-256 4D:FF:F4:FD:51:64:54:90:6B:7E:67:97:FC:8C:A9:8E:82:C2:6C:2D:75:46:B9:FF:6E:EB:FE:00:34:48:80:B8\r\n' +
talk | 'a=setup:active\r\n' +
talk | 'a=mid:2\r\n' +
talk | 'a=sctp-port:5000\r\n' +
talk | 'a=max-message-size:262144\r\n',
talk | type: 'answer'
talk | }
talk | [PDMR5plp37T3XNmeAAAD] relay ICE-candidate to [XVDVRNv66i1bz59MAAAH] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:1061354322 1 udp 2122260223 123.123.123.123 40723 typ host generation 0 ufrag yzKP network-id 1 network-cost 10'
talk | }
talk | [PDMR5plp37T3XNmeAAAD] relay ICE-candidate to [XVDVRNv66i1bz59MAAAH] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:1908475810 1 tcp 1518280447 123.123.123.123 9 typ host tcptype active generation 0 ufrag yzKP network-id 1 network-cost 10'
talk | }
talk | [PDMR5plp37T3XNmeAAAD] relay ICE-candidate to [XVDVRNv66i1bz59MAAAH] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:3188391398 1 udp 1686052607 123.123.123.123 7570 typ srflx raddr 123.123.123.123 rport 40723 generation 0 ufrag yzKP network-id 1 network-cost 10'
talk | }
talk | [PDMR5plp37T3XNmeAAAD] relay ICE-candidate to [XVDVRNv66i1bz59MAAAH] {
talk | sdpMLineIndex: 0,
talk | candidate: 'candidate:3188391398 1 udp 1686052607 123.123.123.123 2622 typ srflx raddr 123.123.123.123 rport 40723 generation 0 ufrag yzKP network-id 1 network-cost 10'
talk | }
I suppose for this I would have to setup a STUN/TURN server.
I'm running an ejabberd server on the same machine to communicate via XMPP. For that, I had to setup STUN/TURN as well. For XMPP communication, everything works just fine. Here's my domain configuration for STUN/TURN:
_Service._: stun
Procotol: udp
Priority: 5
Weight: 0
Port: 3478
Target: mydomain.com
_Service._: turn
Procotol: udp
Priority: 5
Weight: 0
Port: 3478
Target: mydomain.com
Now, here's my script.js configuration for ICE_SERVER:
const ICE_SERVERS = [
{ urls: "stun:mydomain.com:3478?transport=udp" },
{ urls: "turn:mydomain.com:3478?transport=udp" },
];
Here's the ejabberd.yml configuration for stun/turn:
-
port: 3478
ip: 0.0.0.0
transport: udp
module: ejabberd_stun
use_turn: true
auth_realm: mydomain.com
turn_min_port: 49152
turn_max_port: 65535
-
port: 5349
transport: tcp
ip: 0.0.0.0
module: ejabberd_stun
certfile: "/home/ejabberd/conf/server.pem"
tls: true
auth_realm: mydomain.com
use_turn: true
# ...
mod_stun_disco:
credentials_lifetime: 12h
services:
-
host: 0.0.0.0
port: 3478
type: stun
transport: udp
restricted: false
-
host: 0.0.0.0
port: 3478
type: turn
transport: udp
restricted: true
-
host: mydomain.com
port: 5349
type: stuns
transport: tcp
restricted: false
-
host: mydomain.com
port: 5349
type: turns
transport: tcp
restricted: true
Any help is greatly appreciated.
EDIT:
Chrome developer tools show me the following error when accessing the site:
WebSocket connection to wss://meet.mydomain.com/socket.io/?EIO=4&transport=websocket&sid=_a0QbGj2jn4-0ZuVAAAI failed:
doOpen @ websocket.js:54
EDIT 2:
I tried using a different STUN/TURN server that Trickle ICE said it works:
const ICE_SERVERS = [
{ urls: "stun:stun.stunprotocol.org:3478" },
{ urls: "turn:openrelay.metered.ca:443", username: "openrelayproject", credential: "openrelayproject" },
]
However, unfortunately with the same result.