summary refs log tree commit diff
path: root/contrib/jitsimeetbridge/unjingle/unjingle.js
blob: 3dfe759914b34b789edbc0a83c2a2fd159b93964 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
var strophe = require("./strophe/strophe.js").Strophe;

var Strophe = strophe.Strophe;
var $iq     = strophe.$iq;
var $msg    = strophe.$msg;
var $build  = strophe.$build;
var $pres   = strophe.$pres;

var jsdom = require("jsdom");
var window = jsdom.jsdom().parentWindow;
var $ = require('jquery')(window);

var stropheJingle = require("./strophe.jingle.sdp.js");


var input = '';

process.stdin.on('readable', function() {
  var chunk = process.stdin.read();
  if (chunk !== null) {
    input += chunk;
  }
});

process.stdin.on('end', function() {
	if (process.argv[2] == '--jingle') {
		var elem = $(input);
		// app does:
		// sess.setRemoteDescription($(iq).find('>jingle'), 'offer');
		//console.log(elem.find('>content'));
		var sdp = new stropheJingle.SDP('');
		sdp.fromJingle(elem);
		console.log(sdp.raw);
	} else if (process.argv[2] == '--sdp') {
		var sdp = new stropheJingle.SDP(input);
		var accept = $iq({to: '%(tojid)s',
			type: 'set'})
			.c('jingle', {xmlns: 'urn:xmpp:jingle:1',
			    //action: 'session-accept',
			    action: '%(action)s',
			    initiator: '%(initiator)s',
			    responder: '%(responder)s',
			    sid: '%(sid)s' });
		sdp.toJingle(accept, 'responder');
		console.log(Strophe.serialize(accept));
	}
});