Skip to content
This repository has been archived by the owner on May 9, 2019. It is now read-only.

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

Closed
kyberorg opened this issue Feb 2, 2018 · 9 comments
Closed

Comments

@kyberorg
Copy link

kyberorg commented Feb 2, 2018

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
Copy link

i have same issue, did you find solution ?

@kyberorg
Copy link
Author

@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
Copy link

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

@kyberorg
Copy link
Author

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

@bdbogjoe
Copy link

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
Copy link

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:
- "7088:7088"
- "7089:7089"
- "8188:8188"
- "8189:8189"

messaging:
image: mattermost/platform:4.9
container_name: mattermost
restart: unless-stopped
ports:
- "8065:8065"
volumes:
- /home/ubuntu/webrtc/mattermost/app/config:/mattermost/config:rw
- /home/ubuntu/webrtc/mattermost/app/data:/mattermost/data:rw
- /home/ubuntu/webrtc/mattermost/app/logs:/mattermost/logs:rw
- /etc/localtime:/etc/localtime:ro
environment:
- MM_USERNAME=mattermost_user
- MM_PASSWORD=xxxxxxxx
- MM_DBNAME=mattermost
links:
- webrtc
`
I started AWS instance with static IP
Over it is a Load Balancer with port routing + SSL
3d level domain.

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
Copy link

tlf30 commented Jun 8, 2018

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
Copy link

nikitarams commented Jun 15, 2018 via email

@cpanato
Copy link

cpanato commented May 9, 2019

closing this, this repo is not more maintained

@cpanato cpanato closed this as completed May 9, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants