Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to access Camera/Microphone, Talk isn't seeing HTTPS #3150

Closed
king-gheedorah opened this issue Mar 25, 2020 · 14 comments
Closed

Unable to access Camera/Microphone, Talk isn't seeing HTTPS #3150

king-gheedorah opened this issue Mar 25, 2020 · 14 comments

Comments

@king-gheedorah
Copy link

Steps to reproduce

  1. Install Nextcloud in a Docker container
  2. Use Traefik to reverse proxy access to a subdomain, redirecting all http traffic to https (TLS secured)
  3. Install and enable Talk, start a call, attempt to use video

Expected behaviour

Camera and audio should be accessible over https

Actual behaviour

Error: Access to microphone & camera is only possible with HTTPS: Please move your setup to HTTPS

Server configuration detail

Operating system: Linux 4.15.0-91-generic #92-Ubuntu SMP Fri Feb 28 11:09:48 UTC 2020 x86_64

Webserver: Apache/2.4.38 (Debian) (apache2handler)

Database: pgsql PostgreSQL 12.1 (Debian 12.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

PHP version:

7.3.16
Modules loaded: Core, date, libxml, openssl, pcre, sqlite3, zlib, ctype, curl, dom, fileinfo, filter, ftp, hash, iconv, json, mbstring, SPL, PDO, session, posix, Reflection, standard, SimpleXML, pdo_sqlite, Phar, tokenizer, xml, xmlreader, xmlwriter, mysqlnd, apache2handler, apcu, exif, gd, gmp, imagick, intl, ldap, memcached, pcntl, pdo_mysql, pdo_pgsql, redis, sodium, zip, Zend OPcache

Nextcloud version: 18.0.2 - 18.0.2.2

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: Docker

Signing status

Array
(
)

List of activated apps
Enabled:
 - accessibility: 1.4.0
 - activity: 2.11.0
 - breezedark: 18.0.10
 - bruteforcesettings: 1.5.0
 - calendar: 2.0.2
 - cloud_federation_api: 1.1.0
 - comments: 1.8.0
 - contacts: 3.2.0
 - dav: 1.14.0
 - federatedfilesharing: 1.8.0
 - federation: 1.8.0
 - files: 1.13.1
 - files_pdfviewer: 1.7.0
 - files_rightclick: 0.15.2
 - files_sharing: 1.10.1
 - files_trashbin: 1.8.0
 - files_versions: 1.11.0
 - files_videoplayer: 1.7.0
 - firstrunwizard: 2.7.0
 - issuetemplate: 0.6.0
 - logreader: 2.3.0
 - lookup_server_connector: 1.6.0
 - nextcloud_announcements: 1.7.0
 - notifications: 2.6.0
 - oauth2: 1.6.0
 - occweb: 0.0.7
 - password_policy: 1.8.0
 - photos: 1.0.0
 - privacy: 1.2.0
 - provisioning_api: 1.8.0
 - recommendations: 0.6.0
 - serverinfo: 1.8.0
 - settings: 1.0.0
 - sharebymail: 1.8.0
 - spreed: 8.0.5
 - support: 1.1.0
 - survey_client: 1.6.0
 - systemtags: 1.8.0
 - tasks: 0.12.1
 - text: 2.0.0
 - theming: 1.9.0
 - twofactor_backupcodes: 1.7.0
 - updatenotification: 1.8.0
 - viewer: 1.2.0
 - workflowengine: 2.0.0
Disabled:
 - admin_audit
 - encryption
 - files_external
 - user_ldap

Configuration (config/config.php)
{
    "htaccess.RewriteBase": "\/",
    "overwriteprotocol": "https",
    "memcache.local": "\\OC\\Memcache\\APCu",
    "apps_paths": [
        {
            "path": "\/var\/www\/html\/apps",
            "url": "\/apps",
            "writable": false
        },
        {
            "path": "\/var\/www\/html\/custom_apps",
            "url": "\/custom_apps",
            "writable": true
        }
    ],
    "memcache.distributed": "\\OC\\Memcache\\Redis",
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "password": "***REMOVED SENSITIVE VALUE***",
        "port": 6379
    },
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "<REMOVED>.<REMOVED>.<REMOVED>"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "pgsql",
    "version": "18.0.2.2",
    "overwrite.cli.url": "https:\/\/<REMOVED>.<REMOVED>.<REMOVED>",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true
}

Are you using external storage, if yes which one: local/smb/sftp/...

Are you using encryption: false

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...

Client configuration

Browser: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0, Firefox Preview

Operating system: OS X, Android

Logs

Web server error log Unsure how to collect this, the "error.log" file is not accessible for some reason
Nextcloud log I believe this is the relevant excerpt... Didn't see anything else of interest in the log.
172.19.0.14 - - [25/Mar/2020:04:30:37 +0000] "GET /apps/spreed/ HTTP/1.1" 200 6738 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:38 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:38 +0000] "GET /custom_apps/spreed/js/talk.js?v=3dae14b1-0 HTTP/1.1" 200 467935 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:38 +0000] "GET /css/spreed/62ad-d94e-merged.css?v=b92d206521717ac032f8aa58d3c7ff2f-62ad80f1-0 HTTP/1.1" 200 2561 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:38 +0000] "GET /avatar/<REMOVED>/64?v=0 HTTP/1.1" 304 228 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:38 +0000] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/1.1" 200 817 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:39 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:39 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/signaling/settings HTTP/1.1" 200 1009 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:39 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/room HTTP/1.1" 200 3059 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:39 +0000] "GET /custom_apps/spreed/img/favicon-touch.png HTTP/1.1" 200 3097 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:39 +0000] "GET /custom_apps/spreed/img/favicon.ico HTTP/1.1" 200 4532 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:39 +0000] "GET /custom_apps/spreed/img/changelog.svg HTTP/1.1" 200 2524 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:40 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:41 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:42 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:43 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "GET /ocs/v2.php/collaboration/resources/room/mr434n69?format=json HTTP/1.1" 200 777 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/chat/mr434n69?lookIntoFuture=0&lastKnownMessageId=42&includeLastKnown=1 HTTP/1.1" 200 1418 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "GET /avatar/<REMOVED>/256?v=0 HTTP/1.1" 201 4140 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "POST /ocs/v2.php/apps/spreed/api/v1/room/mr434n69/participants/active HTTP/1.1" 200 2154 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/room/mr434n69/participants HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:44 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:43 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/signaling/mr434n69 HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
172.19.0.14 - - [25/Mar/2020:04:30:44 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/room/mr434n69/participants HTTP/1.1" 200 1146 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:45 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:46 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:47 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:48 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:49 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:50 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:51 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:52 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:53 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:53 +0000] "GET /ocs/v2.php/apps/notifications/api/v2/notifications HTTP/1.1" 200 817 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:54 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
172.19.0.14 - - [25/Mar/2020:04:30:54 +0000] "GET /ocs/v2.php/apps/spreed/api/v1/room HTTP/1.1" 200 3059 "-" "Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Firefox/68.0"
127.0.0.1 - - [25/Mar/2020:04:30:55 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:56 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:57 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:58 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)"
127.0.0.1 - - [25/Mar/2020:04:30:59 +0000] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.4.38 (Debian) PHP/7.3.16 (internal dummy connection)
Browser log

Firefox console (excerpt)

Access to microphone & camera failed DOMException: "Operation is not supported"

Firefox debugger

let v;const y=[];let b=[],M={},w=null,x=null,D=m.c.CALL_FLAG.DISCONNECTED;const C=[];let T=null;function E(e,t){return e.filter((function(e){return t.indexOf(e)<0}))}function L(e,t){const n=e.getSessionId(),r=e.hasFeature("mcu");if(r&&!v.webrtc.getPeers(n,"screen").length&&(x&&x.end(),x=v.webrtc.createPeer({id:n,type:"screen",sharemyscreen:!0,enableDataChannels:!1,receiveMedia:{offerToReceiveAudio:0,offerToReceiveVideo:0},broadcaster:n}),v.emit("createdPeer",x),x.start()),t!==n)if(r)e.sendOffer(t,"screen");else if(!r){if(!v.webrtc.getPeers(t,"screen").find((function(e){return!0===e.sharemyscreen}))){const e=v.webrtc.createPeer({id:t,type:"screen",sharemyscreen:!0,enableDataChannels:!1,receiveMedia:{offerToReceiveAudio:0,offerToReceiveVideo:0},broadcaster:n});v.emit("createdPeer",e),e.start()}}}function k(e){const t=e.getSessionId();v.webrtc.localStreams.length&&!v.webrtc.getPeers(t,"video").length&&(w&&(v.removePeers(w.id),w.end()),w=v.webrtc.createPeer({id:t,type:"video",enableDataChannels:!0,receiveMedia:{offerToReceiveAudio:0,offerToReceiveVideo:0},sendVideoIfAvailable:e.getSendVideoIfAvailable()}),v.emit("createdPeer",w),w.start())}function S(e){let t=e;return t.hasOwnProperty("inCall")&&(t=t.inCall),t=t||m.c.CALL_FLAG.DISCONNECTED,0!=(t&(m.c.CALL_FLAG.WITH_AUDIO|m.c.CALL_FLAG.WITH_VIDEO))}function I(e,t,n){const r=e.getSessionId(),i=e.hasFeature("mcu");i&&t.length&&k(e),t.forEach((function(t){if(!t.inCall)return;const n=t.sessionId||t.sessionid;if(!n||n===r||-1!==b.indexOf(n))return;b.push(n);const o=t.userId||t.userid||null;let a=T.get(n);a||(a=T.add({peerId:n,webRtc:v})),a.setUserId(o),(e.hasFeature("mcu")&&t&&!S(t)||!e.hasFeature("mcu")&&t&&!S(t)&&!v.webrtc.localStreams.length)&&a.setPeer(null);const s=function(){const t=v.webrtc.createPeer({id:n,type:"video",enableDataChannels:!0,receiveMedia:{offerToReceiveAudio:1,offerToReceiveVideo:1},sendVideoIfAvailable:e.getSendVideoIfAvailable()});v.emit("createdPeer",t),t.start()};v.webrtc.getPeers(n,"video").length||(i?(e.requestOffer(t,"video"),C[t.sessionId]=setInterval((function(){console.log("No offer received for new peer, request offer again"),e.requestOffer(t,"video")}),1e4)):S(D)&&(!S(t)||n<r)?(console.log("Starting call with",t),s()):S(D)&&S(t)&&n>r&&(C[n]=setInterval((function(){v.webrtc.getPeers(n,"video").forEach((function(e){e.end()})),console.log("No offer nor answer received, sending offer again"),s()}),1e4))),v.getLocalScreen()&&L(e,n)})),n.forEach((function(e){console.log("XXX Remove peer",e),v.removePeers(e),T.remove(e),C[e]&&(clearInterval(C[e]),delete C[e])})),b=E(b,n)}function B(e,t){const n=e.getSessionId(),r=[],i={};let o;for(o in D=m.c.CALL_FLAG.DISCONNECTED,t){if(!t.hasOwnProperty(o))continue;const e=t[o];e.inCall&&(o!==n?(r.push(o),i[o]=e):D=e.inCall)}if(!D)return void I(e,[],b);const a=E(r,b),s=E(b,r),c=[];a.forEach((function(e){c.push(i[e])})),(c.length||s.length)&&I(e,c,s)}function Y(e,n){T=n,e.on("usersLeft",(function(t){t.forEach((function(e){delete M[e]})),I(e,[],t)})),e.on("usersChanged",(function(t){t.forEach((function(e){const t=e.sessionId||e.sessionid;M[t]=e})),B(e,M)})),e.on("usersInRoom",(function(t){M={},t.forEach((function(e){const t=e.sessionId||e.sessionid;M[t]=e})),B(e,M)})),e.on("leaveCall",(function(e,t){t||v.leaveCall()})),e.on("message",(function(t){if("answer"===t.type&&"video"===t.roomType&&C[t.from])return clearInterval(C[t.from]),void delete C[t.from];if("offer"!==t.type)return;const n=v.webrtc.peers.find((function(e){return!e.sharemyscreen&&(e.id===t.from&&e.type===t.roomType&&e.sid!==t.sid)}));n&&n.end(),"video"===t.roomType&&C[t.from]&&(clearInterval(C[t.from]),delete C[t.from]),D||(console.log("Offer received when not in the call, ignore"),t.type="offer-to-ignore"),e.hasFeature("mcu")&&"screen"===t.roomType&&(t.broadcaster=t.from)})),v=new h.a({remoteVideosEl:"",autoRequestMedia:!0,debug:!1,media:{audio:!0,video:!0},autoAdjustMic:!1,audioFallback:!0,detectSpeakingEvents:!0,connection:e,enableDataChannels:!0,nick:g.a.getters.getDisplayName()}),e.hasFeature("mcu")&&(v.webrtc.config.peerConnectionConfig.sdpSemantics="plan-b"),e.on("pullMessagesStoppedOnFail",(function(){v.leaveCall()})),v.startMedia=function(e){v.joinCall(e)};const r=function(t,n,r){w&&e.hasFeature&&e.hasFeature("mcu")?w.sendDirectly(t,n,r):v.sendDirectlyToAll(t,n,r)};function i(e){e.nickInterval&&(clearInterval(e.nickInterval),e.nickInterval=null)}function o(t){y[t.id]=0,t.pc.addEventListener("iceconnectionstatechange",(function(){switch(t.emit("extendedIceConnectionStateChange",t.pc.iceConnectionState),t.pc.iceConnectionState){case"checking":console.log("Connecting to peer...",t);break;case"connected":case"completed":console.log("Connection established.",t),function(t){if(v.webrtc.isVideoEnabled()?v.emit("videoOn"):v.emit("videoOff"),v.webrtc.isAudioEnabled()?v.emit("audioOn"):v.emit("audioOff"),null===e.settings.userId){const e=localStorage.getItem("nick");r("status","nickChanged",e)}y[t.id]>0&&(y[t.id]=0)}(t);break;case"disconnected":console.log("Disconnected.",t),function(t){setTimeout((function(){"disconnected"===t.pc.iceConnectionState&&(t.emit("extendedIceConnectionStateChange","disconnected-long"),e.hasFeature("mcu")||y[t.id]<5&&"offer"===t.pc.localDescription.type&&"stable"===t.pc.signalingState&&(y[t.id]++,console.log("ICE restart.",t),t.icerestart()))}),5e3)}(t);break;case"failed":console.log("Connection failed.",t),function(t){e.hasFeature("mcu")?(console.log("Request offer again",t),e.requestOffer(t.id,"video"),C[t.id]=setInterval((function(){console.log("No offer received, request offer again",t),e.requestOffer(t.id,"video")}),1e4)):y[t.id]<5?"offer"===t.pc.localDescription.type&&"stable"===t.pc.signalingState&&(y[t.id]++,console.log("ICE restart.",t),t.icerestart()):(console.log("ICE failed after 5 tries.",t),t.emit("extendedIceConnectionStateChange","failed-no-restart"))}(t);break;case"closed":console.log("Connection closed.",t)}}))}function a(e,t,n){const r=$.Deferred();return e.pc.getStats(t).then((function(t){let i=!1;t.forEach((function(t){!i&&t.mediaType===n&&t.hasOwnProperty("bytesReceived")&&t.bytesReceived>0&&(v.emit("unmute",{id:e.id,name:n}),i=!0)})),i?r.resolve():r.reject()})),r}function s(e){e.check_audio_interval&&(clearInterval(e.check_audio_interval),e.check_audio_interval=null),e.check_video_interval&&(clearInterval(e.check_video_interval),e.check_video_interval=null),i(e)}v.on("createdPeer",(function(t){if(console.log("PEER CREATED",t),t.id!==e.getSessionId()&&!t.sharemyscreen){let e=T.get(t.id);e||(e=T.add({peerId:t.id,webRtc:v})),"video"===t.type?e.setPeer(t):e.setScreenPeer(t)}"video"===t.type&&(t.id===e.getSessionId()?(console.log("Not adding ICE connection state handler for own peer",t),function(t){e.hasFeature("mcu")&&(i(t),t.nickInterval=setInterval((function(){let n;n=null===e.settings.userId?localStorage.getItem("nick"):{name:g.a.getters.getDisplayName(),userid:e.settings.userId},t.sendDirectly("status","nickChanged",n)}),1e3))}(t)):o(t),t.getDataChannel("status"))})),v.on("peerStreamAdded",(function(t){e.hasFeature("mcu")&&function(e,t){s(e),e.check_video_interval=setInterval((function(){t.getVideoTracks().forEach((function(t){a(e,t,"video").then((function(){clearInterval(e.check_video_interval),e.check_video_interval=null}))}))}),1e3),e.check_audio_interval=setInterval((function(){t.getAudioTracks().forEach((function(t){a(e,t,"audio").then((function(){clearInterval(e.check_audio_interval),e.check_audio_interval=null}))}))}),1e3)}(t,t.stream)})),v.on("peerStreamRemoved",(function(e){s(e)}));const c=function(e,t){w&&(v.removePeers(w.id),w.end(),w=null),I(e,[],b),M={},b=[],e.forceReconnect(!0,t)};v.webrtc.on("videoOn",(function(){if(e.getSendVideoIfAvailable())return;e.setSendVideoIfAvailable(!0);let t=e.getCurrentCallFlags();t|=m.c.CALL_FLAG.WITH_VIDEO,c(e,t)})),v.webrtc.on("iceFailed",(function(){e.hasFeature("mcu")&&c(e)}));let A=null,u=null;const l=function(){clearTimeout(A),A=null,u&&(OC.Notification.hide(u),u=null)};return v.on("localStreamRequested",(function(){l(),A=setTimeout((function(){u=OC.Notification.show(t("spreed","This is taking longer than expected. Are the media permissions already granted (or rejected)? If yes please restart your browser, as audio and video are failing"),{type:"error"})}),1e4)})),e.on("leaveRoom",(function(t){e.currentRoomToken===t&&l()})),v.on("localMediaStarted",(function(t){console.log("localMediaStarted"),l(),e.hasFeature("mcu")&&k(e)})),v.on("localMediaError",(function(e){let n;console.log("Access to microphone & camera failed",e),l(),"NotSupportedError"===e.name&&v.capabilities.supportRTCPeerConnection||"NotAllowedError"===e.name&&e.message&&-1!==e.message.indexOf("Only secure origins")?(n=t("spreed","Access to microphone & camera is only possible with HTTPS"),n+=": "+t("spreed","Please move your setup to HTTPS")):"NotAllowedError"===e.name?n=t("spreed","Access to microphone & camera was denied"):v.capabilities.support?(n=t("spreed","Error while accessing microphone & camera"),console.log("Error while accessing microphone & camera: ",e.message||e.name)):(console.log("WebRTC not supported"),n=t("spreed","WebRTC is not supported in your browser"),n+=": "+t("spreed","Please use a different browser like Firefox or Chrome")),OC.Notification.show(n,{type:"error",timeout:15})})),v.on("channelOpen",(function(e){console.log("%s datachannel is open",e.label)})),v.on("channelMessage",(function(e,t,n){if("status"===t){if("audioOn"===n.type)v.emit("unmute",{id:e.id,name:"audio"});else if("audioOff"===n.type)v.emit("mute",{id:e.id,name:"audio"});else if("videoOn"===n.type)v.emit("unmute",{id:e.id,name:"video"});else if("videoOff"===n.type)v.emit("mute",{id:e.id,name:"video"});else if("nickChanged"===n.type){const t=n.payload||"";"string"==typeof t?v.emit("nick",{id:e.id,name:n.payload}):v.emit("nick",{id:e.id,name:t.name,userid:t.userid})}}else"hark"===t||console.log("Uknown message from %s datachannel",t,n)})),v.on("speaking",(function(){r("status","speaking")})),v.on("stoppedSpeaking",(function(){r("status","stoppedSpeaking")})),v.on("audioOn",(function(){r("status","audioOn")})),v.on("audioOff",(function(){r("status","audioOff")})),v.on("videoOn",(function(){r("status","videoOn")})),v.on("videoOff",(function(){r("status","videoOff")})),v.on("localScreenAdded",(function(t){const n=e.getSessionId();for(const t in M)M.hasOwnProperty(t)&&M[t].inCall&&t!==n&&L(e,t)})),v.on("localScreenStopped",(function(){e.hasFeature("mcu")&&x&&(x=null,e.sendRoomMessage({roomType:"screen",type:"unshareScreen"}))})),v}var O=r(74);

Chrome's JS console

se SourceMap: chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/sourcemaps/onloadwff.js.map
jquery-migrate.min.js:2 JQMIGRATE: Migrate is installed, version 1.4.1
talk.js?v=3dae14b1-0:1661 Can not set current user because it's a guest
DevTools failed to parse SourceMap: https://<REMOVED>.<REMOVED>.<REMOVED>/custom_apps/spreed/js/talk.js.map
DevTools failed to parse SourceMap: chrome-extension://eakacpaijcpapndcfffdgphdiccmpknp/scripts/content_page.map
DevTools failed to parse SourceMap: chrome-extension://hgmoccdbjhknikckedaaebbpdeebhiei/performance-now.js.map
talk.js?v=3dae14b1-0:119 Joined {data: {…}, status: 200, statusText: "", headers: {…}, config: {…}, …}
talk.js?v=3dae14b1-0:993 Current participant found
[Violation] Forced reflow while executing JavaScript took 33ms
/avatar/<REMOVED>/32:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/32 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:906
mounted @ talk.js?v=3dae14b1-0:906
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
Te @ talk.js?v=3dae14b1-0:27
addMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
processMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:707
getOldMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getOldMessages @ talk.js?v=3dae14b1-0:707
getMessages @ talk.js?v=3dae14b1-0:707
handleStartGettingMessagesPreconditions @ talk.js?v=3dae14b1-0:707
handler @ talk.js?v=3dae14b1-0:707
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
Te @ talk.js?v=3dae14b1-0:27
addConversation @ talk.js?v=3dae14b1-0:453
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
addConversation @ talk.js?v=3dae14b1-0:453
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
fetchSingleConversation @ talk.js?v=3dae14b1-0:1661
async function (async)
fetchSingleConversation @ talk.js?v=3dae14b1-0:1661
refreshCurrentConversation @ talk.js?v=3dae14b1-0:1661
fixmeDelayedSetupOfGuestUsers @ talk.js?v=3dae14b1-0:1661
(anonymous) @ talk.js?v=3dae14b1-0:1661
r @ talk.js?v=3dae14b1-0:27
He @ talk.js?v=3dae14b1-0:27
e.$emit @ talk.js?v=3dae14b1-0:27
c @ talk.js?v=3dae14b1-0:252
async function (async)
c @ talk.js?v=3dae14b1-0:252
beforeMount @ talk.js?v=3dae14b1-0:1661
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
e._init @ talk.js?v=3dae14b1-0:27
wn @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:1685
n @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
talk.js?v=3dae14b1-0:993 Joining call
talk.js?v=3dae14b1-0:147 localMediaStarted
talk.js?v=3dae14b1-0:707 The request has been canceled r {message: undefined}
32:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/32 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:906
mounted @ talk.js?v=3dae14b1-0:906
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
set @ talk.js?v=3dae14b1-0:27
updateParticipant @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:495
async function (async)
joinCall @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:993
He @ talk.js?v=3dae14b1-0:27
n @ talk.js?v=3dae14b1-0:27
o._wrapper @ talk.js?v=3dae14b1-0:27
talk.js?v=3dae14b1-0:147 Starting call with {userId: "<REMOVED>", roomId: 6, lastPing: 1585110732, sessionId: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoF…qmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t", inCall: 1}userId: "<REMOVED>"roomId: 6lastPing: 1585110732sessionId: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoFPDUDrCDuIP21xRd1PGSEDlNl7+H8Okf1mu8Qe7mPHqoWAu0Wg/CK+csMJyfVSISEhiYTpNuEL0YNiVL9DOwQNEbeZc4Nh3DbKZfxXrVZiunOhIo0uwtlEpUtDZj8ssX4kFEUA3PpXm9Q1hIChbVL73D9WMVkqmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t"inCall: 1__proto__: Objectconstructor: ƒ Object()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()hasOwnProperty: ƒ hasOwnProperty()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toString: ƒ toString()valueOf: ƒ valueOf()toLocaleString: ƒ toLocaleString()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
talk.js?v=3dae14b1-0:147 PEER CREATED a {…}
/avatar/<REMOVED>/256:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/256 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:319
mounted @ talk.js?v=3dae14b1-0:319
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
add @ talk.js?v=3dae14b1-0:209
(anonymous) @ talk.js?v=3dae14b1-0:147
I @ talk.js?v=3dae14b1-0:147
B @ talk.js?v=3dae14b1-0:147
(anonymous) @ talk.js?v=3dae14b1-0:147
u.Base._trigger @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
each @ jquery.js:374
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
u.Internal._joinRoomSuccess @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
(anonymous) @ talk.js?v=3dae14b1-0:119
u.Base.joinRoom @ talk.js?v=3dae14b1-0:119
c @ talk.js?v=3dae14b1-0:252
async function (async)
c @ talk.js?v=3dae14b1-0:252
beforeMount @ talk.js?v=3dae14b1-0:1661
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
e._init @ talk.js?v=3dae14b1-0:27
wn @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:1685
n @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
talk.js?v=3dae14b1-0:119 OFFER {to: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoF…qmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t", sid: "1585110733971", broadcaster: undefined, roomType: "video", type: "offer", …}to: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoFPDUDrCDuIP21xRd1PGSEDlNl7+H8Okf1mu8Qe7mPHqoWAu0Wg/CK+csMJyfVSISEhiYTpNuEL0YNiVL9DOwQNEbeZc4Nh3DbKZfxXrVZiunOhIo0uwtlEpUtDZj8ssX4kFEUA3PpXm9Q1hIChbVL73D9WMVkqmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t"sid: "1585110733971"broadcaster: undefinedroomType: "video"type: "offer"payload: RTCSessionDescription {type: "offer", sdp: "v=0
↵o=- 8051045563729695342 2 IN IP4 127.0.0.1
↵s…:2
↵a=sctp-port:5000
↵a=max-message-size:262144
↵"}prefix: "webkit"__proto__: Object
talk.js?v=3dae14b1-0:147 PEER CREATED a {…}
talk.js?v=3dae14b1-0:119 ANSWER {to: "YseThwUyTWiGe3a6hFvc95xxEB+pEC2x0ZNYgYkb46BLzQchMd…PBeYwdB8UmcqXqJNEeSDZa9vFm0RXu7toh/4SY2XSU2TjjMgx", sid: "1585110849387", broadcaster: undefined, roomType: "video", type: "answer", …}to: "YseThwUyTWiGe3a6hFvc95xxEB+pEC2x0ZNYgYkb46BLzQchMdOPK7y3t3gilQv/7pi528LyG8dZIdnrbnbvuCdL+Rs7odVjDuKviC5pxt9h9zmQFwSbpuUI9SLNzy91ZQ/VVeBpObWGWo6ZNHrfRcOp3s+RvcIfWrSJGQFivTWtU/j6vQPJgpX82lzkA4C0wy1a6gjt7iOvlJPBeYwdB8UmcqXqJNEeSDZa9vFm0RXu7toh/4SY2XSU2TjjMgx"sid: "1585110849387"broadcaster: undefinedroomType: "video"type: "answer"payload: RTCSessionDescription {type: "answer", sdp: "v=0
↵o=- 153402650063180386 2 IN IP4 127.0.0.1
↵s=…:2
↵a=sctp-port:5000
↵a=max-message-size:262144
↵"}prefix: "webkit"__proto__: Object
talk.js?v=3dae14b1-0:147 Connection established. a {…}
2talk.js?v=3dae14b1-0:147 status datachannel is open
talk.js?v=3dae14b1-0:147 simplewebrtc datachannel is open
32:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/32 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:906
mounted @ talk.js?v=3dae14b1-0:906
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
Te @ talk.js?v=3dae14b1-0:27
addMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
processMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
(anonymous) @ talk.js?v=3dae14b1-0:707
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
e.$nextTick @ talk.js?v=3dae14b1-0:27
scrollToBottom @ talk.js?v=3dae14b1-0:707
getMessages @ talk.js?v=3dae14b1-0:707
handleStartGettingMessagesPreconditions @ talk.js?v=3dae14b1-0:707
handler @ talk.js?v=3dae14b1-0:707
e.$watch @ talk.js?v=3dae14b1-0:27
bn @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
hn @ talk.js?v=3dae14b1-0:27
e._init @ talk.js?v=3dae14b1-0:27
a @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
f @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
f @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
x @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
x @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
set @ talk.js?v=3dae14b1-0:27
updateParticipant @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:495
async function (async)
joinCall @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:993
He @ talk.js?v=3dae14b1-0:27
n @ talk.js?v=3dae14b1-0:27
o._wrapper @ talk.js?v=3dae14b1-0:27
Show 53 more frames
talk.js?v=3dae14b1-0:147 XXX Remove peer GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoFPDUDrCDuIP21xRd1PGSEDlNl7+H8Okf1mu8Qe7mPHqoWAu0Wg/CK+csMJyfVSISEhiYTpNuEL0YNiVL9DOwQNEbeZc4Nh3DbKZfxXrVZiunOhIo0uwtlEpUtDZj8ssX4kFEUA3PpXm9Q1hIChbVL73D9WMVkqmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t
32:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/32 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:906
mounted @ talk.js?v=3dae14b1-0:906
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
Te @ talk.js?v=3dae14b1-0:27
addMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
processMessage @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
getNewMessages @ talk.js?v=3dae14b1-0:707
async function (async)
getNewMessages @ talk.js?v=3dae14b1-0:707
(anonymous) @ talk.js?v=3dae14b1-0:707
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
e.$nextTick @ talk.js?v=3dae14b1-0:27
scrollToBottom @ talk.js?v=3dae14b1-0:707
getMessages @ talk.js?v=3dae14b1-0:707
handleStartGettingMessagesPreconditions @ talk.js?v=3dae14b1-0:707
handler @ talk.js?v=3dae14b1-0:707
e.$watch @ talk.js?v=3dae14b1-0:27
bn @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
hn @ talk.js?v=3dae14b1-0:27
e._init @ talk.js?v=3dae14b1-0:27
a @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
f @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
f @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
x @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
x @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
set @ talk.js?v=3dae14b1-0:27
updateParticipant @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
(anonymous) @ talk.js?v=3dae14b1-0:651
(anonymous) @ talk.js?v=3dae14b1-0:651
u._withCommit @ talk.js?v=3dae14b1-0:651
u.commit @ talk.js?v=3dae14b1-0:651
commit @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:495
async function (async)
joinCall @ talk.js?v=3dae14b1-0:495
(anonymous) @ talk.js?v=3dae14b1-0:645
u.dispatch @ talk.js?v=3dae14b1-0:651
dispatch @ talk.js?v=3dae14b1-0:645
joinCall @ talk.js?v=3dae14b1-0:993
He @ talk.js?v=3dae14b1-0:27
n @ talk.js?v=3dae14b1-0:27
o._wrapper @ talk.js?v=3dae14b1-0:27
Show 53 more frames
talk.js?v=3dae14b1-0:147 Starting call with {userId: "<REMOVED>", roomId: 6, lastPing: 1585110897, sessionId: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoF…qmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t", inCall: 1}
talk.js?v=3dae14b1-0:147 PEER CREATED a {…}
talk.js?v=3dae14b1-0:119 OFFER {to: "GmLt3MWRL4kqp6VdtxdXIzrF+0QLidfHxHW5KuNybgln/gzjoF…qmWIZftHGhOCd/EsgrPv47gx0Bd409b15fTwWA4s9o+XsZn0t", sid: "1585110898105", broadcaster: undefined, roomType: "video", type: "offer", …}
256:1 GET https://<REMOVED>.<REMOVED>.<REMOVED>/avatar/<REMOVED>/256 404
Image (async)
loadAvatarUrl @ talk.js?v=3dae14b1-0:319
mounted @ talk.js?v=3dae14b1-0:319
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
insert @ talk.js?v=3dae14b1-0:27
D @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn.run @ talk.js?v=3dae14b1-0:27
un @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
Je @ talk.js?v=3dae14b1-0:27
Promise.then (async)
We @ talk.js?v=3dae14b1-0:27
tt @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
dn.update @ talk.js?v=3dae14b1-0:27
ue.notify @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
add @ talk.js?v=3dae14b1-0:209
(anonymous) @ talk.js?v=3dae14b1-0:147
I @ talk.js?v=3dae14b1-0:147
B @ talk.js?v=3dae14b1-0:147
(anonymous) @ talk.js?v=3dae14b1-0:147
u.Base._trigger @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
each @ jquery.js:374
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
u.Internal._startPullingMessages @ talk.js?v=3dae14b1-0:119
u.Internal._joinRoomSuccess @ talk.js?v=3dae14b1-0:119
(anonymous) @ talk.js?v=3dae14b1-0:119
Promise.then (async)
(anonymous) @ talk.js?v=3dae14b1-0:119
u.Base.joinRoom @ talk.js?v=3dae14b1-0:119
c @ talk.js?v=3dae14b1-0:252
async function (async)
c @ talk.js?v=3dae14b1-0:252
beforeMount @ talk.js?v=3dae14b1-0:1661
He @ talk.js?v=3dae14b1-0:27
Kt @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
init @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
l @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:27
e._update @ talk.js?v=3dae14b1-0:27
r @ talk.js?v=3dae14b1-0:27
dn.get @ talk.js?v=3dae14b1-0:27
dn @ talk.js?v=3dae14b1-0:27
e @ talk.js?v=3dae14b1-0:27
wn.$mount @ talk.js?v=3dae14b1-0:27
e._init @ talk.js?v=3dae14b1-0:27
wn @ talk.js?v=3dae14b1-0:27
(anonymous) @ talk.js?v=3dae14b1-0:1685
n @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
(anonymous) @ talk.js?v=3dae14b1-0:1
talk.js?v=3dae14b1-0:147 XXX Remove peer YseThwUyTWiGe3a6hFvc95xxEB+pEC2x0ZNYgYkb46BLzQchMdOPK7y3t3gilQv/7pi528LyG8dZIdnrbnbvuCdL+Rs7odVjDuKviC

Additional Notes

Being that I am using Traefik with LetsEncrypt to generate SSL certs, I've changed my config.php to add:

  'overwriteprotocol' => 'https',

and

   "overwrite.cli.url": "https:\/\/<REMOVED>.<REMOVED>.<REMOVED>",

I am accessing the server from an https:// address that is continuing to show A+ security through Nextcloud's security check service.

@nickvergessen
Copy link
Member

Seems to be the same problem as with #930

So we show this when the browser responds with:

if ((error.name === 'NotSupportedError'
&& webrtc.capabilities.supportRTCPeerConnection)
|| (error.name === 'NotAllowedError'
&& error.message && error.message.indexOf('Only secure origins') !== -1)) {

So it seems to be a problem with your server setup (Only secure origins are allowed) or your browser does not support audio/video at all (NotSupportedError).

I think we could split the error messages, but I guess there is not a lot we can do about it.

@king-gheedorah
Copy link
Author

Seems to be a client issue... Working properly in Chrome, but still have the https error on Firefox despite having active https certs.

@maurerle
Copy link

maurerle commented Apr 7, 2020

I got the "move your setup to https" error on Safari/Firefox on iOS. We should warn on unsupported platforms (like iOS without Talk-App and MacOS) as suggested in #154
On MacOS in Safari I got a "Error while accessing microphone & camera" error.

This issue is probably related to #930

I first thought that my coturn server might be misconfigured, but it also happens inside my local network. (accessing the frontend through https of course).
What is missing for Safari support as WebRTC is now supported right?

@nickvergessen
Copy link
Member

What is missing for Safari support as WebRTC is now supported right?

It is actually working. Which version are you using?

@maurerle
Copy link

maurerle commented Apr 7, 2020

NC 18.0.3, Talk 8.0.7, Current iOS/Safari on iPad.
What else do you need?

@nickvergessen
Copy link
Member

So Safari 13.1?
Does the iOS work on your iPad?

@maurerle
Copy link

maurerle commented Apr 7, 2020

I will check the version tomorrow, but probably 13.1.
iOS works. Nextcloud Talk App on iPad works too. It is not working in browser.

Same for the Mac and iPhone from someone I wanted to chat with.
But on android and windows devices it works flawless.

Do you think coturn could be a problem here?

@nickvergessen
Copy link
Member

Do you think coturn could be a problem here?

When it works with something else on the same device it's unlikely

@Alphakilo
Copy link

Alphakilo commented Apr 8, 2020

I think I found a solution for this: I disallowed camera and microphone access for Safari („Never“).
This solved the error message:
Settings -> Safari -> Settings for Websites-> Microphone / Camera: „Ask“

@ChildLearningClub
Copy link

Getting the same message “Access to microphone & camera is only possible with HTTPS: Please move your setup to HTTPS“ checking the SSL certificate in the desktop browser gives all green fully ssl supported, and on ios everything works well on safari, but anything other then ios/safari on the mobile gives the message above. I have Nextcloud docker with nginx terminating reverse proxy, so maybe it’s my configuration, but not clear on what the real issue given this message with https clearly enabled on the front end. Any thoughts?

@Alphakilo
Copy link

Getting the same message “Access to microphone & camera is only possible with HTTPS: Please move your setup to HTTPS“ checking the SSL certificate in the desktop browser gives all green fully ssl supported, and on ios everything works well on safari, but anything other then ios/safari on the mobile gives the message above. I have Nextcloud docker with nginx terminating reverse proxy, so maybe it’s my configuration, but not clear on what the real issue given this message with https clearly enabled on the front end. Any thoughts?

Please see the comment above:
#3150 (comment)

@ChildLearningClub
Copy link

ChildLearningClub commented Jun 20, 2020

@Alphakilo Thank you for your response. I apologize I should have been more clear, I don't have any problems whatsoever using Nextcloud Talk on the ios device while using the Safari Browser, No error messages or anything like that, the video and mic connects as expected when given permission. The problem that I am having is that on that same ios device using either the Chrome or Firefox Browsers I get the error message described above and I am not able to connect the video or the mic to join the call. If it is simply that it is not supported that is not clear from the above error message. The fact that it works on all desktop browsers with no issues and even the iphone's own safari browser, but not the other ones seems strange. @nickvergessen is it correct to assume that on ios, firefox and chrome are not supported when we get the message " Access to microphone & camera is only possible with HTTPS: Please move your setup to HTTPS" and that it is not actually an issue with my setup?

@ChildLearningClub
Copy link

Looks like I found my answer: stackoverflow.com. And with opening talky in both ios chrome and firefox mic and video are greyed out and can not be enabled, while webrtc is possible it seems only through apple's own ios safari browser.

@elderec
Copy link

elderec commented Oct 5, 2020

Seems to be a client issue... Working properly in Chrome, but still have the https error on Firefox despite having active https certs.

In my case it was featurePolicy headers in my traefik config. There are several "security" header articles out there that have camera & microphone disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants