[jitsi-dev] iOS webrtc w jitsi


#1

hello,

Thanks to all for getting me this far!

I believe i am in the last steps of getting this working.

when i get my SESSION-INITIATE from jingle over my xmpp connection

  i create the peerconnection
  i set up local media streams on the peerconnection media connection

  i parse out the SDP and do
    setRemoteSessionDescription.

  this seems to work and there are a flurry of messages and streams connected. I had to change
    condition on streams to not insist that each stream has audio AND video since jitsi uses a stream
    for each.

Now, i think i am out of sequence. not sure how the flow should go from here.

  when i get callback from sdp created, i do this:

    Set LOCAL sdp from remote sdp
      the ORIGINAL test code using google appengine would send this in a json pkg to the remote server.
      i assume this is what i need to send in jingle TRANSPORT-INFO, translated properly.

    but i get

     Error(webrtcsession.cc:268): SetLocalDescription failed: Called with type in wrong state, type: offer state: STATE_RECEIVEDINITIATE
2014-11-10 11:43:16.441 AppRTCDemo[4813:1402105] SDP onFailure.

    in sdp callback.

    I can provide more of the webrtc debug output if necessary, it seems to be doing a lot establishing session/connecions and seems successful tup to here.

    where can i read more about the order all this is supposed to happen? maybe i will have fewer questions if i know more.
Peter Mycue
pmycue@us.ibm.com
pmycue@gmail.com
704-626-9772


#2

[...]

*Error(webrtcsession.cc <http://webrtcsession.cc>:268):
SetLocalDescription failed: Called with type in wrong state, type: offer
state: STATE_RECEIVEDINITIATE*
*2014-11-10 11:43:16.441 AppRTCDemo[4813:1402105] SDP onFailure.*

You're calling setlocaldescription with type=offer?

where can i read more about the order all this is supposed to happen?
maybe i will have fewer questions if i know more.

Looks at chrome://webrtc-internals in chrome when doing a call. That shows all the relevant api calls including their arguments.


#3

hello,

Thanks to all for getting me this far!

I believe i am in the last steps of getting this working.

when i get my SESSION-INITIATE from jingle over my xmpp connection

i create the peerconnection
i set up local media streams on the peerconnection media connection

i parse out the SDP and do
setRemoteSessionDescription.

this seems to work and there are a flurry of messages and streams
connected. I had to change
condition on streams to not insist that each stream has audio AND video
since jitsi uses a stream
for each.

Now, i think i am out of sequence. not sure how the flow should go from
here.

when i get callback from sdp created, i do this:

Set LOCAL sdp from remote sdp

You need to create an answer using createAnswer() first, and pass the answer to setLocalDescription().

the ORIGINAL test code using google appengine would send this in a json
pkg to the remote server.
i assume this is what i need to send in jingle TRANSPORT-INFO,
translated properly.

I don't think you need transport-info. You can wait for all the local ICE candidates, then get the local description and translate it to a jingle session-accept.

Regards,
Boris

···

On 10/11/14 18:46, Peter Mycue wrote:


#4

Hello,

i am trying to understand this response.

i create the remote sdp with type "offer"
in its callback on success i should then
call createAnswer but it does not return anything for me to pass to
setLocalDescription
is there a createAswer callback on success? nothing in the delegate
protocols that i can see.
looking up documentation on it i found

> pc.setRemoteDescription(new RTCSessionDescription(offer), function() {
     pc.createAnswer(function(answer) {
       pc.setLocalDescription(new RTCSessionDescription(answer), function() {
         // send the answer to a server to be forwarded back to the caller (you)
       }, error);
     }, error);
   }, error);
}
>

so it looks like you create a remote description from a received offer.
in its call back you createAnswer
in its call back you setlocaldescripton with type answer
in its call back - in MY case - i build SESSION-ACCEPT and send that back.

BUT i have no all back in this UI for create answer.

if i createAnswer adn then selocaldescription, i got the same error, had
to change the callback to know if it was called back on set local or set
remote descripton, now i do not get an error.

It still eventually shuts down everything:

Is there anything in this log that says what is still wrong?

This looks like a p2p failure to me -- you'll need to wireshark to see if packets are dropped / not reaching the videobridge.

*Warning(webrtcsession.cc <http://webrtcsession.cc>:1266): Candidate has
unknown component:
Cand[:2:local:udp::[2002:902:37b8::902:37b8]:5728:fn727:3fhf4tp9081ibumguofcb00p3l]
for content: audio*
*Warning(webrtcsession.cc <http://webrtcsession.cc>:1266): Candidate has
unknown component:
Cand[:2:local:udp::9.2.55.184:5728:fn727:3fhf4tp9081ibumguofcb00p3l] for
content: audio*

these warnings sound odd.

[...]

*Jingle:Port[:1:0::Net[en0:9.2.50.0/23]]: Port created*
*Adding allocated port for audio*
*Jingle:Port[audio:1:0::Net[en0:9.2.50.0/23]]: Added port to allocator*
*Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C--W|-]:
Connection created*
*Jingle:Channel[audio|1|__]: Created connection with origin=2, (1 total)*
*Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5731|C--W|-]:
Connection created*
*Jingle:Channel[audio|1|__]: Created connection with origin=2, (2 total)*
*Jingle:Net[pdp_ip0:10.38.68.200/32]: Allocation Phase=Udp*
*Jingle:Port[:1:0::Net[pdp_ip0:10.38.68.200/32]]: Port created*
*Adding allocated port for audio*
*Jingle:Port[audio:1:0::Net[pdp_ip0:10.38.68.200/32]]: Added port to
allocator*
*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C--W|-]:
Connection created*
*Jingle:Channel[audio|1|__]: Created connection with origin=2, (3 total)*
*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C--W|-]:
Connection created*

look for udp packets on those port in wireshark. Setting the display filter to "stun" helps keep the noise down.

*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C--I|-]:
Timed out after 15039 ms without a response, rtt=3000*
*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C-xI|-]:
Connection deleted*
*Jingle:Channel[audio|1|__]: Removed connection (2 remaining)*
*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C--I|-]:
Timed out after 15038 ms without a response, rtt=3000*
*Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C-xI|-]:
Connection deleted*

If you 10. interface isn't connected to anything that is ok.

*Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C-WI|3]:
Timing-out STUN ping cUmSGlQT1vcb after 5001 ms*
*Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C-WI|3]:
Unwritable after 5 ping failures and 5011 ms without a response, ms

That is a bad sign.

Have you hooked up the oniceconnectionstatechange event? I think that is somewhere in the peerconnection observer.

···

Am 10.11.2014 um 10:25 schrieb Peter Mycue:


#5

Hello,

i am trying to understand this response.

  i create the remote sdp with type "offer"
  in its callback on success i should then
  
    call createAnswer but it does not return anything for me to pass to setLocalDescription
    is there a createAswer callback on success? nothing in the delegate protocols that i can see.
    
looking up documentation on it i found

  pc.setRemoteDescription(new RTCSessionDescription(offer), function() {
    pc.createAnswer(function(answer) {
      pc.setLocalDescription(new RTCSessionDescription(answer), function() {
        // send the answer to a server to be forwarded back to the caller (you)
      }, error);
    }, error);
  }, error);
}

  so it looks like you create a remote description from a received offer.
    in its call back you createAnswer
      in its call back you setlocaldescripton with type answer
        in its call back - in MY case - i build SESSION-ACCEPT and send that back.

  BUT i have no all back in this UI for create answer.

  if i createAnswer adn then selocaldescription, i got the same error, had to change the callback to know if it was called back on set local or set remote descripton, now i do not get an error.

  It still eventually shuts down everything:

  Is there anything in this log that says what is still wrong?

2014-11-10 13:23:16.894 AppRTCDemo[4924:1419845] RECV: <presence to="peterios@ibm903-r87y4km/425d4487" from="myroom@conference.ibm903-r87y4km/b8018919"><media xmlns="http://estos.de/ns/mjs"><source type="audio" ssrc="3639563568" direction="sendrecv"/><source type="video" ssrc="3495205396" direction="sendrecv"/></media><x xmlns="http://jabber.org/protocol/muc#user"><item jid="b8018919@ibm903-r87y4km/b8018919" affiliation="owner" role="moderator"/></x></presence>
2014-11-10 13:23:16.900 AppRTCDemo[4924:1419845] ---------- xmppStream:didReceivePresence: ----------
2014-11-10 13:23:16.902 AppRTCDemo[4924:1419845] RECV: <iq to="peterios@ibm903-r87y4km/425d4487" type="set" id="88:sendIQ" from="myroom@conference.ibm903-r87y4km/b8018919"><jingle xmlns="urn:xmpp:jingle:1" action="session-initiate" initiator="b8018919@ibm903-r87y4km/b8018919" sid="7yau1ap1ctjd"><content creator="initiator" name="audio" senders="both"><description xmlns="urn:xmpp:jingle:apps:rtp:1" media="audio" ssrc="3639563568"><payload-type id="111" name="opus" clockrate="48000" channels="2"><parameter name="minptime" value="10"/></payload-type><payload-type id="103" name="ISAC" clockrate="16000" channels="1"/><payload-type id="104" name="ISAC" clockrate="32000" channels="1"/><payload-type id="0" name="PCMU" clockrate="8000" channels="1"/><payload-type id="8" name="PCMA" clockrate="8000" channels="1"/><payload-type id="106" name="CN" clockrate="32000" channels="1"/><payload-type id="105" name="CN" clockrate="16000" channels="1"/><payload-type id="13" name="CN" clockrate="8000" channels="1"/><payload-type id="126" name="telephone-event" clockrate="8000" channels="1"/><source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3639563568"><parameter name="cname" value="JPc8EIdUAZutrQlS"/><parameter name="msid" value="DdPmN4NNluLW3FNLTxBDcUOMkIaUfHVluQL4 381f9caf-55da-4f46-ae0f-2eac8d5fb7f1"/><parameter name="mslabel" value="DdPmN4NNluLW3FNLTxBDcUOMkIaUfHVluQL4"/><parameter name="label" value="381f9caf-55da-4f46-ae0f-2eac8d5fb7f1"/></source><source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3735928559"><parameter name="cname" value="mixed"/><parameter name="label" value="mixedlabelv0"/><parameter name="msid" value="mixedmslabel mixedlabelv0"/><parameter name="mslabel" value="mixedmslabel"/></source><ssrc xmlns="http://estos.de/ns/ssrc" cname="mixed" msid="mixedmslabel mixedlabelv0" mslabel="mixedmslabel" label="mixedlabelv0" ssrc="3735928559"/><rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:ssrc-audio-level" id="1"/></description><transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" ufrag="fn727" pwd="3fhf4tp9081ibumguofcb00p3l"><fingerprint xmlns="urn:xmpp:jingle:apps:dtls:0" hash="sha-1" setup="actpass">6D:E9:6B:82:F5:A2:9C:CF:13:C5:60:E9:3E:F4:31:53:FE:40:CE:BC</fingerprint><candidate foundation="1" component="1" protocol="udp" priority="2130706431" ip="2002:902:37b8:0:0:0:902:37b8" port="5727" type="host" generation="0" network="1" id="pbcuadrbfm"/><candidate foundation="2" component="1" protocol="udp" priority="2130706431" ip="9.2.55.184" port="5727" type="host" generation="0" network="1" id="npuqtpn24g"/><candidate foundation="3" component="1" protocol="udp" priority="2113937151" ip="fe80:0:0:0:e0e1:bee7:27dd:a0a1" port="5727" type="host" generation="0" network="1" id="z1pwop1nqs"/><candidate foundation="1" component="2" protocol="udp" priority="2130706430" ip="2002:902:37b8:0:0:0:902:37b8" port="5728" type="host" generation="0" network="1" id="pb9ezymxeo"/><candidate foundation="2" component="2" protocol="udp" priority="2130706430" ip="9.2.55.184" port="5728" type="host" generation="0" network="1" id="h31uslqh6y"/><candidate foundation="3" component="2" protocol="udp" priority="2113937150" ip="fe80:0:0:0:e0e1:bee7:27dd:a0a1" port="5728" type="host" generation="0" network="1" id="wa3rxt4ht0"/></transport></content><content creator="initiator" name="video" senders="both"><description xmlns="urn:xmpp:jingle:apps:rtp:1" media="video" ssrc="3495205396"><payload-type id="100" name="VP8" clockrate="90000" channels="1"><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="ccm" subtype="fir"/><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="nack"/><rtcp-fb xmlns="urn:xmpp:jingle:apps:rtp:rtcp-fb:0" type="goog-remb"/></payload-type><payload-type id="116" name="red" clockrate="90000" channels="1"/><payload-type id="117" name="ulpfec" clockrate="90000" channels="1"/><source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3495205396"><parameter name="cname" value="UIM8OSzqnfafJabq"/><parameter name="msid" value="oa4tIwb0FghbWNUlO7WrH6iyl3Q8yDmXtLkn feb0909e-994c-4545-a763-1b23c9e4f2f1"/><parameter name="mslabel" value="oa4tIwb0FghbWNUlO7WrH6iyl3Q8yDmXtLkn"/><parameter name="label" value="feb0909e-994c-4545-a763-1b23c9e4f2f1"/></source><source xmlns="urn:xmpp:jingle:apps:rtp:ssma:0" ssrc="3735928559"><parameter name="cname" value="mixed"/><parameter name="label" value="mixedlabelv0"/><parameter name="msid" value="mixedmslabel mixedlabelv0"/><parameter name="mslabel" value="mixedmslabel"/></source><ssrc xmlns="http://estos.de/ns/ssrc" cname="mixed" msid="mixedmslabel mixedlabelv0" mslabel="mixedmslabel" label="mixedlabelv0" ssrc="3735928559"/><rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="urn:ietf:params:rtp-hdrext:toffset" id="2"/><rtp-hdrext xmlns="urn:xmpp:jingle:apps:rtp:rtp-hdrext:0" uri="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time" id="3"/></description><transport xmlns="urn:xmpp:jingle:transports:ice-udp:1" ufrag="dlr6k" pwd="52p1vqfao4agpugiu3li11cfka"><fingerprint xmlns="urn:xmpp:jingle:apps:dtls:0" hash="sha-1" setup="actpass">CB:3F:23:75:47:C2:D0:D9:B8:E0:B0:14:AF:1A:9B:1E:C2:EF:2A:23</fingerprint><candidate foundation="1" component="1" protocol="udp" priority="2130706431" ip="2002:902:37b8:0:0:0:902:37b8" port="5731" type="host" generation="0" network="1" id="7rydqusior"/><candidate foundation="2" component="1" protocol="udp" priority="2130706431" ip="9.2.55.184" port="5731" type="host" generation="0" network="1" id="a3i6iua1rc"/><candidate foundation="3" component="1" protocol="udp" priority="2113937151" ip="fe80:0:0:0:e0e1:bee7:27dd:a0a1" port="5731" type="host" generation="0" network="1" id="4df5n90ea6"/><candidate foundation="1" component="2" protocol="udp" priority="2130706430" ip="2002:902:37b8:0:0:0:902:37b8" port="5732" type="host" generation="0" network="1" id="ikubzeghpm"/><candidate foundation="2" component="2" protocol="udp" priority="2130706430" ip="9.2.55.184" port="5732" type="host" generation="0" network="1" id="4vgdhbdob8"/><candidate foundation="3" component="2" protocol="udp" priority="2113937150" ip="fe80:0:0:0:e0e1:bee7:27dd:a0a1" port="5732" type="host" generation="0" network="1" id="vadjmujn8k"/></transport></content></jingle></iq>
2014-11-10 13:23:16.908 AppRTCDemo[4924:1419845] ---------- xmppStream:didReceiveIQ: ----------

2014-11-10 13:23:16.928 AppRTCDemo[4924:1419845] SDP SO FAR IS v=0

o=- 9135848008193788882 2 IN IP4 127.0.0.1

s=-

t=0 0

a=group:BUNDLE audio video

m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126

a=candidate:1 1 udp 2130706431 2002:902:37b8:0:0:0:902:37b8 5727 typ host

a=candidate:2 1 udp 2130706431 9.2.55.184 5727 typ host

a=candidate:3 1 udp 2113937151 fe80:0:0:0:e0e1:bee7:27dd:a0a1 5727 typ host

a=candidate:1 2 udp 2130706430 2002:902:37b8:0:0:0:902:37b8 5728 typ host

a=candidate:2 2 udp 2130706430 9.2.55.184 5728 typ host

a=candidate:3 2 udp 2113937150 fe80:0:0:0:e0e1:bee7:27dd:a0a1 5728 typ host

a=ice-ufrag:fn727

a=ice-pwd:3fhf4tp9081ibumguofcb00p3l

a=mid:audio

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

a=sendrecv

a=rtcp-mux

a=rtpmap:111 opus/48000/2

a=fmtp:111 minptime=10

a=rtpmap:103 ISAC/16000

a=rtpmap:104 ISAC/32000

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=rtpmap:106 CN/32000

a=rtpmap:105 CN/16000

a=rtpmap:13 CN/8000

a=rtpmap:126 telephone-event/8000

a=ssrc:3639563568 cname:JPc8EIdUAZutrQlS

a=ssrc:3639563568 msid:DdPmN4NNluLW3FNLTxBDcUOMkIaUfHVluQL4 381f9caf-55da-4f46-ae0f-2eac8d5fb7f1

a=ssrc:3639563568 mslabel:DdPmN4NNluLW3FNLTxBDcUOMkIaUfHVluQL4

a=ssrc:3639563568 label:381f9caf-55da-4f46-ae0f-2eac8d5fb7f1

a=ssrc:3735928559 cname:mixed

a=ssrc:3735928559 label:mixedlabelv0

a=ssrc:3735928559 msid:mixedmslabel mixedlabelv0

a=ssrc:3735928559 mslabel:mixedmslabel

a=fingerprint:sha-1 6D:E9:6B:82:F5:A2:9C:CF:13:C5:60:E9:3E:F4:31:53:FE:40:CE:BC

m=video 1 RTP/SAVPF 100 116 117

a=candidate:1 1 udp 2130706431 2002:902:37b8:0:0:0:902:37b8 5731 typ host

a=candidate:2 1 udp 2130706431 9.2.55.184 5731 typ host

a=candidate:3 1 udp 2113937151 fe80:0:0:0:e0e1:bee7:27dd:a0a1 5731 typ host

a=candidate:1 2 udp 2130706430 2002:902:37b8:0:0:0:902:37b8 5732 typ host

a=candidate:2 2 udp 2130706430 9.2.55.184 5732 typ host

a=candidate:3 2 udp 2113937150 fe80:0:0:0:e0e1:bee7:27dd:a0a1 5732 typ host

a=ice-ufrag:dlr6k

a=ice-pwd:52p1vqfao4agpugiu3li11cfka

a=mid:video

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=sendrecv

a=rtcp-mux

a=rtpmap:100 VP8/90000

a=rtpmap:116 red/90000

a=rtpmap:117 ulpfec/90000

a=ssrc:3495205396 cname:UIM8OSzqnfafJabq

a=ssrc:3495205396 msid:oa4tIwb0FghbWNUlO7WrH6iyl3Q8yDmXtLkn feb0909e-994c-4545-a763-1b23c9e4f2f1

a=ssrc:3495205396 mslabel:oa4tIwb0FghbWNUlO7WrH6iyl3Q8yDmXtLkn

a=ssrc:3495205396 label:feb0909e-994c-4545-a763-1b23c9e4f2f1

a=ssrc:3735928559 cname:mixed

a=ssrc:3735928559 label:mixedlabelv0

a=ssrc:3735928559 msid:mixedmslabel mixedlabelv0

a=ssrc:3735928559 mslabel:mixedmslabel

a=fingerprint:sha-1 CB:3F:23:75:47:C2:D0:D9:B8:E0:B0:14:AF:1A:9B:1E:C2:EF:2A:23

2014-11-10 13:23:16.941 AppRTCDemo[4924:1419845] SEND: <presence type="unavailable"><x xmlns="vcard-temp:x:update"><photo/></x></presence>
2014-11-10 13:23:16.965 AppRTCDemo[4924:1419845] ---------- xmppStreamDidDisconnect: ----------
2014-11-10 13:23:16.971 AppRTCDemo[4924:1419845] UITableView has 2 rows
2014-11-10 13:23:17.003 AppRTCDemo[4924:1419845] jingle ELEMENT IS <jingle xmlns="urn:xmpp:jingle:1"></jingle>
2014-11-10 13:23:17.789 AppRTCDemo[4924:1419845] *** HERE in acceptConnection - received Jingle session initiate
Warning(webrtcvoiceengine.cc:360): SetTraceCallback() failed, err=0
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: PCMU/8000/2 (110)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: PCMA/8000/2 (118)
ILBC/8000/1 (102)
G722/16000/1 (9)
Warning(webrtcvoiceengine.cc:462): Unexpected codec: G722/16000/2 (119)
opus/48000/2 (111)
CN/8000/1 (13)
CN/16000/1 (105)
CN/32000/1 (106)
telephone-event/8000/1 (126)
red/8000/1 (127)
WebRtcVideoEngine::WebRtcVideoEngine
Warning(webrtcvideoengine.cc:838): SetTraceCallback(0x15203c5c) failed, err=0
WebRtcVoiceEngine::Init
WebRtc VoiceEngine Version:
VoiceEngine 4.1.0
Build: svn:Unavailable(issue687) Oct 29 2013 12:59:30 ?
Applying audio options: AudioOptions {aec: false, agc: false, ns: true, hf: true, swap: false, typing: false, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, aec_dump: false, }
Warning(webrtcvoiceengine.cc:811): SetTypingDetectionStatus(0) failed, err=8003
Adjusting AGC level from default -3dB to -3dB
WebRtc VoiceEngine codecs:
opus/48000/2 (111)
ISAC/16000/1 (103)
G722/16000/1 (9)
ILBC/8000/1 (102)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
CN/32000/1 (106)
CN/16000/1 (105)
CN/8000/1 (13)
red/8000/1 (127)
telephone-event/8000/1 (126)
WebRtcVoiceEngine::Init Done!
WebRtcVideoEngine::Init
WebRtcVideoEngine::InitVideoEngine
WebRtc VideoEngine Version:
VideoEngine 3.45.0
Build: svn:Unavailable(issue687) Oct 29 2013 13:00:07 ?
VideoEngine Init done
Applying audio options: AudioOptions {aec: false, agc: false, ns: true, hf: true, swap: false, typing: false, conference: false, agc_delta: 0, experimental_agc: false, experimental_aec: false, aec_dump: false, }
Warning(webrtcvoiceengine.cc:811): SetTypingDetectionStatus(0) failed, err=8003
Adjusting AGC level from default -3dB to -3dB
Allowing SCTP data engine.
Generating identity.
2014-11-10 13:23:18.382 AppRTCDemo[4924:1419845] Adding Audio and Video devices ...
Created VideoCapturer for Front Camera
Failed to find best capture format, fall back to the requested format I420 640x480x30
2014-11-10 13:23:18.392 AppRTCDemo[4924:1420077] WARNING: -[<AVCaptureConnection: 0x14d33be0> setVideoMinFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMinFrameDuration
2014-11-10 13:23:18.392 AppRTCDemo[4924:1420077] WARNING: -[<AVCaptureConnection: 0x14d33be0> setVideoMaxFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMaxFrameDuration
Captured frame size 640x480. Expected format I420 640x480x30
Validate frame passed. format: I420 bpp: 12 size: 640x480 bytes: 460800 expected: 460800 sample[0..3]: 16, 15, 15, 15
Camera 'com.apple.avfoundation.avcapturedevice.built-in_video:1' started with format I420 640x480x30, elapsed time 9003 ms
Captured frame size 640x480. Expected format I420 640x480x30
2014-11-10 13:23:27.401 AppRTCDemo[4924:1420076] PCO onRenegotiationNeeded.
2014-11-10 13:23:27.402 AppRTCDemo[4924:1419845] onICEServers - add local stream.
2014-11-10 13:23:27.402 AppRTCDemo[4924:1419845] Adding Audio and Video devices ... DONE
2014-11-10 13:23:27.403 AppRTCDemo[4924:1419845] PC - setRemoteDescription.
Created channel for audio
NACK enabled for channel 0
NACK enabled for channel 0
Created channel for video
Session:3451150478160015865 Old state:STATE_INIT New state:STATE_RECEIVEDINITIATE Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-11-10 13:23:27.475 AppRTCDemo[4924:1420076] PCO onSignalingStateChange: 3
Setting remote voice description
Recv stream 3639563568 reuse default channel
Stopping playout for channel #0
Add remote ssrc: 3639563568
Disabling NACK for channel 1
Stopping playout for channel #1
New audio stream 3735928559 registered to VoiceEngine channel #1.
Add remote ssrc: 3735928559
Enabling audio level header extension with ID 1
Setting voice channel options: AudioOptions {}
Set voice channel options. Current options: AudioOptions {}
Changing voice state, recv=0 send=0
Setting remote video description
Hybrid NACK/FEC enabled for channel 0
Hybrid NACK/FEC enabled for channel 0
SetSendCodecs() : selected video codec VP8/1280x720x30fps@2000kbps (min=50kbps, start=300kbps)
Video max quantization: 56
VP8 number of temporal layers: 1
VP8 options : picture loss indication = 0, feedback mode = 0, complexity = normal, resilience = off, denoising = 0, error concealment = 0, automatic resize = 0, frame dropping = 1, key frame interval = 3000
Recv stream 3495205396 reuse default channel #0
Add remote ssrc: 3495205396
Hybrid NACK/FEC enabled for channel 1
New video stream 3735928559 registered to VideoEngine channel #1 and connected to channel #0
Add remote ssrc: 3735928559
Warning(webrtcvideoengine.cc:2685): SetReceiverBufferingMode(1, 0) failed, err=12606
Changing video state, recv=0 send=0
Warning(webrtcvoiceengine.cc:2622): SetOutputVolumePan(0, 1, 1) failed, err=8003
SetOutputScaling to left=1 right=1 for channel 0 and ssrc 3639563568
Warning(webrtcvoiceengine.cc:2622): SetOutputVolumePan(1, 1, 1) failed, err=8003
SetOutputScaling to left=1 right=1 for channel 1 and ssrc 3735928559
RemoteVideoCapturer::Start
SetRenderer 3495205396 reuse default channel #0
RemoteVideoCapturer::Start
2014-11-10 13:23:27.515 AppRTCDemo[4924:1420076] PCO onAddStream.
2014-11-10 13:23:27.515 AppRTCDemo[4924:1420076] PCO onAddStream.
2014-11-10 13:23:27.516 AppRTCDemo[4924:1420076] PCO onAddStream.
2014-11-10 13:23:27.516 AppRTCDemo[4924:1419845] SEQ4-Setup AppRTC video view
2014-11-10 13:23:27.516 AppRTCDemo[4924:1420076] SDP onSuccess() - possibly drain candidates
Local and Remote descriptions must be applied to get SSL Role of the session.
Data is not available in the offer.
2014-11-10 13:23:31.882 AppRTCDemo[4924:1420076] SDP onSuccess(SDP) - set local description. GG
2014-11-10 13:23:31.883 AppRTCDemo[4924:1420076] **** FOO BAR
Ignored line: c=IN IP4 0.0.0.0
Ignored line: c=IN IP4 0.0.0.0
2014-11-10 13:23:31.915 AppRTCDemo[4924:1419845] SEQ5-Starting AppRTC video view and camera capture
Destroying NSS identity
Destroying NSS identity
Jingle:Channel[audio|1|__]: DTLS setup complete.
Jingle:Channel[audio|2|__]: DTLS setup complete.
2014-11-10 13:23:31.944 AppRTCDemo[4924:1419845] SDP onSuccess - drain candidates
Jingle:Channel[video|1|__]: DTLS setup complete.
Jingle:Channel[video|2|__]: DTLS setup complete.
Destroying NSS identity
Destroying NSS identity
Enabling BUNDLE, bundling onto transport: audio
Channel enabled
Changing voice state, recv=0 send=0
Channel enabled
Changing video state, recv=0 send=0
Session:3451150478160015865 Old state:STATE_RECEIVEDINITIATE New state:STATE_SENTACCEPT Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-11-10 13:23:31.958 AppRTCDemo[4924:1420076] PCO onSignalingStateChange: 0
Setting local voice description
Disabling NACK for channel 0
Send channel 0 selected voice codec ISAC/16000/1 (103), bitrate=32000
Warning(webrtcvoiceengine.cc:1811): Unknown codec opus/48000/1 (111)
Enabling VAD
Add send ssrc: 2104080078
Setting receive voice codecs:
ISAC/16000/1 (103)
opus/48000/2 (111)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
CN/32000/1 (106)
CN/16000/1 (105)
CN/8000/1 (13)
telephone-event/8000/1 (126)
Starting playout for channel #0
Starting playout for channel #1
Changing voice state, recv=1 send=0
Setting local video description
AddSendStream {id:ARDAMSv0;ssrcs:[360991619];ssrc_groups:;cname:OovTxCI8+VQdHfbs;sync_label:ARDAMS}
SetSendStreamFormat() : selected video codec VP8/1280x720x30fps@2000kbps (min=50kbps, start=300kbps)
Video max quantization: 56
VP8 number of temporal layers: 1
VP8 options : picture loss indication = 0, feedback mode = 0, complexity = normal, resilience = off, denoising = 0, error concealment = 0, automatic resize = 0, frame dropping = 1, key frame interval = 3000
Add send ssrc: 360991619
Destroying NSS identity
Changing video state, recv=1 send=0
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::[2002:902:37b8::902:37b8]:5728:fn727:3fhf4tp9081ibumguofcb00p3l] for content: audio
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::9.2.55.184:5728:fn727:3fhf4tp9081ibumguofcb00p3l] for content: audio
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::[fe80::e0e1:bee7:27dd:a0a1]:5728:fn727:3fhf4tp9081ibumguofcb00p3l] for content: audio
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::[2002:902:37b8::902:37b8]:5732:dlr6k:52p1vqfao4agpugiu3li11cfka] for content: video
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::9.2.55.184:5732:dlr6k:52p1vqfao4agpugiu3li11cfka] for content: video
Warning(webrtcsession.cc:1266): Candidate has unknown component: Cand[:2:local:udp::[fe80::e0e1:bee7:27dd:a0a1]:5732:dlr6k:52p1vqfao4agpugiu3li11cfka] for content: video
Setting voice channel options: AudioOptions {}
Set voice channel options. Current options: AudioOptions {}
Transport: audio, allocating candidates
Transport: audio, allocating candidates
Session:3451150478160015865 Old state:STATE_SENTACCEPT New state:STATE_INPROGRESS Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-11-10 13:23:32.532 AppRTCDemo[4924:1420076] PCO onIceConnectionChange. 1
2014-11-10 13:23:32.533 AppRTCDemo[4924:1420076] SDP onSuccess() - possibly drain candidates
2014-11-10 13:23:32.534 AppRTCDemo[4924:1419845] SDP onSuccess - drain candidates
Data is not available in the offer.
2014-11-10 13:23:32.537 AppRTCDemo[4924:1420076] PCO onIceGatheringChange. 1
2014-11-10 13:23:32.537 AppRTCDemo[4924:1420076] PCO onIceGatheringChange. 1
Jingle:Net[en0:9.2.50.0/23]: Allocation Phase=Udp
Jingle:Port[:1:0::Net[en0:9.2.50.0/23]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0::Net[en0:9.2.50.0/23]]: Added port to allocator
Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C--W|-]: Connection created
Jingle:Channel[audio|1|__]: Created connection with origin=2, (1 total)
Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5731|C--W|-]: Connection created
Jingle:Channel[audio|1|__]: Created connection with origin=2, (2 total)
Jingle:Net[pdp_ip0:10.38.68.200/32]: Allocation Phase=Udp
Jingle:Port[:1:0::Net[pdp_ip0:10.38.68.200/32]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0::Net[pdp_ip0:10.38.68.200/32]]: Added port to allocator
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C--W|-]: Connection created
Jingle:Channel[audio|1|__]: Created connection with origin=2, (3 total)
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C--W|-]: Connection created
Jingle:Channel[audio|1|__]: Created connection with origin=2, (4 total)
2014-11-10 13:23:34.809 AppRTCDemo[4924:1420076] *** self.peerConnection callback on setlocaldescription
2014-11-10 13:23:34.819 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[audio] Index[0] Sdp[a=candidate:3131982484 1 udp 2113937151 9.2.50.11 59952 typ host generation 0

]
2014-11-10 13:23:34.820 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[audio] Index[0] Sdp[a=candidate:76982603 1 udp 2113937151 10.38.68.200 56894 typ host generation 0

]
2014-11-10 13:23:34.822 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[video] Index[1] Sdp[a=candidate:3131982484 1 udp 2113937151 9.2.50.11 59952 typ host generation 0

]
2014-11-10 13:23:34.823 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[video] Index[1] Sdp[a=candidate:76982603 1 udp 2113937151 10.38.68.200 56894 typ host generation 0

]
Capture size changed : selected video codec VP8/640x480x30fps@2000kbps (min=50kbps, start=300kbps)
Video max quantization: 56
VP8 number of temporal layers: 1
VP8 options : picture loss indication = 0, feedback mode = 0, complexity = normal, resilience = off, denoising = 0, error concealment = 0, automatic resize = 1, frame dropping = 1, key frame interval = 3000
Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5731|C-xW|-]: Connection deleted
Jingle:Channel[audio|1|__]: Removed connection (3 remaining)
Jingle:Net[en0:9.2.50.0/23]: Allocation Phase=Relay
Jingle:Net[pdp_ip0:10.38.68.200/32]: Allocation Phase=Relay
Jingle:Net[en0:9.2.50.0/23]: Allocation Phase=Tcp
Jingle:Port[:1:0:local:Net[en0:9.2.50.0/23]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0:local:Net[en0:9.2.50.0/23]]: Added port to allocator
Jingle:Net[pdp_ip0:10.38.68.200/32]: Allocation Phase=Tcp
Jingle:Port[:1:0:local:Net[pdp_ip0:10.38.68.200/32]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0:local:Net[pdp_ip0:10.38.68.200/32]]: Added port to allocator
2014-11-10 13:23:34.921 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[audio] Index[0] Sdp[a=candidate:4096638564 1 tcp 1509957375 9.2.50.11 49933 typ host generation 0

]
2014-11-10 13:23:34.921 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[audio] Index[0] Sdp[a=candidate:1242912187 1 tcp 1509957375 10.38.68.200 49934 typ host generation 0

]
2014-11-10 13:23:34.922 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[video] Index[1] Sdp[a=candidate:4096638564 1 tcp 1509957375 9.2.50.11 49933 typ host generation 0

]
2014-11-10 13:23:34.922 AppRTCDemo[4924:1420076] PCO onICECandidate.
  Mid[video] Index[1] Sdp[a=candidate:1242912187 1 tcp 1509957375 10.38.68.200 49934 typ host generation 0

]
Jingle:Net[en0:9.2.50.0/23]: Allocation Phase=SslTcp
Jingle:Net[pdp_ip0:10.38.68.200/32]: Allocation Phase=SslTcp
All candidates gathered for audio:1:0
Transport: audio, component 1 allocation complete
Transport: audio allocation complete
Candidate gathering is complete.
2014-11-10 13:23:34.970 AppRTCDemo[4924:1420076] PCO onIceGatheringChange. 2
VAdapt Frame: 0 / 300 Changes: 0 Input: 640x480 Scale: 1 Output: 640x480 Changed: false
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C--I|-]: Timed out after 15039 ms without a response, rtt=3000
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5727|C-xI|-]: Connection deleted
Jingle:Channel[audio|1|__]: Removed connection (2 remaining)
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C--I|-]: Timed out after 15038 ms without a response, rtt=3000
Jingle:Conn[audio:Vh8RfAym:1:0:local:udp:10.38.68.200:56894->:1:0:local:udp:9.2.55.184:5731|C-xI|-]: Connection deleted
Jingle:Channel[audio|1|__]: Removed connection (1 remaining)
VAdapt Frame: 0 / 600 Changes: 0 Input: 640x480 Scale: 1 Output: 640x480 Changed: false
Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C-WI|3]: Timing-out STUN ping cUmSGlQT1vcb after 5001 ms
Jingle:Conn[audio:Fi8mS0jt:1:0:local:udp:9.2.50.11:59952->:1:0:local:udp:9.2.55.184:5727|C-WI|3]: Unwritable after 5 ping failures and 5011 ms without a response, ms since last received ping=355988908 ms since last received data=355988908 rtt=100
VAdapt Frame: 0 / 900 Changes: 0 Input: 640x480 Scale: 1 Output: 640x480 Changed: false
Jingle:Port[audio:1:0::Net[pdp_ip0:10.38.68.200/32]]: Port deleted
Jingle:Port[audio:1:0::Net[pdp_ip0:10.38.68.200/32]]: Removed port from allocator (3 remaining)
Removed port from p2p socket: 3 remaining
Jingle:Port[audio:1:0:local:Net[en0:9.2.50.0/23]]: Port deleted
Jingle:Port[audio:1:0:local:Net[en0:9.2.50.0/23]]: Removed port from allocator (2 remaining)
Removed port from p2p socket: 2 remaining
Jingle:Port[audio:1:0:local:Net[pdp_ip0:10.38.68.200/32]]: Port deleted
Jingle:Port[audio:1:0:local:Net[pdp_ip0:10.38.68.200/32]]: Removed port from allocator (1 remaining)
Removed port from p2p socket: 1 remaining

Peter Mycue
pmycue@us.ibm.com
pmycue@gmail.com
704-626-9772

···

On Nov 10, 2014, at 12:06 PM, Boris Grozev <boris@jitsi.org> wrote:

On 10/11/14 18:46, Peter Mycue wrote:

hello,

Thanks to all for getting me this far!

I believe i am in the last steps of getting this working.

when i get my SESSION-INITIATE from jingle over my xmpp connection

i create the peerconnection
i set up local media streams on the peerconnection media connection

i parse out the SDP and do
setRemoteSessionDescription.

this seems to work and there are a flurry of messages and streams
connected. I had to change
condition on streams to not insist that each stream has audio AND video
since jitsi uses a stream
for each.

Now, i think i am out of sequence. not sure how the flow should go from
here.

when i get callback from sdp created, i do this:

Set LOCAL sdp from remote sdp

You need to create an answer using createAnswer() first, and pass the answer to setLocalDescription().

the ORIGINAL test code using google appengine would send this in a json
pkg to the remote server.
i assume this is what i need to send in jingle TRANSPORT-INFO,
translated properly.

I don't think you need transport-info. You can wait for all the local ICE candidates, then get the local description and translate it to a jingle session-accept.

Regards,
Boris

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev