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

PluginMediaStreamRenderer is not called #324

Closed
picarsite opened this issue Jan 7, 2018 · 38 comments
Closed

PluginMediaStreamRenderer is not called #324

picarsite opened this issue Jan 7, 2018 · 38 comments
Assignees
Milestone

Comments

@picarsite
Copy link

picarsite commented Jan 7, 2018

PluginMediaStreamRenderer is not called. iOS 11.2.1 (iPhone 5s) and macOS High Sierra 10.13.2.

My video element which is added to the DOM after the DOM is rendered initially:

<div id="q-app">
	<div>
		<div style="position: absolute; background-color: transparent; width: 100%; height: 100%;">
			<div id="wrapper">
				<video id="nbVideoEl" autoplay="autoplay" playsinline="true"></video>
			</div>
		</div> 
		<div class="q-carousel text-secondary fullscreen" style="z-index: 1;">
		...........
		</div>
	<div>
</div>

I'm adding the stream to this video element:

    context.state.myRTCPeerConnection.onaddstream = function (event) {
      console.log('OnAddStream')
      document.getElementById('nbVideoEl').srcObject = event.stream
    }

But there is not any PluginMediaStreamRenderer notification in my log:

2018-01-07 15:07:29.123356+0100 DemoApp[274:12225] [DYMTLInitPlatform] platform initialization successful
2018-01-07 15:07:29.184345+0100 DemoApp[274:12025] DiskCookieStorage changing policy from 2 to 0, cookie file: file:///private/var/mobile/Containers/Data/Application/2B0DD265-1771-43CF-BCB1-8AC9B9D94BD2/Library/Cookies/Cookies.binarycookies
2018-01-07 15:07:29.259797+0100 DemoApp[274:12025] Apache Cordova native platform version 4.5.3 is starting.
2018-01-07 15:07:29.261775+0100 DemoApp[274:12025] Multi-tasking -> Device: YES, App: YES
2018-01-07 15:07:29.275537+0100 DemoApp[274:12025] 

Started backup to iCloud! Please be careful.
Your application might be rejected by Apple if you store too much data.
For more information please read "iOS Data Storage Guidelines" at:
https://developer.apple.com/icloud/documentation/data-storage/
To disable web storage backup to iCloud, set the BackupWebStorage preference to "local" in the Cordova config.xml file
2018-01-07 15:07:29.462842+0100 DemoApp[274:12025] [MC] Lazy loading NSBundle MobileCoreServices.framework
2018-01-07 15:07:29.465112+0100 DemoApp[274:12025] [MC] Loaded MobileCoreServices.framework
2018-01-07 15:07:29.478916+0100 DemoApp[274:12025] Using UIWebView
2018-01-07 15:07:29.486153+0100 DemoApp[274:12025] [CDVTimer][console] 0.180006ms
2018-01-07 15:07:29.486759+0100 DemoApp[274:12025] [CDVTimer][handleopenurl] 0.395060ms
2018-01-07 15:07:29.490891+0100 DemoApp[274:12025] [CDVTimer][intentandnavigationfilter] 4.008055ms
2018-01-07 15:07:29.491197+0100 DemoApp[274:12025] [CDVTimer][gesturehandler] 0.187039ms
2018-01-07 15:07:29.502614+0100 DemoApp[274:12025] iosrtcPlugin#pluginInitialize()
2018-01-07 15:07:29.542274+0100 DemoApp[274:12025] PluginGetUserMedia#init()
2018-01-07 15:07:29.542400+0100 DemoApp[274:12025] [CDVTimer][iosrtcplugin] 51.058054ms
2018-01-07 15:07:29.542483+0100 DemoApp[274:12025] [CDVTimer][TotalPluginStartup] 58.421016ms
2018-01-07 15:07:29.642723+0100 DemoApp[274:12238] Metal GPU Frame Capture Enabled
2018-01-07 15:07:29.650219+0100 DemoApp[274:12238] Metal API Validation Enabled
2018-01-07 15:07:32.096116+0100 DemoApp[274:12025] Resetting plugins due to page load.
2018-01-07 15:07:32.096843+0100 DemoApp[274:12025] iosrtcPlugin#onReset() | doing nothing
2018-01-07 15:07:34.515173+0100 DemoApp[274:12025] Finished load of: file:///var/containers/Bundle/Application/F5A9EEDF-F1DC-46A8-878A-A5F568182A8E/DemoApp.app/www/index.html#/
2018-01-07 15:07:34.612386+0100 DemoApp[274:12025] Device is ready!
2018-01-07 15:07:34.612532+0100 DemoApp[274:12025] iosrtc registerGlobals() +0ms
2018-01-07 15:07:35.507919+0100 DemoApp[274:12247] [] <<<< AVOutputDeviceDiscoverySession (FigRouteDiscoverer) >>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery mode to DiscoveryMode_Presence (client: DemoApp)
2018-01-07 15:07:35.650185+0100 DemoApp[274:12025] iosrtc:videoElementsHandler new video element added +544ms
2018-01-07 15:07:35.650351+0100 DemoApp[274:12025] iosrtc:videoElementsHandler observeVideo() +1ms
2018-01-07 15:07:35.650416+0100 DemoApp[274:12025] simple-websocket [e1a325d] connect +1s
2018-01-07 15:07:35.650472+0100 DemoApp[274:12025] Connected to the server.
2018-01-07 15:07:35.650596+0100 DemoApp[274:12025] WebRTC support: "true".
2018-01-07 15:07:35.650743+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection new() | [pcConfig:{"iceServers":[{"urls":"stun:stun1.voiceeclipse.net"}]}, pcConstraints:] +450ms
2018-01-07 15:07:35.651054+0100 DemoApp[274:12025] iosrtcPlugin#new_RTCPeerConnection()
2018-01-07 15:07:35.659004+0100 DemoApp[274:12025] PluginRTCPeerConnection#init()
2018-01-07 15:07:35.659224+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#init()
2018-01-07 15:07:35.669705+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#init() | adding ICE server [url:'stun:stun1.voiceeclipse.net', username:'', password:'******']
2018-01-07 15:07:35.672258+0100 DemoApp[274:12025] PluginRTCPeerConnectionConstraints#init()
2018-01-07 15:07:35.673222+0100 DemoApp[274:12025] PluginRTCPeerConnection#run()
2018-01-07 15:07:35.673300+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#getIceServers()
2018-01-07 15:07:35.673560+0100 DemoApp[274:12025] PluginRTCPeerConnectionConstraints#getConstraints()
2018-01-07 15:07:35.681991+0100 DemoApp[274:12025] THREAD WARNING: ['iosrtcPlugin'] took '30.993896' ms. Plugin should use a background thread.
2018-01-07 15:07:35.682413+0100 DemoApp[274:12025] iosrtc:getUserMedia [original constraints:{"video":true,"audio":false}] +3ms
2018-01-07 15:07:35.682514+0100 DemoApp[274:12025] iosrtc:getUserMedia [computed constraints:{"audio":false,"video":true}] +0ms
2018-01-07 15:07:35.682712+0100 DemoApp[274:12025] iosrtcPlugin#getUserMedia()
2018-01-07 15:07:35.682773+0100 DemoApp[274:12025] PluginGetUserMedia#call()
2018-01-07 15:07:35.687246+0100 DemoApp[274:12025] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-01-07 15:07:35.688194+0100 DemoApp[274:12025] [MC] Reading from public effective user settings.
2018-01-07 15:07:35.696242+0100 DemoApp[274:12025] PluginGetUserMedia#call() | video authorization: authorized
2018-01-07 15:07:35.697400+0100 DemoApp[274:12025] PluginGetUserMedia#call() | video requested (device not specified)
2018-01-07 15:07:35.713793+0100 DemoApp[274:12025] PluginGetUserMedia#call() | chosen video device: <AVCaptureFigVideoDevice: 0x10917ca50 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>
2018-01-07 15:07:35.734216+0100 DemoApp[274:12025] PluginMediaStream#init()
2018-01-07 15:07:35.734845+0100 DemoApp[274:12025] PluginMediaStreamTrack#init()
2018-01-07 15:07:35.736351+0100 DemoApp[274:12025] PluginMediaStreamTrack#run() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED]
2018-01-07 15:07:35.736699+0100 DemoApp[274:12025] PluginMediaStream#run()
2018-01-07 15:07:35.746482+0100 DemoApp[274:12025] THREAD WARNING: ['iosrtcPlugin'] took '63.873047' ms. Plugin should use a background thread.
2018-01-07 15:07:35.750408+0100 DemoApp[274:12025] Login.
2018-01-07 15:07:35.751935+0100 DemoApp[274:12025] Switching loading state to "login".
2018-01-07 15:07:35.752194+0100 DemoApp[274:12025] Username: "uuid".
2018-01-07 15:07:35.752322+0100 DemoApp[274:12025] Switching loading state to "position".
2018-01-07 15:07:36.155197+0100 DemoApp[274:12025] Login successfull.
2018-01-07 15:07:36.155359+0100 DemoApp[274:12025] iosrtc:getUserMedia getUserMedia() | success +562ms
2018-01-07 15:07:36.155500+0100 DemoApp[274:12025] iosrtc:MediaStream create() | [dataFromEvent:{"id":"C3187429-EF26-49F2-8F0F-6669721B9B48-F78BF8A4-660A-4C91-B79F-953FBF0276DA","audioTracks":{},"videoTracks":{"AF806AF8-616D-4DAC-A0DE-6EC019C8BAED":{"readyState":"live","id":"AF806AF8-616D-4DAC-A0DE-6EC019C8BAED","kind":"video","label":"AF806AF8-616D-4DAC-A0DE-6EC019C8BAED","enabled":true}}}] +1ms
2018-01-07 15:07:36.155670+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"AF806AF8-616D-4DAC-A0DE-6EC019C8BAED","kind":"video","label":"AF806AF8-616D-4DAC-A0DE-6EC019C8BAED","enabled":true}] +2ms
2018-01-07 15:07:36.157103+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setListener()
2018-01-07 15:07:36.157923+0100 DemoApp[274:12025] iosrtcPlugin#MediaStream_setListener()
2018-01-07 15:07:36.158100+0100 DemoApp[274:12025] iosrtc:MediaStream emitConnected() +1ms
2018-01-07 15:07:36.158392+0100 DemoApp[274:12025] startConnection
2018-01-07 15:07:36.158456+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addStream() +1ms
2018-01-07 15:07:36.158548+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addStream()
2018-01-07 15:07:36.158720+0100 DemoApp[274:12025] Switching streaming to: "audio".
2018-01-07 15:07:36.158786+0100 DemoApp[274:12025] iosrtc:MediaStream getVideoTracks() +1ms
2018-01-07 15:07:36.158915+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack enabled = false +1ms
2018-01-07 15:07:36.159195+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setEnabled()
2018-01-07 15:07:36.159320+0100 DemoApp[274:12025] iosrtc:MediaStream getAudioTracks() +1ms
2018-01-07 15:07:36.159382+0100 DemoApp[274:12025] Creating the data channel.
2018-01-07 15:07:36.159474+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection createDataChannel() [label:dataChannel, options:{"negotiated":true,"id":0}] +1ms
2018-01-07 15:07:36.159558+0100 DemoApp[274:12025] iosrtc:RTCDataChannel new() | [label:"dataChannel", options:{"negotiated":true,"id":0}] +1ms
2018-01-07 15:07:36.159707+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_createDataChannel()
2018-01-07 15:07:36.160255+0100 DemoApp[274:12205] PluginMediaStreamTrack#setListener() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED]
2018-01-07 15:07:36.160351+0100 DemoApp[274:12205] PluginMediaStream#setListener()
2018-01-07 15:07:36.161551+0100 DemoApp[274:12205] PluginRTCPeerConnection#addStream()
2018-01-07 15:07:36.165100+0100 DemoApp[274:12255] PluginRTCPeerConnection | onnegotiationeeded
2018-01-07 15:07:36.166699+0100 DemoApp[274:12205] PluginMediaStreamTrack#setEnabled() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, value:false]
2018-01-07 15:07:36.170786+0100 DemoApp[274:12255] PluginMediaStreamTrack | state changed [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, state:Optional("live"), enabled:false]
2018-01-07 15:07:36.172826+0100 DemoApp[274:12205] PluginRTCPeerConnection#createDataChannel()
2018-01-07 15:07:36.174081+0100 DemoApp[274:12205] PluginRTCDataChannel#init()
2018-01-07 15:07:36.174919+0100 DemoApp[274:12255] PluginRTCPeerConnection | onnegotiationeeded
2018-01-07 15:07:36.178621+0100 DemoApp[274:12205] PluginRTCDataChannel#run()
2018-01-07 15:07:36.226111+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:negotiationneeded, data:{"type":"negotiationneeded"}] +75ms
2018-01-07 15:07:36.226285+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack onEvent() | [type:statechange, data:{"type":"statechange","readyState":"live","enabled":false}] +2ms
2018-01-07 15:07:36.226423+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:negotiationneeded, data:{"type":"negotiationneeded"}] +0ms
2018-01-07 15:07:36.226532+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:new, data:{"type":"new","channel":{"ordered":true,"readyState":"connecting","protocol":"","maxRetransmits":65535,"id":0,"maxPacketLifeTime":0,"bufferedAmount":0,"negotiated":true}}] +1ms
2018-01-07 15:07:37.573623+0100 DemoApp[274:12025] Got current position: "xxxxxxxxxxxxxxxxxxxxxx".
2018-01-07 15:07:37.573802+0100 DemoApp[274:12025] Switching loading state to "main".
2018-01-07 15:07:41.461385+0100 DemoApp[274:12025] Requesting a neighbor.
2018-01-07 15:07:41.461615+0100 DemoApp[274:12025] Switching loading state to "neighbor".
2018-01-07 15:07:41.561573+0100 DemoApp[274:12025] Got neighbor: d9a04128-5a54-4623-93ac-8af66465f709
2018-01-07 15:07:41.561713+0100 DemoApp[274:12025] setAndSendOffer
2018-01-07 15:07:41.561810+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection createOffer() [options:] +5s
2018-01-07 15:07:41.561967+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_createOffer()
2018-01-07 15:07:41.562420+0100 DemoApp[274:12236] PluginRTCPeerConnection#createOffer()
2018-01-07 15:07:41.562592+0100 DemoApp[274:12236] PluginRTCPeerConnectionConstraints#init()
2018-01-07 15:07:41.562642+0100 DemoApp[274:12236] PluginRTCPeerConnectionConstraints#getConstraints()
2018-01-07 15:07:41.570574+0100 DemoApp[274:12236] PluginRTCPeerConnectionConstraints#deinit()
2018-01-07 15:07:41.572035+0100 DemoApp[274:12255] PluginRTCPeerConnection#createOffer() | success callback
2018-01-07 15:07:41.588118+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection createOffer() | success [desc:{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}] +20ms
2018-01-07 15:07:41.589702+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection setLocalDescription() [desc:{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}] +2ms
2018-01-07 15:07:41.591509+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_setLocalDescription()
2018-01-07 15:07:41.592326+0100 DemoApp[274:12203] PluginRTCPeerConnection#setLocalDescription()
2018-01-07 15:07:41.612392+0100 DemoApp[274:12255] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("have-local-offer")]
2018-01-07 15:07:41.623305+0100 DemoApp[274:12255] PluginRTCPeerConnection#setLocalDescription() | success callback
2018-01-07 15:07:41.625268+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicegatheringstatechange [iceGatheringState:Optional("gathering")]
2018-01-07 15:07:41.629140+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:data, sdpMLineIndex:1, candidate:candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.630269+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:data, sdpMLineIndex:1, candidate:candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.631677+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.636914+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.641058+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.646666+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.666112+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"type":"signalingstatechange","signalingState":"have-local-offer"}] +75ms
2018-01-07 15:07:41.666253+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection setLocalDescription() | success +0ms
2018-01-07 15:07:41.666348+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icegatheringstatechange, data:{"type":"icegatheringstatechange","iceGatheringState":"gathering"}] +1ms
2018-01-07 15:07:41.666451+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"data","sdpMLineIndex":1,"candidate":"candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 ufrag frPK network-id 2 network-cost 10"}}] +0ms
2018-01-07 15:07:41.677041+0100 DemoApp[274:12025] THREAD WARNING: ['Console'] took '10.554932' ms. Plugin should use a background thread.
2018-01-07 15:07:41.677501+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.677673+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 53280 DTLS/SCTP 5000\r\nc=IN IP6 fd00::4552:1734:700:c6f4\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"data","sdpMLineIndex":1,"candidate":"candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 ufrag frPK network-id 1 network-cost 10"}}] +1ms
2018-01-07 15:07:41.679187+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.679423+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 9 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 ufrag frPK network-id 2 network-cost 10"}}] +1ms
2018-01-07 15:07:41.685143+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.685409+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 54687 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP6 fd00::4552:1734:700:c6f4\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 ufrag frPK network-id 1 network-cost 10"}}] +1ms
2018-01-07 15:07:41.688706+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.688954+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 ufrag frPK network-id 2 network-cost 10"}}] +0ms
2018-01-07 15:07:41.691614+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.691730+0100 DemoApp[274:12025] Offer was sent.
2018-01-07 15:07:41.691914+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:62154 IN IP6 fd00::4552:1734:700:c6f4\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 ufrag frPK network-id 1 network-cost 10"}}] +2ms
2018-01-07 15:07:41.693855+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.710979+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.736205+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:data, sdpMLineIndex:1, candidate:candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.738332+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:data, sdpMLineIndex:1, candidate:candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.740801+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.744294+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:2609216701 1 tcp 1518214911 192.168.0.102 49530 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.746446+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:3746205010 2 tcp 1518285566 fd00::4552:1734:700:c6f4 49531 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10]
2018-01-07 15:07:41.748753+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicecandidate [sdpMid:video, sdpMLineIndex:0, candidate:candidate:2609216701 2 tcp 1518214910 192.168.0.102 49532 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10]
2018-01-07 15:07:41.757705+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.757855+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.757925+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.757980+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.758034+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:41.783420+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"data","sdpMLineIndex":1,"candidate":"candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10"}}] +101ms
2018-01-07 15:07:41.797058+0100 DemoApp[274:12025] THREAD WARNING: ['Console'] took '14.784912' ms. Plugin should use a background thread.
2018-01-07 15:07:41.797523+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.797689+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"data","sdpMLineIndex":1,"candidate":"candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10"}}] +1ms
2018-01-07 15:07:41.804782+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.804999+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10"}}] +1ms
2018-01-07 15:07:41.806624+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.806934+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:2609216701 1 tcp 1518214911 192.168.0.102 49530 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10"}}] +1ms
2018-01-07 15:07:41.808852+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.809061+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49530 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:3746205010 2 tcp 1518285566 fd00::4552:1734:700:c6f4 49531 typ host tcptype passive generation 0 ufrag frPK network-id 2 network-cost 10"}}] +0ms
2018-01-07 15:07:41.812230+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.812414+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49530 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 2 tcp 1518285566 fd00::4552:1734:700:c6f4 49531 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:2609216701 2 tcp 1518214910 192.168.0.102 49532 typ host tcptype passive generation 0 ufrag frPK network-id 1 network-cost 10"}}] +12ms
2018-01-07 15:07:41.819445+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.871396+0100 DemoApp[274:12025] Setting neighbors answer as remote description.
2018-01-07 15:07:41.871534+0100 DemoApp[274:12025] Remote description set.
2018-01-07 15:07:41.871646+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection setRemoteDescription() [desc:{"type":"answer","sdp":"v=0\r\no=mozilla...THIS_IS_SDPARTA-58.0 5588326968189423035 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 82:EE:9A:6B:D0:31:28:47:BC:FB:7E:C3:DE:C4:03:96:C3:90:B1:DC:DC:EA:A4:73:81:37:7A:B6:62:2C:D4:1C\r\na=group:BUNDLE video data\r\na=ice-options:trickle\r\na=msid-semantic:WMS *\r\nm=video 9 UDP/TLS/RTP/SAVPF 100\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=fmtp:100 max-fs=12288;max-fr=60\r\na=ice-pwd:66cbc649efd9056fcb5eb06142158af9\r\na=ice-ufrag:9c2d3f32\r\na=mid:video\r\na=msid:{126c0fc1-2f75-4e96-80b1-454e3eaf278d} {21713597-e38b-4074-9061-49982b0dafe3}\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=setup:active\r\na=ssrc:383855642 cname:{7cc27007-13d2-46da-bd56-8ebfe33dbc3e}\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=sendrecv\r\na=ice-pwd:66cbc649efd9056fcb5eb06142158af9\r\na=ice-ufrag:9c2d3f32\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 256\r\na=setup:active\r\na=max-message-size:1073741823\r\n"}] +78ms
2018-01-07 15:07:41.872470+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_setRemoteDescription()
2018-01-07 15:07:41.872729+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.872850+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:0 1 UDP 2122252543 192.168.56.1 58585 typ host"}] +3ms
2018-01-07 15:07:41.872942+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.873093+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.873179+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:2 1 UDP 2122187007 192.168.153.1 58586 typ host"}] +2ms
2018-01-07 15:07:41.873260+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.873341+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.873884+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:4 1 UDP 2122121471 192.168.209.1 58587 typ host"}] +3ms
2018-01-07 15:07:41.873989+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.874099+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.874205+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:6 1 UDP 2122055935 fd00::71f9:2702:9ed7:15d6 58588 typ host"}] +4ms
2018-01-07 15:07:41.874315+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.873407+0100 DemoApp[274:12308] PluginRTCPeerConnection#setRemoteDescription()
2018-01-07 15:07:41.883870+0100 DemoApp[274:12255] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("stable")]
2018-01-07 15:07:41.908705+0100 DemoApp[274:12255] PluginRTCPeerConnection | oniceconnectionstatechange [iceConnectionState:Optional("checking")]
2018-01-07 15:07:41.910707+0100 DemoApp[274:12255] PluginRTCPeerConnection | onaddstream
2018-01-07 15:07:41.911016+0100 DemoApp[274:12255] PluginMediaStream#init()
2018-01-07 15:07:41.911192+0100 DemoApp[274:12255] PluginMediaStreamTrack#init()
2018-01-07 15:07:41.911474+0100 DemoApp[274:12255] PluginMediaStreamTrack#run() [kind:video, id:{21713597-e38b-4074-9061-49982b0dafe3}]
2018-01-07 15:07:41.911532+0100 DemoApp[274:12255] PluginMediaStream#run()
2018-01-07 15:07:41.912012+0100 DemoApp[274:12255] PluginRTCPeerConnection#setRemoteDescription() | success callback
2018-01-07 15:07:41.912580+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.918411+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.920660+0100 DemoApp[274:12255] PluginRTCPeerConnection | onicegatheringstatechange [iceGatheringState:Optional("complete")]
2018-01-07 15:07:41.924018+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.930284+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.946359+0100 DemoApp[274:12255] PluginRTCPeerConnection | oniceconnectionstatechange [iceConnectionState:Optional("connected")]
2018-01-07 15:07:41.966564+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.966801+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:8 1 UDP 2121990399 fd00::f1a0:3f5d:30b0:2f99 58589 typ host"}] +71ms
2018-01-07 15:07:41.966922+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.967152+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.967165+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.967277+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:10 1 UDP 2121924863 192.168.0.152 58590 typ host"}] +2ms
2018-01-07 15:07:41.967372+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.967459+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.967544+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:12 1 TCP 2105524479 192.168.56.1 9 typ host tcptype active"}] +0ms
2018-01-07 15:07:41.967621+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.967692+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.967955+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:13 1 TCP 2105458943 192.168.153.1 9 typ host tcptype active"}] +6ms
2018-01-07 15:07:41.968041+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.968127+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.968209+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:14 1 TCP 2105393407 192.168.209.1 9 typ host tcptype active"}] +10ms
2018-01-07 15:07:41.968285+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.968358+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:41.968437+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:15 1 TCP 2105327871 fd00::71f9:2702:9ed7:15d6 9 typ host tcptype active"}] +1ms
2018-01-07 15:07:41.968880+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:41.969017+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"type":"signalingstatechange","signalingState":"stable"}] +1ms
2018-01-07 15:07:41.969138+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:iceconnectionstatechange, data:{"type":"iceconnectionstatechange","iceConnectionState":"checking"}] +1ms
2018-01-07 15:07:41.969199+0100 DemoApp[274:12025] onIceConnectionState: checking
2018-01-07 15:07:41.969281+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:addstream, data:{"type":"addstream","stream":{"id":"{126c0fc1-2f75-4e96-80b1-454e3eaf278d}-0027D620-3F0C-45D4-8A43-9C8D94DEECB9","audioTracks":{},"videoTracks":{"{21713597-e38b-4074-9061-49982b0dafe3}":{"readyState":"live","id":"{21713597-e38b-4074-9061-49982b0dafe3}","kind":"video","label":"{21713597-e38b-4074-9061-49982b0dafe3}","enabled":true}}}}] +0ms
2018-01-07 15:07:41.970464+0100 DemoApp[274:12025] iosrtc:MediaStream create() | [dataFromEvent:{"id":"{126c0fc1-2f75-4e96-80b1-454e3eaf278d}-0027D620-3F0C-45D4-8A43-9C8D94DEECB9","audioTracks":{},"videoTracks":{"{21713597-e38b-4074-9061-49982b0dafe3}":{"readyState":"live","id":"{21713597-e38b-4074-9061-49982b0dafe3}","kind":"video","label":"{21713597-e38b-4074-9061-49982b0dafe3}","enabled":true}}}] +0ms
2018-01-07 15:07:41.970565+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"{21713597-e38b-4074-9061-49982b0dafe3}","kind":"video","label":"{21713597-e38b-4074-9061-49982b0dafe3}","enabled":true}] +1ms
2018-01-07 15:07:41.970666+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setListener()
2018-01-07 15:07:41.970827+0100 DemoApp[274:12025] iosrtcPlugin#MediaStream_setListener()
2018-01-07 15:07:41.970931+0100 DemoApp[274:12025] OnAddStream
2018-01-07 15:07:41.971477+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection setRemoteDescription() | success +1ms
2018-01-07 15:07:41.971566+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +0ms
2018-01-07 15:07:41.971669+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icegatheringstatechange, data:{"type":"icegatheringstatechange","iceGatheringState":"complete"}] +1ms
2018-01-07 15:07:41.971810+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:icecandidate, data:{"type":"icecandidate","localDescription":{"type":"offer","sdp":"v=0\r\no=- 1775052181689323397 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video data\r\na=msid-semantic: WMS C3187429-EF26-49F2-8F0F-6669721B9B48\r\nm=video 62153 UDP/TLS/RTP/SAVPF 100 101 107 116 117 96 97 99 98\r\nc=IN IP4 192.168.0.102\r\na=rtcp:60682 IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 54687 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 62153 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:2445898146 2 udp 2122265342 fd00::4552:1734:700:c6f4 62154 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 2 udp 2122194686 192.168.0.102 60682 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49529 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49530 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 2 tcp 1518285566 fd00::4552:1734:700:c6f4 49531 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 2 tcp 1518214910 192.168.0.102 49532 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:video\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtpmap:101 VP9/90000\r\na=rtcp-fb:101 ccm fir\r\na=rtcp-fb:101 nack\r\na=rtcp-fb:101 nack pli\r\na=rtcp-fb:101 goog-remb\r\na=rtcp-fb:101 transport-cc\r\na=rtpmap:107 H264/90000\r\na=rtcp-fb:107 ccm fir\r\na=rtcp-fb:107 nack\r\na=rtcp-fb:107 nack pli\r\na=rtcp-fb:107 goog-remb\r\na=rtcp-fb:107 transport-cc\r\na=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=101\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=107\r\na=rtpmap:98 rtx/90000\r\na=fmtp:98 apt=116\r\na=ssrc-group:FID 2495618853 1905943960\r\na=ssrc:2495618853 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:2495618853 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:2495618853 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:2495618853 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 cname:aKaZMlaeTwcIx8Ot\r\na=ssrc:1905943960 msid:C3187429-EF26-49F2-8F0F-6669721B9B48 AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\na=ssrc:1905943960 mslabel:C3187429-EF26-49F2-8F0F-6669721B9B48\r\na=ssrc:1905943960 label:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED\r\nm=application 54686 DTLS/SCTP 5000\r\nc=IN IP4 192.168.0.102\r\na=candidate:2445898146 1 udp 2122265343 fd00::4552:1734:700:c6f4 53280 typ host generation 0 network-id 2 network-cost 10\r\na=candidate:3573973069 1 udp 2122194687 192.168.0.102 54686 typ host generation 0 network-id 1 network-cost 10\r\na=candidate:3746205010 1 tcp 1518285567 fd00::4552:1734:700:c6f4 49527 typ host tcptype passive generation 0 network-id 2 network-cost 10\r\na=candidate:2609216701 1 tcp 1518214911 192.168.0.102 49528 typ host tcptype passive generation 0 network-id 1 network-cost 10\r\na=ice-ufrag:frPK\r\na=ice-pwd:IiTIJC/fCpvA6GsLcaW8Dhla\r\na=fingerprint:sha-256 89:EA:0F:94:6A:9A:B5:2F:08:0A:21:ED:5D:EB:A9:31:85:77:4D:D3:66:2F:3C:C6:39:82:23:1F:02:69:EF:91\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"},"candidate":false}] +0ms
2018-01-07 15:07:41.975581+0100 DemoApp[274:12025] OnIceCandidate
2018-01-07 15:07:41.975698+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +0ms
2018-01-07 15:07:41.975753+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +1ms
2018-01-07 15:07:41.975885+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +0ms
2018-01-07 15:07:41.996814+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:41.999919+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.002210+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.011832+0100 DemoApp[274:12255] PluginRTCDataChannel | state changed [state:Optional("open")]
2018-01-07 15:07:42.013834+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.018151+0100 DemoApp[274:12308] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.021973+0100 DemoApp[274:12308] PluginMediaStreamTrack#setListener() [kind:video, id:{21713597-e38b-4074-9061-49982b0dafe3}]
2018-01-07 15:07:42.022102+0100 DemoApp[274:12308] PluginMediaStream#setListener()
2018-01-07 15:07:42.168762+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:iceconnectionstatechange, data:{"type":"iceconnectionstatechange","iceConnectionState":"connected"}] +60ms
2018-01-07 15:07:42.168970+0100 DemoApp[274:12025] iosrtc:MediaStream emitConnected() +1ms
2018-01-07 15:07:42.169032+0100 DemoApp[274:12025] onIceConnectionState: connected
2018-01-07 15:07:42.169234+0100 DemoApp[274:12025] setMyRTCPeerConnectionReadyStatusTo: true
2018-01-07 15:07:42.169373+0100 DemoApp[274:12025] Watcher registred myRTCPeerConnectionReadyStatus changed to: true
2018-01-07 15:07:42.233403+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:42.233574+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:16 1 TCP 2105262335 fd00::f1a0:3f5d:30b0:2f99 9 typ host tcptype active"}] +176ms
2018-01-07 15:07:42.233725+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:42.233933+0100 DemoApp[274:12025] Setting neighbors candidate as ice candidate.
2018-01-07 15:07:42.234063+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | [candidate:{"sdpMid":"video","sdpMLineIndex":0,"candidate":"candidate:17 1 TCP 2105196799 192.168.0.152 9 typ host tcptype active"}] +1ms
2018-01-07 15:07:42.234161+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addIceCandidate()
2018-01-07 15:07:42.234229+0100 DemoApp[274:12236] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.234263+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234320+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234373+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234424+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234473+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234532+0100 DemoApp[274:12025] Candidate was sent.
2018-01-07 15:07:42.234584+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +26ms
2018-01-07 15:07:42.234638+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +1ms
2018-01-07 15:07:42.234847+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +1ms
2018-01-07 15:07:42.234942+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:statechange, data:{"type":"statechange","readyState":"open"}] +0ms
2018-01-07 15:07:42.234998+0100 DemoApp[274:12025] myRTCPeerConnectionDataChannel.onOpen
2018-01-07 15:07:42.235048+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +1ms
2018-01-07 15:07:42.235101+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +0ms
2018-01-07 15:07:42.235152+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +0ms
2018-01-07 15:07:42.244860+0100 DemoApp[274:12236] PluginRTCPeerConnection#addIceCandidate()
2018-01-07 15:07:42.327725+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +62ms
2018-01-07 15:07:42.327876+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addIceCandidate() | success +3ms
2018-01-07 15:07:42.374563+0100 DemoApp[274:12025] User slided to: 1 (direction: next)
2018-01-07 15:07:44.819055+0100 DemoApp[274:12255] PluginRTCDataChannel | utf8 message received
2018-01-07 15:07:44.862682+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:message, data:{"type":"message","message":"{\"type\":\"camera\",\"status\":\"on\"}"}] +3s
2018-01-07 15:07:44.862822+0100 DemoApp[274:12025] Data channel received a message of type: camera
2018-01-07 15:07:44.862944+0100 DemoApp[274:12025] Neighbors camera status changed to: on
2018-01-07 15:07:48.067198+0100 DemoApp[274:12025] btnSwitchToCameraClick
2018-01-07 15:07:48.067438+0100 DemoApp[274:12025] Switching streaming to: "video".
2018-01-07 15:07:48.067531+0100 DemoApp[274:12025] iosrtc:MediaStream getVideoTracks() +3s
2018-01-07 15:07:48.067710+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack enabled = true +1ms
2018-01-07 15:07:48.067823+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setEnabled()
2018-01-07 15:07:48.068004+0100 DemoApp[274:12025] iosrtc:MediaStream getAudioTracks() +1ms
2018-01-07 15:07:48.068113+0100 DemoApp[274:12025] sendDataChannelMessage: {"type":"camera","status":"on"}
2018-01-07 15:07:48.068194+0100 DemoApp[274:12025] iosrtc:RTCDataChannel send() | [data:"{\"type\":\"camera\",\"status\":\"on\"}"] +2ms
2018-01-07 15:07:48.068601+0100 DemoApp[274:12238] PluginMediaStreamTrack#setEnabled() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, value:true]
2018-01-07 15:07:48.069541+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_RTCDataChannel_sendString()
2018-01-07 15:07:48.072363+0100 DemoApp[274:12255] PluginMediaStreamTrack | state changed [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, state:Optional("live"), enabled:true]
2018-01-07 15:07:48.074711+0100 DemoApp[274:12238] PluginRTCPeerConnection#RTCDataChannel_sendString()
2018-01-07 15:07:48.074994+0100 DemoApp[274:12238] PluginRTCDataChannel#sendString()
2018-01-07 15:07:48.229716+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack onEvent() | [type:statechange, data:{"type":"statechange","readyState":"live","enabled":true}] +145ms
2018-01-07 15:07:48.374964+0100 DemoApp[274:12025] User slided to: 2 (direction: next)
2018-01-07 15:07:57.508845+0100 DemoApp[274:12255] PluginRTCPeerConnection | oniceconnectionstatechange [iceConnectionState:Optional("completed")]
2018-01-07 15:07:57.514309+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:iceconnectionstatechange, data:{"type":"iceconnectionstatechange","iceConnectionState":"completed"}] +9s
2018-01-07 15:07:57.514457+0100 DemoApp[274:12025] onIceConnectionState: completed
2018-01-07 15:07:57.514522+0100 DemoApp[274:12025] setMyRTCPeerConnectionReadyStatusTo: true
2018-01-07 15:08:17.857928+0100 DemoApp[274:12025] User slided to: 1 (direction: previous)
2018-01-07 15:08:17.858128+0100 DemoApp[274:12025] Switching streaming to: "audio".
2018-01-07 15:08:17.858191+0100 DemoApp[274:12025] iosrtc:MediaStream getVideoTracks() +20s
2018-01-07 15:08:17.858244+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack enabled = false +0ms
2018-01-07 15:08:17.858474+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setEnabled()
2018-01-07 15:08:17.858767+0100 DemoApp[274:12025] iosrtc:MediaStream getAudioTracks() +0ms
2018-01-07 15:08:17.858937+0100 DemoApp[274:12025] sendDataChannelMessage: {"type":"camera","status":"off"}
2018-01-07 15:08:17.859061+0100 DemoApp[274:12025] iosrtc:RTCDataChannel send() | [data:"{\"type\":\"camera\",\"status\":\"off\"}"] +1ms
2018-01-07 15:08:17.859157+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_RTCDataChannel_sendString()
2018-01-07 15:08:17.860909+0100 DemoApp[274:12236] PluginMediaStreamTrack#setEnabled() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, value:false]
2018-01-07 15:08:17.861716+0100 DemoApp[274:12255] PluginMediaStreamTrack | state changed [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, state:Optional("live"), enabled:false]
2018-01-07 15:08:17.864166+0100 DemoApp[274:12236] PluginRTCPeerConnection#RTCDataChannel_sendString()
2018-01-07 15:08:17.864545+0100 DemoApp[274:12236] PluginRTCDataChannel#sendString()
2018-01-07 15:08:17.893740+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack onEvent() | [type:statechange, data:{"type":"statechange","readyState":"live","enabled":false}] +76ms
2018-01-07 15:08:18.193354+0100 DemoApp[274:12255] PluginRTCDataChannel | utf8 message received
2018-01-07 15:08:18.218803+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:message, data:{"type":"message","message":"{\"type\":\"camera\",\"status\":\"off\"}"}] +341ms
2018-01-07 15:08:18.218944+0100 DemoApp[274:12025] Data channel received a message of type: camera
2018-01-07 15:08:18.219029+0100 DemoApp[274:12025] Neighbors camera status changed to: off
2018-01-07 15:08:19.634042+0100 DemoApp[274:12025] User slided to: 0 (direction: previous)
2018-01-07 15:08:19.634209+0100 DemoApp[274:12025] Leave.
2018-01-07 15:08:19.703248+0100 DemoApp[274:12025] Neighbor leaved.
2018-01-07 15:08:19.703380+0100 DemoApp[274:12025] Neighbors camera status changed to: off
2018-01-07 15:08:19.703442+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection close() +1s
2018-01-07 15:08:19.703544+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_close()
2018-01-07 15:08:19.703803+0100 DemoApp[274:12236] PluginRTCPeerConnection#close()
2018-01-07 15:08:19.703839+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection new() | [pcConfig:{"iceServers":[{"urls":"stun:stun1.voiceeclipse.net","url":"stun:stun1.voiceeclipse.net"}]}, pcConstraints:] +1ms
2018-01-07 15:08:19.703955+0100 DemoApp[274:12025] iosrtcPlugin#new_RTCPeerConnection()
2018-01-07 15:08:19.704048+0100 DemoApp[274:12025] PluginRTCPeerConnection#init()
2018-01-07 15:08:19.704090+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#init()
2018-01-07 15:08:19.704203+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#init() | adding ICE server [url:'stun:stun1.voiceeclipse.net', username:'', password:'******']
2018-01-07 15:08:19.704275+0100 DemoApp[274:12025] PluginRTCPeerConnectionConstraints#init()
2018-01-07 15:08:19.704322+0100 DemoApp[274:12025] PluginRTCPeerConnection#run()
2018-01-07 15:08:19.704392+0100 DemoApp[274:12025] PluginRTCPeerConnectionConfig#getIceServers()
2018-01-07 15:08:19.704476+0100 DemoApp[274:12025] PluginRTCPeerConnectionConstraints#getConstraints()
2018-01-07 15:08:19.708161+0100 DemoApp[274:12255] PluginRTCPeerConnection | oniceconnectionstatechange [iceConnectionState:Optional("closed")]
2018-01-07 15:08:19.708698+0100 DemoApp[274:12255] PluginRTCPeerConnection | onsignalingstatechange [signalingState:Optional("closed")]
2018-01-07 15:08:19.709070+0100 DemoApp[274:12255] PluginMediaStreamTrack | state changed [kind:video, id:{21713597-e38b-4074-9061-49982b0dafe3}, state:Optional("ended"), enabled:true]
2018-01-07 15:08:19.724871+0100 DemoApp[274:12255] PluginRTCDataChannel | state changed [state:Optional("closing")]
2018-01-07 15:08:19.725772+0100 DemoApp[274:12255] PluginRTCDataChannel | state changed [state:Optional("closed")]
2018-01-07 15:08:19.738774+0100 DemoApp[274:12236] PluginRTCPeerConnection#deinit()
2018-01-07 15:08:19.739993+0100 DemoApp[274:12025] THREAD WARNING: ['iosrtcPlugin'] took '36.047119' ms. Plugin should use a background thread.
2018-01-07 15:08:19.740337+0100 DemoApp[274:12025] iosrtc:getUserMedia [original constraints:{"video":true,"audio":false}] +1ms
2018-01-07 15:08:19.740430+0100 DemoApp[274:12025] iosrtc:getUserMedia [computed constraints:{"audio":false,"video":true}] +0ms
2018-01-07 15:08:19.740634+0100 DemoApp[274:12025] iosrtcPlugin#getUserMedia()
2018-01-07 15:08:19.740695+0100 DemoApp[274:12025] PluginGetUserMedia#call()
2018-01-07 15:08:19.740866+0100 DemoApp[274:12025] PluginGetUserMedia#call() | video authorization: authorized
2018-01-07 15:08:19.742939+0100 DemoApp[274:12236] PluginRTCPeerConnectionConfig#deinit()
2018-01-07 15:08:19.743066+0100 DemoApp[274:12236] PluginRTCPeerConnectionConstraints#deinit()
2018-01-07 15:08:19.743121+0100 DemoApp[274:12236] PluginRTCDataChannel#deinit()
2018-01-07 15:08:19.743167+0100 DemoApp[274:12025] PluginGetUserMedia#call() | video requested (device not specified)
2018-01-07 15:08:19.743458+0100 DemoApp[274:12025] PluginGetUserMedia#call() | chosen video device: <AVCaptureFigVideoDevice: 0x10917ca50 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]>
2018-01-07 15:08:19.978534+0100 DemoApp[274:12025] PluginMediaStream#init()
2018-01-07 15:08:19.978868+0100 DemoApp[274:12025] PluginMediaStreamTrack#init()
2018-01-07 15:08:19.979277+0100 DemoApp[274:12025] PluginMediaStreamTrack#run() [kind:video, id:885533D6-6501-43A2-8542-33A384DB41E4]
2018-01-07 15:08:19.979379+0100 DemoApp[274:12025] PluginMediaStream#run()
2018-01-07 15:08:19.980406+0100 DemoApp[274:12025] THREAD WARNING: ['iosrtcPlugin'] took '239.781006' ms. Plugin should use a background thread.
2018-01-07 15:08:19.983335+0100 DemoApp[274:12025] Switching loading state to "main".
2018-01-07 15:08:19.983470+0100 DemoApp[274:12025] Leave successfull.
2018-01-07 15:08:20.085956+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:iceconnectionstatechange, data:{"type":"iceconnectionstatechange","iceConnectionState":"closed"}] +301ms
2018-01-07 15:08:20.086114+0100 DemoApp[274:12025] onIceConnectionState: new
2018-01-07 15:08:20.086182+0100 DemoApp[274:12025] setMyRTCPeerConnectionReadyStatusTo: false
2018-01-07 15:08:20.086241+0100 DemoApp[274:12025] Watcher registred myRTCPeerConnectionReadyStatus changed to: false
2018-01-07 15:08:20.086339+0100 DemoApp[274:12025] Switching streaming to: "audio".
2018-01-07 15:08:20.086398+0100 DemoApp[274:12025] iosrtc:MediaStream getVideoTracks() +1ms
2018-01-07 15:08:20.086451+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack enabled = false +0ms
2018-01-07 15:08:20.086553+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setEnabled()
2018-01-07 15:08:20.086747+0100 DemoApp[274:12025] iosrtc:MediaStream getAudioTracks() +0ms
2018-01-07 15:08:20.086968+0100 DemoApp[274:12025] Switching loading state to "main".
2018-01-07 15:08:20.087375+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:signalingstatechange, data:{"type":"signalingstatechange","signalingState":"closed"}] +11ms
2018-01-07 15:08:20.087521+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack onEvent() | [type:statechange, data:{"type":"statechange","readyState":"ended","enabled":true}] +0ms
2018-01-07 15:08:20.087852+0100 DemoApp[274:12025] iosrtc:MediaStream all tracks are ended, releasing MediaStream +1ms
2018-01-07 15:08:20.087945+0100 DemoApp[274:12025] iosrtcPlugin#MediaStream_release()
2018-01-07 15:08:20.088015+0100 DemoApp[274:12025] PluginMediaStream#deinit()
2018-01-07 15:08:20.087093+0100 DemoApp[274:12236] PluginMediaStreamTrack#setEnabled() [kind:video, id:AF806AF8-616D-4DAC-A0DE-6EC019C8BAED, value:false]
2018-01-07 15:08:20.088511+0100 DemoApp[274:12025] PluginMediaStreamTrack#deinit()
2018-01-07 15:08:20.088826+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:statechange, data:{"type":"statechange","readyState":"closing"}] +1ms
2018-01-07 15:08:20.090595+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:statechange, data:{"type":"statechange","readyState":"closed"}] +0ms
2018-01-07 15:08:20.090692+0100 DemoApp[274:12025] DataChannel closed.
2018-01-07 15:08:20.090748+0100 DemoApp[274:12025] iosrtc:getUserMedia getUserMedia() | success +1ms
2018-01-07 15:08:20.090865+0100 DemoApp[274:12025] iosrtc:MediaStream create() | [dataFromEvent:{"id":"7058C678-38BF-4133-84EE-4794A778CF81-2E9AE8C8-F2A3-4B7C-BC79-95C52D3F8C2B","audioTracks":{},"videoTracks":{"885533D6-6501-43A2-8542-33A384DB41E4":{"readyState":"live","id":"885533D6-6501-43A2-8542-33A384DB41E4","kind":"video","label":"885533D6-6501-43A2-8542-33A384DB41E4","enabled":true}}}] +0ms
2018-01-07 15:08:20.090957+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"885533D6-6501-43A2-8542-33A384DB41E4","kind":"video","label":"885533D6-6501-43A2-8542-33A384DB41E4","enabled":true}] +0ms
2018-01-07 15:08:20.092903+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setListener()
2018-01-07 15:08:20.093100+0100 DemoApp[274:12025] iosrtcPlugin#MediaStream_setListener()
2018-01-07 15:08:20.093191+0100 DemoApp[274:12025] iosrtc:MediaStream emitConnected() +0ms
2018-01-07 15:08:20.093436+0100 DemoApp[274:12025] startConnection
2018-01-07 15:08:20.093546+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection addStream() +1ms
2018-01-07 15:08:20.093631+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_addStream()
2018-01-07 15:08:20.093773+0100 DemoApp[274:12025] Switching streaming to: "audio".
2018-01-07 15:08:20.094086+0100 DemoApp[274:12025] iosrtc:MediaStream getVideoTracks() +0ms
2018-01-07 15:08:20.094257+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack enabled = false +0ms
2018-01-07 15:08:20.094358+0100 DemoApp[274:12025] iosrtcPlugin#MediaStreamTrack_setEnabled()
2018-01-07 15:08:20.094478+0100 DemoApp[274:12025] iosrtc:MediaStream getAudioTracks() +0ms
2018-01-07 15:08:20.095034+0100 DemoApp[274:12025] Creating the data channel.
2018-01-07 15:08:20.095183+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection createDataChannel() [label:dataChannel, options:{"negotiated":true,"id":0}] +1ms
2018-01-07 15:08:20.095317+0100 DemoApp[274:12025] iosrtc:RTCDataChannel new() | [label:"dataChannel", options:{"negotiated":true,"id":0}] +0ms
2018-01-07 15:08:20.095858+0100 DemoApp[274:12025] iosrtcPlugin#RTCPeerConnection_createDataChannel()
2018-01-07 15:08:20.094662+0100 DemoApp[274:12236] PluginMediaStreamTrack#setListener() [kind:video, id:885533D6-6501-43A2-8542-33A384DB41E4]
2018-01-07 15:08:20.096153+0100 DemoApp[274:12236] PluginMediaStream#setListener()
2018-01-07 15:08:20.096205+0100 DemoApp[274:12236] PluginRTCPeerConnection#addStream()
2018-01-07 15:08:20.096636+0100 DemoApp[274:12255] PluginRTCPeerConnection | onnegotiationeeded
2018-01-07 15:08:20.099008+0100 DemoApp[274:12236] PluginMediaStreamTrack#setEnabled() [kind:video, id:885533D6-6501-43A2-8542-33A384DB41E4, value:false]
2018-01-07 15:08:20.100245+0100 DemoApp[274:12255] PluginMediaStreamTrack | state changed [kind:video, id:885533D6-6501-43A2-8542-33A384DB41E4, state:Optional("live"), enabled:false]
2018-01-07 15:08:20.101728+0100 DemoApp[274:12236] PluginRTCPeerConnection#createDataChannel()
2018-01-07 15:08:20.101875+0100 DemoApp[274:12236] PluginRTCDataChannel#init()
2018-01-07 15:08:20.102009+0100 DemoApp[274:12255] PluginRTCPeerConnection | onnegotiationeeded
2018-01-07 15:08:20.104722+0100 DemoApp[274:12236] PluginRTCDataChannel#run()
2018-01-07 15:08:20.108118+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:negotiationneeded, data:{"type":"negotiationneeded"}] +97ms
2018-01-07 15:08:20.117017+0100 DemoApp[274:12025] iosrtc:MediaStreamTrack onEvent() | [type:statechange, data:{"type":"statechange","readyState":"live","enabled":false}] +9ms
2018-01-07 15:08:20.117216+0100 DemoApp[274:12025] iosrtc:RTCPeerConnection onEvent() | [type:negotiationneeded, data:{"type":"negotiationneeded"}] +0ms
2018-01-07 15:08:20.117329+0100 DemoApp[274:12025] iosrtc:RTCDataChannel onEvent() | [type:new, data:{"type":"new","channel":{"ordered":true,"readyState":"connecting","protocol":"","maxRetransmits":65535,"id":0,"maxPacketLifeTime":0,"bufferedAmount":0,"negotiated":true}}] +1ms

OnAddStream is called when the stream is assigned to the video element:
2018-01-07 15:07:41.970931+0100 DemoApp[274:12025] OnAddStream

What can be the problem? I'm already frustrated.

Best regards

@sysnajar
Copy link

Hi , I 've had the same pain :).
I want to use only the local video rendering , here's how I've made local video display correctly.

video.src = URL.createObjectURL(stream); // set up src attribute once stream is ready
cordova.plugins.iosrtc.observeVideo(video); // tell the plugin to handle your video tag manually

@streak7
Copy link

streak7 commented Feb 4, 2018

i've did a bit of research but i couldn't find a solution yet. the xhr request in the handleVideo function (cordova-plugin-iosrtc.js) has a problem. with the xhr response type 'blob' the event 'onload' will never raised and so the rendering of the stream never starts. mayb a security 'feature' in ios 11?

@picarsite
Copy link
Author

Are you using a framework like Angular, React or Vue.js?

@streak7
Copy link

streak7 commented Feb 5, 2018

no. i'm using plain cordova. started debugging with a naked cordova app with plugins whitelist, ios-camera-permissions, iosrtc and swift-support.

i've tested some debug-code inside the plugin-scripts and i've compared with ios10. same app works with ios10 without any error.

ios11
the type 'arraybuffer' instead of 'blob' is causing an event 'blob' not. modifying the stream filename from 'blob:file://' to 'file:///' is also forcing a reaction. the only thing ios11 didn't want is the 'blob' or mayb the local access to 'blob:file' ...

