mattermost / mattermost-webrtc

23 stars 21 forks source link

WebRTC video call: Connection established, but no sound and video #9

Closed kyberorg closed 5 years ago

kyberorg commented 6 years ago

There is problem with making WebRTC Calls. Connection established, but no sound and video.

Our setup: Server - CentOS 7.4 Mattermost (4.6) - standalone according Installation manual. WebRTC (latest) - as docker container.

Mattermost is behind Nginx. WebRTC Gateway has direct connection.

WebRTC deployed with docker-compose:

version: '3'
services:
  webrtc_app:
     image: mattermost/webrtc:latest
     restart: always
     container_name: webrtc
     ports:
         - "7088:7088"
         - "7089:7089"
         - "8188:8188"
         - "8189:8189"
     env_file:
          - ./.env
     extra_hosts:
       - "host:172.101.0.1"
     volumes:
       - "/opt/janus/certs_from_host:/opt/janus/certs"
     networks:
       webrtcnet:
         ipv4_address: 172.101.0.2

networks:
  webrtcnet:
    external:
      name: webrtcnet

Warning in mattermost-webrtc docker container

Creating new session: 3022765816960023
Creating new handle in session 3022765816960023: 4369863473533637
Creating new session: 8318070687791810
Creating new handle in session 8318070687791810: 622077039705137
[622077039705137] Creating ICE agent (ICE Full mode, controlled)
[4369863473533637] Creating ICE agent (ICE Full mode, controlling)
[WARN] [622077039705137] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
[WARN] [4369863473533637] ICE failed for component 1 in stream 1, but let's give it some time... (trickle pending, answer received, alert not set)
[WARN] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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] [622077039705137] 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] [4369863473533637] 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)
[ERR] [ice.c:janus_ice_check_failed:1606] [622077039705137] ICE failed for component 1 in stream 1...
No WebRTC media anymore
No WebRTC media anymore
[4369863473533637] WebRTC resources freed
[WARN] No call to hangup
[WARN] No call to hangup
Detaching handle from JANUS VideoCall plugin
No WebRTC media anymore
Detaching handle from JANUS VideoCall plugin
No WebRTC media anymore
Cleaning up handle 4369863473533637...
[4369863473533637] WebRTC resources freed
[4369863473533637] Handle and related resources freed
Cleaning up handle 622077039705137...
[622077039705137] WebRTC resources freed
[622077039705137] Handle and related resources freed
^C

In logs I see nothing related.

bdbogjoe commented 6 years ago

i have same issue, did you find solution ?

kyberorg commented 6 years ago

@bdbogjoe only workaround currently. We installed janus server from sources to separate debian server and nginx as SSL handler behind janus. This made things working, but not really stable.

bdbogjoe commented 6 years ago

not related to NAT ? maybe we need to use nat_1_1_mapping property in janus.cfg

kyberorg commented 6 years ago

Not related. Both clients was without or with transparent NAT.

bdbogjoe commented 6 years ago

still does not work from my side, call is starting and after i can see this error in docker log :

webrtc_1  | [WARN] [6508963120209060] ICE failed for component 1 in stream 1, but let's give it some time... (trickle received, answer received, alert not set)
webrtc_1  | [6508963120209060] Creating ICE state check timer with ID 5
webrtc_1  | [6218836912431898] Component state changed for component 1 in stream 1: 5 (failed)
webrtc_1  | [WARN] [6218836912431898] ICE failed for component 1 in stream 1, but let's give it some time... (trickle received, answer received, alert not set)
webrtc_1  | [6218836912431898] Creating ICE state check timer with ID 5
webrtc_1  | [ERR] [ice.c:janus_ice_check_failed:1606] [6508963120209060] ICE failed for component 1 in stream 1...

what is ICE ?

nikitarams commented 6 years ago

Hello! I have the same issue with some differencies. I am using dockers with these settings: `version: "2"

services: webrtc: image: mattermost/webrtc container_name: mattermost-webrtc restart: unless-stopped ports:

So from outside we have https://mydomain:443 -> http://instance:8065 (Mattermost) wss://mydomain:8189 -> http://instance:8188 (WebSocket Janus WebRTC) https://mydomain:7089/admin -> http://instance:7088 (http Janus WebRTC)

I opened all ports to load balancer and aws instance.

I can download index.html from Janus WebRTC docker using wget https://mydomain

First of all - with the latest build of mattermost (4.10) I did not find “User” -> Accaunt Settings -> “Advanced Settings” -> “Preview pre-release features” -> Enable the ability to make and receive one-on-one WebRTC calls

Buttos (WebRTC) and Video Calls were on their places.

Is it a feature or a forgotten bug? =))

Nevermid, I rolled back to MM 4.9

Other settings (like STUN URI (stun:stun.l.google.com:19302), Gateway Admin Secret (janusoverlord), Enable Insecure Outgoing Connections (true)) are still previous

I can call to another user via Mattermost (Mattermonstr!) I can agree to let access to mic/webcam from both abonents in browser Another user can accept call No any voice/video is recieved After 10 seconds call is finished, there is a sign: Call with user ended

At that time I can see a Janus log: [ERR] [transports/janus_http.c:janus_http_admin_handler:1563] Invalid url / [ERR] [transports/janus_http.c:janus_http_admin_handler:1563] Invalid url / [ERR] [transports/janus_http.c:janus_http_admin_handler:1563] Invalid url / [ERR] [transports/janus_http.c:janus_http_admin_handler:1563] Invalid url / Creating new handle in session 2114300204279197: 544213068337465 Creating new handle in session 8287556257129988: 585051823977465 [585051823977465] Creating ICE agent (ICE Full mode, controlled) [544213068337465] Creating ICE agent (ICE Full mode, controlling) [WARN] [585051823977465] ICE failed for component 1 in stream 1, but let’s give it some time… (trickle received, answer received, alert not set) [WARN] [544213068337465] ICE failed for component 1 in stream 1, but let’s give it some time… (trickle pending, answer received, alert not set) [ERR] [ice.c:janus_ice_check_failed:1606] [585051823977465] ICE failed for component 1 in stream 1… No WebRTC media anymore No WebRTC media anymore [544213068337465] WebRTC resources freed [WARN] No call to hangup Detaching handle from JANUS VideoCall plugin No WebRTC media anymore [WARN] No call to hangup Detaching handle from JANUS VideoCall plugin No WebRTC media anymore Cleaning up handle 544213068337465… [544213068337465] WebRTC resources freed [544213068337465] Handle and related resources freed Cleaning up handle 585051823977465… [585051823977465] WebRTC resources freed [585051823977465] Handle and related resources freed

Still have no any video/audio connection…

What is “Invalid url /” ?

inside Janus Docker I found janus.cfg file There is a [nat] section “In case you’re deploying Janus on a server which is configured with a 1:1 NAT (e.g., Amazon EC2), you might want to also specify the public address of the machine using the setting below.”

So i made a correction nat_1_1_mapping = ... *** - is static ip of AWS Instance.

Do not know howto restart Janus server and just restart docker with it inside.

Nothing changed…

Please, help!

tlf30 commented 6 years ago

I am having the same problem. Anyone find a fix yet? Using AWS with mattermost-webrtc image and google's STUN. Got connection, but no video or audio. Server outputs: [WARN] [8463656418742744] Missing valid SRTP session (packet arrived too early?), skipping... four times.

nikitarams commented 6 years ago

Hi.

They made an "issue" to this issue =)) https://mattermost.atlassian.net/browse/MM-10779

I'll try a new version of MM

Join this forum https://forum.mattermost.org/t/how-to-start-webrtc/5032/9

With best wishes, Nikita.

2018-06-08 5:53 GMT+03:00 Trevor Flynn notifications@github.com:

I am having the same problem. Anyone find a fix yet?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mattermost/mattermost-webrtc/issues/9#issuecomment-395630219, or mute the thread https://github.com/notifications/unsubscribe-auth/ASfR9QzOzpq-fstRYXyFaPNkMHT1mkAqks5t6ecvgaJpZM4R3PWO .

cpanato commented 5 years ago

closing this, this repo is not more maintained