Coder Social home page Coder Social logo

phonertc's Introduction

WebRTC for Cordova apps!

This project is no longer active. Check out react-native-webrtc

Important Note: Use GitHub issues only for bugs and feature requests! For any other questions, use the StackOverflow forum.

Features

  • Completely Open Source
  • Android, iOS and Browser support
  • Simple JavaScript API
  • Video & Voice calls
  • Group calls
  • Renegotiation (Mute, Hold, etc)

Want to learn more? See the wiki.

Use the phonertc tag in StackOverflow for Q/A.

Donate

phonertc's People

Contributors

alongubkin avatar arjunroychowdhury avatar cesterlizi avatar de-lac avatar egreenmachine avatar eliba2 avatar gabehopper avatar joseph-onsip avatar kennu avatar lylepratt avatar martinschmidt avatar mgonand avatar shongsu avatar thomasyoungson avatar untrade avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phonertc's Issues

Demo app

I know it is still in work in progress but could you at least roughly document how to build/package the groupchat demo app? Not too familiar with ionic, etc. so I couldnt figure it out myself..

Testing issue with https://apprtc.appspot.com

I've tried to test the current plugin with the signalling server and turnURLs from webrtc demo. I've managed to get the turn urls, get the signalling server and open a channel with an already created room.

I've extended the iOS implementation by adding the mechanism to connect to an already opened room using a roomKey. After that I've extracted the channelToken and passed back to javascript in order to create the signalling server.

In the browser's console after I initiate the connection from the iOS app I get the following error. Do you know what might cause this problem?

Failed to set session description: Failed to set remote offer sdp: Called with SDP without DTLS fingerprint.
Failed to create session description: CreateAnswer can't be called before SetRemoteDescription.

iOS Build Errors

I've followed the instructions and adjusted the Valid Architectures as described, however I'm receiving build Undefined symbols for architecture armv7 errors when I try to install.

Any suggestions?

Here are the errors:

Undefined symbols for architecture armv7:
  "webrtc::AudioDecoder::PacketHasFec(unsigned char const*, unsigned long) const", referenced from:
      vtable for webrtc::acm2::ACMISAC in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  "webrtc::AudioDecoder::codec_type() const", referenced from:
      vtable for webrtc::acm2::ACMISAC in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  "_usrsctp_conninput", referenced from:
      cricket::SctpDataMediaChannel::OnPacketReceived(rtc::Buffer*, rtc::PacketTime const&) in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "webrtc::AudioDecoder::ConvertSpeechType(short)", referenced from:
      webrtc::acm2::ACMISAC::Decode(unsigned char const*, unsigned long, short*, webrtc::AudioDecoder::SpeechType*) in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
      webrtc::acm2::ACMISAC::DecodeRedundant(unsigned char const*, unsigned long, short*, webrtc::AudioDecoder::SpeechType*) in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  "_usrsctp_bind", referenced from:
      cricket::SctpDataMediaChannel::Connect() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "vtable for webrtc::AudioDecoder", referenced from:
      webrtc::AudioDecoder::AudioDecoder(webrtc::NetEqDecoder) in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "_usrsctp_sendv", referenced from:
      cricket::SctpDataMediaChannel::SendData(cricket::SendDataParams const&, rtc::Buffer const&, cricket::SendDataResult*) in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_connect", referenced from:
      cricket::SctpDataMediaChannel::Connect() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "webrtc::AudioDecoder::PacketDurationRedundant(unsigned char const*, unsigned long) const", referenced from:
      vtable for webrtc::acm2::ACMISAC in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  "_usrsctp_register_address", referenced from:
      cricket::SctpDataMediaChannel::OpenSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_setsockopt", referenced from:
      cricket::SctpDataMediaChannel::OpenSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
      cricket::SctpDataMediaChannel::SendQueuedStreamResets() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_set_non_blocking", referenced from:
      cricket::SctpDataMediaChannel::OpenSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_sysctl_set_sctp_ecn_enable", referenced from:
      cricket::SctpDataEngine::SctpDataEngine() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_socket", referenced from:
      cricket::SctpDataMediaChannel::OpenSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "webrtc::AudioDecoder::PacketDuration(unsigned char const*, unsigned long)", referenced from:
      vtable for webrtc::acm2::ACMISAC in libaudio_coding_module.a(audio_coding_module.acm_isac.o)
  "_usrsctp_deregister_address", referenced from:
      cricket::SctpDataMediaChannel::CloseSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_init", referenced from:
      cricket::SctpDataEngine::SctpDataEngine() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_close", referenced from:
      cricket::SctpDataMediaChannel::CloseSctpSocket() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "_usrsctp_finish", referenced from:
      cricket::SctpDataEngine::~SctpDataEngine() in libjingle_media.a(libjingle_media.sctpdataengine.o)
  "webrtc::NetEq::Create(webrtc::NetEq::Config const&)", referenced from:
      webrtc::acm2::AcmReceiver::AcmReceiver(webrtc::AudioCodingModule::Config const&) in libaudio_coding_module.a(audio_coding_module.acm_receiver.o)
  "_usrsctp_sysctl_set_sctp_nr_outgoing_streams_default", referenced from:
      cricket::SctpDataEngine::SctpDataEngine() in libjingle_media.a(libjingle_media.sctpdataengine.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

How to make a prebuilt libjingle_peerconnection?

Hi!
There is a huge change in current version of webrtc.
And i want to build a libjingle_peerconnection.so and jar.
Would you please upgrade with latest version or help me with build instruction of them?

Regards,
Adam

Web browser also supported?

Hi, I am running a website, where people can connect (shameless plug: http://mapc.am). I want to provide mobile apps, so iOS users can use the service too.

I am searching for a library like phonertc that also supports usual webRTC in the browser, so I can rely on one library for the website and the mobile apps.

Is that possible with phonertc?

Angularjs Implementation

Hi thanks for the awesome code you wrote for the Phonertc,
i am planning to use it soon so i was wondering, is out there any Phonertc implementation example using Angularjs?

Or someone who already implemented this plugin into an Angularjs app that could show/share how he implemeneted Phonertc in the workflow?

Tryed googling without any results.

Could be great to just have some starting points, if possible obviously.

Thank you

Integration fails to render remote video & audio

Hi,

I've tried to integrate the plugin with another system and it fails to render the remote video & video. All the handshake messages seems ok in the console, but still no video.

I'll post below the console output and if someone can give me a hint about the problem I will highly appreciate:

2014-08-27 16:10:01.063 HelloWorld[12919:60b] Multi-tasking -> Device: YES, App: YES
2014-08-27 16:10:01.082 HelloWorld[12919:60b] Unlimited access to network resources
2014-08-27 16:10:01.707 HelloWorld[12919:60b] Resetting plugins due to page load.
2014-08-27 16:10:01.966 HelloWorld[12919:60b] Finished load of: file:///var/mobile/Applications/D723BA3D-8FAB-4CD8-9CC3-1940F626F48A/HelloWorld.app/www/index.html
WebRtc VoiceEngine codecs:
ISAC/16000/1 (103)
PCMU/8000/1 (0)
PCMA/8000/1 (8)
Warning(webrtcvoiceengine.cc:490): Unexpected codec: PCMU/8000/2 (110)
Warning(webrtcvoiceengine.cc:490): Unexpected codec: PCMA/8000/2 (118)
ILBC/8000/1 (102)
G722/16000/1 (9)
Warning(webrtcvoiceengine.cc:490): 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
webrtc: Thread with name:Trace started
webrtc: (vie_impl.cc:133): SetTraceFilter: filter: 8206
webrtc: (vie_impl.cc:138): SetTraceCallback:
WebRtcVoiceEngine::Init
webrtc: Thread with name:ProcessThread started
webrtc: CheckPlatform
webrtc: current platform is IOS
webrtc: CreatePlatformSpecificObjects
webrtc: output: kPlatformDefaultAudio
webrtc: iPhone Audio APIs will be utilized
webrtc: AttachAudioBuffer
webrtc: OS info: iOS
webrtc: Thread with name:CaptureWorkerThread started
webrtc: output: available=0
webrtc: output: available=0
webrtc: TransmitMixer::SetAudioProcessingModule(audioProcessingModule=0x176dc020)
webrtc: OutputMixer::SetAudioProcessingModule(audioProcessingModule=0x176dc020)
WebRtc VoiceEngine Version:
VoiceEngine 4.1.0
Build: Jul 3 2014 17:52:51 ?
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, experimental_ns: false, aec_dump: false, opus_fec: false, }
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 0
Warning(webrtcvoiceengine.cc:860): SetTypingDetectionStatus(0) failed, err=8003
Adjust agc delta is 0
Adjusting AGC level from default -3dB to -3dB
Error(webrtcvideoengine.cc:1532): webrtc: (voe_audio_processing_impl.cc:1001): SetTypingDetectionStatus: not supported
Aec dump is enabled? 0
Experimental aec is 0
Opus FEC is enabled? 0
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.55.0
Build: Jul 3 2014 17:52:53 ?
webrtc: (vie_base_impl.cc:68): SetVoiceEngine: SetVoiceEngine
VideoEngine Init done
webrtc: (vie_render_impl.cc:64): RegisterVideoRenderModule:
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, experimental_ns: false, aec_dump: false, opus_fec: false, }
High pass filter enabled? 1
Stereo swapping enabled? 0
Typing detection is enabled? 0
Error(webrtcvideoengine.cc:1532): webrtc: (voe_audio_processing_impl.cc:1001): SetTypingDetectionStatus: not supported
Warning(webrtcvoiceengine.cc:860): SetTypingDetectionStatus(0) failed, err=8003
Adjust agc delta is 0
Adjusting AGC level from default -3dB to -3dB
Aec dump is enabled? 0
Experimental aec is 0
Opus FEC is enabled? 0
Allowing SCTP data engine.
Generating identity.
Error(webrtcvideoengine.cc:1532): webrtc: NumberOfCapabilities is not supported on the iOS platform.
Created VideoCapturer for Front Camera
Failed to find best capture format, fall back to the requested format I420 640x480x30
VAdapt input interval changed from 0 to 33333333
Camera 'com.apple.avfoundation.avcapturedevice.built-in_video:1' started with format I420 640x480x30, elapsed time 1 ms
2014-08-27 16:10:48.627 HelloWorld[12919:8503] PCO onRenegotiationNeeded.
2014-08-27 16:10:48.630 HelloWorld[12919:1307] WARNING: -[<AVCaptureConnection: 0x17570930> setVideoMinFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMinFrameDuration
2014-08-27 16:10:48.631 HelloWorld[12919:1307] WARNING: -[<AVCaptureConnection: 0x17570930> setVideoMaxFrameDuration:] is deprecated. Please use AVCaptureDevice setActiveVideoMaxFrameDuration
2014-08-27 16:10:48.633 HelloWorld[12919:60b] THREAD WARNING: ['PhoneRTCPlugin'] took '1894.572998' ms. Plugin should use a background thread.
Ignored line: c=IN IP4 0.0.0.0
Ignored line: c=IN IP4 0.0.0.0
Created channel for audio
Setting voice channel options: AudioOptions {}
Set voice channel options. Current options: AudioOptions {}
webrtc: (remote_bitrate_estimator_single_stream.cc:258): RemoteBitrateEstimatorFactory: Instantiating.
webrtc: (vie_base_impl.cc:159): Video channel created: 0
webrtc: (vie_network_impl.cc:74): RegisterSendTransport: channel: 0
webrtc: (vie_network_impl.cc:137): SetMTU: channel: 0 mtu: 1200
webrtc: (vie_rtp_rtcp_impl.cc:261): SetRTCPStatus: channel: 0 mode: 1
webrtc: (vie_rtp_rtcp_impl.cc:512): SetKeyFrameRequestMethod: channel: 0 method: 1
webrtc: (vie_rtp_rtcp_impl.cc:379): SetNACKStatus: channel: 0 on
Warning(webrtcvideoengine.cc:1532): webrtc: (rtp_packet_history.cc:48): Purging packet history in order to re-set status.
NACK enabled for channel 0
webrtc: (vie_base_impl.cc:203): ConnectAudioChannel: ConnectAudioChannel, video channel 0, audio channel 0
webrtc: (vie_rtp_rtcp_impl.cc:549): SetRembStatus: channel: 0 sender: off receiver: off
webrtc: (vie_rtp_rtcp_impl.cc:581): SetReceiveTimestampOffsetStatus: channel: 0enable: off id: 0
webrtc: (vie_rtp_rtcp_impl.cc:618): SetReceiveAbsoluteSendTimeStatus: channel: 0enable: off id: 0
webrtc: (vie_image_process_impl.cc:210): EnableColorEnhancement: video_channel: 0 enable: off
webrtc: (vie_codec_impl.cc:490): RegisterDecoderObserver for channel 0
webrtc: (vie_capture_impl.cc:106): External capture device allocated: 4097
webrtc: (vie_capture_impl.cc:139): Connect capture id 4097 to channel 0
webrtc: (vie_codec_impl.cc:457): RegisterEncoderObserver for channel 0
webrtc: (vie_rtp_rtcp_impl.cc:562): SetSendTimestampOffsetStatus: channel: 0enable: off id: 0
webrtc: (vie_rtp_rtcp_impl.cc:599): SetSendAbsoluteSendTimeStatus: channel: 0enable: off id: 0
webrtc: (vie_rtp_rtcp_impl.cc:649): SetTransmissionSmoothingStatus: channel: 0 enable: on
webrtc: (vie_rtp_rtcp_impl.cc:549): SetRembStatus: channel: 0 sender: off receiver: off
webrtc: (vie_rtp_rtcp_impl.cc:379): SetNACKStatus: channel: 0 on
Warning(webrtcvideoengine.cc:1532): webrtc: (rtp_packet_history.cc:48): Purging packet history in order to re-set status.
NACK enabled for channel 0
webrtc: (vie_base_impl.cc:293): StartReceive: StartReceive 0
Created channel for video
Improved WIFI BWE called.
webrtc: (vie_network_impl.cc:166): SetBandwidthEstimationConfig: channel: 0
webrtc: (remote_bitrate_estimator_single_stream.cc:258): RemoteBitrateEstimatorFactory: Instantiating.
Session:1719292145052298772 Old state:STATE_INIT New state:STATE_SENTINITIATE Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-08-27 16:10:48.720 HelloWorld[12919:8503] PCO onSignalingStateChange: 1
Setting local voice description
Add send ssrc: 2576790357
Setting receive voice codecs:
ISAC/16000/1 (103)
opus/48000/2 (111)
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)
Changing voice state, recv=0 send=0
Setting local video description
webrtc: (vie_rtp_rtcp_impl.cc:581): SetReceiveTimestampOffsetStatus: channel: 0enable: on id: 2
webrtc: (vie_rtp_rtcp_impl.cc:618): SetReceiveAbsoluteSendTimeStatus: channel: 0enable: on id: 3
AddSendStream {id:ARDAMSv0;ssrcs:[2948509629,3272281831];ssrc_groups:{semantics:FID;ssrcs:[2948509629,3272281831]};cname:5npc2gIhz7sH1Rb6;sync_label:ARDAMS}
webrtc: (vie_rtp_rtcp_impl.cc:114): SetLocalSSRC: channel: 0 ssrc: 2948509629
webrtc: (vie_rtp_rtcp_impl.cc:114): SetLocalSSRC: channel: 0 ssrc: 3272281831
webrtc: (vie_rtp_rtcp_impl.cc:297): SetRTCPCName: channel: 0 rtcp_cname: 5npc2gIhz7sH1Rb6
webrtc: (vie_rtp_rtcp_impl.cc:114): SetLocalSSRC: channel: 0 ssrc: 2948509629
Add send ssrc: 2948509629
webrtc: (vie_codec_impl.cc:266): SetReceiveCodec for channel 0
webrtc: (vie_codec_impl.cc:267): Codec type 0, payload type d
webrtc: (vie_codec_impl.cc:266): SetReceiveCodec for channel 0
webrtc: (vie_codec_impl.cc:267): Codec type 2, payload type t
webrtc: (vie_codec_impl.cc:266): SetReceiveCodec for channel 0
webrtc: (vie_codec_impl.cc:267): Codec type 3, payload type u
Buffer latency is 0
webrtc: (vie_rtp_rtcp_impl.cc:227): SetRtxReceivePayloadType: channel: 0 payload_type: `
webrtc: (vie_rtp_rtcp_impl.cc:465): SetSenderBufferingMode: channel: 0 target_delay_ms: 0
Warning(webrtcvideoengine.cc:1532): webrtc: (rtp_packet_history.cc:48): Purging packet history in order to re-set status.
webrtc: (vie_rtp_rtcp_impl.cc:492): SetReceiverBufferingMode: channel: 0 target_delay_ms: 0
Changing video state, recv=0 send=0
Setting voice channel options: AudioOptions {}
Set voice channel options. Current options: AudioOptions {}
WebRtcOveruseObserver enable: 0
webrtc: (vie_base_impl.cc:78): RegisterCpuOveruseObserver: RegisterCpuOveruseObserver on channel 0
webrtc: (vie_base_impl.cc:78): RegisterCpuOveruseObserver: RegisterCpuOveruseObserver on channel 0
Local and Remote descriptions must be applied to get SSL Role of the session.
Transport: audio, allocating candidates
2014-08-27 16:10:48.736 HelloWorld[12919:60b] *** sendMessage *** {"sdp":"v=0\r\no=- 1719292145052298772 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS ARDAMS\r\nm=audio 1 RTP/SAVPF 103 111 9 102 0 8 106 105 13 127 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:5d4n10Mat+cf6TGy\r\na=ice-pwd:Gpr5sMKNVX68m27ViAz+ueYy\r\na=ice-options:google-ice\r\na=fingerprint:sha-1 21:78:4D:82:1C:57:D3:A6:CC:4C:B4:F3:0E:A9:A4:4D:FE:29:F4:28\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:9 G722/16000\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:127 red/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\na=ssrc:2576790357 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:2576790357 msid:ARDAMS ARDAMSa0\r\na=ssrc:2576790357 mslabel:ARDAMS\r\na=ssrc:2576790357 label:ARDAMSa0\r\nm=video 1 RTP/SAVPF 100 116 117 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:5d4n10Mat+cf6TGy\r\na=ice-pwd:Gpr5sMKNVX68m27ViAz+ueYy\r\na=ice-options:google-ice\r\na=fingerprint:sha-1 21:78:4D:82:1C:57:D3:A6:CC:4C:B4:F3:0E:A9:A4:4D:FE:29:F4:28\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=sendrecv\r\na=rtcp-mux\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=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=ssrc-group:FID 2948509629 3272281831\r\na=ssrc:2948509629 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:2948509629 msid:ARDAMS ARDAMSv0\r\na=ssrc:2948509629 mslabel:ARDAMS\r\na=ssrc:2948509629 label:ARDAMSv0\r\na=ssrc:3272281831 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:3272281831 msid:ARDAMS ARDAMSv0\r\na=ssrc:3272281831 mslabel:ARDAMS\r\na=ssrc:3272281831 label:ARDAMSv0\r\n","type":"offer"}
Jingle:Net[en0:192.168.1.0/24:Unknown]: Allocation Phase=Udp
Jingle:Port[:1:0::Net[en0:192.168.1.0/24:Unknown]]: Port created
2014-08-27 16:10:48.740 HelloWorld[12919:60b] SENDING MESSAGE: {"sdp":"v=0\r\no=- 1719292145052298772 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS ARDAMS\r\nm=audio 1 RTP/SAVPF 103 111 9 102 0 8 106 105 13 127 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:5d4n10Mat+cf6TGy\r\na=ice-pwd:Gpr5sMKNVX68m27ViAz+ueYy\r\na=ice-options:google-ice\r\na=fingerprint:sha-1 21:78:4D:82:1C:57:D3:A6:CC:4C:B4:F3:0E:A9:A4:4D:FE:29:F4:28\r\na=setup:actpass\r\na=mid:audio\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=sendrecv\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:9 G722/16000\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:127 red/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\na=ssrc:2576790357 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:2576790357 msid:ARDAMS ARDAMSa0\r\na=ssrc:2576790357 mslabel:ARDAMS\r\na=ssrc:2576790357 label:ARDAMSa0\r\nm=video 1 RTP/SAVPF 100 116 117 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:1 IN IP4 0.0.0.0\r\na=ice-ufrag:5d4n10Mat+cf6TGy\r\na=ice-pwd:Gpr5sMKNVX68m27ViAz+ueYy\r\na=ice-options:google-ice\r\na=fingerprint:sha-1 21:78:4D:82:1C:57:D3:A6:CC:4C:B4:F3:0E:A9:A4:4D:FE:29:F4:28\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=sendrecv\r\na=rtcp-mux\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=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=rtpmap:96 rtx/90000\r\na=fmtp:96 apt=100\r\na=ssrc-group:FID 2948509629 3272281831\r\na=ssrc:2948509629 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:2948509629 msid:ARDAMS ARDAMSv0\r\na=ssrc:2948509629 mslabel:ARDAMS\r\na=ssrc:2948509629 label:ARDAMSv0\r\na=ssrc:3272281831 cname:5npc2gIhz7sH1Rb6\r\na=ssrc:3272281831 msid:ARDAMS ARDAMSv0\r\na=ssrc:3272281831 mslabel:ARDAMS\r\na=ssrc:3272281831 label:ARDAMSv0\r\n","type":"offer"}
AllocationSequence: UDPPort will be handling the STUN candidate generation.
Adding allocated port for audio
Jingle:Port[audio:1:0::Net[en0:192.168.1.0/24:Unknown]]: Added port to allocator
2014-08-27 16:10:48.737 HelloWorld[12919:8503] PCO onIceGatheringChange. 1
Transport: audio, allocating candidates
2014-08-27 16:10:48.752 HelloWorld[12919:8503] PCO onIceGatheringChange. 1
Transport: video, allocating candidates
2014-08-27 16:10:48.755 HelloWorld[12919:8503] PCO onIceGatheringChange. 1
Transport: video, allocating candidates
2014-08-27 16:10:48.756 HelloWorld[12919:8503] PCO onIceGatheringChange. 1
2014-08-27 16:10:48.758 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0]
2014-08-27 16:10:48.759 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.761 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":0}
2014-08-27 16:10:48.761 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":0}
2014-08-27 16:10:48.763 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0]
2014-08-27 16:10:48.764 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.765 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":0}
2014-08-27 16:10:48.766 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":0}
2014-08-27 16:10:48.769 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0]
2014-08-27 16:10:48.770 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.771 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":1}
2014-08-27 16:10:48.772 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:2624638470 1 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":1}
2014-08-27 16:10:48.775 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0]
2014-08-27 16:10:48.777 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.778 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":1}
2014-08-27 16:10:48.779 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:2624638470 2 udp 2122129151 192.168.1.113 62301 typ host generation 0","label":1}
Jingle:Net[en0:192.168.1.0/24:Unknown]: Allocation Phase=Relay
Jingle:Port[:1:0::Net[en0:192.168.1.0/24:Unknown]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0::Net[en0:192.168.1.0/24:Unknown]]: Added port to allocator
Jingle:Port[audio:1:0::Net[en0:192.168.1.0/24:Unknown]]: Trying to connect to TURN server via udp @ rtp2.camka.com:3478
2014-08-27 16:10:48.811 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0]
2014-08-27 16:10:48.814 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.815 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.816 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.818 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0]
2014-08-27 16:10:48.819 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.820 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.822 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.824 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0]
2014-08-27 16:10:48.825 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.826 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.828 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:490260658 1 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.830 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0]
2014-08-27 16:10:48.832 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.834 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.835 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:490260658 2 udp 1685921535 86.122.11.222 62301 typ srflx raddr 192.168.1.113 rport 62301 generation 0","label":1}
Jingle:Net[en0:192.168.1.0/24:Unknown]: Allocation Phase=Tcp
Jingle:Port[:1:0:local:Net[en0:192.168.1.0/24:Unknown]]: Port created
Adding allocated port for audio
Jingle:Port[audio:1:0:local:Net[en0:192.168.1.0/24:Unknown]]: Added port to allocator
2014-08-27 16:10:48.853 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0]
2014-08-27 16:10:48.855 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.855 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":0}
2014-08-27 16:10:48.857 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":0}
2014-08-27 16:10:48.859 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0]
2014-08-27 16:10:48.860 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.861 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"audio","candidate":"candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":0}
2014-08-27 16:10:48.862 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":0}
2014-08-27 16:10:48.864 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0]
2014-08-27 16:10:48.866 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.869 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":1}
VAdapt CPU Request: keep Steps: 0 Changed: true To: 640x480
2014-08-27 16:10:48.871 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:3539153654 1 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":1}
2014-08-27 16:10:48.873 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0]
2014-08-27 16:10:48.874 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.875 HelloWorld[12919:8503] *** sendMessage *** {"type":"candidate","id":"video","candidate":"candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":1}
2014-08-27 16:10:48.877 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:3539153654 2 tcp 1518149375 192.168.1.113 56252 typ host generation 0","label":1}
2014-08-27 16:10:48.879 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0]
2014-08-27 16:10:48.881 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.882 HelloWorld[12919:8503] *** sendMessage * {"type":"candidate","id":"video","candidate":"candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.884 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.886 HelloWorld[12919:8503] PCO onICECandidate.
Mid[video] Index[1] Sdp[candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0]
2014-08-27 16:10:48.888 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.889 HelloWorld[12919:8503] * sendMessage * {"type":"candidate","id":"video","candidate":"candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.890 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"video","candidate":"candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":1}
2014-08-27 16:10:48.893 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0]
2014-08-27 16:10:48.894 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.895 HelloWorld[12919:8503] * sendMessage * {"type":"candidate","id":"audio","candidate":"candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.897 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:4030137732 1 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.899 HelloWorld[12919:8503] PCO onICECandidate.
Mid[audio] Index[0] Sdp[candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0]
2014-08-27 16:10:48.900 HelloWorld[12919:8503] gotICECandidate -- sending message
2014-08-27 16:10:48.901 HelloWorld[12919:8503] * sendMessage * {"type":"candidate","id":"audio","candidate":"candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":0}
2014-08-27 16:10:48.902 HelloWorld[12919:8503] SENDING MESSAGE: {"type":"candidate","id":"audio","candidate":"candidate:4030137732 2 udp 41754367 92.222.27.35 60424 typ relay raddr 86.122.11.222 rport 62301 generation 0","label":0}
Jingle:Net[en0:192.168.1.0/24:Unknown]: Allocation Phase=SslTcp
All candidates gathered for audio:1:0
Transport: audio, component 1 allocation complete
Transport: audio, component 2 allocation complete
Transport: video, component 1 allocation complete
Transport: video, component 2 allocation complete
Transport: audio allocation complete
Transport: video allocation complete
Candidate gathering is complete.
2014-08-27 16:10:48.905 HelloWorld[12919:8503] PCO onIceGatheringChange. 2
2014-08-27 16:10:49.057 HelloWorld[12919:5513] RECEIVE MSG {"sdp":"v=0\r\no=- 0 0 IN IP4 127.0.0.1\r\ns=\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS lSJ3LiNDXn\r\nm=audio 48682 RTP/SAVPF 0 126 \r\nc=IN IP4 92.222.27.35\r\na=rtcp:48682 IN IP4 92.222.27.35\r\na=candidate:2 1 udp 2013266431 92.222.27.35 48682 typ host generation 0\r\na=candidate:2 2 udp 2013266431 92.222.27.35 48682 typ host generation 0\r\na=candidate:3 1 udp 2013266431 92.222.27.35 54321 typ host generation 0\r\na=candidate:3 2 udp 2013266431 92.222.27.35 54321 typ host generation 0\r\na=ice-ufrag:xMzS\r\na=ice-pwd:cvZLfn7+lhTTGbpltRmbEg\r\na=fingerprint:sha-256 80:72:82:E9:BC:B4:06:A5:CD:00:AC:4A:AD:5E:2C:DE:BC:07:B4:39:F0:D5:75:01:15:43:BE:6C:53:0F:11:C5\r\na=sendrecv\r\na=mid:audio\r\na=rtcp-mux\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:126 telephone-event/8000\r\na=maxptime:60\r\na=ssrc:44444 cname:o/i14u9pJrxRKAsu\r\na=ssrc:44444 msid:lSJ3LiNDXn a0\r\na=ssrc:44444 mslabel:lSJ3LiNDXn\r\na=ssrc:44444 label:lSJ3LiNDXna0\r\nm=video 48682 RTP/SAVPF 100 116 117 \r\nc=IN IP4 92.222.27.35\r\na=rtcp:48682 IN IP4 92.222.27.35\r\na=candidate:2 1 udp 2013266431 92.222.27.35 48682 typ host generation 0\r\na=candidate:2 2 udp 2013266431 92.222.27.35 48682 typ host generation 0\r\na=candidate:3 1 udp 2013266431 92.222.27.35 54321 typ host generation 0\r\na=candidate:3 2 udp 2013266431 92.222.27.35 54321 typ host generation 0\r\na=ice-ufrag:xMzS\r\na=ice-pwd:cvZLfn7+lhTTGbpltRmbEg\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=fingerprint:sha-256 80:72:82:E9:BC:B4:06:A5:CD:00:AC:4A:AD:5E:2C:DE:BC:07:B4:39:F0:D5:75:01:15:43:BE:6C:53:0F:11:C5\r\na=sendrecv\r\na=mid:video\r\na=rtcp-mux\r\na=rtpmap:100 VP8/90000\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 goog-remb\r\na=rtpmap:116 red/90000\r\na=rtpmap:117 ulpfec/90000\r\na=ssrc:55543 cname:o/i14u9pJrxRKAsu\r\na=ssrc:55543 msid:lSJ3LiNDXn v0\r\na=ssrc:55543 mslabel:lSJ3LiNDXn\r\na=ssrc:55543 label:lSJ3LiNDXnv0\r\n","type":"answer"}
2014-08-27 16:10:49.061 HelloWorld[12919:5513] No ISAC/16000 line, so can't prefer iSAC
Ignored line: c=IN IP4 92.222.27.35
Ignored line: c=IN IP4 92.222.27.35
Destroying NSS identity
Destroying NSS identity
Warning(webrtcvideoengine.cc:2616): GetStats: sender information not ready.
Jingle:Channel[audio|1|]: DTLS setup complete.
Jingle:Channel[audio|2|]: DTLS setup complete.
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
Starting playout for channel #0
Captured frame size 480x640. Expected format I420 640x480x30
VAdapt Input Resolution Change: Previous input resolution: 640x480 New input resolution: 480x640 New output resolution: 480x640
Changing voice state, recv=1 send=0
Channel enabled
webrtc: (vie_render_impl.cc:174): StartRender: render_id: 0
Changing video state, recv=1 send=0
Session:1719292145052298772 Old state:STATE_SENTINITIATE New state:STATE_RECEIVEDACCEPT Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-08-27 16:10:50.077 HelloWorld[12919:8503] PCO onSignalingStateChange: 0
Setting remote voice description
Error(webrtcvideoengine.cc:1532): webrtc: Set codec internal FEC failed.
Error(webrtcvideoengine.cc:1532): webrtc: SetCodecFECStatus() failed to set FEC state (error=10027)
Send channel 0 selected voice codec PCMU/8000/1 (0), bitrate=64000
WebRtcVoiceMediaChanne::SetSendBandwidth.
WebRtcVoiceMediaChannel::SetSendBandwidthInternal.
Recv stream 44444 reuse default channel
Starting playout for channel #0
Add remote ssrc: 44444
Setting voice channel options: AudioOptions {}
Set voice channel options. Current options: AudioOptions {}
Changing voice state, recv=1 send=0
Setting remote video description
webrtc: (vie_rtp_rtcp_impl.cc:435): SetHybridNACKFECStatus: channel: 0 enable: on payload_typeRED: t payload_typeFEC: u
Warning(webrtcvideoengine.cc:1532): webrtc: (rtp_packet_history.cc:48): Purging packet history in order to re-set status.
Hybrid NACK/FEC enabled for channel 0
webrtc: (vie_rtp_rtcp_impl.cc:549): SetRembStatus: channel: 0 sender: on receiver: on
webrtc: (vie_codec_impl.cc:138): SetSendCodec for channel 0
webrtc: (vie_codec_impl.cc:31): CodecType 0, pl_type 100, resolution 1280 x 720, start br 300, min br 50, max br 2000, max fps 30, max qp 56, number of streams 0
webrtc: (vie_codec_impl.cc:43): VP8 specific settings
webrtc: (vie_codec_impl.cc:44): pictureLossIndicationOn 0, feedbackModeOn 0, complexity 0, resilience 0, numberOfTemporalLayers 1, keyFrameinterval 3000
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 = 1, error concealment = 0, automatic resize = 0, frame dropping = 1, key frame interval = 3000
webrtc: (vie_rtp_rtcp_impl.cc:562): SetSendTimestampOffsetStatus: channel: 0enable: on id: 2
webrtc: (vie_rtp_rtcp_impl.cc:599): SetSendAbsoluteSendTimeStatus: channel: 0enable: on id: 3
Warning(p2ptransportchannel.cc:812): SetOption(6, 3) failed: 0
Warning(p2ptransportchannel.cc:812): SetOption(6, 3) failed: 0
Warning(p2ptransportchannel.cc:812): SetOption(6, 3) failed: 0
Destroying NSS identity
WebRtcVideoMediaChannel::SetMaxSendBandwidth
SetMaxSendBandwidth() : 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 = 1, error concealment = 0, automatic resize = 0, frame dropping = 1, key frame interval = 3000
Recv stream 55543 reuse default channel #0
webrtc: (vie_render_impl.cc:174): StartRender: render_id: 0
Warning(webrtcvideoengine.cc:1532): webrtc: Start: Already running
Add remote ssrc: 55543
Changing video state, recv=1 send=0
Error(webrtcvideoengine.cc:1532): webrtc: SetOutputVolumePan() stereo playout not supported (error=8040)
Warning(webrtcvoiceengine.cc:2898): SetOutputVolumePan(0, 1, 1) failed, err=8040
Capture size changed : selected video codec VP8/480x640x30fps@2000kbps (min=50kbps, start=300kbps)
webrtc: (vie_codec_impl.cc:138): SetSendCodec for channel 0
webrtc: (vie_codec_impl.cc:31): CodecType 0, pl_type 100, resolution 480 x 640, start br 300, min br 50, max br 2000, max fps 30, max qp 56, number of streams 0
webrtc: (vie_codec_impl.cc:43): VP8 specific settings
webrtc: (vie_codec_impl.cc:44): pictureLossIndicationOn 0, feedbackModeOn 0, complexity 0, resilience 0, numberOfTemporalLayers 1, keyFrameinterval 3000
webrtc: (vie_rtp_rtcp_impl.cc:663): SetMinTransmitBitrate: channel: 0 min_transmit_bitrate_kbps: 0
webrtc: (vie_rtp_rtcp_impl.cc:649): SetTransmissionSmoothingStatus: channel: 0 enable: on
Video max quantization: 56
VP8 number of temporal layers: 1
VP8 options : picture loss indication = 0, feedback mode = 0, complexity = normal, resilience = off, denoising = 1, error concealment = 0, automatic resize = 1, frame dropping = 1, key frame interval = 3000
SetOutputScaling to left=1 right=1 for channel 0 and ssrc 44444
RemoteVideoCapturer::Start
VAdapt input interval changed from 0 to 33333333
SetRenderer 55543 reuse default channel #0
2014-08-27 16:10:50.202 HelloWorld[12919:8503] PCO onAddStream.
2014-08-27 16:10:50.204 HelloWorld[12919:8503] * sendMessage * {"type": "answered"}
2014-08-27 16:10:50.204 HelloWorld[12919:60b] * sendRemoteVideoTrack delegate ***
2014-08-27 16:10:50.205 HelloWorld[12919:8503] SENDING MESSAGE: {"type": "__answered"}
2014-08-27 16:10:50.210 HelloWorld[12919:8503] PCO onIceConnectionChange. 1
Warning(webrtcsession.cc:1436): Candidate has unknown component: Cand[2:2:udp:2013266431:92.222.27.35:48682:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg] for content: audio
Jingle:Conn[audio:o28jUlwh:1:0:relay:udp:92.222.27.35:60424->:1:0.94:local:udp:92.222.27.35:48682|C--W|179333644756714494|-]: Connection created
Jingle:Channel[audio|1|]: Created connection with origin=2, (1 total)
Jingle:Conn[audio:ijoM6vNU:1:0:local:udp:192.168.1.113:62301->:1:0.94:local:udp:92.222.27.35:48682|C--W|8646913483523898879|-]: Connection created
Jingle:Channel[audio|1|]: Created connection with origin=2, (2 total)
Jingle:Channel[audio|1|]: New best connection: Conn[audio:ijoM6vNU:1:0:local:udp:192.168.1.113:62301->:1:0.94:local:udp:92.222.27.35:48682|C--W|8646913483523898879|-]
Warning(webrtcsession.cc:1436): Candidate has unknown component: Cand[3:2:udp:2013266431:92.222.27.35:54321:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg] for content: audio
Jingle:Conn[audio:o28jUlwh:1:0:relay:udp:92.222.27.35:60424->:1:0.94:local:udp:92.222.27.35:54321|C--W|179333644756714494|-]: Connection created
Jingle:Channel[audio|1|]: Created connection with origin=2, (3 total)
Jingle:Conn[audio:ijoM6vNU:1:0:local:udp:192.168.1.113:62301->:1:0.94:local:udp:92.222.27.35:54321|C--W|8646913483523898879|-]: Connection created
Jingle:Channel[audio|1|]: Created connection with origin=2, (4 total)
Warning(webrtcsession.cc:1436): Candidate has unknown component: Cand[2:2:udp:2013266431:92.222.27.35:48682:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg] for content: video
Warning(webrtcsession.cc:1436): Candidate has unknown component: Cand[3:2:udp:2013266431:92.222.27.35:54321:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg] for content: video
Session:1719292145052298772 Old state:STATE_RECEIVEDACCEPT New state:STATE_INPROGRESS Type:urn:xmpp:jingle:apps:rtp:1 Transport:http://www.google.com/transport/p2p
2014-08-27 16:10:50.234 HelloWorld[12919:60b] SDP onSuccess - drain candidates
BeginSSL: with peer
BeginSSL: as server
ContinueSSL
Would have blocked
Jingle:Channel[audio|1|]: DtlsTransportChannelWrapper: Started DTLS handshake
Jingle:Conn[audio:ijoM6vNU:1:0:local:udp:192.168.1.113:62301->:1:0.94:local:udp:92.222.27.35:54321|C-xW|8646913483523898879|-]: Connection deleted
Jingle:Channel[audio|1|RW]: Removed connection (3 remaining)
Jingle:Conn[audio:o28jUlwh:1:0:relay:udp:92.222.27.35:60424->:1:0.94:local:udp:92.222.27.35:48682|C-xW|179333644756714494|-]: Connection deleted
Jingle:Channel[audio|1|RW]: Removed connection (2 remaining)
Jingle:Conn[audio:o28jUlwh:1:0:relay:udp:92.222.27.35:60424->:1:0.94:local:udp:92.222.27.35:54321|C-xW|179333644756714494|-]: Connection deleted
Jingle:Channel[audio|1|RW]: Removed connection (1 remaining)
NSSStreamAdapter::OnEvent SE_READ
ContinueSSL
Would have blocked
Timeout is 1000 ms
NSSStreamAdapter::OnEvent SE_READ
ContinueSSL
Would have blocked
Timeout is 1000 ms
NSSStreamAdapter::OnEvent SE_READ
ContinueSSL
NSSStreamAdapter::AuthCertificateHook
Checking against specified digest
Accepted peer certificate
Handshake complete
Jingle:Channel[audio|1|
]: DTLS handshake complete.
SetNetworkTransmissionState: 1
webrtc: (vie_network_impl.cc:56): SetNetworkTransmissionState: channel: 0 transmitting: yes
Channel socket writable (audio, 1) for the first time
Using Cand[2624638470:1:udp:2122129151:192.168.1.113:62301:local::0:5d4n10Mat+cf6TGy:Gpr5sMKNVX68m27ViAz+ueYy]->Cand[2:1:udp:2013266431:92.222.27.35:48682:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg]
Installing keys from DTLS-SRTP on audio RTP
WARNING: no real random source present!
2014-08-27 16:10:50.610 HelloWorld[12919:8503] PCO onIceConnectionChange. 2
2014-08-27 16:10:50.611 HelloWorld[12919:8503] PCO onIceConnectionChange. 3
SRTP activated with negotiated parameters: send cipher_suite AES_CM_128_HMAC_SHA1_80 recv cipher_suite AES_CM_128_HMAC_SHA1_80
Setting option overrides: AudioOptions {}
Applying audio options: AudioOptions {aec: false, agc: false, typing: false, experimental_agc: false, experimental_aec: false, experimental_ns: false, }
Typing detection is enabled? 0
Warning(webrtcvoiceengine.cc:860): SetTypingDetectionStatus(0) failed, err=8003
Experimental aec is 0
Changing voice state, recv=1 send=1
SetNetworkTransmissionState: 1
Channel socket writable (video, 1) for the first time
Using Cand[2624638470:1:udp:2122129151:192.168.1.113:62301:local::0:5d4n10Mat+cf6TGy:Gpr5sMKNVX68m27ViAz+ueYy]->Cand[2:1:udp:2013266431:92.222.27.35:48682:local::0:xMzS:cvZLfn7+lhTTGbpltRmbEg]
Installing keys from DTLS-SRTP on video RTP
Error(webrtcvideoengine.cc:1532): webrtc: (voe_audio_processing_impl.cc:1001): SetTypingDetectionStatus: not supported
webrtc: (vie_network_impl.cc:56): SetNetworkTransmissionState: channel: 0 transmitting: yes
SRTP activated with negotiated parameters: send cipher_suite AES_CM_128_HMAC_SHA1_80 recv cipher_suite AES_CM_128_HMAC_SHA1_80
webrtc: (vie_base_impl.cc:236): StartSend: StartSend: 0
Changing video state, recv=1 send=1
NSSStreamAdapter::OnEvent SE_READ
-- onStreamReadable
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 90 / in 90 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 180 / in 180 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Jingle:Conn[audio:ijoM6vNU:1:0:local:udp:192.168.1.113:62301->:1:0.94:local:udp:92.222.27.35:48682|CRWS|8646913483523898879|69]: Timing-out STUN ping LaweY48SfdQ0 after 5006 ms
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 270 / in 270 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 360 / in 360 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 450 / in 450 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 540 / in 540 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 630 / in 630 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 720 / in 720 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 810 / in 810 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 900 / in 900 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 990 / in 990 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1080 / in 1080 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1170 / in 1170 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 1260 / in 1260 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 1350 / in 1350 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1440 / in 1440 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1530 / in 1530 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1620 / in 1620 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1710 / in 1710 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1800 / in 1800 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1890 / in 1890 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 1980 / in 1980 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2070 / in 2070 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2160 / in 2160 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 2250 / in 2250 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2340 / in 2340 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2430 / in 2430 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2520 / in 2520 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2610 / in 2610 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt Frame: scaled 0 / out 2700 / in 2700 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2790 / in 2790 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2880 / in 2880 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 2970 / in 2970 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 3060 / in 3060 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 3150 / in 3150 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 3240 / in 3240 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
Warning(webrtcvideoengine.cc:1532): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1532): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640
VAdapt Frame: scaled 0 / out 3330 / in 3330 Changes: 0 Input: 480x640 i33333333 Scale: 1 Output: 480x640 i33333333 Changed: false
VAdapt CPU Request: keep Steps: 0 Changed: false To: 480x640

Build a demo app

PhoneRTC should have a demo app built with Cordova (and probably Ionic) to show its functionality. It should also include a basic signaling server build with Node.js/Socket.IO.

More Example Code?

Hi

Greta plugin so far!

Is there any chance you can expand on the usage example code? For example, what the variables 'signaling' and 'target' should look like? I have a Cordova project going but I'm having trouble getting it connected to a Licode (http://lynckia.com/licode/) WebRTC server and I think I'm missing something simple.

I would really appreciate any tidbits you can add (code or documentation wise).

Thanks,
Bill

Volume Control

PhoneRTC should provide APIs for volume control. That includes changing the volume and turning on/off speaker.

Incoming call - bring the app to the foreground

More of a generic type question in hybrid/cordova application development but it is quite applicable for almost any application that is going to use this plugin.

When the application is running in the background or when user is using another application, how can you bring the application to the foreground if there is an incoming call?

I think there is two cases to deal with here:

  1. The application is still running in the background and receiving the incoming call through signalling, i.e. socket.io as in the demo client app. How can you make the application top window in that case?
  2. The application is not running, i.e. OS killed the process. In this case, I think, notification plugins are close to the solution. They use GCM/APN to deliver the message to the device and start the application. However, I think user needs to click the notification first to land into the application rather than directly displaying the call page by launching the application and bringing it to foreground without user clicking the notification.

Any thoughts?

Update plugin.xml

Since some of the WebRTC libraries have changed, the plugin.xml file is now incorrect. When you run cordova plugin add on a new project it will fail. The plugin.xml file needs to be updated to reflect the new files.

Crash at SDPObserver.drainRemoteCandidates (PhoneRTCPlugin.java:547)

Hi all,

I see this crash quite frequently. Did anybody also come across with it by any chance? I am making sure that duplicate messages are not passed to PhoneRTC as mentioned at issue #52

08-31 00:08:14.444: E/AndroidRuntime(32032): Process: io.cordova.hellocordova, PID: 32032
08-31 00:08:14.444: E/AndroidRuntime(32032): java.util.ConcurrentModificationException
08-31 00:08:14.444: E/AndroidRuntime(32032): at java.util.LinkedList$LinkIterator.next(LinkedList.java:124)
08-31 00:08:14.444: E/AndroidRuntime(32032): at com.dooble.phonertc.PhoneRTCPlugin$SDPObserver.drainRemoteCandidates(PhoneRTCPlugin.java:547)
08-31 00:08:14.444: E/AndroidRuntime(32032): at com.dooble.phonertc.PhoneRTCPlugin$SDPObserver.access$1900(PhoneRTCPlugin.java:476)
08-31 00:08:14.444: E/AndroidRuntime(32032): at com.dooble.phonertc.PhoneRTCPlugin$SDPObserver$2.run(PhoneRTCPlugin.java:518)
08-31 00:08:14.444: E/AndroidRuntime(32032): at android.os.Handler.handleCallback(Handler.java:733)
08-31 00:08:14.444: E/AndroidRuntime(32032): at android.os.Handler.dispatchMessage(Handler.java:95)
08-31 00:08:14.444: E/AndroidRuntime(32032): at android.os.Looper.loop(Looper.java:157)
08-31 00:08:14.444: E/AndroidRuntime(32032): at android.app.ActivityThread.main(ActivityThread.java:5356)
08-31 00:08:14.444: E/AndroidRuntime(32032): at java.lang.reflect.Method.invokeNative(Native Method)
08-31 00:08:14.444: E/AndroidRuntime(32032): at java.lang.reflect.Method.invoke(Method.java:515)
08-31 00:08:14.444: E/AndroidRuntime(32032): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
08-31 00:08:14.444: E/AndroidRuntime(32032): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
08-31 00:08:14.444: E/AndroidRuntime(32032): at dalvik.system.NativeStart.main(Native Method)

iOS: Hanging up while establishing the connection will crash

I found a bug that if you try to call phonertc.disconnect() while the connection is being established, the application will be crashed by "CaptureManager destructing while still tracking capturers!"

One solution is queuing the hangup message until the connection is fully established then execute it. but better idea is to catch the error. Any idea to throw connection error if the connecting is unsuccessful? Because right now the whole application will be crashed if do so.

WebRTC with H.264

Hi,
Now that Cisco made H.264 available in open source, would it be possible to use H.264 encoding in WebRTC of PhoneRTC. (at least optionally if nothing else)
This would have multiple advantages:

  1. H.264 hardware acceleration is available in older devices when compared to VP8
  2. This stream can be delivered to H.264-only browsers too (like Safari, IE)

Do you have any plans to add this to Phone RTC? This would be a huge thing!

Thanks

please improve the documentation

Can you atleast provide us with an example usage ?
or are we supposed to use webrtc just like in browser ? ( I really want to use peer.js )

Compile WebRTC libraries for iOS

I am trying to build the WebRTC libraries that are included with your app. Specifically I want to ensure that I am actually using a clean version of WebRTC.

  1. What revision of the WebRTC library did you include in your app?
  2. Are there any changes that you made to make it compile?
  3. Were any additional steps taken to make the WebRTC library compile not included in the README?

When I compile the libraries on revision r6344 everything appears to compile successfully. I move the files into the xcode project. In PhoneRTCDelegate.h I change #import "RTCSessionDescriptonDelegate.h" to fix the spelling mistake that WebRTC fixed. I compile everything up and load it onto my device. When I run the PhoneRTC demo on my iPhone I get the following error:

Error(helpers.cc:291): Failed to generate random id!
Error(helpers.cc:291): Failed to generate random id!
Error(helpers.cc:291): Failed to generate random id!
Error(helpers.cc:291): Failed to generate random id!
2014-06-05 16:30:48.367 HelloCordova[4445:6d17] PCO onRenegotiationNeeded.
Error(helpers.cc:268): Failed to generate random string!
Error(common.cc:76): ../../talk/session/media/mediasession.cc(240): ASSERT FAILED: false @ GenerateCname
Process 4445 stopped
* thread #1: tid = 0xc6b60, 0x3a0d6a50 libsystem_kernel.dylib`mach_msg_trap + 20, queue = 'com.apple.main-thread', stop reason = signal SIGTRAP
    frame #0: 0x3a0d6a50 libsystem_kernel.dylib`mach_msg_trap + 20
libsystem_kernel.dylib`mach_msg_trap + 20:
-> 0x3a0d6a50:  pop    {r4, r5, r6, r8}
   0x3a0d6a54:  bx     lr

libsystem_kernel.dylib`mach_msg_overwrite_trap:
   0x3a0d6a58:  mov    r12, sp
   0x3a0d6a5c:  push   {r4, r5, r6, r8}

I also asked on the discuss-webrtc group: https://groups.google.com/forum/#!topic/discuss-webrtc/fbF6MOXXtrI

Thanks for the help,
-Eric Green

help me

my device is iphone5 and iOS8.
i made phonegap project for ios and install phonertc plugin like screenshot.

and just added one line of code in index.js of first line.

var phonertc = cordova.require('com.dooble.phonertc.PhoneRTC');
alert('sdf');

after running, alert is not showing and cordova init page shows 'connecting to device' not 'device is ready'

mabye i think cordova.require is crashed.

how can i test this library?
please help me!

thanks!

Have hook for modifying SDP before setting local description

A bunch of optimizations for WebRTC rely on applications modifying their SDP offers and accepts before they send them off or set them locally. It'd be nice if there was a hook somewhere that would execute some JS which would optionally edit the SDP string before it gets set.

Cannot see other participants

Hi all, this is my code and I'm having the problem that a connection to the signal and the turn server seems to get established successfully, but I cannot see the other participant (only me)

