WebRTC никогда не срабатывает onIceCandidate

Я начал разрабатывать с WebRTC, но это никогда не дает мне кандидатов на ICE. Я все настроил, я обмениваюсь описаниями и прочим, я также сделал очень уродливую функцию, чтобы убедиться, что все работает правильно, один за другим. Состояние сигнализации стабильно для обоих,OnError никогда не запускается (как и ожидалось), но также onIceCandidate (не так, как ожидается), и когда я хочу отправить случайный пустой объект MediaStreampc1.addStream(new webkitMediaStream());всегда срабатываетonNegotiationNeeded.

У кого-нибудь есть идея, что, черт возьми, не так с моим кодом? Я часами просматривал Stack Overflow, HTML5 Rocks и документы W3C, но я этого не понимаю. Вот весь мой код:

var config={
  'iceServers':[{
    'url':'stun:stun.l.google.com:19302'
  },{
    'url':'stun:stun1.l.google.com:19302'
  },{
    'url':'stun:stun2.l.google.com:19302'
  },{
    'url':'stun:stun3.l.google.com:19302'
  },{
    'url':'stun:stun4.l.google.com:19302'
  }]
};
var pc1=new webkitRTCPeerConnection(config);
var pc2=new webkitRTCPeerConnection(config);

var onError=function(error)
{
  console.error(error);
}

pc1.onicecandidate=function()
{
  console.log('PC1 onIceCandidate (finally) fired!');
}
pc2.onicecandidate=function()
{
  console.log('PC2 onIceCandidate (finally) fired!');
}

pc1.oniceconnectionstatechange=function()
{
  console.log('PC1 oniceconnectionstatechange fired!');
}
pc2.oniceconnectionstatechange=function()
{
  console.log('PC2 oniceconnectionstatechange fired!');
}
pc1.onnegotiationneeded=function()
{
  console.log('PC1 onnegotiationneeded fired!');
}
pc2.onnegotiationneeded=function()
{
  console.log('PC2 onnegotiationneeded fired!');
}

pc1.createOffer(function(offer){
  pc1.setLocalDescription(offer,function(){
    pc2.setRemoteDescription(new RTCSessionDescription(offer),function(){
      pc2.createAnswer(function(answer){
        pc2.setLocalDescription(answer,function(){
          pc1.setRemoteDescription(new RTCSessionDescription(answer),new Function()/*I don't need you, bro*/,onError);
        },onError);
      },onError);
    },onError);
  },onError);
},onError);

Кстати я разрабатываю с Google Chrome. Я позабочусь, чтобы он также работал в Firefox, но сейчас проблема должна быть кросс-браузерной. Я хочу добраться до каналов данных раньше ... (но я ничего не имею против работающего решения с Firefox или кросс-браузерным кодом)

Ответы на вопрос(3)

Ваш ответ на вопрос