title: WebRTC never fires onIceCandidate
body: <p>I started developing with WebRTC, but that thing never gives me ICE candidates. I set up everything, I'm exchanging the descriptions and stuff, I also made a super-ugly function narrow down there to make sure everything runs correctly, one after another. Signaling state is stable for both, <em>onError</em> is never fired (as expected), but onIceCandidate also (not as expected), and when I want to send a random, empty MediaStream object <code>pc1.addStream(new webkitMediaStream());</code>, it always fires <em>onNegotiationNeeded</em>. </p>
  
  <p>Does anyone have an idea what the heck is wrong with my code? I spent hours of browsing Stack Overflow, HTML5 Rocks, and W3C docs, but I don't understand that. Here is my entire code:</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>BTW I'm developing with Google Chrome. I will make sure it also runs in Firefox, but right now the problem should be cross-browser. I want to make it to data channels before... (but I have nothing against a working solution with Firefox or cross-browser code)</p>