Thanks for your reply!
As I said, Spreed.ME works very well inside local network and outside via TURN server. So the related browsers, port forwarding/listening, firewall, shared secrets, TURN settings etc. are working.
I tried now to apply TURN field as you suggested. After trying several times im both directions to call each other (I tried with two nextcloud users on two browser sessions), it did work ~1 of 5 times to have proper video/audio connection via TURN server, which could be seen in my turn.log. However so far it does only work, if I give only TURN server address. With also given STUN address (just the same) it did not work so far, even that STUN is enabled in turnserver.conf etc. But this might be just by chance, because also without STUN address I work just 1/5 times, as I said. I also tried it by phone via mobile internet (which works well with Spreed.ME again), but that did absolutely not work a single time. Watching the turn.log it just get stuck somewhere, sometimes after the (normal) unauthorized connection attempts, sometimes the mobile peer just get deleted for no reason, even that the mobile connection is pretty stable and fast enough for pretty stable Spreed.ME, Skype, WhatsApp video call etc.
Also what I watched is that the spreed app is absolutely slow in recognizing call attempts and showing the video/audio (if it works). I am wondering, if maybe the solution with internal webrtc/spreed server inside nextcloud API or what is just way slower in performance than with dedicated spreed server and therefore does in most cases not work with slow hardware like my Raspberry Pi 2?
Also for me it is little confusing what I have to do/wait for, after call attempt. When A does a call invitation to B via “choose person” drop down menu, person B first sees (after quite some seconds) the user transparent in the users list of the app. Just clicking the user there often results in a failure where both users see “waiting for to take the call” and nothing happens. After again some seconds user B sees the call invitation notification in top bar. Using this to take the call does generally work (just sometimes in my case). What I am missing is a clear not misunderstandable big button in the middle of the screen (while app is opnened of course) that clearly should be pressed to take the call.
Yeah, so far the app is sadly absolutely unusable for me, while I stay with Spreed.ME and dedicated server.
At least I know now, that “cloud.mydomain.com:8443” is principally the right way to give STUN/TURN server address in admin settings ;).
Ah the app seems more verbose now in browser console. I just opened some parts of the log, if someone could help by getting more parts of the log, I could provide that.
video added
Peer {id: "rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD7…ZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ", parent: WebRTC, type: "type", oneway: false, sharemyscreen: false…}
browserPrefix
:
"webkit"
callbacks
:
Object
channels
:
Object
enableDataChannels
:
true
id
:
"rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ"
logger
:
Object
nick
:
"Micha"
oneway
:
false
parent
:
WebRTC
pc
:
PeerConnection
addStream
:
function ()
assumeSetLocalSuccess
:
false
batchIceCandidates
:
0
batchedIceCandidates
:
Array(0)
callbacks
:
Object
config
:
Object
enableChromeNativeSimulcast
:
false
enableMultiStreamHacks
:
false
getLocalStreams
:
function ()
getRemoteStreams
:
function ()
hadLocalIPv6Candidate
:
false
hadLocalRelayCandidate
:
false
hadLocalStunCandidate
:
false
hadRemoteIPv6Candidate
:
true
hadRemoteRelayCandidate
:
true
hadRemoteStunCandidate
:
false
iceCredentials
:
Object
localDescription
:
Object
pc
:
TraceablePeerConnection
remoteDescription
:
Object
removeStream
:
function ()
restrictBandwidth
:
0
_candidateBuffer
:
Array(0)
_localDataChannels
:
Array(4)
_remoteDataChannels
:
Array(0)
iceConnectionState
:
(...)
signalingState
:
(...)
__proto__
:
WildEmitter
receiveMedia
:
Object
sharemyscreen
:
false
sid
:
"1490021422907"
stream
:
MediaStream
type
:
"type"
videoEl
:
video#rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming
accessKey
:
""
assignedSlot
:
null
attributes
:
NamedNodeMap
autoplay
:
true
baseURI
:
"https://path/to/nextcloud/apps/spreed/?roomId=37"
buffered
:
TimeRanges
childElementCount
:
0
childNodes
:
NodeList(0)
children
:
HTMLCollection(0)
classList
:
DOMTokenList(0)
className
:
""
clientHeight
:
1045
clientLeft
:
0
clientTop
:
0
clientWidth
:
2090
contentEditable
:
"inherit"
controls
:
false
crossOrigin
:
null
currentSrc
:
""
currentTime
:
0
dataset
:
DOMStringMap
defaultMuted
:
false
defaultPlaybackRate
:
1
dir
:
""
disableRemotePlayback
:
false
draggable
:
false
duration
:
NaN
ended
:
false
error
:
null
firstChild
:
null
firstElementChild
:
null
height
:
0
hidden
:
false
id
:
"rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming"
innerHTML
:
""
innerText
:
""
isConnected
:
true
isContentEditable
:
false
lang
:
""
lastChild
:
null
lastElementChild
:
null
localName
:
"video"
loop
:
false
mediaKeys
:
null
muted
:
false
namespaceURI
:
"http://www.w3.org/1999/xhtml"
networkState
:
2
nextElementSibling
:
div.avatar-container.hidden
nextSibling
:
div.avatar-container.hidden
nodeName
:
"VIDEO"
nodeType
:
1
nodeValue
:
null
offsetHeight
:
1045
offsetLeft
:
376
offsetParent
:
div#container_rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming.videoContainer.speaking.promoted
offsetTop
:
523
offsetWidth
:
2090
onabort
:
null
onauxclick
:
null
onbeforecopy
:
null
onbeforecut
:
null
onbeforepaste
:
null
onblur
:
null
oncancel
:
null
oncanplay
:
null
oncanplaythrough
:
null
onchange
:
null
onclick
:
null
onclose
:
null
oncontextmenu
:
function ()
oncopy
:
null
oncuechange
:
null
oncut
:
null
ondblclick
:
null
ondrag
:
null
ondragend
:
null
ondragenter
:
null
ondragleave
:
null
ondragover
:
null
ondragstart
:
null
ondrop
:
null
ondurationchange
:
null
onemptied
:
null
onencrypted
:
null
onended
:
null
onerror
:
null
onfocus
:
null
ongotpointercapture
:
null
oninput
:
null
oninvalid
:
null
onkeydown
:
null
onkeypress
:
null
onkeyup
:
null
onload
:
null
onloadeddata
:
null
onloadedmetadata
:
null
onloadstart
:
null
onlostpointercapture
:
null
onmousedown
:
null
onmouseenter
:
null
onmouseleave
:
null
onmousemove
:
null
onmouseout
:
null
onmouseover
:
null
onmouseup
:
null
onmousewheel
:
null
onoperadetachedviewchange
:
null
onoperadetachedviewcontrol
:
null
onpaste
:
null
onpause
:
null
onplay
:
null
onplaying
:
null
onpointercancel
:
null
onpointerdown
:
null
onpointerenter
:
null
onpointerleave
:
null
onpointermove
:
null
onpointerout
:
null
onpointerover
:
null
onpointerup
:
null
onprogress
:
null
onratechange
:
null
onreset
:
null
onresize
:
null
onscroll
:
null
onsearch
:
null
onseeked
:
null
onseeking
:
null
onselect
:
null
onselectstart
:
null
onshow
:
null
onstalled
:
null
onsubmit
:
null
onsuspend
:
null
ontimeupdate
:
null
ontoggle
:
null
onvolumechange
:
null
onwaiting
:
null
onwaitingforkey
:
null
onwebkitfullscreenchange
:
null
onwebkitfullscreenerror
:
null
onwheel
:
null
outerHTML
:
"<video autoplay="" id="rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming"></video>"
outerText
:
""
ownerDocument
:
document
parentElement
:
div#container_rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming.videoContainer.speaking.promoted
parentNode
:
div#container_rw2pKVmBSw8XQpXeKSy0c1mKjG6Jsj3fV2AVvVioEL9Kg7QBD76Ly3DgzG/13lvtF98cm9wVmbshgBD+7dZJOStpEQI7B3S9iyjPTG8RxfLw91T30MvcGEsMQy30Y9p3+G8WoqtLT4Y1qvn6a3V/vrN2Q+6yLpBvoPUjWCwJVZhLaBw/jHNKxVPLmFSgYfw4GAjZL9deGUTA8XZVsi8MxtlLFd8w5SJoCjwuGpT/Rb2RJ4Bk9WL9ieTNT3GdIBJ_type_incoming.videoContainer.speaking.promoted
paused
:
true
playbackRate
:
1
played
:
TimeRanges
poster
:
""
prefix
:
null
preload
:
"auto"
previousElementSibling
:
null
previousSibling
:
null
readyState
:
0
remote
:
RemotePlayback
scrollHeight
:
1045
scrollLeft
:
0
scrollTop
:
0
scrollWidth
:
2090
seekable
:
TimeRanges
seeking
:
false
shadowRoot
:
null
sinkId
:
""
slot
:
""
spellcheck
:
true
src
:
""
srcObject
:
MediaStream
style
:
CSSStyleDeclaration
tabIndex
:
-1
tagName
:
"VIDEO"
textContent
:
""
textTracks
:
TextTrackList
title
:
""
translate
:
true
videoHeight
:
0
videoWidth
:
0
volume
:
1
webkitAudioDecodedByteCount
:
0
webkitDecodedFrameCount
:
0
webkitDisplayingFullscreen
:
false
webkitDroppedFrameCount
:
0
webkitSupportsFullscreen
:
true
webkitVideoDecodedByteCount
:
0
webkitdropzone
:
""
width
:
0
__proto__
:
HTMLVideoElement
__proto__
:
WildEmitter