You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
316 lines
10 KiB
316 lines
10 KiB
|
2 years ago
|
<html>
|
||
|
|
<head>
|
||
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
|
|
<title>语音拉起</title>
|
||
|
|
<style>
|
||
|
|
body {
|
||
|
|
margin: 0px;
|
||
|
|
overflow: hidden
|
||
|
|
}
|
||
|
|
</style>
|
||
|
|
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
|
||
|
|
<script type="text/javascript" src="HiMsg.js"></script>
|
||
|
|
<script type="text/javascript">
|
||
|
|
var preState = 0;
|
||
|
|
var imgflag = 0;
|
||
|
|
var phoneflag = 0;
|
||
|
|
|
||
|
|
function isOpen() {
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
function GetUrlParam(paraName) {
|
||
|
|
|
||
|
|
var url = window.document.location.href.toString();
|
||
|
|
var arrObj = url.split("?");
|
||
|
|
|
||
|
|
if (arrObj.length > 1) {
|
||
|
|
var arrPara = arrObj[1].split("&");
|
||
|
|
var arr;
|
||
|
|
|
||
|
|
for (var i = 0; i < arrPara.length; i++) {
|
||
|
|
arr = arrPara[i].split("=");
|
||
|
|
|
||
|
|
if (arr != null && arr[0] == paraName) {
|
||
|
|
return arr[1];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return "";
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
return "";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// alert('policename-->'+policename);
|
||
|
|
// var mdsid=GetUrlParam("policeid");//警号
|
||
|
|
// alert(mdsid);
|
||
|
|
function initMDSParam() {
|
||
|
|
imgflag = 0;
|
||
|
|
phoneflag = 0;
|
||
|
|
var htmlstr = '<img src="cancelphone.png" style="cursor: pointer;" width="80" height="80" onclick="hangup()"/>';
|
||
|
|
document.getElementById('phoneId').innerHTML = htmlstr;
|
||
|
|
document.getElementById('holdId').innerHTML = '挂断';
|
||
|
|
var policename = decodeURI(GetUrlParam("policename"));
|
||
|
|
var htmlstr = '与' + policename + '通话中...';
|
||
|
|
// htmlstr=imgflag==0?'与'+policename+'通话中...':'与'+policename+'通话结束';//声明js变量
|
||
|
|
document.getElementById('myId').innerHTML = htmlstr;
|
||
|
|
var voiceVideo = document.getElementById("IPDispatcherCtrl");
|
||
|
|
if (null == voiceVideo || "undefined" == voiceVideo) {
|
||
|
|
// $('body').append("<OBJECT ID='IPDispatcherCtrl' CLASSID='CLSID:A1347CC2-E5A5-4717-A8DA-CD0AA97A68D9' CODEBASE='IPDispatcherCOM.cab#version=1,0,0,1' width='0' height='0'></OBJECT>");
|
||
|
|
//注册事件回调函数
|
||
|
|
// registerVideoEvent();
|
||
|
|
}
|
||
|
|
registerVideoEvent();
|
||
|
|
//如果已登录注销调度台控件
|
||
|
|
closeIPDispatcher();
|
||
|
|
//初始化调度台
|
||
|
|
initVideoCtrl();
|
||
|
|
}
|
||
|
|
|
||
|
|
//绑定事件
|
||
|
|
function attachISTVideoEvent(etype, func) {
|
||
|
|
document.getElementById("IPDispatcherCtrl").attachEvent(etype, func);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 注册调度台事件
|
||
|
|
*/
|
||
|
|
function registerVideoEvent() {
|
||
|
|
//注册回调
|
||
|
|
// attachISTVideoEvent("OnPhoneLineStateEvent", function(nLine,nState,nMediaType){
|
||
|
|
//
|
||
|
|
// });
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 浏览器异常退出情况时候,必须调用此方法,否则注册信息还是停留在服务器端,下次登陆会提示已在其他地点登陆,刷新界面或者关闭界面的时候用此
|
||
|
|
*/
|
||
|
|
function closeIPDispatcher() {
|
||
|
|
var voiceCtrl = document.getElementById("IPDispatcherCtrl");
|
||
|
|
if (null == voiceCtrl || "undefined" == voiceCtrl) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
var isLog = IPDispatcherCtrl.IsLogin();
|
||
|
|
if (isInit == 1 && isLog == 1)//登录
|
||
|
|
{
|
||
|
|
IPDispatcherCtrl.Logout();
|
||
|
|
}
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
IPDispatcherCtrl.DestroyInstance();
|
||
|
|
|
||
|
|
var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
if (isInit == 1) {
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
setCtrlUnUsed();
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function setCtrlUnUsed() {
|
||
|
|
//data.result==false
|
||
|
|
//设置调度台下线已被使用失败!
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 初始化调度台
|
||
|
|
*/
|
||
|
|
function initVideoCtrl() {
|
||
|
|
var url = "/HiatmpPro/hrv/common/initMdsConf";
|
||
|
|
$.ajax({
|
||
|
|
url: url,
|
||
|
|
type: 'get',
|
||
|
|
dataType: 'json',
|
||
|
|
cache: false,
|
||
|
|
success: function (data) {
|
||
|
|
if (data.result == false) {
|
||
|
|
alert("初始化调度台失败!");
|
||
|
|
} else {
|
||
|
|
var result = data.params;
|
||
|
|
if (result == null || typeof(result) == "undefined") {
|
||
|
|
alert("初始化调度台失败!");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
try {
|
||
|
|
IPDispatcherCtrl.strName = result.username;
|
||
|
|
IPDispatcherCtrl.strPassword = result.password;
|
||
|
|
IPDispatcherCtrl.strServer = result.serverip;
|
||
|
|
IPDispatcherCtrl.strLocal = result.localip;
|
||
|
|
IPDispatcherCtrl.strLicense = result.license;
|
||
|
|
var bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
IPDispatcherCtrl.Initialize();
|
||
|
|
bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
//alert('1111->'+bresult);
|
||
|
|
var timeout = 0;
|
||
|
|
if (bresult == 0) {
|
||
|
|
alert("调度台没有初始化!");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
IPDispatcherCtrl.Logout();
|
||
|
|
var ret = IPDispatcherCtrl.Login(10);
|
||
|
|
//alert('ret-->'+ret);
|
||
|
|
|
||
|
|
setTimeout(function () {
|
||
|
|
var mdsid = GetUrlParam("policeid");//警号
|
||
|
|
// alert(mdsid);
|
||
|
|
var options = options || {};
|
||
|
|
options.linenum = getLineNum(mdsid);
|
||
|
|
// IPDispatcherCtrl.ResumeCall(options.linenum);
|
||
|
|
//
|
||
|
|
// IPDispatcherCtrl.SetPhoneCurrentLine(options.linenum);
|
||
|
|
//
|
||
|
|
// IPDispatcherCtrl.VideoCall(options.linenum, mdsid);
|
||
|
|
IPDispatcherCtrl.MakeCall(2, mdsid, 1);
|
||
|
|
|
||
|
|
//alert('IPDispatcherCtrl.ResumeCall(options.linenum)-->'+IPDispatcherCtrl.ResumeCall(options.linenum));
|
||
|
|
// alert('IPDispatcherCtrl.SetPhoneCurrentLine(options.linenum)-->'+IPDispatcherCtrl.SetPhoneCurrentLine(options.linenum));
|
||
|
|
// alert('IPDispatcherCtrl.VideoCall(options.linenum, mdsid)-->'+IPDispatcherCtrl.VideoCall(options.linenum, mdsid));
|
||
|
|
}, 3000);
|
||
|
|
setCtrlUsed();
|
||
|
|
}
|
||
|
|
catch (e) {
|
||
|
|
alert('服务异常!');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
function setCtrlUsed() {
|
||
|
|
//data.result==false
|
||
|
|
//设置调度台已被使用失败!
|
||
|
|
}
|
||
|
|
|
||
|
|
// 线路状态
|
||
|
|
var linesInfo = [];
|
||
|
|
for (var i = 0; i < 16; i++) {
|
||
|
|
linesInfo[i] = {mdsid: ''};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 获取线路号
|
||
|
|
* @returns {Number}
|
||
|
|
*/
|
||
|
|
|
||
|
|
function getLineNum(mdsid) {
|
||
|
|
//如果当前警员正在占用一条线路,返回该线路
|
||
|
|
for (var i = 0; i < 16; i++) {
|
||
|
|
if (linesInfo[i].mdsid == mdsid) {
|
||
|
|
return i;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//否则返回一条空线路
|
||
|
|
for (var i = 0; i < 16; i++) {
|
||
|
|
var a = IPDispatcherCtrl.GetLineState(i);
|
||
|
|
if (a == 0 && linesInfo[i].mdsid == '') {
|
||
|
|
linesInfo[i].mdsid = mdsid;
|
||
|
|
return i;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
function hangup() {
|
||
|
|
var bresult = IPDispatcherCtrl.IsInitialize();
|
||
|
|
if (bresult == 1) {
|
||
|
|
IPDispatcherCtrl.HangupCall(2);
|
||
|
|
imgflag == 1;
|
||
|
|
var htmlstr = '<img src="phone.png" width="80" height="80" style="cursor: pointer;" onclick="initMDSParam()"/>';
|
||
|
|
document.getElementById('phoneId').innerHTML = htmlstr;
|
||
|
|
document.getElementById('holdId').innerHTML = '通话';
|
||
|
|
var policename = decodeURI(GetUrlParam("policename"));
|
||
|
|
var htmlstr = '与' + policename + '通话结束';
|
||
|
|
// htmlstr=imgflag==0?'与'+policename+'通话中...':'与'+policename+'通话结束';//声明js变量
|
||
|
|
document.getElementById('myId').innerHTML = htmlstr;
|
||
|
|
}
|
||
|
|
// window.opener=null;
|
||
|
|
// window.open('','_self');
|
||
|
|
// window.close();
|
||
|
|
}
|
||
|
|
|
||
|
|
window.onbeforeunload = function () {
|
||
|
|
//alert("===onbeforeunload===");
|
||
|
|
// if (/event.clientX > document.body.clientWidth && event.clientY < 0) {
|
||
|
|
//alert("你关闭了浏览器");
|
||
|
|
//} else {
|
||
|
|
//alert("你正在刷新页面");
|
||
|
|
|
||
|
|
//var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
//var isLog = IPDispatcherCtrl.IsLogin();
|
||
|
|
//if (isInit == 1 && isLog==1)//登录
|
||
|
|
{
|
||
|
|
//IPDispatcherCtrl.Logout();
|
||
|
|
//alert("注销!");
|
||
|
|
}
|
||
|
|
//alert("注销!");
|
||
|
|
//alert("你正在刷新页面");
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
//IPDispatcherCtrl.DestroyInstance();
|
||
|
|
/*
|
||
|
|
var isInit = IPDispatcherCtrl.IsInitialize();
|
||
|
|
if (isInit == 1)
|
||
|
|
{
|
||
|
|
IPDispatcherCtrl.OnCloseIPDispatcher();
|
||
|
|
}
|
||
|
|
*/
|
||
|
|
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
</script>
|
||
|
|
<script type="text/javascript" for="IPDispatcherCtrl"
|
||
|
|
event="OnSubscriberStatusChangeEvent(strNumber, nStatus, strOppNumber)">
|
||
|
|
{
|
||
|
|
//alert('nStatus-->'+nStatus);
|
||
|
|
var serverUserStatus = IPDispatcherCtrl.GetLineState(2);
|
||
|
|
//alert('serverUserStatus-->'+serverUserStatus);
|
||
|
|
if (serverUserStatus == 0) {
|
||
|
|
phoneflag++;
|
||
|
|
if (phoneflag == 2) {
|
||
|
|
imgflag == 1;
|
||
|
|
var htmlstr = '<img src="phone.png" width="80" height="80" style="cursor: pointer;" onclick="initMDSParam()"/>';
|
||
|
|
document.getElementById('phoneId').innerHTML = htmlstr;
|
||
|
|
document.getElementById('holdId').innerHTML = '通话';
|
||
|
|
var policename = decodeURI(GetUrlParam("policename"));
|
||
|
|
var htmlstr = '与' + policename + '通话结束';
|
||
|
|
// htmlstr=imgflag==0?'与'+policename+'通话中...':'与'+policename+'通话结束';//声明js变量
|
||
|
|
document.getElementById('myId').innerHTML = htmlstr;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// if(nStatus==0){
|
||
|
|
// imgflag==1;
|
||
|
|
// var htmlstr='<img src="phone.png" width="80" height="80" onclick="initMDSParam()"/>';
|
||
|
|
// document.getElementById('phoneId').innerHTML = htmlstr;
|
||
|
|
// document.getElementById('holdId').innerHTML = '通话';
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
<script language="javascript" FOR="IPDispatcherCtrl" EVENT="OnPhoneLineStateEvent(nLine,nState,nMediaType)">
|
||
|
|
</script>
|
||
|
|
</head>
|
||
|
|
<body scroll="no" onload="this.initMDSParam()">
|
||
|
|
<OBJECT ID='IPDispatcherCtrl' CLASSID='CLSID:A1347CC2-E5A5-4717-A8DA-CD0AA97A68D9'
|
||
|
|
CODEBASE='IPDispatcherCOM.cab#version=1,0,0,1' width='0' height='0'></OBJECT>
|
||
|
|
<div style='height:100%;width:100%;background-color:#000000;'>
|
||
|
|
<p>1</p>
|
||
|
|
<p>1</p>
|
||
|
|
<p>1</p>
|
||
|
|
<p>1</p>
|
||
|
|
<p>1</p>
|
||
|
|
<p align="center" style='color:#ffffff;' id="myId"></p>
|
||
|
|
<p align="center" id="phoneId"></p>
|
||
|
|
<p align="center" style='color:#ffffff;' id="holdId"></p>
|
||
|
|
</div>
|
||
|
|
<script>
|
||
|
|
var policename = decodeURI(GetUrlParam("policename"));
|
||
|
|
var htmlstr = '与' + policename + '通话中...';
|
||
|
|
// htmlstr=imgflag==0?'与'+policename+'通话中...':'与'+policename+'通话结束';//声明js变量
|
||
|
|
document.getElementById('myId').innerHTML = htmlstr;
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|