12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /* jshint -W117 */
- Strophe.addConnectionPlugin('rayo',
- {
- RAYO_XMLNS: 'urn:xmpp:rayo:1',
- connection: null,
- init: function (conn)
- {
- this.connection = conn;
- if (this.connection.disco)
- {
- this.connection.disco.addFeature('urn:xmpp:rayo:client:1');
- }
-
- this.connection.addHandler(
- this.onRayo.bind(this), this.RAYO_XMLNS, 'iq', 'set', null, null);
- },
- onRayo: function (iq)
- {
- console.info("Rayo IQ", iq);
- },
- dial: function (to, from, roomName)
- {
- var self = this;
- var req = $iq(
- {
- type: 'set',
- to: config.hosts.call_control
- }
- );
- req.c('dial',
- {
- xmlns: this.RAYO_XMLNS,
- to: to,
- from: from
- });
- req.c('header',
- {
- name: 'JvbRoomName',
- value: roomName
- });
-
- this.connection.sendIQ(
- req,
- function (result)
- {
- console.info('Dial result ', result);
-
- var resource = $(result).find('ref').attr('uri');
- this.call_resource = resource.substr('xmpp:'.length);
- console.info(
- "Received call resource: " + this.call_resource);
- },
- function (error)
- {
- console.info('Dial error ', error);
- }
- );
- },
- hang_up: function ()
- {
- if (!this.call_resource)
- {
- console.warn("No call in progress");
- return;
- }
-
- var self = this;
- var req = $iq(
- {
- type: 'set',
- to: this.call_resource
- }
- );
- req.c('hangup',
- {
- xmlns: this.RAYO_XMLNS
- });
-
- this.connection.sendIQ(
- req,
- function (result)
- {
- console.info('Hangup result ', result);
- self.call_resource = null;
- },
- function (error)
- {
- console.info('Hangup error ', error);
- self.call_resource = null;
- }
- );
- }
- }
- );
|