btw ... the video element is every time still there and visible. you could approve by setting the css background-color

@Worien
Copy link

Worien commented Feb 7, 2019

video.src = URL.createObjectURL(stream); // set up src attribute once stream is ready
cordova.plugins.iosrtc.observeVideo(video); // tell the plugin to handle your video tag manually

This lines of code makes getUserMedia work, but can I use cordova.plugins with remote loaded url?

@avspeed
Copy link

avspeed commented May 4, 2019

Did anyone find a solution to this issue ? @Worien @streak7 @sysnajar I can stream locally, but cannot get the remote streams to display at all. Works fine on Android.
Does simply changing blob to file fix the issue?

@avspeed
Copy link

avspeed commented May 4, 2019

in my case I had to disable the adapter and he renderer started working for remote streams

@hthetiot
Copy link
Contributor

Certainly due old webrtc-adapter version work version webrtc-adapter@7.2.9
Also onaddstream is deprecated use onaddtrack

@hthetiot
Copy link
Contributor

@avspeed thank you, I think you right #270 may be broken by webrtc-adapter, I will investigate.

@hthetiot
Copy link
Contributor

i've did a bit of research but i couldn't find a solution yet. the xhr request in the handleVideo function (cordova-plugin-iosrtc.js) has a problem. with the xhr response type 'blob' the event 'onload' will never raised and so the rendering of the stream never starts. mayb a security 'feature' in ios 11?

Yes could be due CSP error.

@partnerparticle
Copy link

partnerparticle commented Aug 27, 2019

I also have this issue, and looked a bit into it. While I'm not 100% sure on the why, the reason for this is that the MutationObserver in videoElementsHandler.js is not called when the 'srcObject' attribute of a video tag is changed. I don't know if this is a WkWebView issue or sthing else, so this might be just a symptom, that the MutationObserver is not called in this case.. but it is called if you modify the 'src' or 'hidden' attribute of the video tag (the 'hidden' is not added to the filter in the source code, I just found out by experimenting with it.. ie removing the filters, or adding others, to see which one works. In my code I modify the srcObject and hidden attribute at the same time, ie srcObject=videoStream hidden=!videoStream)
I am using XCode 10.3 and device with iOS 12.4.

And thanks to everyone involved in this plugin, and keeping it alive!

@hthetiot
Copy link
Contributor

hthetiot commented Sep 13, 2019

Thank you for details @partnerparticle I will look into it on next release 5.0.3 I have too much changes in 5.0.2 already, right now calling cordova.plugins.iosrtc.observeVideo(video) or refreshVideo works.

@hthetiot hthetiot added this to the 5.0.x milestone Sep 13, 2019
@hthetiot hthetiot self-assigned this Sep 13, 2019
@hthetiot
Copy link
Contributor

@partnerparticle can you share a snippet of your changes for me to possibly release this fix on 5.0.2 or the next release depending the time you provide the sample changes.

@partnerparticle
Copy link

@hthetiot I don't have a fix for this, I was only trying to find the root cause of the problem. My modifications in videoElementsHandler.js were just to serve this investigation and it's something that works "just for me", it's not a general solution.
I would love to hear another opinion on my hunch, though, if anyone else thinks that the root cause might be WkWebView. The srcObject attribute is set, just not signaled, so cannot be monitored.
Right now I am setting the video.src attribute as suggested in comments to URL.createObjectURL() and then to '' (empty string) when transmission is over.

@hthetiot
Copy link
Contributor

@partnerparticle I dont experience any issue using WkWebView and srcObject = stream.
Note that src = URL.createObjectURL() has been deprecated on incoming 5.0.3 and that the recommendation is to use stream.stop to actually stop the transmission not only the rendering.

I'm closing that issue because I have tested the srcObject in production and is work great.
See test scripts for usage reference:

@hthetiot hthetiot modified the milestones: 5.0.x, 5.0.3 Sep 18, 2019
@partnerparticle
Copy link

partnerparticle commented Sep 18, 2019

@hthetiot I am glad that for you is working, although for me is not (with the iOS and device that I mentioned). I understand that this is open source and I have no demands here, I was just happy to find this open issue thinking is related to mine.
Maybe I should also mention that I am using Ionic 4, don't know if that is also pertinent information.
Just to clarify my use case, I am not stopping the transmission by setting src to ''. Since in my case the MutationObserver is not called to start/stop rendering when changing the srcObject of the already monitored video tag, I trigger that by setting the src attribute, since that change makes it to the MutationObserver.
I am aware that using the src attribute of the video tag is deprecated, and while I am not happy to write device specific code for iOS (on android it works), this makes my code work on iOS also by means of using this plugin.
BTW, what exactly do you mean by "src = URL.createObjectURL() has been deprecated on incoming 5.0.3"? That src tag won't be monitored anymore by the videoObserver in 5.0.3? Or that generally using the src attribute of video tag is deprecated (which has nothing to do with this plugin)?

Thank you for your work!

@hthetiot hthetiot reopened this Sep 19, 2019
@hthetiot
Copy link
Contributor

hthetiot commented Sep 19, 2019

Dear @partnerparticle,

BTW, what exactly do you mean by "src = URL.createObjectURL() has been deprecated on incoming 5.0.3"? That src tag won't be monitored anymore by the videoObserver in 5.0.3? Or that generally using the src attribute of video tag is deprecated (which has nothing to do with this plugin)?

Yes we non longer support video.src = URL.createObjectURL(stream) because since 5.0.2 MediaStream are actual MediaStream and not Blob anymore (no more Blob prototype pollution anymore) and therefor since 5.0.2 video.src = URL.createObjectURL(stream) will fail, that why on 5.0.3 I completely removed video.src support #388.

The reason it was working for me it's because I was calling cordova.plugins.iosrtc.observeVideo(localVideoEl); after set of localVideoEl.srcVideo = localStream, I removed them from the test scripts c3b5588.

I have confirmed that on any Browser (Chrome, Firefox, Safari) the MutationObserver fail to observe srcObject changes.
Screen Shot 2019-09-19 at 3 02 25 PM

Now the good news, I have confirmed that instead it does trigger onloadstart and onemptied and made the necessary changes on videoElementsHandler.js see commit a8a1fc1

Script to test VideoElement.srcObject MutationObserver and events:

var observer = new MutationObserver(function(mutations) {
	// For the sake of...observation...let's output the mutation to console to see how this all works
	mutations.forEach(function(mutation) {
		console.log('mutation', mutation.type);
	});    
});
 
// Notify me of everything!
var observerConfig = {
	attributes: true, 
	childList: true, 
	characterData: true 
};
 
// Node, config
// In this case we'll listen to all changes to body and child nodes
var a = document.createElement('video');
document.body.appendChild(a);
var targetNode = a;
observer.observe(targetNode, observerConfig);

// Listen to all events
for(var key in a){
    if(key.search('on') === 0) {
       a.addEventListener(key.slice(2), function (event) {
       	console.log('event.triggered', event)

       }.bind(a, key))
    }
}

a.srcObject = new MediaStream();
// Then remove
a.srcObject = null;

Make sure to read the 5.0.2 and 5.0.3 detailed CHANGELOG.md
https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-503

Thank you again, your persistance to explain your issue helped be to understand the false positive tests i was doing and forced me to test srcObject and MutationObserver issue and find a solution.

@hthetiot
Copy link
Contributor

Closing cause fixed on next incoming 5.0.3 release.

@partnerparticle
Copy link

Great to hear that @hthetiot , thanks for confirming, and finding a work around.
I will also test your changes.
Thank you for pursuing it, and not giving up 👍

p.s. I read the Changelog only after I wrote my reply, and saw what you meant by removing the video.src observe, but did not edit my reply :)

@partnerparticle
Copy link

partnerparticle commented Sep 24, 2019

@hthetiot I tested the changes from commit a8a1fc1 with my sources from 5.0.1, and it works, thanks for the workaround!

However, the reason that I mentioned my local copy of 5.0.1 instead of 5.0.3, is because from 5.0.2 the plugin does not work for me anymore, due to errors on addTrack(). Anyway, this is a separate issue, unrelated to this one.

