2017-02-06 144 views
0

webrtc를 기반으로 Android 앱의 Android 버전을 빌드하려고합니다. STUN 서버 (TURN이 아니고 IOS 응용 프로그램은 STUN 서버 만 사용)를 사용하고 Android 응용 프로그램이 다른 네트워크에서는 작동하지 않지만 IOS는 정상적으로 작동합니다.Android WebRTC 및 STUN 문제

RTCConfiguration :

rtcConfig.tcpCandidatePolicy = PeerConnection.TcpCandidatePolicy.DISABLED; 
    rtcConfig.bundlePolicy = PeerConnection.BundlePolicy.MAXCOMPAT; 
    rtcConfig.rtcpMuxPolicy = PeerConnection.RtcpMuxPolicy.REQUIRE; 
    rtcConfig.iceTransportsType = PeerConnection.IceTransportsType.ALL; 
    rtcConfig.continualGatheringPolicy = PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY; 
    rtcConfig.keyType = PeerConnection.KeyType.ECDSA; 

PS : 나는 (: stun.l.google.com : 예 : 전기 충격에 대한 19302) 많은 다른 STUN 서버를 시도했지만 아무도 작동하지 않습니다.

UPD :

ICE STUN의이 (얼음 연결이 실패) 예제 :

{"sdp":"candidate:1911153948 1 udp 2122260223 192.168.15.33 54469 typ host generation 0 ufrag Ucsk network-id 3 network-cost 10","sdpMLineIndex":0,"sdpMid":"audio"} 

{"sdp":"candidate:4037141416 1 udp 1686052607 217.112.221.86 33341 typ srflx raddr 192.168.15.33 rport 54469 generation 0 ufrag Ucsk network-id 3 network-cost 10","sdpMLineIndex":0,"sdpMid":"audio"} 

ICE SAMPLE 작업 TURN의 :

또한
{"sdp":"candidate:1911153948 1 udp 2122260223 192.168.15.33 53080 typ host generation 0 ufrag u6i0 network-id 3 network-cost 10","sdpMLineIndex":0,"sdpMid":"audio"} 

{"sdp":"candidate:4037141416 1 udp 1686052607 217.112.221.86 47737 typ srflx raddr 192.168.15.33 rport 53080 generation 0 ufrag u6i0 network-id 3 network-cost 10","sdpMLineIndex":0,"sdpMid":"audio"} 

{"sdp":"candidate:3433799847 1 udp 41885439 66.228.45.110 56124 typ relay raddr 217.112.221.86 rport 47737 generation 0 ufrag u6i0 network-id 3 network-cost 10","sdpMLineIndex":0,"sdpMid":"audio"} 

로그 난에 뭔가 시간 초과 오류 연결에 보이는 것 같아. 어 15s 핑 :

I/libjingle: (port.cc:1413): Jingle:Conn[0xafe1c200:audio:ymVmyEYx:1:0:local:udp:192.168.15.x:59152->p7NE+tsC:1:1686052607:stun:udp:46.133.252.x:62179|C--I|0|0|7241540810645061118|-]: Sent STUN ping, id=597771634a2b427864497448, use_candidate=0, nomination=0 

I/libjingle: (port.cc:1413): Jingle:Conn[0xafe1bd00:audio:ymVmyEYx:1:0:local:udp:192.168.15.x:59152->+xyFpztR:1:2122260223:local:udp:100.73.133.x:43879|C--I|0|0|9115038255631187454|-]: Sent STUN ping, id=345231714b49377a66633056, use_candidate=0, nomination=0 
+1

"작동하지 않음"은 100 가지가 다를 수 있습니다. 가능한 정확하게 작동하지 않는지 명확히하고, 가능한 경우 로그를 제공하십시오. 사용중인 기절 서버 및 만든 안드로이드 응용 프로그램에 대한 약간의 정보. 이러한 불분명 한 질문은 귀하의 질문을 해결하지 못할 것이며 귀하를 도울 수 있도록 도와드립니다. –

+0

@ UtsavShrestha – Garret

+0

더 많은 정보를 추가했습니다. 왜 이것이 STUN 문제라고 생각하십니까? – mattm

답변

1

의견 체인에서 Android 앱이 대칭 NAT 뒤에있는 것처럼 들립니다. 이것은 대개 TURN 서버를 필요로하는 것입니다. 대칭 NAT 뒤에있는 끝점은 다른 대칭 NAT 또는 포트 제한 NAT 뒤에있는 끝점과 직접 통신 할 수 없습니다.

그래서이 일이 진행된다고 가정하면 할 수있는 일이 없습니다. 이것은 TURN 서버가 필요한 상황 중 하나입니다.

+0

Wi-Fi 및 이동 통신사 네트워크를 사용하지 않는 경우 대칭 NAT가 일반적입니다. – selbie

+0

@Taylor Brandstetter STUN 서버가 일반 릴레이를 사용하여 ICE를 전송합니까? IOS 앱이 TURN 서버를 사용하는지 여부를 ICE가 결정할 수 있습니까? – Garret

+0

@Garret STUN 서버는 "srflx"후보만을 제공합니다. "릴레이"후보자는 TURN 후보자입니다. –