Файловый менеджер - Редактировать - /var/www/html/components/com_jchat/js/webrtc.js
Ðазад
(function(b){var a=function(D){var j=this;var c;var h;var d;var r;var K;var i=0;var L=D.debugEnabled;var R=D.jsonLiveSite;var ag=null;var ab=new Array();var v;var ad;var y=0;var F={};var o=null;var s=null;var x=null;var S=null;var I=null;var t=null;var N=false;var n=false;var B=null;var g=null;var Y=1;var m=1;var aa=0;var ae=false;var P={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 z={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 E={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 T=b('<select id="jchat_webrtc_camquality"></select>');var C=true;this.localVideo=null;this.remoteVideo=null;this.caller=false;this.callee=false;window.RTCPeerConnection=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){}else{if(!navigator.mediaDevices){navigator.mediaDevices=new Object()}navigator.mediaDevices.getUserMedia=((navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia)?function(al){return new b.Deferred(function(am){(navigator.getUserMedia||navigator.mozGetUserMedia||navigator.webkitGetUserMedia).call(navigator,al,am.resolve,am.reject)})}:null)}var W=function(){b("#jchat_start_accept_call",c).on("click.jchatwebrtc",{scope:this},function(al){if(b(this).hasClass("jchat_disabled")){return false}if(!al.data.scope.callee){al.data.scope.caller=true;JChatNotifications.playStartWebrtcCall();u()}else{ac();JChatNotifications.playAcceptWebrtcCall();q.call(al.data.scope)}});b("#jchat_end_call",c).on("click.jchatwebrtc",{scope:this},function(al,am){if(b(this).hasClass("jchat_disabled")){return false}al.data.scope.caller=false;al.data.scope.callee=false;n=false;G(am)});b("#jchat_webrtc_volume input",c).on("mousemove.jchatwebrtc, touchmove.jchatwebrtc",function(al){var am=b(this).val()/100;b("#jchat_remotevideo").get(0).volume=am;b.jStorage.set("jchat_webrtc_volume",am)});b("#jchat_webrtc_mic input",c).on("mousemove.jchatwebrtc, touchmove.jchatwebrtc",function(an){var ao=b(this).val()/100;if(window.AudioContext){g.gain.setTargetAtTime(ao,B.currentTime+0.1,0.1)}if(v&&navigator.mozGetUserMedia){v.getAudioTracks()[0].enabled=!!ao;if(!ao){var am=b("#mic_vumeter").get(0);var al=b("#mic_vumeter")[0].getContext("2d");al.clearRect(0,0,60,180)}}b.jStorage.set("jchat_webrtc_mic",ao)});b("#jchat_webrtc_video",c).on("change.jchatwebrtc",function(am){var an=b(this).prop("checked");Y=an?1:0;b.jStorage.set("jchat_webrtc_videocam",Y);var al=b.Deferred(function(ao){b.ajax({type:"POST",url:R,dataType:"json",context:this,data:{task:"webrtc.updateEntity",videocam:Y}}).done(function(ap,ar,aq){if(!ap.storing.status){ao.reject(ap.storing.exception_message,ar);return false}ao.resolve()}).fail(function(aq,at,ar){var ap=at[0].toUpperCase()+at.slice(1);ao.reject("-"+ap+"- "+ar)})}).promise();al.then(function(ao){if(D.hideWebcamWhenDisabled){if(!Y){if(D.hideWebcamWhenDisabled==2){b("#jchat_wrapper_localvideo").hide()}else{b("#jchat_localvideo").after('<div id="jchat_localvideo_placeholder"></div>');b("#jchat_localvideo_placeholder").height(b("#jchat_localvideo").height())}b("#jchat_localvideo").hide()}else{if(D.hideWebcamWhenDisabled==2){b("#jchat_wrapper_localvideo").show()}else{b("#jchat_localvideo").next("#jchat_localvideo_placeholder").remove()}b("#jchat_localvideo").show()}}b("#jchat_wrapper_localvideo").toggleClass("active");if(L){console.log("Updated session videocam on server")}},function(ao,ap){if(L){console.log("Error updating session videocam on server: "+ao)}})});b("#jchat_webrtc_camquality").on("change",function(al){b.jStorage.set("jchat_webrtc_videocam_quality",b(this).val());b.jStorage.set("jchat_remotepeer_webrtc_tooltip",S);b(this).blur();window.location.reload()})};var p=function(){try{ag=new RTCPeerConnection(F);ag.onicecandidate=ak;af();ag.addStream(v);var am=function(ao){var an=l(ao);if(D.showWebRTCStats&&an){X(ag)}};if("ontrack" in ag){ag.ontrack=am}else{ag.onaddstream=am}ag.oniceconnectionstatechange=function(){if(ag){if(L){console.log("Connection: "+ag.iceConnectionState)}if(ag.iceConnectionState=="completed"){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_started,"jchat_info_closer")}if(ag.iceConnectionState=="connected"){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_active,"jchat_info_closer");e(1)}if(ag.iceConnectionState=="disconnected"){if(L){console.log(ag.iceConnectionState)}if(typeof s=="number"){clearTimeout(s)}s=setTimeout(function(){if(ag){if(ag.iceConnectionState=="disconnected"){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_disconnected,"jchat_info_closer");b("#jchat_end_call",c).trigger("click",[jchat_call_disconnected])}}},D.endCallTimeout)}if(ag.iceConnectionState=="failed"){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_failed,"jchat_info_closer")}}}}catch(al){ac();ai();Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer");if(L){console.log(al.message)}return}if(!ag){ac();ai();Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer");return}};var u=function(){if(!v){Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_missing_local_stream,"jchat_exceptions_closer");return}p();if(!ag){return}ag.createOffer().then(f,Q);Z("jchat_infouser_webrtc","jchat_async_loader","jchat_tooltip_innermsg",jchat_connecting);j.setCallerRingingButton();o=setTimeout(function(){b("#jchat_end_call",c).trigger("click",[jchat_noanswer])},D.startCallTimeout);b("#jchat_webrtc_camquality").attr("disabled",true);if(L){console.log("New call started")}};var q=function(){if(!ag){p()}if(this.callee){if(I){ag.setRemoteDescription(new RTCSessionDescription(JSON.parse(I))).then(function(){if(L){console.log("Set remote description by callee")}},function(am){if(L){console.log("Error during set remote description:"+am)}})}ag.createAnswer().then(f,Q);ai(true);b("#jchat_start_accept_call",c).addClass("jchat_disabled");b("#jchat_end_call",c).removeClass("jchat_disabled");Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_starting,"jchat_info_closer");if(L){console.log("Exchanged SDP/ICE and call started between 2 peer")}}else{if(this.caller){if(I){ag.setRemoteDescription(new RTCSessionDescription(JSON.parse(I))).then(function(){if(L){console.log("Set remote description by caller")}},function(am){if(L){console.log("Error during set remote description:"+am)}})}}}if(t){var al=JSON.parse(t);b.each(al,function(am,ap){if(!ap.candidate){return true}var ao=new RTCIceCandidate(ap);try{ag.addIceCandidate(ao)}catch(an){if(L){console.log(an.message)}}})}};var G=function(an){var ao=an?an:jchat_connection_closed;try{if(ag){Z("jchat_infouser_webrtc","jchat_async_loader","jchat_tooltip_innermsg",jchat_closing_connection)}ag.close();ag=null;ab=new Array();y=0}catch(am){if(L){console.log(am.message)}if(L){console.log("Call/connection ended or refused")}}var al=b.Deferred(function(ap){b.ajax({type:"POST",url:R,dataType:"json",context:this,data:{task:"webrtc.deleteEntity",ids:S}}).done(function(aq,at,ar){if(!aq.storing.status){ap.reject(aq.storing.exception_message,at);return false}ap.resolve()}).fail(function(ar,au,at){var aq=au[0].toUpperCase()+au.slice(1);ap.reject("-"+aq+"- "+at)})}).promise();al.then(function(ap){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",ao,"jchat_info_closer");e(0);if(L){console.log("Call ended, connection closed and session deleted on server")}},function(ap,aq){Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_connection_close_error,"jchat_exceptions_closer");if(L){console.log("Error deleting session on server: "+ap)}}).always(function(){ac();JChatNotifications.playEndWebrtcCall();ai();O();A()})};var e=function(am){if(am==1){b("#jchat_webrtc_bandwidth").after('<div id="jchat_webrtc_duration"><span></span></div>');b("#jchat_webrtc_duration").hide();var al=Date.now();K=setInterval(function(){var ap=Date.now();var ao=new Date(ap-al);var an=ao.toUTCString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1");b("#jchat_webrtc_duration > span").text(an);b("#jchat_webrtc_duration").show()},1000)}else{b("#jchat_webrtc_duration").remove();if(typeof(K)!=="undefined"){clearInterval(K)}}};var ah=function(am){var al;v=am;if(v.addTrack&&!navigator.mozGetUserMedia){J()}if(D.showWebRTCVUMeter){aj(v)}b("#jchat_start_accept_call",c).removeClass("jchat_disabled");j.localVideo=b("#jchat_localvideo").get(0);al=v;j.localVideo.volume=0;if(navigator.mozGetUserMedia){b("#jchat_webrtc_mic input").attr("step",100);if(b.jStorage.get("jchat_webrtc_mic")==null){b("#jchat_webrtc_mic input").val(100)}}j.localVideo.srcObject=al;b(j.localVideo).on("canplay",function(an){setTimeout(function(){var ao=b("#jchat_localvideo:visible").height();if(ao){b("#jchat_remotevideo_placeholder").height(ao)}},500)});if(!!navigator.mozGetUserMedia&&!v.getVideoTracks()[0]){b("#jchat_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");b("#jchat_webrtc_video").prop("checked",false).off(".jchatwebrtc").next().attr("for",null);Z("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_nowebcam_detected)}setTimeout(function(){var an=!!v.getVideoTracks()[0];if(!navigator.mozGetUserMedia&&an){if(v.getVideoTracks()[0].readyState==="ended"){b("#jchat_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");Z("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_hardware_unavailable);if(L){console.log("Video track state:"+v.getVideoTracks()[0].readyState)}}}},500);b(".jchat_infouser_webrtc.top").fadeOut(500);if(Y){b("#jchat_wrapper_localvideo").toggleClass("active")}if(L){console.log("Local video stream started, video track state")}};function l(al){j.remoteVideo=b("#jchat_remotevideo").get(0);var ao=al.streams?al.streams[0].getVideoTracks()[0]:al.stream.getVideoTracks()[0];var an=al.track?al.track.kind:ao.kind;if(m&&ao){b("#jchat_remotevideo_placeholder").hide();b("#jchat_remotevideo").show()}else{if(!m&&ao){b("#jchat_remotevideo_placeholder").show();b("#jchat_remotevideo").hide()}}if(ao&&an=="video"){var am=al.streams?al.streams[0]:al.stream;j.remoteVideo.srcObject=am;ad=am;b("#jchat_wrapper_remotevideo").toggleClass("active");if(L){console.log("Remote video stream got")}return true}return false}var f=function(am){var al=j.caller?"offer":"answer";ag.setLocalDescription(am).then(function(){if(L){console.log("SDP "+al+" correctly generated")}},function(){if(L){console.log("SDP "+al+" error")}});if(L){console.log("SDP "+al+" created")}V("sdp",am)};var ak=function(al){if(al.candidate){if(al.candidate){ab[y]=al.candidate}y++;ag.iceCandidatesSent=false;if(L){console.log("Event candidate found: "+al.candidate.candidate)}}else{if(!al.candidate||ag.iceGatheringState==="complete"){if(!ag.iceCandidatesSent){V("icecandidate",ab);ag.iceCandidatesSent=true;if(L){console.log("icecandidates sent successfully using standard complete event")}}}}};var af=function(){setTimeout(function(){if(ag){if(!ag.iceCandidatesSent){V("icecandidate",ab);ag.iceCandidatesSent=true;if(L){console.log("icecandidates sent successfully using polyfill")}}}},1000)};var V=function(an,ao){var am={task:"webrtc.saveEntity",peer2:S,caller:(j.caller?1:0),videocam:Y};switch(an){case"sdp":b.extend(am,{sdp:JSON.stringify(ao)});break;case"icecandidate":b.extend(am,{icecandidate:JSON.stringify(ao)});break}var al=b.Deferred(function(ap){b.ajax({type:"POST",url:R,dataType:"json",context:this,data:am}).done(function(aq,at,ar){if(!aq.storing.status){ap.reject(aq.storing.exception_message,at,aq.storing);return false}ap.resolve(aq.storing)}).fail(function(ar,au,at){var aq=au[0].toUpperCase()+au.slice(1);ap.reject("-"+aq+"- "+at,null,{})})}).promise();al.then(function(ap){n=true;if(L){console.log(an+" sent succesfully using signaling channel")}},function(ap,aq,ar){if(ag){if(ar.usermessage){Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",ap,"jchat_exceptions_closer")}else{Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_error_creating_connection,"jchat_exceptions_closer")}ag.close();ag=null;ab=new Array();y=0}j.caller=false;j.callee=false;n=false;ac();ai();O();A();if(L){console.log(an+" error using signaling channel: "+ap)}})};this.initializeVideo=function(av,au,an,am){if(!h){H(av);return false}S=au;c=av;av.append('<span id="jchat_wrapper_localvideo"><span class="jchat_video_tab">'+am+'</span><video id="jchat_localvideo" autoplay="autoplay"></video></span>');av.append('<span id="jchat_wrapper_remotevideo"><span class="jchat_video_tab">'+an+'</span><video id="jchat_remotevideo" autoplay="autoplay"></video></span>');b("#jchat_localvideo, #jchat_remotevideo").on("click.jchatwebrtc",function(aw){this.requestFullScreen=this.webkitRequestFullScreen||this.mozRequestFullScreen||this.requestFullScreen;this.requestFullScreen()});b("#jchat_remotevideo").hide();av.append('<div id="jchat_remotevideo_placeholder"></div>');av.append('<div class="jchat_webrtc_clearer"/>');av.append('<div id="jchat_start_accept_call"><span class="jchat_webrtc_icons jchat_call_icon"></span><span class="text">'+jchat_start_call+"</span></div>");av.append('<div id="jchat_end_call"><span class="jchat_webrtc_icons jchat_end_icon"></span><span class="text">'+jchat_end_call+"</span></div>");Z("jchat_infouser_webrtc top","jchat_icon_ok","jchat_tooltip_innermsg",jchat_grant_cam_access);if(D.showWebRTCStats){av.append('<div id="jchat_webrtc_bandwidth"><span>'+jchat_webrtc_bandwidth+"0.0 mbits/s</span></div>")}var ap=D.defaultAudioVolume*100;var al=D.defaultMicVolume*100;av.append('<div id="jchat_webrtc_volume"><input class="jchat_slider" type="range" min="0" max="100" step="10" value="'+ap+'"/></div>');av.append('<div id="jchat_webrtc_mic"><input class="jchat_slider" type="range" min="0" max="100" step="10" value="'+al+'"/></div>');av.append('<canvas id="mic_vumeter"></canvas>');var at=function(aw){return'<div class="jchat_onoffswitch_container"><span class="jchat_webcam_label">'+jchat_webcam+'</span><div class="jchat_onoffswitch '+aw+'"><input type="checkbox" name="jchat_onoffswitch" class="jchat_onoffswitch-checkbox" id="'+aw+'" checked><label class="jchat_onoffswitch-label" for="'+aw+'"><span class="jchat_onoffswitch-inner"></span><span class="jchat_onoffswitch-switch"></span></label></div></div>'};av.append(at("jchat_webrtc_video"));av.append(T);b("#jchat_webrtc_camquality").wrap(b('<div id="jchat_quality_cam" class="jchat_quality_cam"></div>'));b("#jchat_quality_cam").prepend("<span>"+jchat_webcam_quality+"</span>");if(b.jStorage.get("jchat_webrtc_volume")!==null){var aq=b.jStorage.get("jchat_webrtc_volume");b("#jchat_remotevideo").get(0).volume=aq;b("#jchat_webrtc_volume input",av).val(aq*100)}else{b("#jchat_remotevideo").get(0).volume=D.defaultAudioVolume}if(b.jStorage.get("jchat_webrtc_mic")!==null){var ao=b.jStorage.get("jchat_webrtc_mic");if(window.AudioContext){g.gain.setTargetAtTime(ao,B.currentTime+0.1,0.1)}b("#jchat_webrtc_mic input",av).val(ao*100)}else{if(window.AudioContext){g.gain.setTargetAtTime(D.defaultMicVolume,B.currentTime+0.1,0.1)}}b("#jchat_webrtc_video",av).prop("checked",!!Y);if(!Y&&D.hideWebcamWhenDisabled){if(D.hideWebcamWhenDisabled==2){b("#jchat_wrapper_localvideo").hide()}else{b("#jchat_localvideo").after('<div id="jchat_localvideo_placeholder"></div>')}b("#jchat_localvideo").hide()}b("#jchat_start_accept_call, #jchat_end_call",c).addClass("jchat_disabled");W.call(this);var ar=b.Deferred(function(aw){U(aw)}).promise();ar.then(function(ax){var aw=(C===true)?true:z[C];if(!ax.hasWebcam){aw=false;b("#jchat_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");b("#jchat_webrtc_video").prop("checked",false).off(".jchatwebrtc").next().attr("for",null);Z("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_nowebcam_detected)}try{navigator.mediaDevices.getUserMedia({audio:true,video:aw}).then(ah,function(az){b("#jchat_localvideo").attr("poster",jchat_livesite+"components/com_jchat/images/default/placeholder.png");var aA=az=="HARDWARE_UNAVAILABLE"?jchat_hardware_unavailable:jchat_mediastream_error;Z("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",aA);if(L){console.log("Error during video stream starting, resolution not supported? - "+az)}})}catch(ay){Z("jchat_top_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_requires_https)}},function(aw,ax){if(L){console.log("Error initialized app and local video: "+aw)}});if(L){console.log("Initialized app and local video")}return true};var ai=function(al){b("#jchat_start_accept_call span.text",c).text(jchat_start_call);b("#jchat_end_call span.text",c).text(jchat_end_call);b("#jchat_start_accept_call",c).removeClass("jchat_ringing jchat_disabled");b("#jchat_end_call",c).addClass("jchat_disabled");if(!al){b("#jchat_webrtc_camquality").removeAttr("disabled")}if(d){clearInterval(d);d=null}};var ac=function(){JChatNotifications.playRingingWebrtcCall(true,D.ringingTone);JChatNotifications.playWaitingWebrtcAnswer(true);JChatNotifications.playStartWebrtcCall(true);if(typeof o=="number"){clearTimeout(o)}};var O=function(){b("#jchat_remotevideo_placeholder").show();b("#jchat_remotevideo").hide();b("#jchat_wrapper_remotevideo").removeClass("active")};var A=function(){i=0;b("#jchat_webrtc_bandwidth").html("<span>"+jchat_webrtc_bandwidth+"0.0 mbits/s</span>");if(r){clearTimeout(r)}};var k=function(){if(b("#jchat_trigger_webrtc_tooltip").length){b("#jchat_trigger_webrtc_tooltip").remove();b(".jchat_trigger_webrtc ").removeClass("jchat_webrtc_disabled")}};var J=function(){if(window.AudioContext&&v.getAudioTracks()[0]){var al=B.createMediaStreamSource(v);var am=B.createMediaStreamDestination();al.connect(g);g.connect(am);v.addTrack(am.stream.getAudioTracks()[0]);v.removeTrack(v.getAudioTracks()[0])}};var aj=function(an){var am=b("#mic_vumeter").get(0);var al=b("#mic_vumeter")[0].getContext("2d");am.width=30;am.height=60;B.audioWorklet.addModule(jchat_livesite+"components/com_jchat/js/vumeter-processor.js").then(function(){var ao=new AudioWorkletNode(B,"vumeter");var ap=B.createMediaStreamSource(an);ap.connect(ao).connect(B.destination);ao.port.onmessage=function(at){var ar=0;if(at.data.volume){ar=(at.data.volume*500)/5}var aq="#00ff00";if(ar<=35){aq="#00ff00"}if(ar>35&&ar<=50){aq="#ff9900"}if(ar>50){aq="#ff0000"}al.clearRect(0,0,60,180);al.fillStyle=aq;al.fillRect(0,58-ar,12,180);al.fillRect(15,58-ar,12,180)}})};var Z=function(ap,al,an,am,ao){if(!c){return}var aq="";if(ao){aq='<div class="'+ao+'"></div>';b(document).on("click.jchatwebrtc","div."+ao,function(ar){b("div."+ap).fadeOut(500,function(){b("div.jchat_exceptions").remove()})});if(typeof x=="number"){clearTimeout(x)}x=setTimeout(function(){b("div."+ao).trigger("click.jchatwebrtc")},8000)}b("div.jchat_infouser_webrtc, div.jchat_exceptions",c).remove();c.append('<div class="'+ap+'"><div class=" '+al+'"></div><div class=" '+an+'">'+am+"</div>"+aq+"</div>");if(L){console.log(am)}};var Q=function(al){ai();ac();A();Z("jchat_exceptions","jchat_icon_error","jchat_tooltip_error",jchat_session_error,"jchat_exceptions_closer");if(L){console.log("Failed to create signaling message : "+al.name)}};var H=function(al){al.append('<div class="jchat_webrtc_nosupport">'+jchat_webrtc_nosupport+"</div>");var am=[{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:jchat_safari_webrtc_support}];b.each(am,function(ap,ao){var an="components/com_jchat/images/default/"+ao.browserName+"_48x48.png";al.append('<div class="jchat_browser_row"><img src="'+jchat_livesite+an+'" alt="browsers"/><span class="'+ao.support+'">'+ao.description+"</span></div>")});al.append('<div class="jchat_webrtc_caniuse">'+jchat_webrtc_caniuse+"</div>")};function X(al){if(al.iceConnectionState=="closed"){clearTimeout(r);return}var an=function(au){var aq=0;if(!i){i=0}for(var at=0;at<au.length;++at){var ar=au[at];if(ar.bytesSent){aq+=parseInt(ar.bytesSent)}}aq=Math.abs(i-aq);i+=parseInt(aq);var aw=(aq*8);var ax=aw/1000;var av=ax/1000;if(av>1000){av=1000}b("#jchat_webrtc_bandwidth").html("<span>"+jchat_webrtc_bandwidth+av.toFixed(2)+" mbits/s</span>");r=setTimeout(function(){X(al)},1000)};if(!!navigator.mozGetUserMedia){if(al.iceConnectionState!="closed"){var am=al.getReceivers();if(am[0]&&am[1]){var ap=al.getStats(am[0].track);var ao=al.getStats(am[1].track);Promise.all([ap,ao]).then(function(ar){var aq=[];ar.forEach(function(at){at.forEach(function(au){aq.push(au)})});an(aq)})}}}else{al.getStats().then(function(ar){var aq=[];var at=ar.entries();var au;while(!(au=at.next()).done){aq.push(au.value[1])}an(aq)})}}function U(am){var al={};if(navigator.mediaDevices&&navigator.mediaDevices.enumerateDevices){navigator.mediaDevices.enumerateDevices().then(function(ao){var an={};ao.forEach(function(ap){an[ap.kind]=true});al.hasMicrophone=!!an.audioinput;al.hasWebcam=!!an.videoinput;am.resolve(al);if(L){console.log("Detected audio/video devices: "+JSON.stringify(al))}})}else{if(!MediaStreamTrack.getSources){al={hasMicrophone:true,hasWebcam:true};am.resolve(al);if(L){console.log("No detection for audio/video devices is supported")}return}MediaStreamTrack.getSources(function(ao){var an={};for(var ap=0;ap<ao.length;ap++){an[ao[ap].kind]=true}al.hasMicrophone=!!an.audio;al.hasWebcam=!!an.video;am.resolve(al);if(L){console.log("Detected audio/video devices: "+JSON.stringify(al))}})}}function w(){if(!D.autoQualityBandwidthMgmt){return}if(b.jStorage.get("jchat_webrtc_videocam_quality")){return}if(!"performance" in window||typeof(window.performance)==="undefined"){return}if(!"timing" in window.performance){return}var al=(window.performance.timing.responseEnd-window.performance.timing.navigationStart)/1000;b.each(z,function(am,an){if(am=="Auto"){return true}var ao=P[am];if(al>=ao.minValue&&al<ao.maxValue){T.val(am);C=am;return false}})}this.setListeningData=function(al,am){if(!h){if(L){console.log("No WebRTC support detected for this device browser")}return false}N=al.call_status;if(al.sdp&&al.icecandidate){I=al.sdp;t=al.icecandidate;if(!this.caller){this.callee=true;JChatNotifications.playRingingWebrtcCall(false,D.ringingTone);if(!am.tabFocused){b("title").text(jchat_newvideocall_tab)}if(b("div.jchat_webrtctooltip[data-peerid="+al.peer1+"]").length){this.setCalleeRingingButton()}else{b("div[id!=jchat_user_"+al.peer1+"_popup].jchat_tabpopup.jchat_tabopen .jchat_trigger_webrtc.toggle_on").trigger("click");b("div[id!=jchat_user_"+al.peer1+"_popup].jchat_tabpopup.jchat_tabopen .jchat_trigger_webrtc").addClass("jchat_webrtc_disabled");b("#jchat_userlist_"+al.peer1).trigger("click");b(".jchat_trigger_webrtc","#jchat_user_"+al.peer1+"_popup").trigger("mouseover");b("div[id^=jchat_user_][id!=jchat_user_"+al.peer1+"_popup]").css("z-index",10002);b("div[id=jchat_user_"+al.peer1+"_popup], #jchat_trigger_webrtc_tooltip").css("z-index",10005)}b("#jchat_webrtc_camquality").attr("disabled",true);if(L){console.log("New incoming call arrived")}}else{b("#jchat_start_accept_call",c).removeClass("jchat_ringing").addClass("jchat_disabled");if(d){clearInterval(d);d=null}ac();q.call(this);Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_call_starting,"jchat_info_closer");if(L){console.log("Exchanged SDP/ICE and call started between 2 peer")}}}else{if(L){console.log("No SDP/ICE data received through signaling channel")}}if(al.videocam!==undefined){if(m!=parseInt(al.videocam)){if(al.videocam==1){b("#jchat_remotevideo_placeholder").hide();b("#jchat_remotevideo").show()}else{b("#jchat_remotevideo_placeholder").show();b("#jchat_remotevideo").hide()}b("#jchat_wrapper_remotevideo").toggleClass("active")}m=parseInt(al.videocam)}if(n&&this.caller&&!al.caller_peer_state){ai();A();ac();JChatNotifications.playEndWebrtcCall();O();k();this.caller=false;n=false;if(ag){ag.close();ag=null;ab=new Array();y=0}Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_closed,"jchat_info_closer");e(0);if(L){console.log("Connection closed from callee")}}if(this.callee&&!N){ai();A();ac();JChatNotifications.playEndWebrtcCall();O();k();this.callee=false;n=false;if(!am.tabFocused){b("title").text(am.tabTitle)}if(ag){ag.close();ag=null;ab=new Array();y=0}Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_connection_closed,"jchat_info_closer");e(0);if(L){console.log("Connection closed from caller")}}};this.setCallerRingingButton=function(){if(!c){return}b("#jchat_start_accept_call",c).toggleClass("jchat_ringing");b("#jchat_end_call").removeClass("jchat_disabled");if(d){clearInterval(d)}d=setInterval(function(){b("#jchat_start_accept_call",c).toggleClass("jchat_ringing")},500)};this.setCalleeRingingButton=function(){if(!c){return}b("#jchat_webrtc_camquality").attr("disabled",true);b("#jchat_start_accept_call span.text",c).text(jchat_accept_call);b("#jchat_end_call span.text",c).text(jchat_decline_call);b("#jchat_end_call",c).removeClass("jchat_disabled");if(d){clearInterval(d)}d=setInterval(function(){b("#jchat_start_accept_call",c).toggleClass("jchat_ringing")},500);Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",jchat_incoming_started,"jchat_info_closer")};this.flushMedias=function(){try{if(v&&navigator.mozGetUserMedia){var al=v.getVideoTracks()[0];if(al){al.stop()}if(L){console.log("Devices closed")}}}catch(am){if(L){console.log("Error closing devices: "+am.message)}}};this.getLocalStream=function(){return v};this.getRemoteStream=function(){return ad};this.showInnerMessage=function(al){Z("jchat_infouser_webrtc","jchat_icon_ok","jchat_tooltip_innermsg",al,"jchat_info_closer")};(function M(){F={iceServers:D.iceServers};window.AudioContext=window.AudioContext||window.webkitAudioContext;if(window.AudioContext){B=new AudioContext();g=B.createGain();b("body, div.jchat_trigger_webrtc").on("click",function(am){if(!ae&&am.clientX){B.resume().then(function(){ae=true})}})}var al=false;if(navigator.mozGetUserMedia){window.RTCSessionDescription=window.RTCSessionDescription||window.mozRTCSessionDescription;window.RTCIceCandidate=window.RTCIceCandidate||window.mozRTCIceCandidate;al=true}L=D.debugEnabled;R=D.jsonLiveSite;Y=b.jStorage.get("jchat_webrtc_videocam",1);C=b.jStorage.get("jchat_webrtc_videocam_quality",true);JChatNotifications.setAudioStatus(D.audiostatus);z=E;b.each(z,function(am,ap){var ao=(C==am)?"selected":"";var an=b("<option "+ao+' value="'+am+'">'+am+"</option>");T.append(an)});h=!!navigator.mediaDevices&&!!window.RTCPeerConnection&&!!window.AudioContext&&!jchatIsBrowserEdge();w()}).call(this)};window.JChatWebrtc=a})(jQuery);
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка