| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- /* jshint -W117 */
 - module.exports = function() {
 -     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, roomPass) {
 -                 var self = this;
 -                 var req = $iq(
 -                     {
 -                         type: 'set',
 -                         to: this.connection.emuc.focusMucJid
 -                     }
 -                 );
 -                 req.c('dial',
 -                     {
 -                         xmlns: this.RAYO_XMLNS,
 -                         to: to,
 -                         from: from
 -                     });
 -                 req.c('header',
 -                     {
 -                         name: 'JvbRoomName',
 -                         value: roomName
 -                     }).up();
 - 
 -                 if (roomPass !== null && roomPass.length) {
 - 
 -                     req.c('header',
 -                         {
 -                             name: 'JvbRoomPassword',
 -                             value: roomPass
 -                         }).up();
 -                 }
 - 
 -                 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;
 -                     }
 -                 );
 -             }
 -         }
 -     );
 - };
 
 
  |