onDeviceReady: function() {
    app.receivedEvent('deviceready');
    var phonertc = cordova.require('com.dooble.phonertc.PhoneRTC');

    var socket = io.connect("https://example.com:8888");
    socket.on("connect", function() {
              socket.emit("join", "myroom");
              socket.on("message", function(message) {
                        console.log("GOT MESSAGE:");
                        message.payload.sdp = message.payload.sdp.replace(/(\r\n|\n|\r)/gm,"");

                        // when a message is received from the signaling server,
                        // notify the PhoneRTC plugin.
                        phonertc.receiveMessage(message.payload);

                        });
    });
    phonertc.call({ 
        isInitator: true, // Caller or callee?
        turn: {
            host: 'turn:example.com:3478',
            username: 'test',
            password: 'test'
        },
        sendMessageCallback: function (data) {
            // PhoneRTC wants to send a message to your target, use
            // your signaling server here to send the message.
            console.log(data);
            socket.emit("message", data);
        },
        answerCallback: function () {
            alert('Callee answered!');
        },
        disconnectCallback: function () {
            alert('Call disconnected!');
        },
        video: {  // Remove this property if you don't want video chat
            localVideo: document.getElementById('localVideo'),
            remoteVideo: document.getElementById('remoteVideo')
        }
    }); 
}

Anybody an idea what I'm doing wrong? I get the following error message as soon as the second participant joins the room:

2014-07-21 21:11:11.174 HelloCordova[10147:8303] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error Domain=RTCSDPError Code=-1 "The operation couldn’t be completed. (RTCSDPError error -1.)" UserInfo=0x16d52030 {error=SessionDescription is NULL.}'
*** First throw call stack:
(0x2ed05ecb 0x3949cce7 0x2ed05d9d 0x2f6b3e2f 0x5ba07 0x4628e7 0x3bedf7 0x3beec5 0x182e93 0x1be36d 0x1be297 0x1be18f 0x39ab8959 0x39ab88cb 0x39ab6ae8)
libc++abi.dylib: terminating with uncaught exception of type NSException

README example on master branch doesn't generate SDP

Here's the javascript I'm running:

var phonertc = cordova.require('com.dooble.phonertc.PhoneRTC');

phonertc.call({
    isInitator: true, // Caller or callee?
    turn: { 
        host: 'turn:turn.example.com:3478',
        username: 'user',
        password: 'pass'
    },
    sendMessageCallback: function (data) { 
        alert(JSON.stringify(data, null, 2));
    },
    answerCallback: function () { 
        alert('Callee answered!');
    },
    disconnectCallback: function () { 
        alert('Call disconnected!');
    } 
});

When I run the app, I don't see any alerts from the sendMessageCallback.

To make it easy to reproduce, I've built a cordova project. To reproduce, connect your Android device in debugging mode and run:

git clone https://github.com/joseph-onsip/phonertc-helloworld.git
cd phonertc-helloworld
make

To see it working with the plugin at commit 6965b7a, run: make working instead of make.

Avoid TURN server

Is there any way to avoid the TURN server and do instead signaling with something like.. socket.io ?

Sample app

Hi.

Any sample project to use the plugin?

THanks

help me please

hi,
i am new to develop apps.i am trying to build video chat app using cordova + phonertc.so i am using this phoneRTC plugin.but i am not getting any video preview or audio.what i did is created a cordova project and added this phoneRTC plugin to it and running for android platform.i am getting device ready but other than that nothing is coming.so please tell me what are the changes i have to change in those files?
thanks in advance

Connection disconnect on iOS

Hi,

Calling the disconnect method on iOS doesn't really interrupt the connect since I see in logs printed:
"VAdapt CPU Request: up Steps: 0 Changed: false To: 480x640"

And after I refresh the Chrome page with the other client in connection, somehow a part of the connection is trying to reinitialise.

Does anyone know a fix for this issue?

Question / group chat

Hi, this is a great repo/effort. Could we get a little explanation on what is the 'Group chat'?(is that something currently unsupported?)

•Btw, if need prioritization, maybe iOS support is more important since there are some webview-based webrtc solutions on android.

Video position not following DOM

The weird thing is that if you close a call, the last frame of the video will stay on the DOM until you click the screen (In my case I switch the page after hanging up, but the last frame of the video stays). Also if you stretch the screen, the video stream will not follow the entire DOM or video element but stay the original place. It looks like phonertc "attaches" a new video stream to the video element instead of passing the stream to it (which is the common method). It is not a very big deal but pretty annoying. Do you know how to clear the video after closing the video?

I tried phonertc.updateVideoPosition() but got no luck.

message format in phonertc.receiveMessage(message.data);

Thank you for excellent coding!

I am kind of confused when I use the api phonertc.receiveMessage. It is said that I should pass the message from my signalling server to the phonertc plugin, but I suppose there must be a format for phonertc to recognize. For example: "message":{"type":"webrtc_handshake"; "data":{"from":"aabb"; .... } }

..Is this message format specified by WebRTC itself or from phonertc? Thank you!

`cordova build` fails when using master branch of plugin

Hi @alongubkin,

I noticed the Android Video support commit, and I was excited to try it with my sipjs-cordova project. However, after upgrading the plugin to current master, my build started failing.

I was able to reproduce the problem by following the directions in the README to create a trivial application. Here's a gist showing my reproduction: https://gist.github.com/joseph-onsip/b6ae2056d126f7022cb1

I was able to build successfully using the plugin at this point before the video updates, and I'm not quite sure what changed. Any ideas?

Thanks,
Joseph

Incoming call is not handled? PhoneRTCPlugin.java:156

Is the incoming call not handled yet or am I missing something? Can we currently make an outgoing call only?

Looking at action.equals(ACTION_RECEIVE_MESSAGE) in PhoneRTCPlugin.java:156, only candidate, answer, bye are handled, not offer.

PhoneRTC with SIP.js

Hi! Thanks for the awesome work on this plugin.

I'm looking for a solution to use SIP.js with with iOS devices. Could PhoneRTC help me with that? Is there anything preventing those libraries from working in conjunction with PhoneRTC?

Edit: @joseph-onsip I noticed that you have forked this repo and the SIP.js is an OnSIP project. Can you comment on this?

Disconnect error on ios

Hi
I have two questions
1, I use phonertc browser webrtc do video communication, when disconnected, there will be a local camera pictures on the page, do not know how to remove, I use the following code to achieve disconnect phonertc.disconnect (),
2, when the video communications, the browser client can not hear the audio from ios

iOS didSetSessionDescriptionWithError

For the iOS implementation I get the following error in didSetSessionDescriptionWithError:

Error Domain=RTCSDPError Code=-1 "The operation couldn’t be completed. (RTCSDPError error -1.)" UserInfo=0x1cb6a670 {error=Failed to set remote answer sdp: Called in wrong state: STATE_RECEIVEDACCEPT}

This issue affects the video streaming to be paused for several seconds and start again to work for a short period and so on. Does anyone know what might be the problem?

phonertc: need help

Hi, i'm trying to make an app which will do audio sharing one to many using a server.
So I try to make WebRTC with a server that will send the audio stream to all persons connected to the server.
But my problem at the moment is that I do not understand how to instantiate or even start rtc with phonertc.
I installed everything like it's said on the "help" of phonertc but there is no example on how it works then it's really hard for me to understand how to instantiate signaling for example.
At the moment i would love to simply start a video conf between a pc and a mobile with phonertc.
Someone can help me plz ?

iOS: Change default resolution

Hi, just wonder how to change default resolutions. Because it looks like ipad mini cannot handler 640*480 quite well.

I change the constrains to

   self.constraints = [[RTCMediaConstraints alloc]
                    initWithMandatoryConstraints:
                    @[
                      [[RTCPair alloc] initWithKey:@"OfferToReceiveAudio" value:@"true"],
                      [[RTCPair alloc] initWithKey:@"OfferToReceiveVideo" value:(self.doVideo ? @"true" : @"false")],
                      ++[[RTCPair alloc] initWithKey:@"maxWidth" value:@"320"],
                      ++[[RTCPair alloc] initWithKey:@"minWidth" value:@"320"],
                      ++[[RTCPair alloc] initWithKey:@"maxHeight" value:@"240"],
                     ++ [[RTCPair alloc] initWithKey:@"minHeight" value:@"240"],
                     ++ [[RTCPair alloc] initWithKey:@"maxFrameRate" value:@"15"],
                      ]
                    optionalConstraints:
                    @[
                      [[RTCPair alloc] initWithKey:@"internalSctpDataChannels" value:@"true"],
                      [[RTCPair alloc] initWithKey:@"DtlsSrtpKeyAgreement" value:@"true"],
                      ]
                    ];

But threw this error: "CreateAnswer called with invalid constraints". I have been googling for a while and still no answer, could you guys help me with this ? Thank you

getUsermedia and video streaming

Safari does not implement getUsermedia, how can I get my live camera and put that as src in a video?

localVideo: document.getElementById('localVideo')

Will this create a getUsermedia stream or I have to do so?

Shared secret authentication

Dear all,

first, let me say thanks for this great piece of software. Actually, I'm trying to use PhoneRTC in coexistance to SimpleWebRTC. My problem is, that latter is just supporting a shared secret authentication at a TURN server. Therefore, I set up a server, which supports this type of authentication (restund with patch applied). My question is two folded: first of all, does PhoneRTC supports authentication with a shared secret for TURN servers? And when yes, how do I have to specify this in the turn part of the configuration (in the call method)?

And second: I dont't see any video when starting the app on iPhone, although I have a div for local and remote video. Is this correct for my situation where no authentication at TURN is possible? On the console I get a framebuffer/GLRenderer error.

Thanks in advance and best regards,
Chris

Hangup a call?

I cannot find any method to end a call and clear up for next call. Removing the video from DOM or even close the application on one side does not work....and disConnectCallback will not be called.

Thank you in advance

iOS Error: "ICE Connection failed!" Assertion Error when connecting to FreeSWITCH

Was just doing some testing to try to get SIP.js Web talking to iOS running SIP.js over PhoneRTC. The call sets up fine, but I never get any Audio and after a few more seconds, PhoneRTC crashes on iOS with this error:

Related tickets: #27 joseph-onsip/sipjs-cordova#2
Related contributors: @joseph-onsip @egreenmachine @alongubkin

iOS Crash Logs

2014-07-02 14:34:53.318 HelloCordova[163:1f13] PCO onIceConnectionChange. 4
2014-07-02 14:34:53.319 HelloCordova[163:1f13] *** Assertion failure in -[PCObserver peerConnection:iceConnectionChanged:], /Users/lyle/Desktop/Ubuntu/sipjs-cordova/platforms/ios/HelloCordova/Plugins/com.dooble.phonertc/PhoneRTCDelegate.m:321
2014-07-02 14:34:53.322 HelloCordova[163:1f13] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'ICE Connection failed!'
*** First throw call stack:
(0x2f8cbfd3 0x3a142ccf 0x2f8cbead 0x30278d5b 0xfdf2b 0x501207 0x458d07 0x458d45 0x4d0f63 0x4d1275 0x3635a3 0x38c799 0x38b529 0x21a177 0x25564d 0x255577 0x25546f 0x3a76e919 0x3a76e88b 0x3a76caa4)
libc++abi.dylib: terminating with uncaught exception of type NSException

Code Assertion Block:

- (void)peerConnection:(RTCPeerConnection *)peerConnection
  iceConnectionChanged:(RTCICEConnectionState)newState {
    NSLog(@"PCO onIceConnectionChange. %d", newState);
    NSAssert(newState != RTCICEConnectionFailed, @"ICE Connection failed!");
}

FreeSWITCH Logs

2014-07-02 19:32:15.954490 [NOTICE] switch_channel.c:1053 New Channel sofia/internal/[email protected] [92e4cac0-021f-11e4-9f63-079e26694766]
2014-07-02 19:32:16.954476 [INFO] mod_dialplan_xml.c:558 Processing Lyle Pratt <lylepratt-1111>->user-lylepratt-1234 in context public
2014-07-02 19:32:16.954476 [NOTICE] switch_channel.c:1053 New Channel sofia/internal/sip:[email protected]:54476 [937cb4b6-021f-11e4-9f6c-079e26694766]
2014-07-02 19:32:17.074486 [NOTICE] sofia.c:6253 Ring-Ready sofia/internal/sip:[email protected]:54476!
2014-07-02 19:32:17.074486 [NOTICE] mod_sofia.c:2029 Ring-Ready sofia/internal/[email protected]!
2014-07-02 19:32:17.074486 [NOTICE] switch_ivr_originate.c:527 Ring Ready sofia/internal/[email protected]!
2014-07-02 19:32:39.314494 [WARNING] switch_core_media.c:2548 NO candidate ACL defined, Defaulting to wan.auto
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2586 Save audio Candidate cid: 1 proto: udp type: host addr: 192.168.34.228:62396
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2586 Save audio Candidate cid: 1 proto: udp type: host addr: 192.168.56.1:54842
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2581 Choose audio Candidate cid: 1 proto: udp type: srflx addr: 67.78.97.126:62396
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2675 No audio RTCP candidate found; defaulting to the same as RTP [67.78.97.126:62396]
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2710 setting remote audio ice addr to 67.78.97.126:62396 based on candidate
2014-07-02 19:32:39.314494 [NOTICE] switch_core_media.c:2730 setting remote rtcp audio addr to 67.78.97.126:62396 based on candidate
2014-07-02 19:32:39.314494 [INFO] switch_core_media.c:5017 Activating Audio ICE
2014-07-02 19:32:39.314494 [NOTICE] switch_rtp.c:3775 Activating RTP audio ICE: L3qAO3T4nrydOMWu:l5JcLPs7U5aWH4oi 67.78.97.126:62396
2014-07-02 19:32:39.334493 [INFO] switch_core_media.c:5060 Activating RTCP PORT 62396
2014-07-02 19:32:39.334493 [INFO] switch_core_media.c:5068 Skipping RTCP ICE (Same as RTP)
2014-07-02 19:32:39.334493 [INFO] switch_rtp.c:2878 Activate RTP/RTCP audio DTLS server
2014-07-02 19:32:39.334493 [NOTICE] sofia.c:6988 Channel [sofia/internal/sip:[email protected]:54476] has been answered
2014-07-02 19:32:39.334493 [INFO] switch_core_media.c:5060 Activating RTCP PORT 1
2014-07-02 19:32:39.334493 [INFO] switch_rtp.c:2878 Activate RTP/RTCP audio DTLS client
2014-07-02 19:32:39.334493 [NOTICE] sofia_media.c:92 Pre-Answer sofia/internal/[email protected]!
2014-07-02 19:32:39.334493 [NOTICE] switch_ivr_originate.c:3493 Channel [sofia/internal/[email protected]] has been answered
2014-07-02 19:32:39.554524 [INFO] switch_rtp.c:2701 Changing audio DTLS state from HANDSHAKE to SETUP
2014-07-02 19:32:39.554524 [INFO] switch_rtp.c:2609 audio Fingerprint Verified.
2014-07-02 19:32:39.554524 [INFO] switch_rtp.c:3151 Activating Audio Secure RTP SEND
2014-07-02 19:32:39.554524 [INFO] switch_rtp.c:3129 Activating Audio Secure RTP RECV
2014-07-02 19:32:39.554524 [INFO] switch_rtp.c:2649 Changing audio DTLS state from SETUP to READY
2014-07-02 19:33:32.374477 [NOTICE] sofia.c:927 Hangup sofia/internal/sip:[email protected]:54476 [CS_EXCHANGE_MEDIA] [NORMAL_CLEARING]
2014-07-02 19:33:32.394536 [NOTICE] switch_core_session.c:1611 Session 6 (sofia/internal/sip:[email protected]:54476) Ended
2014-07-02 19:33:32.394536 [NOTICE] switch_core_session.c:1615 Close Channel sofia/internal/sip:[email protected]:54476 [CS_DESTROY]
2014-07-02 19:33:32.394536 [NOTICE] switch_core_state_machine.c:313 sofia/internal/[email protected] has executed the last dialplan instruction, hanging up.
2014-07-02 19:33:32.394536 [NOTICE] switch_core_state_machine.c:315 Hangup sofia/internal/[email protected] [CS_EXECUTE] [NORMAL_CLEARING]
2014-07-02 19:33:32.394536 [NOTICE] switch_core_session.c:1611 Session 5 (sofia/internal/[email protected]) Ended
2014-07-02 19:33:32.394536 [NOTICE] switch_core_session.c:1615 Close Channel sofia/internal/[email protected] [CS_DESTROY]
2014-07-02 19:34:22.714489 [NOTICE] switch_channel.c:1053 New Channel sofia/internal/[email protected] [de72bb3c-021f-11e4-9f81-079e26694766]
2014-07-02 19:34:23.694477 [INFO] mod_dialplan_xml.c:558 Processing Lyle Pratt <lylepratt-1111>->user-lylepratt-1234 in context public
2014-07-02 19:34:23.694477 [NOTICE] switch_channel.c:1053 New Channel sofia/internal/sip:[email protected]:54476 [df090678-021f-11e4-9f8a-079e26694766]
2014-07-02 19:34:23.794486 [NOTICE] sofia.c:6253 Ring-Ready sofia/internal/sip:[email protected]:54476!
2014-07-02 19:34:23.794486 [NOTICE] mod_sofia.c:2029 Ring-Ready sofia/internal/[email protected]!
2014-07-02 19:34:23.794486 [NOTICE] switch_ivr_originate.c:527 Ring Ready sofia/internal/[email protected]!
2014-07-02 19:34:36.474741 [WARNING] switch_core_media.c:2548 NO candidate ACL defined, Defaulting to wan.auto
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2586 Save audio Candidate cid: 1 proto: udp type: host addr: 192.168.34.228:52253
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2586 Save audio Candidate cid: 1 proto: udp type: host addr: 192.168.56.1:64386
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2581 Choose audio Candidate cid: 1 proto: udp type: srflx addr: 67.78.97.126:52253
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2675 No audio RTCP candidate found; defaulting to the same as RTP [67.78.97.126:52253]
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2710 setting remote audio ice addr to 67.78.97.126:52253 based on candidate
2014-07-02 19:34:36.474741 [NOTICE] switch_core_media.c:2730 setting remote rtcp audio addr to 67.78.97.126:52253 based on candidate
2014-07-02 19:34:36.474741 [INFO] switch_core_media.c:5017 Activating Audio ICE
2014-07-02 19:34:36.474741 [NOTICE] switch_rtp.c:3775 Activating RTP audio ICE: om0pqb9pCUsWEk5d:HuVXP4GOXs8ycjwA 67.78.97.126:52253
2014-07-02 19:34:36.474741 [INFO] switch_core_media.c:5060 Activating RTCP PORT 52253
2014-07-02 19:34:36.474741 [INFO] switch_core_media.c:5068 Skipping RTCP ICE (Same as RTP)
2014-07-02 19:34:36.474741 [INFO] switch_rtp.c:2878 Activate RTP/RTCP audio DTLS server
2014-07-02 19:34:36.474741 [NOTICE] sofia.c:6988 Channel [sofia/internal/sip:[email protected]:54476] has been answered
2014-07-02 19:34:36.494504 [INFO] switch_core_media.c:5060 Activating RTCP PORT 1
2014-07-02 19:34:36.494504 [INFO] switch_rtp.c:2878 Activate RTP/RTCP audio DTLS client
2014-07-02 19:34:36.494504 [NOTICE] sofia_media.c:92 Pre-Answer sofia/internal/[email protected]!
2014-07-02 19:34:36.494504 [NOTICE] switch_ivr_originate.c:3493 Channel [sofia/internal/[email protected]] has been answered
2014-07-02 19:34:36.754480 [INFO] switch_rtp.c:2701 Changing audio DTLS state from HANDSHAKE to SETUP
2014-07-02 19:34:36.754480 [INFO] switch_rtp.c:2609 audio Fingerprint Verified.
2014-07-02 19:34:36.754480 [INFO] switch_rtp.c:3151 Activating Audio Secure RTP SEND
2014-07-02 19:34:36.754480 [INFO] switch_rtp.c:3129 Activating Audio Secure RTP RECV
2014-07-02 19:34:36.754480 [INFO] switch_rtp.c:2649 Changing audio DTLS state from SETUP to READY
2014-07-02 19:35:45.174488 [NOTICE] sofia.c:927 Hangup sofia/internal/sip:[email protected]:54476 [CS_EXCHANGE_MEDIA] [NORMAL_CLEARING]
2014-07-02 19:35:45.194498 [NOTICE] switch_core_session.c:1611 Session 8 (sofia/internal/sip:[email protected]:54476) Ended
2014-07-02 19:35:45.194498 [NOTICE] switch_core_session.c:1615 Close Channel sofia/internal/sip:[email protected]:54476 [CS_DESTROY]
2014-07-02 19:35:45.194498 [NOTICE] switch_core_state_machine.c:313 sofia/internal/[email protected] has executed the last dialplan instruction, hanging up.
2014-07-02 19:35:45.194498 [NOTICE] switch_core_state_machine.c:315 Hangup sofia/internal/[email protected] [CS_EXECUTE] [NORMAL_CLEARING]
2014-07-02 19:35:45.194498 [NOTICE] switch_core_session.c:1611 Session 7 (sofia/internal/[email protected]) Ended
2014-07-02 19:35:45.194498 [NOTICE] switch_core_session.c:1615 Close Channel sofia/internal/[email protected] [CS_DESTROY]

Group Chat

PhoneRTC needs to support video and voice group chat.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.