iosrtc:getUserMedia getUserMedia() | success +11ms
iosrtc:MediaStream create() | ..
iosrtc:MediaStreamTrack new() | ..
iosrtc:MediaStreamTrack new() | ..
iosrtc:MediaStream new MediaStream(arg) |
iosrtc:MediaStream addTrack() [track:..
iosrtcPlugin#MediaStream_addTrack()
iosrtc:MediaStream addTrack() [track:..

PluginMediaStream#addTrack()
iosrtcPlugin#MediaStream_addTrack()
iosrtc:MediaStream emitConnected() +1ms
PluginMediaStream#addTrack() | ERROR: audio track not added
PluginMediaStream#addTrack()
PluginMediaStream#addTrack() | ERROR: video track not added

@hthetiot
Copy link
Contributor

I do not experience this issue.
Can you test this scripts and compare your WEbRTC API usage.

The error you get is possibly from rtcMediaStream.addAudioTrack can you provide the Xcode and iOS target you use.

Finally, if you want people that had issues with iOS 13 successfully used this branch:

Note: I do use 5.0.3 in production without issues:

@partnerparticle
Copy link

partnerparticle commented Sep 24, 2019

Thank you for your feedback, I will have a look into what you wrote.
I use xcode 10.3(10G8). Deployment Target is set to '11.0', and Devices to 'Universal' (this is default, I did not change anything besides App Signing options).
Device is iPhone 8 with iOS 12.4.1

The issue only comes from 5.0.2 onward, with 5.0.1 is ok. My app code did not change.

@hthetiot
Copy link
Contributor

hthetiot commented Sep 24, 2019

Can you show how you add Stream to PeerConnection.
Test scripts does following:

localStream.getTracks().forEach(function (track) {
    console.log('addTrack', track);
    pc1.addTrack(track);
  });

This should also works for testing

var pc = new cordova.plugins.iosrtc.RTCPeerConnection({
  iceServers: []
});

cordova.plugins.iosrtc.getUserMedia(
  // constraints
  { audio: true, video: true },
  // success callback
  function (stream) {
    console.log('got local MediaStream: ', stream);

    pc.addStream(stream);
  },
  // failure callback
  function (error) {
    console.error('getUserMedia failed: ', error);
  }
);

@hthetiot hthetiot reopened this Sep 24, 2019
@hthetiot hthetiot modified the milestones: 5.0.3, 5.0.x Sep 24, 2019
@partnerparticle
Copy link

I only had time to run your latest snippet (getUserMedia...), and got this:

2019-09-24 16:34:52.464390+0200 iosrtc app[931:202256] iosrtc registerGlobals() +0ms 2019-09-24 16:34:52.464465+0200 iosrtc app[931:202256] iosrtc:RTCPeerConnection new() | [pcConfig:{"iceServers":[]}, pcConstraints:] +0ms 2019-09-24 16:34:52.464546+0200 iosrtc app[931:202256] iosrtcPlugin#new_RTCPeerConnection() 2019-09-24 16:34:52.464824+0200 iosrtc app[931:202256] PluginRTCPeerConnection#init() 2019-09-24 16:34:52.464869+0200 iosrtc app[931:202256] PluginRTCPeerConnectionConfig#init() 2019-09-24 16:34:52.464924+0200 iosrtc app[931:202256] PluginRTCPeerConnectionConstraints#init() 2019-09-24 16:34:52.464978+0200 iosrtc app[931:202256] PluginRTCPeerConnection#run() 2019-09-24 16:34:52.464989+0200 iosrtc app[931:202256] PluginRTCPeerConnectionConfig#getIceServers() 2019-09-24 16:34:52.465002+0200 iosrtc app[931:202256] PluginRTCPeerConnectionConstraints#getConstraints() 2019-09-24 16:34:52.467428+0200 iosrtc app[931:202256] iosrtc:getUserMedia [original constraints:{"audio":true,"video":true}] +0ms 2019-09-24 16:34:52.467569+0200 iosrtc app[931:202256] iosrtc:getUserMedia [computed constraints:{"audio":true,"video":true}] +0ms 2019-09-24 16:34:52.467746+0200 iosrtc app[931:202256] iosrtcPlugin#getUserMedia() 2019-09-24 16:34:52.467816+0200 iosrtc app[931:202256] PluginGetUserMedia#call() 2019-09-24 16:34:52.468784+0200 iosrtc app[931:202256] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2019-09-24 16:34:52.468971+0200 iosrtc app[931:202256] [MC] Reading from public effective user settings. 2019-09-24 16:34:52.473689+0200 iosrtc app[931:202256] PluginGetUserMedia#call() | video authorization: authorized 2019-09-24 16:34:52.474793+0200 iosrtc app[931:202256] PluginGetUserMedia#call() | audio authorization: authorized 2019-09-24 16:34:52.475227+0200 iosrtc app[931:202256] PluginGetUserMedia#call() | video requested (device not specified) 2019-09-24 16:34:52.489911+0200 iosrtc app[931:202256] PluginGetUserMedia#call() | chosen video device: <AVCaptureFigVideoDevice: 0x111d4e7e0 [Front Camera][com.apple.avfoundation.avcapturedevice.built-in_video:1]> 2019-09-24 16:34:52.496985+0200 iosrtc app[931:202256] PluginGetUserMedia#call() | audio requested 2019-09-24 16:34:52.497116+0200 iosrtc app[931:202256] PluginMediaStream#init() 2019-09-24 16:34:52.497251+0200 iosrtc app[931:202256] PluginMediaStreamTrack#init() 2019-09-24 16:34:52.497304+0200 iosrtc app[931:202256] PluginMediaStreamTrack#run() [kind:audio, id:1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D] 2019-09-24 16:34:52.497335+0200 iosrtc app[931:202256] PluginMediaStreamTrack#init() 2019-09-24 16:34:52.497413+0200 iosrtc app[931:202256] PluginMediaStreamTrack#run() [kind:video, id:0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60] 2019-09-24 16:34:52.497429+0200 iosrtc app[931:202256] PluginMediaStream#run() 2019-09-24 16:34:52.498027+0200 iosrtc app[931:202256] THREAD WARNING: ['iosrtcPlugin'] took '30.313232' ms. Plugin should use a background thread. 2019-09-24 16:34:52.498950+0200 iosrtc app[931:202256] Cookies synced 2019-09-24 16:34:52.505794+0200 iosrtc app[931:202256] iosrtc:getUserMedia getUserMedia() | success +38ms 2019-09-24 16:34:52.505893+0200 iosrtc app[931:202256] iosrtc:MediaStream create() | [dataFromEvent:{"id":"F60A7A5C-7467-4822-A255-D4BA566E45FE-E2EE48F8-EBCD-4573-9FEE-60D3B90F819F","audioTracks":{"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D":{"readyState":"live","id":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","kind":"audio","label":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","enabled":true}},"videoTracks":{"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60":{"readyState":"live","id":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","kind":"video","label":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","enabled":true}}}] +0ms 2019-09-24 16:34:52.505943+0200 iosrtc app[931:202256] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","kind":"audio","label":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","enabled":true}] +0ms 2019-09-24 16:34:52.506023+0200 iosrtc app[931:202256] iosrtcPlugin#MediaStreamTrack_setListener() 2019-09-24 16:34:52.506133+0200 iosrtc app[931:202256] iosrtc:MediaStreamTrack new() | [dataFromEvent:{"readyState":"live","id":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","kind":"video","label":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","enabled":true}] +0ms 2019-09-24 16:34:52.506140+0200 iosrtc app[931:202339] PluginMediaStreamTrack#setListener() [kind:audio, id:1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D] 2019-09-24 16:34:52.506181+0200 iosrtc app[931:202256] iosrtcPlugin#MediaStreamTrack_setListener() 2019-09-24 16:34:52.506228+0200 iosrtc app[931:202339] PluginMediaStreamTrack#setListener() [kind:video, id:0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60] 2019-09-24 16:34:52.506911+0200 iosrtc app[931:202256] iosrtc:MediaStream new MediaStream(arg) | [arg:[{"_listeners":{},"id":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","kind":"audio","label":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","muted":false,"readyState":"live","_enabled":true,"_ended":false},{"_listeners":{},"id":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","kind":"video","label":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","muted":false,"readyState":"live","_enabled":true,"_ended":false}]] +1ms 2019-09-24 16:34:52.521540+0200 iosrtc app[931:202256] iosrtc:MediaStream addTrack() [track:{"_listeners":{},"id":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","kind":"audio","label":"1BAE5A31-93EC-40AC-A9BA-4E2C6133A71D","muted":false,"readyState":"live","_enabled":true,"_ended":false}] +20ms 2019-09-24 16:34:52.521671+0200 iosrtc app[931:202256] iosrtcPlugin#MediaStream_addTrack() 2019-09-24 16:34:52.521747+0200 iosrtc app[931:202328] PluginMediaStream#addTrack() 2019-09-24 16:34:52.521763+0200 iosrtc app[931:202256] iosrtc:MediaStream addTrack() [track:{"_listeners":{},"id":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","kind":"video","label":"0540CEB7-A34E-4EF2-B6A5-5329DCAF3C60","muted":false,"readyState":"live","_enabled":true,"_ended":false}] +0ms 2019-09-24 16:34:52.521839+0200 iosrtc app[931:202256] iosrtcPlugin#MediaStream_addTrack() 2019-09-24 16:34:52.521905+0200 iosrtc app[931:202256] iosrtcPlugin#MediaStream_setListener() 2019-09-24 16:34:52.521957+0200 iosrtc app[931:202256] iosrtc:MediaStream emitConnected() +0ms 2019-09-24 16:34:52.522019+0200 iosrtc app[931:202328] PluginMediaStream#addTrack() | ERROR: audio track not added 2019-09-24 16:34:52.522036+0200 iosrtc app[931:202328] PluginMediaStream#addTrack() 2019-09-24 16:34:52.522068+0200 iosrtc app[931:202328] PluginMediaStream#addTrack() | ERROR: video track not added 2019-09-24 16:34:52.522081+0200 iosrtc app[931:202328] PluginMediaStream#setListener()

@hthetiot
Copy link
Contributor

Ok, thank you, it appear that you get "ERROR: video track not added" and "ERROR: audio track not added" cause it's already added to the same localStream.
I confirm I have the same error but that do not prevent the stream and remote stream to be received.

Beside this errors, what symptom do you get ?

@partnerparticle
Copy link

partnerparticle commented Sep 24, 2019

No video, audio in the app (local or remote).
But if this works for you, then it might be an issue in one of my layers, that handles the streams due to something different compared to the 5.0.1 plugin. If this is the issue, and this is how the plugin should behave, then someone else from my side should look at how we handle that.

@hthetiot
Copy link
Contributor

hthetiot commented Sep 24, 2019

I'm looking into it, will keep you posted.

@hthetiot
Copy link
Contributor

hthetiot commented Sep 24, 2019

Dear @partnerparticle,

  1. I confirm that "ERROR: video track not added" and "ERROR: audio track not added" was false positive due MediaStream.create called by getUserMedia causing existing tracks on the Media to call addTrack. In order to prevent that false positive error that was not preventing rendering or actual MediaStream creation I have changed MediaStream.create see 6651ef4

  2. I'm pretty sure you have some legacy WebRTC APIs that use callbacks, I did have the same feedback when releasing 5.0.2 here 5.0.2 possible issues #386 and actually fixed open-easyrtc to use Promise instead of callbacks here open-easyrtc/open-easyrtc@6c2665f.

In order to assist you with detecting Callbacks usage instead of Promise, I have added the following changes on each API that are now Promise only b163786

Example:
Screen Shot 2019-09-24 at 5 53 50 PM

I'm going to hold a bit before releasing 5.0.4 with this changes, to test if you can do the following.

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#master --verbose
cordova platform remove ios --no-save
cordova platform add ios --no-save

This should assist you to debug if there is any existing callbacks API calls.
Keep me posted,I will close that issue for now.

@hthetiot
Copy link
Contributor

One last thing.
If you want to test 5.0.3 or master to see if the iosRTC is working. you can try the following scripts.


var cordova = window.cordova;

// Expose WebRTC Globals
if (cordova && cordova.plugins && cordova.plugins.iosrtc) {
  cordova.plugins.iosrtc.registerGlobals();
  cordova.plugins.iosrtc.debug.enable('*', true);
}


//
// Container
//

document.body.innerHTML = "";
var appContainer = document.body;

//
// getUserMedia
//


var localStream;
var localVideoEl;
function TestGetUserMedia() {
  localVideoEl = document.createElement('video');
  localVideoEl.setAttribute('autoplay', 'autoplay');
  localVideoEl.setAttribute('playsinline', 'playsinline');
  // Cause zIndex - 1 failure
  //localVideoEl.style.backgroundColor = 'purple';
  localVideoEl.style.position = 'absolute';
  localVideoEl.style.top = 0;
  localVideoEl.style.left = 0;
  localVideoEl.style.width = "100px";
  localVideoEl.style.height = "100px";
  localVideoEl.style.transform = "scaleX(-1)";
  appContainer.appendChild(localVideoEl);

  navigator.mediaDevices.enumerateDevices().then(function (devices) {
      console.log('getMediaDevices.ok', devices);
      devices.forEach(function (device, idx) {
        console.log('getMediaDevices.devices', idx, device.label, device.kind, device.deviceId);
      });
  }, function (err) {
      console.log('getMediaDevices.err', err);
  });

  navigator.mediaDevices.getUserMedia({
    video: true,
    audio: true
    /*
    video: {
      // Test Back Camera
      //deviceId: 'com.apple.avfoundation.avcapturedevice.built-in_video:0'
      //sourceId: 'com.apple.avfoundation.avcapturedevice.built-in_video:0'
      deviceId: {
        exact: 'com.apple.avfoundation.avcapturedevice.built-in_video:0'
      }
    }, 
    audio: {
      exact: 'Built-In Microphone'
    }*/
  }).then(function (stream) {

    console.log('getUserMedia.stream', stream);
    console.log('getUserMedia.stream.getTracks', stream.getTracks());

    localStream = stream;
    localVideoEl.srcObject = localStream;

    TestRTCPeerConnection(localStream); 
   
  }).catch(function (err) {
    console.log('getUserMediaError', err, err.stack);
  });
}


//
// Test RTCPeerConnection
// 

var pc1 = new RTCPeerConnection(),
    pc2 = new RTCPeerConnection();

var peerVideoEl;
var peerStream;
function TestRTCPeerConnection(localStream) {

  // Note: Deprecated TestaddStream
  //pc1.addStream(localStream);

  // Note: Deprecated Test removeStream
  // pc1.removeStream(pc1.getLocalStreams()[0])

  localStream.getTracks().forEach(function (track) {
    console.log('addTrack', track);
    pc1.addTrack(track);
  });
  
  function onAddIceCandidate(pc, can) {
    console.log('addIceCandidate', pc, can);
    return can && pc.addIceCandidate(can).catch(function (err) {
      console.log('addIceCandidateError', err);
    });
  }

  pc1.onicecandidate = function (e) {
    onAddIceCandidate(pc2, e.candidate);
  };
  
  pc2.onicecandidate = function (e) {
    onAddIceCandidate(pc1, e.candidate);
  };

  pc2.onaddstream = function (e) {
    console.log('pc2.addStream', e);
    peerVideoEl = document.createElement('video');
    peerVideoEl.setAttribute('autoplay', 'autoplay');
    peerVideoEl.setAttribute('playsinline', 'playsinline');
    peerVideoEl.style.backgroundColor = 'blue';
    peerVideoEl.style.position = 'fixed';
    peerVideoEl.style.width = "100px";
    peerVideoEl.style.height = "100px";
    peerVideoEl.style.top = 0;
    peerVideoEl.style.left = (window.innerWidth - parseInt(peerVideoEl.style.width, 10)) + 'px';
    appContainer.appendChild(peerVideoEl);

    peerStream = e.stream;
    peerVideoEl.srcObject = peerStream;
  };

  pc1.oniceconnectionstatechange = function (e) {
    console.log('pc1.iceConnectionState', e, pc1.iceConnectionState);

    if (pc1.iceConnectionState === 'completed') {      
      console.log('pc1.getSenders', pc1.getSenders());
      console.log('pc2.getReceivers', pc2.getReceivers());
    }
  };

  pc1.onicegatheringstatechange = function (e) {
    console.log('pc1.iceGatheringStateChange', e);
  };

  pc1.onnegotiationneeded = function (e) {
    console.log('pc1.negotiatioNeeded', e);

    return pc1.createOffer().then(function (d) {
      var desc = {
        type: d.type,
        sdp: d.sdp
      };
      console.log('pc1.setLocalDescription', desc);
      return pc1.setLocalDescription(desc);
    }).then(function () {
      var desc = {
        type: pc1.localDescription.type,
        sdp: pc1.localDescription.sdp
      };
      console.log('pc2.setLocalDescription', desc);
      return pc2.setRemoteDescription(desc);
    }).then(function () {
      console.log('pc2.createAnswer');
      return pc2.createAnswer();
    }).then(function (d) {
      var desc = {
        type: d.type,
        sdp: d.sdp
      };
      console.log('pc2.setLocalDescription', desc);
      return pc2.setLocalDescription(d);
    }).then(function () {
      var desc = {
        type: pc2.localDescription.type,
        sdp: pc2.localDescription.sdp
      };
      console.log('pc1.setRemoteDescription', desc);
      return pc1.setRemoteDescription(desc);
    }).catch(function (err) {
      console.log('pc1.createOfferError', err);
    });
  };
}

TestGetUserMedia();

Should result in the following:

20190924_175828

@hthetiot hthetiot modified the milestones: 5.0.x, 5.0.4 Sep 24, 2019
@partnerparticle
Copy link

Thank you, I will check and let you know. We can also move this to a new issue if needed, I suppose it has nothing to do with the original issue. But I don't mind conversing here either, if it does not bother you.

@hthetiot
Copy link
Contributor

I'm fine for now keeping it there, until we find the real reason.
I'm heading 0 issue open with #385 :)

@partnerparticle
Copy link

partnerparticle commented Sep 25, 2019

@hthetiot , thank you for the detailed analysis and assistance.

  1. will confirm after we solve 2. (right now we stop at getUserMedia, which uses callback)
  2. we have indeed callbacks, thanks for the debug lines, we are working on removing those, and see how it goes after .
    Will let you know

@hthetiot
Copy link
Contributor

good to hear that callback debug helped :)

@partnerparticle
Copy link

partnerparticle commented Sep 26, 2019

After rewriting the callbacks to promises, I got video/audio, so all good on this front. And also srcObject finally works as it should, thank you again :)

Additional question: did something change in enumerateDevices()?
I used to select videoDevices[0] for back camera, and now that gives me front camera video. If I select videoDevices[1], then I get back camera video.
From the enumerateDevices logs, device[built-in_video:0] should still be back camera, and video:1 -> front camera, but then their indexes/positions in array seem to get reversed (in the log from getMediaDeviceInfos).

I'll attach here those logs, maybe I'm reading them wrong.

@partnerparticle
Copy link

2019-09-26 14:27:15.369901+0200 iosrtc app[1466:340632] iosrtcPlugin#enumerateDevices() 2019-09-26 14:27:15.370180+0200 iosrtc app[1466:340686] PluginEnumerateDevices#call() 2019-09-26 14:27:15.559690+0200 iosrtc app[1466:340686] - device [uniqueID:'com.apple.avfoundation.avcapturedevice.built-in_audio:0', localizedName:'iPhone Microphone', audio:true, video:false, connected:true] 2019-09-26 14:27:15.563067+0200 iosrtc app[1466:340686] - device [uniqueID:'com.apple.avfoundation.avcapturedevice.built-in_video:0', localizedName:'Back Camera', audio:false, video:true, connected:true] 2019-09-26 14:27:15.563134+0200 iosrtc app[1466:340686] - device [uniqueID:'com.apple.avfoundation.avcapturedevice.built-in_video:1', localizedName:'Front Camera', audio:false, video:true, connected:true] DEVICES => { devices = { "Built-In Microphone" = { deviceId = "Built-In Microphone"; groupId = ""; kind = audioinput; label = "iPhone Microphone"; }; "com.apple.avfoundation.avcapturedevice.built-in_video:0" = { deviceId = "com.apple.avfoundation.avcapturedevice.built-in_video:0"; groupId = ""; kind = videoinput; label = "Back Camera"; }; "com.apple.avfoundation.avcapturedevice.built-in_video:1" = { deviceId = "com.apple.avfoundation.avcapturedevice.built-in_video:1"; groupId = ""; kind = videoinput; label = "Front Camera"; }; }; } 2019-09-26 14:27:15.564913+0200 iosrtc app[1466:340632] iosrtc:enumerateDevices enumerateDevices() | success +0ms 2019-09-26 14:27:15.565055+0200 iosrtc app[1466:340632] iosrtc:enumerateDevices getMediaDeviceInfos() | [devices:{"com.apple.avfoundation.avcapturedevice.built-in_video:1":{"label":"Front Camera","kind":"videoinput","deviceId":"com.apple.avfoundation.avcapturedevice.built-in_video:1","groupId":""},"com.apple.avfoundation.avcapturedevice.built-in_video:0":{"label":"Back Camera","groupId":"","kind":"videoinput","deviceId":"com.apple.avfoundation.avcapturedevice.built-in_video:0"},"Built-In Microphone":{"groupId":"","deviceId":"Built-In Microphone","kind":"audioinput","label":"iPhone Microphone"}}] +0ms

@hthetiot
Copy link
Contributor

hthetiot commented Sep 27, 2019

@partnerparticle Can you report this issue with enumerateDevices in a separate issue (simply copy past what you wrote with the logs), I will check this one separately and attempt to fix for 5.0.4. Thank you for the feedback

@partnerparticle
Copy link

Sure, thank you. See #392

@hthetiot
Copy link
Contributor

For last comment see #392 (comment)

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

7 participants