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

E2EE not working on iOS #190

Open
philbot9 opened this issue Jan 19, 2025 · 2 comments
Open

E2EE not working on iOS #190

philbot9 opened this issue Jan 19, 2025 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@philbot9
Copy link

philbot9 commented Jan 19, 2025

Hello,

Really good work on this. I'm continuously impressed how easy it is to get up and running and how well everything works. I came across my first issue today while trying out E2EE on iOS.

Describe the bug

E2EE does not seem to be working on iOS. I tried to use it in the example app. After enabling E2EE and pressing "Connect" I see no video (see screenshots) and when I go back to the PreJoinPage the app appears to be frozen. There are no errors in the logs as far as I can tell.

I am able connect successfully without E2EE.

To Reproduce

  1. Install example app on iPhone using XCode.
  2. Run npm start
  3. Open the app on iPhone
  4. Toggle 'Enable E2EE'
  5. Enter 'E2EE Key' (I used topsecretkey)
  6. Press 'Connect'

Expected behavior

I should join the room and see my own video as well as others.

Screenshots

Image

Image

Device Info:

  • Device: iPhone SE (3rd Gen)
  • OS: iOS 18.1.1

Dependencies Info (please reference your package-lock.json or yarn.lock file):

Latest Commit: e479393

Package JSON: https://github.com/livekit/client-sdk-react-native/blob/main/example/package.json

Additional context
Logs:

info React Native v0.76.6 is now available (your project is running on v0.74.2).
info Changelog: https://github.com/facebook/react-native/releases/tag/v0.76.6
info Diff: https://react-native-community.github.io/upgrade-helper/?from=0.74.2
info For more info, check out "https://reactnative.dev/docs/upgrading?os=macos".
info Dev server ready

i - run on iOS
a - run on Android
d - open Dev Menu
r - reload app

 BUNDLE  ./index.tsx

 LOG  Running "LivekitReactNativeExample" with {"rootTag":1,"initialProps":{"concurrentRoot":false}}
 LOG  room event connectionStateChanged {"args": ["connecting"], "event": "connectionStateChanged", "pID": "", "participant": "", "room": "", "roomID": undefined}
 LOG  room event audioPlaybackChanged {"args": [], "event": "audioPlaybackChanged", "pID": "", "participant": "", "room": "", "roomID": undefined}
 LOG  connecting to wss://<CENSORED>.livekit.cloud/rtc?access_token=<CENSORED>&auto_subscribe=1&sdk=reactnative&version=2.8.0&protocol=15&os=ios&adaptive_stream=1 {"pID": undefined, "participant": undefined, "room": undefined, "roomID": undefined}
 LOG  ping config {"interval": 5, "pID": undefined, "participant": undefined, "room": undefined, "roomID": undefined, "timeout": 15}
 LOG  clearing ping interval {"pID": undefined, "participant": undefined, "room": undefined, "roomID": undefined}
 LOG  start ping interval {"pID": undefined, "participant": undefined, "room": undefined, "roomID": undefined}
 LOG  E2EE - setting up transports with insertable streams {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 ctor +0ms
 LOG  rn-webrtc:pc:DEBUG 1 ctor +2ms
 LOG  connected to Livekit Server edition: 1, version: 1.8.3, protocol: 15, region: US Central, nodeId: NM_OCHICAGO1B_4RCLzUS3EGn8, debugInfo: , agentProtocol: 0 {"identity": "Philip", "room": "MobileTK POC", "roomSid": ""}
 LOG  room event signalConnected {"args": [], "event": "signalConnected", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  setTrackEnabled {"enabled": true, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "microphone"}
 LOG  setTrackEnabled {"enabled": true, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "camera"}
 LOG  setTrackEnabled {"enabled": false, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "screen_share"}
 LOG  negotiation required, start negotiating {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  received server offer {"RTCSdpType": "offer", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "sdp": "v=0
o=- 94909512336836233 1737329627 IN IP4 0.0.0.0
s=-
t=0 0
a=msid-semantic:WMS*
a=fingerprint:sha-256 6A:06:F8:3A:28:AB:3E:CB:5A:0B:5A:A9:3B:EC:FE:25:F3:35:5B:6A:9F:C4:03:6B:EC:79:0D:DC:BC:A9:23:3D
a=ice-lite
a=extmap-allow-mixed
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=sendrecv
a=sctp-port:5000
a=ice-ufrag:HMxsMTIxfhqFqLGz
a=ice-pwd:yZGDZgaAzDAlmOLLHQKpHzKAhGtPtxRv
", "signalingState": "stable"}
 LOG  rn-webrtc:pc:DEBUG 1 setRemoteDescription +32ms
 LOG  starting to negotiate {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 createOffer +24ms
 INFO  publishing track {"enabled": true, "kind": "video", "muted": false, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "camera", "streamID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "streamTrackID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "trackID": undefined}
 INFO  End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2 {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 addTransceiver +233ms
 LOG  setting degradationPreference to balanced {"enabled": true, "kind": "video", "muted": false, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "camera", "streamID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "streamTrackID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "trackID": undefined}
 LOG  setting degradationPreference to balanced {"enabled": true, "kind": "video", "muted": false, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "camera", "streamID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "streamTrackID": "89873897-027C-43DA-B228-8F9D21FE4BD9", "trackID": undefined}
 LOG  room event audioPlaybackChanged {"args": [true], "event": "audioPlaybackChanged", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "RM_zWjwPvJF5tBV"}
 INFO  publishing track {"enabled": true, "kind": "audio", "muted": false, "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "source": "microphone", "streamID": "BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F", "streamTrackID": "BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F", "trackID": undefined}
 INFO  End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2 {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 addTransceiver +10ms
 LOG  rn-webrtc:pc:DEBUG 1 setRemoteDescription OK +2ms
 LOG  rn-webrtc:pc:DEBUG 1 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 1 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 1 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 1 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 1 createAnswer +1ms
 LOG  rn-webrtc:pc:DEBUG 0 createOffer OK +0ms
 LOG  original offer {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "sdp": "v=0
o=- 4906254629051649036 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=ice-options:trickle renomination
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
"}
 LOG  setting munged local description {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 setLocalDescription +2ms
 LOG  setting munged local description {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 1 setLocalDescription +1ms
 LOG  rn-webrtc:pc:DEBUG 0 setLocalDescription OK +1ms
 LOG  sending offer {"offerSdp": "v=0
o=- 4906254629051649036 2 IN IP4 127.0.0.1
s=-
t=0 0
a=extmap-allow-mixed
a=msid-semantic:  WMS
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=mid:0
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=ice-options:trickle
a=sctp-port:5000
a=max-message-size:262144
", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 1 setLocalDescription OK +1ms
 LOG  sending answer {"answerSdp": "v=0
o=- 216964787225262720 2 IN IP4 127.0.0.1
s=-
t=0 0
a=extmap-allow-mixed
a=msid-semantic:  WMS
a=group:BUNDLE 0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:active
a=mid:0
a=ice-ufrag:b2Jj
a=ice-pwd:h3/AFRwnyPtdX+AyZBtbBkCf
a=fingerprint:sha-256 35:69:09:5B:86:37:26:FD:B0:C7:58:40:1E:2F:CA:53:A2:50:C6:F2:96:2A:3B:C8:C0:01:60:72:53:E9:05:07
a=ice-options:trickle
a=sctp-port:5000
", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  pc state change: from NEW to CONNECTING {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  primary PC state changed 1 {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  received trackPublishedResponse {"cid": "89873897-027C-43DA-B228-8F9D21FE4BD9", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "track": "TR_VCBe6mgP7nYFtX"}
 LOG  received trackPublishedResponse {"cid": "BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "track": "TR_AMVonhaKKqExq3"}
 LOG  received server answer {"RTCSdpType": "answer", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  setting munged remote description {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 setRemoteDescription +173ms
 LOG  rn-webrtc:pc:DEBUG 0 setRemoteDescription OK +2ms
 LOG  rn-webrtc:pc:DEBUG 0 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 0 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 0 addIceCandidate +0ms
 LOG  rn-webrtc:pc:DEBUG 0 addIceCandidate +0ms
 LOG  starting to negotiate {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 createOffer +0ms
 LOG  rn-webrtc:pc:DEBUG 0 createOffer OK +3ms
 LOG  original offer {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "sdp": "v=0
o=- 4906254629051649036 3 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS 157A3625-15C6-473C-96D0-20AF9A3896F8 E89C27F7-325A-4044-8DFE-99C119587E65
m=application 65140 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 70.73.165.135
a=candidate:3989482955 1 udp 2122260223 192.168.50.231 65140 typ host generation 0 network-id 1 network-cost 10
a=candidate:3736937917 1 udp 2122129151 192.0.0.2 60807 typ host generation 0 network-id 7 network-cost 900
a=candidate:1325672963 1 udp 2122197247 2001:56a:6fc0:259d:3103:9368:40a6:7b72 59312 typ host generation 0 network-id 8 network-cost 900
a=candidate:325089631 1 tcp 1518280447 192.168.50.231 49426 typ host tcptype passive generation 0 network-id 1 network-cost 10
a=candidate:538439977 1 tcp 1518149375 192.0.0.2 49427 typ host tcptype passive generation 0 network-id 7 network-cost 900
a=candidate:2981035671 1 tcp 1518217471 2001:56a:6fc0:259d:3103:9368:40a6:7b72 49428 typ host tcptype passive generation 0 network-id 8 network-cost 900
a=candidate:325089631 1 tcp 1518280447 192.168.50.231 49429 typ host tcptype passive generation 0 network-id 1 network-cost 10
a=candidate:538439977 1 tcp 1518149375 192.0.0.2 49430 typ host tcptype passive generation 0 network-id 7 network-cost 900
a=candidate:2981035671 1 tcp 1518217471 2001:56a:6fc0:259d:3103:9368:40a6:7b72 49431 typ host tcptype passive generation 0 network-id 8 network-cost 900
a=candidate:2063780626 1 udp 1686052607 70.73.165.135 65140 typ srflx raddr 192.168.50.231 rport 65140 generation 0 network-id 1 network-cost 10
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=ice-options:trickle renomination
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 103 35 36 104 105 106
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=ice-options:trickle renomination
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=setup:actpass
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 H264/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c34
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:98 H264/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e034
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:127 VP9/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=rtpmap:103 rtx/90000
a=fmtp:103 apt=127
a=rtpmap:35 AV1/90000
a=rtcp-fb:35 goog-remb
a=rtcp-fb:35 transport-cc
a=rtcp-fb:35 ccm fir
a=rtcp-fb:35 nack
a=rtcp-fb:35 nack pli
a=rtpmap:36 rtx/90000
a=fmtp:36 apt=35
a=rtpmap:104 red/90000
a=rtpmap:105 rtx/90000
a=fmtp:105 apt=104
a=rtpmap:106 ulpfec/90000
a=ssrc-group:FID 3211894361 3579008981
a=ssrc:3211894361 cname:X/hxv/YaaWOIH54R
a=ssrc:3211894361 msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
a=ssrc:3579008981 cname:X/hxv/YaaWOIH54R
a=ssrc:3579008981 msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 102 0 8 13 110 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=ice-options:trickle renomination
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=setup:actpass
a=mid:2
a=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:157A3625-15C6-473C-96D0-20AF9A3896F8 BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=ssrc:308396923 cname:X/hxv/YaaWOIH54R
a=ssrc:308396923 msid:157A3625-15C6-473C-96D0-20AF9A3896F8 BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F
"}
 LOG  setting munged local description {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 setLocalDescription +2ms
 LOG  rn-webrtc:pc:DEBUG 0 setLocalDescription OK +4ms
 LOG  sending offer {"offerSdp": "v=0
o=- 4906254629051649036 3 IN IP4 127.0.0.1
s=-
t=0 0
a=extmap-allow-mixed
a=msid-semantic: WMS 157A3625-15C6-473C-96D0-20AF9A3896F8
a=group:BUNDLE 0 1 2
m=application 65140 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 70.73.165.135
a=setup:actpass
a=mid:0
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=candidate:3989482955 1 udp 2122260223 192.168.50.231 65140 typ host generation 0 network-id 1 network-cost 10
a=candidate:3736937917 1 udp 2122129151 192.0.0.2 60807 typ host generation 0 network-id 7 network-cost 900
a=candidate:1325672963 1 udp 2122197247 2001:56a:6fc0:259d:3103:9368:40a6:7b72 59312 typ host generation 0 network-id 8 network-cost 900
a=candidate:325089631 1 tcp 1518280447 192.168.50.231 49426 typ host tcptype passive generation 0 network-id 1 network-cost 10
a=candidate:538439977 1 tcp 1518149375 192.0.0.2 49427 typ host tcptype passive generation 0 network-id 7 network-cost 900
a=candidate:2981035671 1 tcp 1518217471 2001:56a:6fc0:259d:3103:9368:40a6:7b72 49428 typ host tcptype passive generation 0 network-id 8 network-cost 900
a=candidate:325089631 1 tcp 1518280447 192.168.50.231 49429 typ host tcptype passive generation 0 network-id 1 network-cost 10
a=candidate:538439977 1 tcp 1518149375 192.0.0.2 49430 typ host tcptype passive generation 0 network-id 7 network-cost 900
a=candidate:2981035671 1 tcp 1518217471 2001:56a:6fc0:259d:3103:9368:40a6:7b72 49431 typ host tcptype passive generation 0 network-id 8 network-cost 900
a=candidate:2063780626 1 udp 1686052607 70.73.165.135 65140 typ srflx raddr 192.168.50.231 rport 65140 generation 0 network-id 1 network-cost 10
a=ice-options:trickle
a=sctp-port:5000
a=max-message-size:262144
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127 103 35 36 104 105 106
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=rtpmap:97 rtx/90000
a=rtpmap:98 H264/90000
a=rtpmap:99 rtx/90000
a=rtpmap:100 VP8/90000
a=rtpmap:101 rtx/90000
a=rtpmap:127 VP9/90000
a=rtpmap:103 rtx/90000
a=rtpmap:35 AV1/90000
a=rtpmap:36 rtx/90000
a=rtpmap:104 red/90000
a=rtpmap:105 rtx/90000
a=rtpmap:106 ulpfec/90000
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c34
a=fmtp:97 apt=96
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e034
a=fmtp:99 apt=98
a=fmtp:101 apt=100
a=fmtp:103 apt=127
a=fmtp:36 apt=35
a=fmtp:105 apt=104
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=rtcp-fb:35 goog-remb
a=rtcp-fb:35 transport-cc
a=rtcp-fb:35 ccm fir
a=rtcp-fb:35 nack
a=rtcp-fb:35 nack pli
a=extmap:1 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 urn:3gpp:video-orientation
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=setup:actpass
a=mid:1
a=msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
a=sendonly
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=ice-options:trickle
a=ssrc:3211894361 cname:X/hxv/YaaWOIH54R
a=ssrc:3211894361 msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
a=ssrc:3579008981 cname:X/hxv/YaaWOIH54R
a=ssrc:3579008981 msid:E89C27F7-325A-4044-8DFE-99C119587E65 89873897-027C-43DA-B228-8F9D21FE4BD9
a=ssrc-group:FID 3211894361 3579008981
a=rtcp-mux
a=rtcp-rsize
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 102 0 8 13 110 126
c=IN IP4 0.0.0.0
a=rtpmap:111 opus/48000/2
a=rtpmap:63 red/48000/2
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=fmtp:111 minptime=10;useinbandfec=1
a=fmtp:63 111/111
a=rtcp:9 IN IP4 0.0.0.0
a=rtcp-fb:111 transport-cc
a=extmap:14 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:actpass
a=mid:2
a=msid:157A3625-15C6-473C-96D0-20AF9A3896F8 BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F
a=sendonly
a=ice-ufrag:ROrP
a=ice-pwd:93awYT7rPsEi2f+Yk8BCDhrj
a=fingerprint:sha-256 6E:89:20:8E:D2:55:FF:CA:3D:C3:97:38:B9:9A:D3:94:D5:79:E0:11:78:7B:2D:85:03:14:BA:32:DC:CB:59:4F
a=ice-options:trickle
a=ssrc:308396923 cname:X/hxv/YaaWOIH54R
a=ssrc:308396923 msid:157A3625-15C6-473C-96D0-20AF9A3896F8 BF45DE4B-A8BE-48F5-B36D-B3D60A44B33F
a=rtcp-mux
", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  received server answer {"RTCSdpType": "answer", "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  setting munged remote description {"pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": ""}
 LOG  rn-webrtc:pc:DEBUG 0 setRemoteDescription +71ms
 LOG  rn-webrtc:pc:DEBUG 0 setRemoteDescription OK +4ms
 LOG  update publication info {"enabled": true, "info": {"audioFeatures": [Array], "codecs": [Array], "disableDtx": false, "disableRed": true, "encryption": "GCM", "height": 720, "layers": [Array], "mid": "", "mimeType": "", "muted": false, "name": "", "sid": "TR_VCBe6mgP7nYFtX", "simulcast": false, "source": "CAMERA", "stereo": false, "stream": "camera", "type": "VIDEO", "width": 1280}, "muted": false, "trackID": "TR_VCBe6mgP7nYFtX", "trackInfo": {"encrypted": true, "kind": "video", "mimeType": "", "name": "", "source": "camera"}}
 LOG  publishing video with encodings {"encodings": [{}], "pID": "PA_BfyM8NSAQ6d4", "participant": "Philip", "room": "MobileTK POC", "roomID": "", "trackInfo": {"audioFeatures": [Array], "codecs": [Array], "disableDtx": false, "disableRed": true, "encryption": "GCM", "height": 720, "layers": [Array], "mid": "", "mimeType": "", "muted": false, "name": "", "sid": "TR_VCBe6mgP7nYFtX", "simulcast": false, "source": "CAMERA", "stereo": false, "stream": "camera", "type": "VIDEO", "width": 1280}}
@philbot9 philbot9 added the bug Something isn't working label Jan 19, 2025
@philbot9
Copy link
Author

I tried to debug this issue in XCode today and I believe I've narrowed it down to this call in @livekit/react-native-webrtc:

https://github.com/livekit/react-native-webrtc/blob/master/ios/RCTWebRTC/WebRTCModule%2BRTCFrameCryptor.m#L80

Image

I am hitting the breakpoint on line 79, but never the one on line 85. So whatever is going wrong may be happening inside of WebRTC's RTCFrameCryptor initWithFactory. It simply never returns and I don't see any errors either.

@davidliu
Copy link
Contributor

Hey @philbot9, can you try updating the WebRTC-SDK dependency in your podfile? I think I forgot to update the dependency here, so you might be on the previous version with the deadlock bug. Can check your current podfile.lock to see which WebRTC-SDK version it's using.

Example of changing the dependency version:

target 'YourReactNativeApp` do
  # ...
  pod 'WebRTC-SDK', '~>125.6422.07'
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants