code: function (changes, cb) {
          var self = this;
  
          this._log('info', 'Initiating incoming session');
  
          this.state = 'pending';
  
          this.pc.isInitiator = false;
  
          var desc = changes.contents[0].application;
  
  
          this.receiver = new FileTransfer.Receiver({hash: desc.offer.hash.algo});
          this.receiver.on('progress', function (received, size) {
              self._log('info', 'Receive progress ' + received + '/' + size);
          });
          this.receiver.on('receivedFile', function (file) {
              self.receivedFile = file;
              self.maybeReceivedFile();
          });
          this.receiver.metadata = desc.offer;
  
          changes.contents[0].application = {
              applicationType: 'datachannel'
          };
  
          this.pc.handleOffer({
              type: 'offer',
              jingle: changes
          }, function (err) {
              if (err) {
                  self._log('error', 'Could not create WebRTC answer');
                  return cb({condition: 'general-error'});
              }
              cb();
          });
      }
docs: ---------------------------------------------------------------- Jingle action handers ----------------------------------------------------------------