STUNサーバを中継したUDPチャットのテスト

うまくいかなかった.
vs-stun, sync-prompt, dgram利用

udpTest.js

var stun = require('vs-stun');

var socket, server = { host: 'stun.l.google.com', port: 19302 }

var callback = function callback ( error, value ) {
  if ( !error ) {
    socket = value;
    console.log(socket.stun);
    socket.close();
    chat();
  }
  else console.log('Something went wrong: ' + error);
}

stun.connect(server, callback);

function chat(){
    /* get destination info*/
    var prompt = require('sync-prompt').prompt;
    var PORT = prompt('Destination UDP Port? ');
    var ADDRESS = prompt('Destination UDP Global IP Address? ');

    if(PORT===""||ADDRESS===""){
        console.log("input valid info");
        process.exit(1);
    }
    var dgram = require('dgram')
      , ifaces = require('os').networkInterfaces()
      , omitAddresses = []
      , stdin = process.stdin
      , stdout = process.stdout;
     
    /*
    Object.keys(ifaces).forEach(function(type){
      ifaces[type].forEach(function(iface){
        if (iface.family.toLowerCase() == 'ipv4') {
          omitAddresses.push(iface.address);
        }
      });
    });
    */ 
    
    sock = dgram.createSocket('udp4')
    sock.on('message', function(data, rinfo){
      if (omitAddresses.indexOf(rinfo.address) === -1) {
        stdout.write(data.toString());
      }
    });
    sock.bind(PORT, '', function(){
      stdout.write('please enter message...\n');
      sock.setBroadcast(true);
      stdin.resume();
      stdin.on('data', function(data){
        sock.send(data, 0, data.length, PORT, ADDRESS, function(err){
          if (err) throw err;
        });
      });
    });
}