Файловый менеджер - Редактировать - /var/www/html/components/com_jchat/js/conference.js
Ðазад
"use strict";(function(a){var b=function(H){var m=this;var d;var k;var e=new Array();var u=new Array();var P;var l=new Array();var Q=H.debugEnabled;var U=H.jsonLiveSite;var ak=new Array();var h=new Array();var ae=new Array();var y;var ah=new Array();var C=0;var J={};var r=new Array();var v=new Array();var B=new Array();var j=null;var M=new Array();var w=new Array();var q=new Array();var G=null;var i=null;var aa=1;var p=new Array();var ac=0;var ad;var al=9;var S={Highest:{minValue:0,maxValue:0.5},High:{minValue:0.5,maxValue:1},Average:{minValue:1,maxValue:1.5},Low:{minValue:1.5,maxValue:3},Lowest:{minValue:3,maxValue:999}};var D={Auto:true,Highest:{mandatory:{minWidth:1280,minHeight:720},optional:[{frameRate:60},{facingMode:"user"}]},High:{mandatory:{minWidth:1024,minHeight:720},optional:[{frameRate:60},{facingMode:"user"}]},Average:{mandatory:{maxWidth:640,maxHeight:480},optional:[{frameRate:30},{facingMode:"user"}]},Low:{mandatory:{maxWidth:320,maxHeight:240},optional:[{frameRate:30},{facingMode:"user"}]},Lowest:{mandatory:{maxWidth:160,maxHeight:120},optional:[{frameRate:15},{facingMode:"user"}]},"Front Cam":{facingMode:"user"},"Rear Cam":{facingMode:"environment"}};var I={Auto:true,Highest:{video:{width:{min:1024,ideal:1280,max:1920},height:{min:640,ideal:720,max:1080}},frameRate:60,facingMode:"user"},High:{video:{width:{min:960,ideal:1024,max:1280},height:{min:640,ideal:720,max:960}},frameRate:60,facingMode:"user"},Average:{video:{width:{min:320,ideal:640,max:960},height:{min:240,ideal:480,max:640}},frameRate:30,facingMode:"user"},Low:{video:{width:320,height:240},frameRate:30,facingMode:"user"},Lowest:{video:{width:160,height:120},frameRate:15,facingMode:"user"},"Front Cam":{facingMode:"user"},"Rear Cam":{facingMode:"environment"}};var V=a('<select id="jchat_webrtc_camquality"></select>');var F=true;this.localVideo=null;this.remoteVideo=null;this.caller=new Object();this.callee=new Object();window.RTCPeerConnection=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;var ai=false;if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){}else{if(!navigator.mediaDevices){navigator.mediaDevices=new Object()}navigator.mediaDevices.getUserMedia=((navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia)?function(aq){return new a.Deferred(function(ar){(navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia).call(navigator,aq,ar.resolve,ar.reject)})}:null)}var Y=function(){a(document).on("click.jchatwebrtc","#jchat_conference_container div.jchat_start_accept_call",{scope:this},function(aq){aq.stopPropagation();j=a(this).parents("li.jchat_userbox").data("sessionid");if(a(this).hasClass("jchat_disabled")){return false}if(aq.data.scope.caller[j]){return false}if(!aq.data.scope.callee[j]){aq.data.scope.caller[j]=true;x()}else{ag();t.call(aq.data.scope)}});a(document).on("click.jchatwebrtc","#jchat_conference_container div.jchat_end_decline_call",{scope:this},function(aq,ar){aq.stopPropagation();if(a(this).hasClass("jchat_disabled")){return false}j=a(this).parents("li.jchat_userbox").data("sessionid");aq.data.scope.caller[j]=false;aq.data.scope.callee[j]=false;q[j]=false;K(ar)});a("#jchat_webrtc_end_conference").on("click.jchatwebrtc",function(ar){var aq=a("#jchat_conference_container div.jchat_conference_btns div.jchat_end_decline_call").filter(function(at){return !a(this).hasClass("jchat_disabled")});a.each(aq,function(at,au){setTimeout(function(){a(au).trigger("click.jchatwebrtc")},500*at)})});a("#jchat_webrtc_volume input",d).on("mousemove.jchatwebrtc, touchmove.jchatwebrtc",function(aq){var ar=a(this).val()/100;a("video.jchat_conference_remotepeer").each(function(at,au){au.volume=ar});a.jStorage.set("jchat_webrtc_volume",ar)});a("#jchat_webrtc_mic input",d).on("mousemove.jchatwebrtc, touchmove.jchatwebrtc",function(at){var au=a(this).val()/100;if(window.AudioContext){i.gain.setTargetAtTime(au,G.currentTime+0.1,0.1)}if(y&&navigator.mozGetUserMedia){y.getAudioTracks()[0].enabled=!!au;if(!au){var ar=a("#mic_vumeter").get(0);var aq=a("#mic_vumeter")[0].getContext("2d");aq.clearRect(0,0,60,180)}}a.jStorage.set("jchat_webrtc_mic",au)});a("div[data-trigger=1]").on("click.webrtc",function(aq){if(a(this).hasClass("jchat_disabled")){return false}var at=a(this).hasClass("toggle_on");if(!at){a(this).addClass("toggle_on");var ar=a(this).data("role");switch(ar){case"fileupload":O(this);break}}else{a(this).prev("div[class^=jchat_conference_fileupload]").remove();a(this).removeClass("toggle_on")}});a("#jchat_webrtc_video",d).on("change.jchatwebrtc",function(ar){var at=a(this).prop("checked");aa=at?1:0;a.jStorage.set("jchat_webrtc_videocam",aa);if(aa==1&&a("#jchat_conference_localvideo").hasClass("jchat_collapsed")){a("#jchat_conference_localvideo, #jchat_conference_remotevideos").removeClass("jchat_collapsed");a("#jchat_wrapper_localvideo_recorder").show();a.jStorage.set("wrapperlocalvideo_collapsed",0)}var aq=a.Deferred(function(au){a.ajax({type:"POST",url:U,dataType:"json",context:this,data:{task:"conference.updateEntity",videocam:aa}}).done(function(av,ax,aw){if(!av.storing.status){au.reject(av.storing.exception_message,ax);return false}au.resolve()}).fail(function(aw,ay,ax){var av=ay[0].toUpperCase()+ay.slice(1);au.reject("-"+av+"- "+ax)})}).promise();aq.then(function(au){if(H.hideWebcamWhenDisabled){if(!aa){if(H.hideWebcamWhenDisabled==2){a("#jchat_wrapper_localvideo").hide()}else{a("#jchat_conference_localvideo").after('<div id="jchat_localvideo_placeholder"></div>');a("#jchat_localvideo_placeholder").height(a("#jchat_conference_localvideo").height())}a("#jchat_conference_localvideo").hide()}else{if(H.hideWebcamWhenDisabled==2){a("#jchat_wrapper_localvideo").show()}else{a("#jchat_conference_localvideo").next("#jchat_localvideo_placeholder").remove()}a("#jchat_conference_localvideo").show()}}a("#jchat_wrapper_localvideo").toggleClass("active");if(Q){console.log("Updated session videocam on server")}},function(au,av){if(Q){console.log("Error updating session videocam on server: "+au)}})});a("#jchat_webrtc_camquality").on("change.jchatwebrtc",function(aq){a.jStorage.set("jchat_webrtc_videocam_quality",a(this).val());a(this).blur();window.location.reload()});a("#jchat_leftusers_search").on("keyup.jchatwebrtc",function(aq){if(aq.keyCode!=13){af()}});a(document).on("click.jchatwebrtc","#jchat_leftusers_search_reset",function(){a("#jchat_leftusers_search").val("");a(this).remove();a("#jchat_userslist li").show()});a("#jchat_conference_maximizebutton").on("click.jchatwebrtc",function(aq,at){a(this).toggleClass("jchat_maximized");a("#jchat_conference_container").toggleClass("jchat_maximized");if(a(this).hasClass("jchat_maximized")){a("#jchat_conference_container").parents().filter(function(au){return a(this).prop("tagName")!="HTML"}).css("position","inherit")}var ar=a(a("video.jchat_conference_remotepeer").get(0)).height();if(ar){a(".jchat_remotevideo_placeholder").height(ar)}if(a("#jchat_trigger_conference_fileupload").hasClass("toggle_on")){a("#jchat_trigger_conference_fileupload").trigger("click.webrtc")}});a(document).on("click.jchatwebrtc","#jchat_conference_userslist li.jchat_userbox span.jchat_usersbox_name",function(aq){var ar=a(this).parents("li.jchat_userbox").data("sessionid");a("div.jchat_userscontent #jchat_userlist_"+ar).trigger("click")});a("#jchat_wrapper_localvideo span.jchat_video_tab").on("click.webrtc",function(aq){var at=a(this).next("video");var au=a("#jchat_conference_remotevideos");var ar=a("#jchat_wrapper_localvideo_recorder");if(at.hasClass("jchat_collapsed")){if(aa){at.slideDown()}at.removeClass("jchat_collapsed");au.removeClass("jchat_collapsed");ar.show();a.jStorage.set("wrapperlocalvideo_collapsed",0)}else{at.slideUp();at.addClass("jchat_collapsed");au.addClass("jchat_collapsed");ar.hide();a.jStorage.set("wrapperlocalvideo_collapsed",1)}});a(document).on("click.webrtc","#jchat_conference_remotevideos span.jchat_video_tab",function(at){var av=a(this).parent("div.jchat_wrapper_remotevideo");var aq=av.data("pinned");var au=av.data("ordering");a("div.jchat_wrapper_remotevideo.jchat_conference_pinnedvideo").each(function(ax,aA){var az=a(aA);a("span.jchat_video_tab",az).removeClass("jchat_pin_active");var ay=az.data("ordering");var aw=a("#jchat_conference_remotevideos div.jchat_wrapper_remotevideo").get(ay);if(aw&&az.get(0)!=aw){az.detach().insertAfter(aw)}});if(aq){av.data("pinned",false);av.removeClass("jchat_conference_pinnedvideo");a("#jchat_conference_remotevideos").detach().insertAfter(a("#jchat_wrapper_localvideo"));a(this).removeClass("jchat_pin_active");a("#jchat_conference_remotevideos").removeClass("jchat_pinned_container")}else{a("div.jchat_wrapper_remotevideo").data("pinned",false).removeClass("jchat_conference_pinnedvideo");av.data("pinned",true);av.addClass("jchat_conference_pinnedvideo");var ar=a("#jchat_conference_remotevideos");a(this).parent("div.jchat_wrapper_remotevideo").detach().prependTo(ar);a("#jchat_conference_remotevideos").detach().insertBefore(a("#jchat_wrapper_localvideo"));a(this).addClass("jchat_pin_active");a("#jchat_conference_remotevideos").addClass("jchat_pinned_container")}})};var s=function(aq){try{ak[aq]=new RTCPeerConnection(J);C=0;ae[aq]=new Array();ak[aq].onicecandidate=ap;ak[aq].iceCandidatesSent=false;aj(aq);ak[aq].addStream(y);h[aq]=function(au){var at=o(au);if(H.showWebRTCStats&&at){Z(ak[aq],aq)}};if("ontrack" in ak[aq]){ak[aq].ontrack=h[aq]}else{ak[aq].onaddstream=h[aq]}ak[aq].oniceconnectionstatechange=function(){if(ak[aq]){if(Q){console.log("Connection: "+ak[aq].iceConnectionState)}if(ak[aq].iceConnectionState=="completed"){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_started,"jchat_info_closer",true)}if(ak[aq].iceConnectionState=="connected"){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_active,"jchat_info_closer",true);f(1)}if(ak[aq].iceConnectionState=="disconnected"){if(Q){console.log(ak[aq].iceConnectionState)}if(typeof v[aq]=="number"){clearTimeout(v[aq])}v[aq]=setTimeout(function(at){if(ak[at]){if(ak[at].iceConnectionState=="disconnected"){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_disconnected,"jchat_info_closer",true);if(a(".jchat_end_decline_call","#jchat_conference_userslist li[data-sessionid="+at+"]").length){a(".jchat_end_decline_call","#jchat_conference_userslist li[data-sessionid="+at+"]").trigger("click",[jchat_call_disconnected])}else{m.caller[at]=false;m.callee[at]=false;q[at]=false;K(jchat_call_disconnected,at)}}}},H.endCallTimeout,aq)}if(ak[aq].iceConnectionState=="failed"){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_failed,"jchat_info_closer",true)}}}}catch(ar){ag();an();c();ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer",true);m.caller[aq]=false;m.callee[aq]=false;q[aq]=false;if(Q){console.log(ar.message)}return}if(!ak[aq]){ag();an();c();m.caller[aq]=false;m.callee[aq]=false;q[aq]=false;ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer",true);return}};var x=function(){if(!y){ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_missing_local_stream,"jchat_exceptions_closer",true);m.caller[j]=false;return}s(j);if(!ak[j]){return}ak[j].createOffer().then(g,T);ab("jchat_infouser_webrtc","jchat_async_loader","jchat_tooltip_innermsg",jchat_connecting,null,true);m.setCallerRingingButton();A();r[j]=setTimeout(function(aq){a(".jchat_end_decline_call","#jchat_conference_userslist li[data-sessionid="+aq+"]").trigger("click",[jchat_noanswer])},H.startCallTimeout,j);a("#jchat_webrtc_camquality").attr("disabled",true);if(Q){console.log("New call started")}};var t=function(){if(!ak[j]){s(j)}if(this.callee[j]){if(M[j]){ak[j].setRemoteDescription(new RTCSessionDescription(JSON.parse(M[j]))).then(function(){if(Q){console.log("Set remote description by callee")}},function(ar){if(Q){console.log("Error during set remote description:"+ar)}})}ak[j].createAnswer().then(g,T);an(true);a(".jchat_start_accept_call","#jchat_conference_userslist li[data-sessionid="+j+"]").addClass("jchat_disabled");a(".jchat_end_decline_call","#jchat_conference_userslist li[data-sessionid="+j+"]").removeClass("jchat_disabled");a("div.jchat_callee_btns_accept, div.jchat_callee_btns_decline","div.jchat_wrapper_remotevideo[data-sessionid="+j+"]").fadeOut();a("#jchat_webrtc_end_conference, #jchat_trigger_conference_fileupload").removeClass("jchat_disabled");ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_starting,"jchat_info_closer",true);if(Q){console.log("Exchanged SDP/ICE and call started between 2 peer")}}else{if(this.caller[j]){if(M[j]){ak[j].setRemoteDescription(new RTCSessionDescription(JSON.parse(M[j]))).then(function(){if(Q){console.log("Set remote description by caller")}},function(ar){if(Q){console.log("Error during set remote description:"+ar)}})}}}if(w[j]){var aq=JSON.parse(w[j]);a.each(aq,function(ar,av){if(!av.candidate){return true}var au=new RTCIceCandidate(av);try{ak[j].addIceCandidate(au)}catch(at){if(Q){console.log(at.message)}}})}};var K=function(at,av){var au=at?at:jchat_connection_closed;if(av){j=av}try{if(ak[j]){ab("jchat_infouser_webrtc","jchat_async_loader","jchat_tooltip_innermsg",jchat_closing_connection,null,true)}ak[j].close();ak[j]=null}catch(ar){if(Q){console.log(ar.message)}if(Q){console.log("Call/connection ended or refused")}}var aq=a.Deferred(function(aw){a.ajax({type:"POST",url:U,dataType:"json",context:this,data:{task:"conference.deleteEntity",ids:j}}).done(function(ax,az,ay){if(!ax.storing.status){aw.reject(ax.storing.exception_message,az);return false}aw.resolve()}).fail(function(ay,aA,az){var ax=aA[0].toUpperCase()+aA.slice(1);aw.reject("-"+ax+"- "+az)})}).promise();aq.then(function(aw){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",au,"jchat_info_closer",true);f(0);if(Q){console.log("Call ended, connection closed and session deleted on server")}},function(aw,ax){ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_connection_close_error,"jchat_exceptions_closer",true);if(Q){console.log("Error deleting session on server: "+aw)}}).always(function(){c();ag();E()});an()};var f=function(at){if(at==1){if(a("#jchat_webrtc_duration").length){return false}a("#jchat_conference_controls div.jchat_trigger_conference_fileupload").after('<div id="jchat_webrtc_duration"><span></span></div>');a("#jchat_webrtc_duration").hide();var ar=Date.now();P=setInterval(function(){var aw=Date.now();var av=new Date(aw-ar);var au=av.toUTCString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1");a("#jchat_webrtc_duration > span").text(au);a("#jchat_webrtc_duration").show()},1000)}else{var aq=a(".jchat_end_decline_call").filter(function(au){return !a(this).hasClass("jchat_disabled")}).length;if(aq){return false}a("#jchat_webrtc_duration").remove();if(typeof(P)!=="undefined"){clearInterval(P)}}};var am=function(ar){var aq;y=ar;if(H.showWebRTCVUMeter){a(document).one("click",function(){ao(y)})}a(".jchat_start_accept_call").removeClass("jchat_disabled");m.localVideo=a("#jchat_conference_localvideo").get(0);aq=y;m.localVideo.volume=0;if(navigator.mozGetUserMedia){a("#jchat_webrtc_mic input").attr("step",100);if(a.jStorage.get("jchat_webrtc_mic")==null){a("#jchat_webrtc_mic input").val(100)}}m.localVideo.srcObject=aq;if(!!navigator.mozGetUserMedia&&!y.getVideoTracks()[0]){a("#jchat_conference_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");a("#jchat_webrtc_video").prop("checked",false).off(".jchatwebrtc").next().attr("for",null);ab("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_nowebcam_detected)}setTimeout(function(au){var at=!!au.getVideoTracks()[0];if(!navigator.mozGetUserMedia&&at){if(au.getVideoTracks()[0].readyState==="ended"){a("#jchat_conference_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");ab("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_hardware_unavailable);a(".jchat_start_accept_call").addClass("jchat_disabled");if(Q){console.log("Video track state:"+au.getVideoTracks()[0].readyState)}}}},500,y);a(".jchat_infouser_webrtc.top").fadeOut(500);if(aa){a("#jchat_wrapper_localvideo").toggleClass("active")}if(Q){console.log("Local video stream started, video track state")}};function o(aq){m.remoteVideo=a("video.jchat_conference_remotepeer[data-sessionid="+j+"]","#jchat_conference_remotevideos").get(0);var au=aq.streams?aq.streams[0].getVideoTracks()[0]:aq.stream.getVideoTracks()[0];var at=aq.track?aq.track.kind:au.kind;if(p[j]&&au){a("div.jchat_remotevideo_placeholder","div.jchat_wrapper_remotevideo[data-sessionid="+j+"]").hide();a("video.jchat_conference_remotepeer","div.jchat_wrapper_remotevideo[data-sessionid="+j+"]").show()}else{if(!p[j]&&au){a("div.jchat_remotevideo_placeholder","div.jchat_wrapper_remotevideo[data-sessionid="+j+"]").show();a("video.jchat_conference_remotepeer","div.jchat_wrapper_remotevideo[data-sessionid="+j+"]").hide()}}if(au&&at=="video"){var ar=aq.streams?aq.streams[0]:aq.stream;m.remoteVideo.srcObject=ar;ah[j]=ar;a("video[data-sessionid="+j+"]").next("div.jchat_async_loader").remove();a("video[data-sessionid="+j+"]").parent("div.jchat_wrapper_remotevideo").toggleClass("active");setTimeout(function(){var av=a(m.remoteVideo).height();if(av){a(".jchat_remotevideo_placeholder").height(av)}},500);if(Q){console.log("Remote video stream got")}return true}return false}var g=function(ar){var aq=m.caller[j]?"offer":"answer";ak[j].setLocalDescription(ar).then(function(){if(Q){console.log("SDP "+aq+" correctly generated")}},function(){if(Q){console.log("SDP "+aq+" error")}});if(Q){console.log("SDP "+aq+" created")}X("sdp",ar)};var ap=function(aq){if(aq.candidate){if(aq.candidate){ae[j][C]=aq.candidate}C++;ak[j].iceCandidatesSent=false;if(Q){console.log("Event candidate found: "+aq.candidate.candidate)}}else{if(!aq.candidate||ak[j].iceGatheringState==="complete"){if(ak[j]){if(!ak[j].iceCandidatesSent){X("icecandidate",ae[j]);ak[j].iceCandidatesSent=true;if(Q){console.log("icecandidates sent successfully using standard complete event")}}}}}};var aj=function(aq){setTimeout(function(ar){if(ak[ar]){if(!ak[ar].iceCandidatesSent){X("icecandidate",ae[ar],ar);ak[ar].iceCandidatesSent=true;if(Q){console.log("icecandidates sent successfully using polyfill")}}}},1000,aq)};var X=function(au,av,aw){var at={task:"conference.saveEntity",peer2:aw||j,caller:(m.caller[j]?1:0),videocam:aa};if(m.caller[j]){var ar=new Array();a.each(m.caller,function(ax,ay){if((ax==j)||!ay){return true}ar.push(ax)});a.each(m.callee,function(ax,ay){if((ax==j)||!ay){return true}ar.push(ax)});a.extend(at,{other_peers:JSON.stringify(ar)})}switch(au){case"sdp":a.extend(at,{sdp:JSON.stringify(av)});break;case"icecandidate":a.extend(at,{icecandidate:JSON.stringify(av)});break}var aq=a.Deferred(function(ax){a.ajax({type:"POST",url:U,dataType:"json",context:this,data:at}).done(function(ay,aA,az){if(!ay.storing.status){ax.reject(ay.storing.exception_message,aA,ay.storing);return false}ax.resolve(ay.storing)}).fail(function(az,aB,aA){var ay=aB[0].toUpperCase()+aB.slice(1);ax.reject("-"+ay+"- "+aA,null,{})})}).promise();aq.then(function(ax){q[j]=true;if(Q){console.log(au+" sent succesfully through signaling channel")}},function(ax,ay,az){if(ak[j]){if(az.usermessage){ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",ax,"jchat_exceptions_closer",true)}else{ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer",true)}ak[j].close();ak[j]=null}m.caller[j]=false;m.callee[j]=false;q[j]=false;ag();an();c();E();if(Q){console.log(au+" error using signaling channel: "+ax)}})};this.initializeVideo=function(aA,ar){if(!k){L(aA);return false}d=aA;var au=a("#jchat_conference_controls",aA);au.after('<span id="jchat_wrapper_localvideo"><span class="jchat_video_tab jchat_trigger_localvideo_toggle">'+ar+'</span><video id="jchat_conference_localvideo" autoplay="autoplay"></video></span>');ab("jchat_infouser_webrtc top","jchat_icon_ok","jchat_tooltip_innermsg",jchat_grant_cam_access);var ax=H.defaultAudioVolume*100;var aq=H.defaultMicVolume*100;au.prepend('<div id="jchat_webrtc_end_conference" class="jchat_disabled">'+COM_JCHAT_END_VIDEOCONFERENCE+"</div>");au.prepend('<div id="jchat_webrtc_volume"><input class="jchat_slider" type="range" min="0" max="100" step="10" value="'+ax+'"/></div>');au.prepend('<div id="jchat_webrtc_mic"><input class="jchat_slider" type="range" min="0" max="100" step="10" value="'+aq+'"/></div>');au.prepend('<canvas id="mic_vumeter"></canvas>');var av=function(){return'<div id="jchat_trigger_conference_fileupload" class="jchat_trigger_conference_fileupload jchat_disabled" data-trigger="1" data-role="fileupload"></div>'};au.prepend(av());var az=function(aB){return'<div class="jchat_onoffswitch_container"><span class="jchat_webcam_label">'+jchat_webcam+'</span><div class="jchat_onoffswitch '+aB+'"><input type="checkbox" name="jchat_onoffswitch" class="jchat_onoffswitch-checkbox" id="'+aB+'" checked><label class="jchat_onoffswitch-label" for="'+aB+'"><span class="jchat_onoffswitch-inner"></span><span class="jchat_onoffswitch-switch"></span></label></div></div>'};au.prepend(az("jchat_webrtc_video"));au.prepend(V);a("#jchat_webrtc_camquality").wrap(a('<div id="jchat_quality_cam" class="jchat_quality_cam"></div>'));a("#jchat_quality_cam").prepend("<span>"+jchat_webcam_quality+"</span>");if(a.jStorage.get("jchat_webrtc_mic")!==null){var at=a.jStorage.get("jchat_webrtc_mic");if(window.AudioContext){i.gain.setTargetAtTime(at,G.currentTime+0.1,0.1)}a("#jchat_webrtc_mic input",aA).val(at*100)}else{if(window.AudioContext){i.gain.setTargetAtTime(H.defaultMicVolume,G.currentTime+0.1,0.1)}}if(a.jStorage.get("jchat_webrtc_volume")!==null){var aw=a.jStorage.get("jchat_webrtc_volume");a("#jchat_webrtc_volume input",aA).val(aw*100)}a("#jchat_webrtc_video",aA).prop("checked",!!aa);if(!aa&&H.hideWebcamWhenDisabled){if(H.hideWebcamWhenDisabled==2){a("#jchat_wrapper_localvideo").hide()}else{a("#jchat_conference_localvideo").after('<div id="jchat_localvideo_placeholder"></div>')}a("#jchat_conference_localvideo").hide()}Y.call(this);var ay=a.Deferred(function(aB){W(aB)}).promise();ay.then(function(aC){var aB=(F===true)?true:D[F];if(!aC.hasWebcam){aB=false;a("#jchat_conference_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");a("#jchat_webrtc_video").prop("checked",false).off(".jchatwebrtc").next().attr("for",null);ab("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_nowebcam_detected)}try{navigator.mediaDevices.getUserMedia({audio:true,video:aB}).then(am,function(aE){a("#jchat_conference_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");var aF=aE=="HARDWARE_UNAVAILABLE"?jchat_hardware_unavailable:jchat_mediastream_error;ab("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",aF);a(".jchat_start_accept_call").addClass("jchat_disabled");if(Q){console.log("Error during video stream starting, resolution not supported? - "+aE)}})}catch(aD){ab("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_requires_https)}},function(aB,aC){if(Q){console.log("Error initialized app and local video: "+aB)}});if(a.jStorage.get("wrapperlocalvideo_collapsed",false)==1){a("#jchat_conference_localvideo, #jchat_conference_remotevideos").addClass("jchat_collapsed");a("#jchat_conference_localvideo").hide()}a(document).on("click.jchatwebrtc","video.jchat_conference_remotepeer,#jchat_conference_localvideo",function(aB){this.requestFullScreen=this.webkitRequestFullScreen||this.mozRequestFullScreen||this.requestFullScreen;this.requestFullScreen()});if(Q){console.log("Initialized app and local video")}return true};var A=function(aw){var aq=a("#jchat_conference_userslist li.jchat_userbox[data-sessionid="+j+"]").data("username");aq=aq.length>al?aq.substr(0,al)+"...":aq;var av=' poster="'+jchat_livesite+'components/com_jchat/images/default/placeholder.png"';var au="";if(aw){au='<div class="jchat_callee_btns_accept"><span>Accept</span></div><div class="jchat_callee_btns_decline"><span>Decline</span></div>';a(document).on("click.jchatwebrtc","div.jchat_callee_btns_accept",function(ay){var ax=a(this).parent("div.jchat_wrapper_remotevideo").data("sessionid");a("li.jchat_userbox[data-sessionid="+ax+"] div.jchat_start_accept_call").trigger("click.jchatwebrtc")});a(document).on("click.jchatwebrtc","div.jchat_callee_btns_decline",function(ax){var ay=a(this).parent("div.jchat_wrapper_remotevideo").data("sessionid");a("li.jchat_userbox[data-sessionid="+ay+"] div.jchat_end_decline_call").trigger("click.jchatwebrtc")})}var at='<div class="jchat_wrapper_remotevideo" data-sessionid="'+j+'"><span class="jchat_video_tab jchat_remote_pin_video">'+aq+'</span><video data-sessionid="'+j+'" class="jchat_conference_remotepeer"'+av+' autoplay="autoplay"></video><div class="jchat_async_loader"></div>'+au+'<div class="jchat_remotevideo_placeholder"></div></span>';a("#jchat_conference_remotevideos").prepend(at);setTimeout(function(ax){a("div.jchat_wrapper_remotevideo[data-sessionid="+ax+"]","#jchat_conference_remotevideos").addClass("jchat_faded")},1,j);if(jchat_conference_autoaccept){setTimeout(function(ax){a("div.jchat_wrapper_remotevideo[data-sessionid="+ax+"] div.jchat_callee_btns_accept","#jchat_conference_remotevideos").trigger("click.jchatwebrtc")},100,j)}if(a.jStorage.get("jchat_webrtc_volume",false)){var ar=a.jStorage.get("jchat_webrtc_volume");a("video.jchat_conference_remotepeer[data-sessionid="+j+"]").get(0).volume=ar}else{a("video.jchat_conference_remotepeer[data-sessionid="+j+"]").get(0).volume=H.defaultAudioVolume}a("#jchat_conference_remotevideos div.jchat_wrapper_remotevideo").each(function(ax,ay){a(ay).data("ordering",ax)})};var c=function(){a("video[data-sessionid="+j+"]").parent("div.jchat_wrapper_remotevideo").removeClass("active");var aq=a("video[data-sessionid="+j+"]").parent(".jchat_wrapper_remotevideo");aq.removeClass("jchat_faded");aq.queue("removeQueue",function(){a(this).dequeue("removeQueue")}).delay(200,"removeQueue");aq.queue("removeQueue",function(){a(this).remove()});aq.dequeue("removeQueue");p[j]=null};var an=function(ar){a(".jchat_start_accept_call","#jchat_conference_userslist li[data-sessionid="+j+"]").removeClass("jchat_ringing jchat_disabled");a(".jchat_end_decline_call","#jchat_conference_userslist li[data-sessionid="+j+"]").addClass("jchat_disabled");a("video[data-sessionid="+j+"]").next("div.jchat_async_loader").remove();var aq=a(".jchat_end_decline_call").filter(function(at){return !a(this).hasClass("jchat_disabled")}).length;if(!ar&&!aq){a("#jchat_webrtc_camquality").removeAttr("disabled")}if(!aq){if(a("#jchat_trigger_conference_fileupload").hasClass("toggle_on")){a("#jchat_trigger_conference_fileupload").trigger("click.webrtc")}a("#jchat_webrtc_end_conference, #jchat_trigger_conference_fileupload").addClass("jchat_disabled")}if(e[j]){clearInterval(e[j]);e[j]=null}};var ag=function(){if(typeof r[j]=="number"){clearTimeout(r[j])}};var E=function(){if(u[j]){clearTimeout(u[j])}a("li.jchat_userbox[data-sessionid="+j+"] div.jchat_peer_bandwidth").html("<span>0.0 mbits/s</span>").removeClass("jchat_receiving");l[j]=0;if(!parseInt(a("div.jchat_wrapper_remotevideo.active").length)){l=new Array()}};var n=function(){if(a("#jchat_trigger_webrtc_tooltip").length){a("#jchat_trigger_webrtc_tooltip").remove();a(".jchat_trigger_webrtc ").removeClass("jchat_webrtc_disabled")}};var N=function(){if(window.AudioContext&&y.getAudioTracks()[0]){var aq=G.createMediaStreamSource(y);var ar=G.createMediaStreamDestination();aq.connect(i);i.connect(ar);y.addTrack(ar.stream.getAudioTracks()[0]);y.removeTrack(y.getAudioTracks()[0])}};var ao=function(at){var ar=a("#mic_vumeter").get(0);var aq=a("#mic_vumeter")[0].getContext("2d");ar.width=30;ar.height=65;G.audioWorklet.addModule(jchat_livesite+"components/com_jchat/js/vumeter-processor.js").then(function(){var au=new AudioWorkletNode(G,"vumeter");var av=G.createMediaStreamSource(at);av.connect(au).connect(G.destination);au.port.onmessage=function(ay){var ax=0;if(ay.data.volume){ax=(ay.data.volume*500)/5}var aw="#00ff00";if(ax<=35){aw="#00ff00"}if(ax>35&&ax<=50){aw="#ff9900"}if(ax>50){aw="#ff0000"}aq.clearRect(0,0,60,180);aq.fillStyle=aw;aq.fillRect(0,58-ax,12,180);aq.fillRect(15,58-ax,12,180)}})};var ab=function(az,av,ax,ar,aq,au){if(!d){return}var ay="";if(aq){ay='<div class="'+aq+'"></div>';a(document).on("click.jchatwebrtc","div."+aq,function(aA){a("div."+az).fadeOut(500,function(){a("div.jchat_exceptions").remove()})});if(typeof B[j]=="number"){clearTimeout(B[j])}B[j]=setTimeout(function(aA){a("div."+aA).trigger("click.jchatwebrtc")},8000,aq)}a("div.jchat_infouser_webrtc, div.jchat_exceptions",d).remove();d.append('<div class="'+az+'"><div class=" '+av+'"></div><div class=" '+ax+'">'+ar+"</div>"+ay+"</div>");if(au&&j){var aw=a("#jchat_conference_userslist li[data-sessionid="+j+"]");if(aw.length){var at=aw.position().top+36;a("div."+az,d).addClass("userslist").css("top",at+"px")}else{a("div."+az,d).addClass("userslist").css("top","10px")}}if(Q){console.log(ar)}};var T=function(aq){an();ag();c();E();ab("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_session_error,"jchat_exceptions_closer",true);if(Q){console.log("Failed to create signaling message : "+aq.name)}};var L=function(aq){aq.append('<div class="jchat_webrtc_nosupport">'+jchat_webrtc_nosupport+"</div>");var ar=[{browserName:"chrome",support:"jchat_support_ok",description:jchat_chrome_webrtc_support},{browserName:"firefox",support:"jchat_support_ok",description:jchat_firefox_webrtc_support},{browserName:"opera",support:"jchat_support_ok",description:jchat_opera_webrtc_support},{browserName:"internet-explorer",support:"jchat_support_ko",description:jchat_ie_webrtc_support},{browserName:"safari",support:"jchat_support_ko",description:COM_JCHAT_SAFARI_WEBRTC_SHORT_SUPPORT}];a.each(ar,function(av,au){var at="components/com_jchat/images/default/"+au.browserName+"_48x48.png";aq.append('<div class="jchat_browser_row"><img src="'+jchat_livesite+at+'" alt="browsers"/><span class="'+au.support+'">'+au.description+"</span></div>")});aq.append('<div class="jchat_webrtc_caniuse">'+jchat_webrtc_caniuse+"</div>");a("#jchat_left_userscolumn, #jchat_conference_controls").remove()};function Z(ar,aq){if(ar.iceConnectionState=="closed"){clearTimeout(u[aq]);return}var au=function(aA){var ax=0;if(!l[aq]){l[aq]=0}for(var az=0;az<aA.length;++az){var ay=aA[az];if(ay.bytesSent){ax+=parseInt(ay.bytesSent)}}ax=Math.abs(l[aq]-ax);l[aq]+=parseInt(ax);var aC=(ax*8);var aD=aC/1000;var aB=aD/1000;if(aB>1000){aB=1000}a("li.jchat_userbox[data-sessionid="+aq+"] div.jchat_peer_bandwidth").html("<span>"+aB.toFixed(2)+" mbits/s</span>").addClass("jchat_receiving");u[aq]=setTimeout(function(aE){Z(aE,aq)},1000,ar,aq)};if(!!navigator.mozGetUserMedia){if(ar.iceConnectionState!="closed"){var at=ar.getReceivers();if(at[0]&&at[1]){var aw=ar.getStats(at[0].track);var av=ar.getStats(at[1].track);Promise.all([aw,av]).then(function(ay){var ax=[];ay.forEach(function(az){az.forEach(function(aA){ax.push(aA)})});au(ax)})}}}else{ar.getStats().then(function(ay){var ax=[];var az=ay.entries();var aA;while(!(aA=az.next()).done){ax.push(aA.value[1])}au(ax)})}}function W(ar){var aq={};if(navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices){navigator.mediaDevices.enumerateDevices().then(function(au){var at={};au.forEach(function(av){at[av.kind]=true});aq.hasMicrophone=!!at.audioinput;aq.hasWebcam=!!at.videoinput;ar.resolve(aq);if(Q){console.log("Detected audio/video devices: "+JSON.stringify(aq))}})}else{if(!MediaStreamTrack.getSources){aq={hasMicrophone:true,hasWebcam:true};ar.resolve(aq);if(Q){console.log("No detection for audio/video devices is supported")}return}MediaStreamTrack.getSources(function(au){var at={};for(var av=0;av<au.length;av++){at[au[av].kind]=true}aq.hasMicrophone=!!at.audio;aq.hasWebcam=!!at.video;ar.resolve(aq);if(Q){console.log("Detected audio/video devices: "+JSON.stringify(aq))}})}}function z(){if(!H.autoQualityBandwidthMgmt){return}if(a.jStorage.get("jchat_webrtc_videocam_quality")){return}if(!"performance" in window||typeof(window.performance)==="undefined"){return}if(!"timing" in window.performance){return}var aq=(window.performance.timing.responseEnd-window.performance.timing.navigationStart)/1000;a.each(D,function(ar,au){if(ar=="Auto"){return true}var at=S[ar];if(aq>=at.minValue&&aq<at.maxValue){V.val(ar);F=ar;return false}})}var af=function(){var ar=a("#jchat_leftusers_search").val().trim();var at=new RegExp(ar,"gi");a("#jchat_conference_userslist li").each(function(au,av){a(av).show();var aw=a(av).data("username");if(!aw.match(at)){a(av).hide()}});a("#jchat_leftusers_search").next("#jchat_leftusers_search_reset").remove();if(ar){var aq=a("<span/>").attr("id","jchat_leftusers_search_reset");a("#jchat_leftusers_search").after(aq)}};var O=function(aq){a(aq).before('<div class="jchat_conference_fileuploadtooltip"></div>');var av=a("#jchat_conference_container").hasClass("jchat_maximized");var ax=0;a(".jchat_conference_fileuploadtooltip").append("<img/>").children("img").attr("src",jchat_livesite+"components/com_jchat/images/loading.gif").css({position:"absolute",margin:"10px 46%",width:"32px"});var ar=a("#jchat_webrtc_start_livestreaming").length?"&livestreaming=1":"";a(".jchat_conference_fileuploadtooltip").append('<iframe id="jchat_conference_fileupload_iframe" scrolling="no" src="'+ad+"&task=attachments.display&layout=conference"+ar+'"></iframe>');a("#jchat_conference_fileupload_iframe").on("load",function(){setTimeout(function(){a(".jchat_conference_fileuploadtooltip img").remove()},1);var az=a(this).offset();var ay=az.left;if(ay<0){ax=Math.abs(ay);var aA=parseInt(a(".jchat_conference_fileuploadtooltip").css("left"));var aB=aA+ax;a(".jchat_conference_fileuploadtooltip").css("left",aB+"px")}});var au=a(aq).offset();var aw=jchatGetPageScroll();var at=av?84:0;a(".jchat_conference_fileuploadtooltip").css("top",au.top-parseInt(aw[1])-60+at).css("left",au.left-a(window).scrollLeft()-277).css("display","block").css("z-index",10002)};this.setListeningData=function(ar,at){if(!k){if(Q){console.log("No WebRTC support detected for this device browser")}return false}if(ar.sdp&&ar.icecandidate){M[ar.peer1]=ar.sdp;w[ar.peer1]=ar.icecandidate;if(!this.caller[ar.peer1]){this.callee[ar.peer1]=true;j=ar.peer1;A(true);if(ar.call_status==1){JChatNotifications.playConferencePeerCall(H.ringingTone)}this.setCalleeRingingButton();a("#jchat_webrtc_camquality").attr("disabled",true);if(jchat_conference_chain&&ar.other_peers){var aq=JSON.parse(ar.other_peers);a.each(aq,function(au,av){setTimeout(function(aw){a(".jchat_start_accept_call","li.jchat_userbox[data-sessionid="+aw+"]").trigger("click.jchatwebrtc")},au*500,av)})}if(Q){console.log("New incoming call arrived")}}else{j=ar.peer1;a(".jchat_start_accept_call","#jchat_conference_userslist li[data-sessionid="+j+"]").removeClass("jchat_ringing").addClass("jchat_disabled");if(e[j]){clearInterval(e[j]);e[j]=null}ag();t.call(this);ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_starting,"jchat_info_closer",true);if(Q){console.log("Exchanged SDP/ICE and call started between 2 peer")}}}else{if(Q){console.log("No SDP/ICE data received through signaling channel")}}if(ar.videocam!==undefined){if(p[ar.peer1]!=parseInt(ar.videocam)){if(ar.videocam==1){a("div.jchat_remotevideo_placeholder","div.jchat_wrapper_remotevideo[data-sessionid="+ar.peer1+"]").hide();a("video.jchat_conference_remotepeer","div.jchat_wrapper_remotevideo[data-sessionid="+ar.peer1+"]").show()}else{a("div.jchat_remotevideo_placeholder","div.jchat_wrapper_remotevideo[data-sessionid="+ar.peer1+"]").show();a("video.jchat_conference_remotepeer","div.jchat_wrapper_remotevideo[data-sessionid="+ar.peer1+"]").hide()}}p[ar.peer1]=parseInt(ar.videocam)}if(q[ar.peer1]&&this.caller[ar.peer1]&&!ar.caller_peer_state){j=ar.peer1;an();ag();c();n();E();this.caller[j]=false;q[j]=false;if(ak[j]){ak[j].close();ak[j]=null}ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_closed,"jchat_info_closer",true);f(0);if(Q){console.log("Connection closed from callee")}}if(this.callee[ar.peer1]&&!ar.call_status){j=ar.peer1;an();ag();c();n();E();this.callee[j]=false;q[j]=false;if(ak[j]){ak[j].close();ak[j]=null}ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_closed,"jchat_info_closer",true);f(0);if(Q){console.log("Connection closed from caller")}}};this.setCallerRingingButton=function(){a(".jchat_start_accept_call","li.jchat_userbox[data-sessionid="+j+"]").toggleClass("jchat_ringing");a(".jchat_end_decline_call","li.jchat_userbox[data-sessionid="+j+"]").removeClass("jchat_disabled");a("#jchat_webrtc_end_conference, #jchat_trigger_conference_fileupload").removeClass("jchat_disabled");if(e[j]){clearInterval(e[j])}e[j]=setInterval(function(aq){a(".jchat_start_accept_call","li.jchat_userbox[data-sessionid="+aq+"]").toggleClass("jchat_ringing")},500,j)};this.setCalleeRingingButton=function(){a("#jchat_webrtc_camquality").attr("disabled",true);a("#jchat_webrtc_end_conference, #jchat_trigger_conference_fileupload").removeClass("jchat_disabled");a(".jchat_start_accept_call, .jchat_end_decline_call","li.jchat_userbox[data-sessionid="+j+"]").removeClass("jchat_disabled");if(e[j]){clearInterval(e[j])}e[j]=setInterval(function(aq){a(".jchat_start_accept_call","li.jchat_userbox[data-sessionid="+aq+"]").toggleClass("jchat_ringing")},500,j);ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_incoming_started,"jchat_info_closer",true)};this.flushMedias=function(){try{if(y&&navigator.mozGetUserMedia){var aq=y.getVideoTracks()[0];if(aq){aq.stop()}if(Q){console.log("Devices closed")}}}catch(ar){if(Q){console.log("Error closing devices: "+ar.message)}}};this.getLocalStream=function(){return y};this.getRemoteStream=function(){return ah};this.showInnerMessage=function(aq){ab("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",aq,"jchat_info_closer")};(function R(){J={iceServers:H.iceServers};window.AudioContext=window.AudioContext||window.webkitAudioContext;if(window.AudioContext){G=new AudioContext();i=G.createGain();a("body, #jchat_conference_container").on("click",function(ar){if(!ai&&ar.clientX){G.resume().then(function(){if(!ai&&typeof(y)!=="undefined"&&y.addTrack&&!navigator.mozGetUserMedia){N()}ai=true})}})}var aq=false;if(navigator.mozGetUserMedia){window.RTCSessionDescription=window.RTCSessionDescription||window.mozRTCSessionDescription;window.RTCIceCandidate=window.RTCIceCandidate||window.mozRTCIceCandidate;aq=true}Q=H.debugEnabled;U=H.jsonLiveSite;aa=a.jStorage.get("jchat_webrtc_videocam",1);F=a.jStorage.get("jchat_webrtc_videocam_quality",true);JChatNotifications.setAudioStatus(H.audiostatus);D=I;a.each(D,function(ar,av){var au=(F==ar)?"selected":"";var at=a("<option "+au+' value="'+ar+'">'+ar+"</option>");V.append(at)});k=!!navigator.mediaDevices&&!!window.RTCPeerConnection&&!!window.AudioContext&&!jchatIsBrowserEdge();z();ad=jchat_livesite+"index.php?option=com_jchat&format=raw"}).call(this)};window.JChatConference=b})(jQuery);
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка