WebRTC: Why from iPhone device to other iPhone device don't work, in other cases it works?

217 views
Skip to first unread message

Inter Export

unread,
Jun 4, 2019, 5:01:47 AM6/4/19
to discuss-webrtc

I'm making the app whit audio and video call together with my android developer. The problem arises when I call from iPhone to iPhone then I have black screen and no audio and no video even I make Offer with candidates and sdp, send Offer and then receive Answer, handle Answer with new sdp... Start connection.


The proof that it is well packaged is that when I call from iPhone to Android everything work well (audio and video works) also when Android call me to iPhone also everything work well (also audio and video works).


But my huge problem is when I call from iPhone to iPhone I have black screen and no audio and no video!


The basis from where I followed the steps for WebRTC and iOS is this article: https://hackernoon.com/swiftywebrtc-789936b0e39b


I read and researched about STUN and TURN servers, all phones which I tested are on the same network so I do not think it's a problem.


Here is Offer and below Answer which I get when I call from iPhone to iPhone.










//Here is the Offer which I'm sending:

{


  "to" : "user2",


  "token" : "someToken",


  "sdp" : {


    "sdp" : "v=0\r\no=- 6715451974316592424 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS RTCmS\r\nm=audio 9 UDP\/TLS\/RTP\/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Q+\/a\r\na=ice-pwd:IcGx5ugUsn6OhK\/CqvKRjmZo\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 CA:42:40:B4:55:5F:C2:B4:52:B7:F0:B8:34:EC:15:05:91:B3:FD:CB:B0:81:E2:BE:D4:B1:E3:64:1A:16:0D:CC\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus\/48000\/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC\/16000\r\na=rtpmap:104 ISAC\/32000\r\na=rtpmap:9 G722\/8000\r\na=rtpmap:102 ILBC\/8000\r\na=rtpmap:0 PCMU\/8000\r\na=rtpmap:8 PCMA\/8000\r\na=rtpmap:106 CN\/32000\r\na=rtpmap:105 CN\/16000\r\na=rtpmap:13 CN\/8000\r\na=rtpmap:110 telephone-event\/48000\r\na=rtpmap:112 telephone-event\/32000\r\na=rtpmap:113 telephone-event\/16000\r\na=rtpmap:126 telephone-event\/8000\r\na=ssrc:67241509 cname:+XM5vKcRDDtqXyXp\r\na=ssrc:67241509 msid:RTCmS RTCaS0\r\na=ssrc:67241509 mslabel:RTCmS\r\na=ssrc:67241509 label:RTCaS0\r\nm=video 9 UDP\/TLS\/RTP\/SAVPF 96 97 98 99 100 101 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Q+\/a\r\na=ice-pwd:IcGx5ugUsn6OhK\/CqvKRjmZo\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 CA:42:40:B4:55:5F:C2:B4:52:B7:F0:B8:34:EC:15:05:91:B3:FD:CB:B0:81:E2:BE:D4:B1:E3:64:1A:16:0D:CC\r\na=setup:actpass\r\na=mid:video\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:13 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time\r\na=extmap:3 urn:3gpp:video-orientation\r\na=extmap:2 http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/playout-delay\r\na=extmap:6 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-content-type\r\na=extmap:7 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-timing\r\na=extmap:8 http:\/\/tools.ietf.org\/html\/draft-ietf-avtext-framemarking-07\r\na=extmap:9 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/color-space\r\na=sendrecv\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 H264\/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c34\r\na=rtpmap:97 rtx\/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 H264\/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e034\r\na=rtpmap:99 rtx\/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 red\/90000\r\na=rtpmap:101 rtx\/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:127 ulpfec\/90000\r\na=ssrc-group:FID 1784015074 2462426231\r\na=ssrc:1784015074 cname:+XM5vKcRDDtqXyXp\r\na=ssrc:1784015074 msid:RTCmS RTCvS0\r\na=ssrc:1784015074 mslabel:RTCmS\r\na=ssrc:1784015074 label:RTCvS0\r\na=ssrc:2462426231 cname:+XM5vKcRDDtqXyXp\r\na=ssrc:2462426231 msid:RTCmS RTCvS0\r\na=ssrc:2462426231 mslabel:RTCmS\r\na=ssrc:2462426231 label:RTCvS0\r\n",


    "notification_type" : "2",


    "type" : "offer"


  },


  "candidates" : [


    {


      "sdpMLineIndex" : 0,


      "sdpMid" : "audio",


      "candidate" : "candidate:3573973069 1 udp 2122260223 192.168.0.102 58128 typ host generation 0 ufrag Q+\/a network-id 1 network-cost 10"


    },


    {


      "sdpMLineIndex" : 0,


      "sdpMid" : "audio",


      "candidate" : "candidate:467259651 1 udp 2122194687 169.254.105.176 59427 typ host generation 0 ufrag Q+\/a network-id 2 network-cost 10"


    },


    {


      "sdpMLineIndex" : 0,


      "sdpMid" : "audio",


      "candidate" : "candidate:2143624614 1 udp 2122129151 10.159.255.238 56870 typ host generation 0 ufrag Q+\/a network-id 5 network-cost 900"


    },


    {


      "sdpMLineIndex" : 1,


      "sdpMid" : "video",


      "candidate" : "candidate:3573973069 1 udp 2122260223 192.168.0.102 53947 typ host generation 0 ufrag Q+\/a network-id 1 network-cost 10"


    },


    {


      "sdpMLineIndex" : 1,


      "sdpMid" : "video",


      "candidate" : "candidate:467259651 1 udp 2122194687 169.254.105.176 60255 typ host generation 0 ufrag Q+\/a network-id 2 network-cost 10"


    },


    {


      "sdpMLineIndex" : 1,


      "sdpMid" : "video",


      "candidate" : "candidate:2143624614 1 udp 2122129151 10.159.255.238 57736 typ host generation 0 ufrag Q+\/a network-id 5 network-cost 900"


    },


    {


      "sdpMLineIndex" : 0,


      "sdpMid" : "audio",


      "candidate" : "candidate:1414432505 1 udp 1686052607 178.149.16.193 58128 typ srflx raddr 192.168.0.102 rport 58128 generation 0 ufrag Q+\/a network-id 1 network-cost 10"


    },


    {


      "sdpMLineIndex" : 1,


      "sdpMid" : "video",


      "candidate" : "candidate:1414432505 1 udp 1686052607 178.149.16.193 53947 typ srflx raddr 192.168.0.102 rport 53947 generation 0 ufrag Q+\/a network-id 1 network-cost 10"


    }


  ]


}


//Here is the Answer which I'm sending

Print the Answer:


 ["signal_from": user2, "signal_to": user1, "sdp": {


    sdp = "v=0


\no=- 397021495051624103 2 IN IP4 127.0.0.1


\ns=-


\nt=0 0


\na=group:BUNDLE audio video


\na=msid-semantic: WMS RTCmS


\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126


\nc=IN IP4 0.0.0.0


\na=rtcp:9 IN IP4 0.0.0.0


\na=ice-ufrag:hA1v


\na=ice-pwd:I/v883vw0VCU9hVUAzwkz2ql


\na=ice-options:trickle renomination


\na=fingerprint:sha-256 B2:F5:FE:0D:DF:6F:6A:B1:F7:71:CA:D7:B2:92:13:DF:EB:A4:A6:2E:7B:BE:DF:02:62:38:32:9F:12:8C:E7:14


\na=setup:active


\na=mid:audio


\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level


\na=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01


\na=sendrecv


\na=rtcp-mux


\na=rtpmap:111 opus/48000/2


\na=rtcp-fb:111 transport-cc


\na=fmtp:111 minptime=10;useinbandfec=1


\na=rtpmap:103 ISAC/16000


\na=rtpmap:104 ISAC/32000


\na=rtpmap:9 G722/8000


\na=rtpmap:102 ILBC/8000


\na=rtpmap:0 PCMU/8000


\na=rtpmap:8 PCMA/8000


\na=rtpmap:106 CN/32000


\na=rtpmap:105 CN/16000


\na=rtpmap:13 CN/8000


\na=rtpmap:110 telephone-event/48000


\na=rtpmap:112 telephone-event/32000


\na=rtpmap:113 telephone-event/16000


\na=rtpmap:126 telephone-event/8000


\na=ssrc:361569358 cname:Mk3jbVCK346U8SsE


\na=ssrc:361569358 msid:RTCmS RTCaS0


\na=ssrc:361569358 mslabel:RTCmS


\na=ssrc:361569358 label:RTCaS0


\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127


\nc=IN IP4 0.0.0.0


\na=rtcp:9 IN IP4 0.0.0.0


\na=ice-ufrag:hA1v


\na=ice-pwd:I/v883vw0VCU9hVUAzwkz2ql


\na=ice-options:trickle renomination


\na=fingerprint:sha-256 B2:F5:FE:0D:DF:6F:6A:B1:F7:71:CA:D7:B2:92:13:DF:EB:A4:A6:2E:7B:BE:DF:02:62:38:32:9F:12:8C:E7:14


\na=setup:active


\na=mid:video


\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset


\na=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time


\na=extmap:3 urn:3gpp:video-orientation


\na=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01


\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay


\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type


\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing


\na=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07


\na=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space


\na=sendrecv


\na=rtcp-mux


\na=rtcp-rsize


\na=rtpmap:96 H264/90000


\na=rtcp-fb:96 goog-remb


\na=rtcp-fb:96 transport-cc


\na=rtcp-fb:96 ccm fir


\na=rtcp-fb:96 nack


\na=rtcp-fb:96 nack pli


\na=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c2a


\na=rtpmap:97 rtx/90000


\na=fmtp:97 apt=96


\na=rtpmap:98 H264/90000


\na=rtcp-fb:98 goog-remb


\na=rtcp-fb:98 transport-cc


\na=rtcp-fb:98 ccm fir


\na=rtcp-fb:98 nack


\na=rtcp-fb:98 nack pli


\na=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e02a


\na=rtpmap:99 rtx/90000


\na=fmtp:99 apt=98


\na=rtpmap:100 red/90000


\na=rtpmap:101 rtx/90000


\na=fmtp:101 apt=100


\na=rtpmap:127 ulpfec/90000


\na=ssrc-group:FID 2331832648 1835588017


\na=ssrc:2331832648 cname:Mk3jbVCK346U8SsE


\na=ssrc:2331832648 msid:RTCmS RTCvS0


\na=ssrc:2331832648 mslabel:RTCmS


\na=ssrc:2331832648 label:RTCvS0


\na=ssrc:1835588017 cname:Mk3jbVCK346U8SsE


\na=ssrc:1835588017 msid:RTCmS RTCvS0


\na=ssrc:1835588017 mslabel:RTCmS


\na=ssrc:1835588017 label:RTCvS0


\n";


    type = answer;


}, "candidates": <__NSArrayM 0x2832c1230>(


{


    candidate = "candidate:2131708102 1 udp 2122260223 192.168.0.100 53231 typ host generation 0 ufrag hA1v network-id 1 network-cost 10";


    sdpMLineIndex = 0;


    sdpMid = audio;


},


{


    candidate = "candidate:4266086002 1 udp 1686052607 178.149.16.193 53231 typ srflx raddr 192.168.0.100 rport 53231 generation 0 ufrag hA1v network-id 1 network-cost 10";


    sdpMLineIndex = 0;


    sdpMid = audio;


},


{


    candidate = "candidate:831304758 1 tcp 1518280447 192.168.0.100 57582 typ host tcptype passive generation 0 ufrag hA1v network-id 1 network-cost 10";


    sdpMLineIndex = 0;


    sdpMid = audio;


},


{


    candidate = "candidate:4080636139 1 udp 41885439 51.254.34.143 51986 typ relay raddr 178.149.16.193 rport 53231 generation 0 ufrag hA1v network-id 1 network-cost 10";


    sdpMLineIndex = 0;


    sdpMid = audio;


}


)


]


It's also a big problem that I have no errors to show up. For RTCIceConnectionState I get RTCIceConnectionStateConnected. I'm running out of an idea where it would be a problem.


Can anyone tell me what the problem is or what could be a problem?


Every idea what can cause the problem is welcome. Also in which direction I could still explore and dig.

Reply all
Reply to author
Forward
0 new messages